计算机网络笔记
计算机网络笔记
JJuprising错题
无效Mac帧
- 帧的长度不是整数字节
- 数据字段的长度不在46-1500字节之间
- 帧的长度不在64-1518字节之间
- 用收到的帧检验序列FCS查出有差错
网桥从某一端口收到正确的数据帧后,在其他址转发表中查找该帧要到达的目的站,若查找不到,则会 向除该端口以外的所有端口转发此帧
以太网交换机进行转发决策时使用的PDU地址是 目的物理地址
关于100BASE-T以太网,错误的是:A,表示双绞线组网
A.T表示粗同轴电缆组网
B.100指的是传输速率为100Mb/s
C.BASE指的是基带传输
D.100BASE-T是一种星形以太网
属于虚电路操作特点的是:D
A 每个分组携带有终点的地址信息,它的传送是自身寻址的
B 在整个传送过程中,不需要建立虚电路
C 网络节点要为每个分组做出路由选择
D 使所有分组按顺序到达目的系统
下面哪个协议不属于网络层? C
A ARP
B ICMP
C TCP
D IP
TCP/IP 体系中网络层的协议:IP 协议、ARP协
议、ICMP协议、IGMP协议 TCP属于传输层
点分十进制:**-A类-127-B类-191-C类-223-D类**
在因特网中,IP数据报从源结点到目的结点可能需要经过多个网络和路由器在整个传输过程中,IP数据报报头的:源地址和目的地址都不会变化,读取过程只是找到下一跳地址
IP数据报需要由源主机和中途路由器到达目的主机,通常:;源主机和中途路由器都不知道IP数据报到达目的主机需要经过的完整路径。源主机只知道默认网关是谁,中途路由器根据路由表转发给下一跳
在因特网中,路由器可连接多个物理网络,此时路由器 B
A具有单一IP地址
B具有多个IP地址,每个IP地址与各相连的物理网中具有相同网络号,并占用一个主机号
C具有多个IP地址,每个IP地址与各相连的物理网中具有相同网络号,并占用多个主机号
以下为源和目标主机的不同IP地址组合,其中()组合可以不经过路由直接寻址 B
A.125.2.5.3/24和136.2.2.3/24
B125.2.5.3/16和125.2.3/16
C126.2.5.3/16和126.2.2.3/21
A,24位为网络号,不同;B,16位,相同;C,126.2.2.3借前21,换成2进制发现网络号一样,但是子网掩码(网络段)是不一样的,不能选
关于无分类编址CIDR,下列说法错误的是(C)
ACIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号。BCIDR将网络前缀都相同的连续的IP地址组成“CIDR”地址块。
C.网络前缀越短,其地址块所包含的地址数就越少
D使用CIDR,查找路由表时可能会得到多个匹配结果应当从匹配结果中选择具有最长网络前缀的路由。因为网络前缀越长,路由就越具体。 最长前缀匹配原则
对网际控制报文协议 (ICMP) 描述错误的是()。
A.ICMP封装在IP数据报的数据部分
B.ICMP是属于应用层的协议C.ICMP是IP协议的必需的一个部分
D.Ping命令使用了ICMP回送请求与回送应答报文
下列前缀中的哪一个和地址152.7.77.159及15231.47.252都匹配?(D)
A.152.40/13
B.153.40/9
C.152.64/12
D.152.0/11聚合,152.7->152.00000111
152.31->152.00011111 前三个都是0
因此网络号为152.00000000.0.0 后面全0,一共11为网络号,是152.0/11
不属于路由选择协议 B
A RIP
B ICMP
C BGP
D OSPF
RIP适用小型,OSPF适用大型
某自治系统采用RIP协议,R1收到邻居R2距离向量,包含信息**<net1,16>**,则可以得到结论 B
A R2 通过 R1 到net1,跳数为17
B R2 不能到 net1
C R1 通过 R2 到net1,跳数为17
D R2 能到 net1,条数为16
忘记了16跳表示不可达了
下一跳路由器分别为N2、2、X,新收到从X发来的路由信息中目的网络、跳数、下跳路由器分别为N2、5、Y,则路由表D中更新后关于N2的路由信息为(C)。
A N2、2、X 错选
B N2、5、X
C N2、6、X 注意自加1
D N2、5、Y
若下一跳字段给出的路由器地址相同,则把收到的项目替换源路由表项目。
如果收到项目中的距离小于路由表中的距离,则进行更新
下列关于IPv6的表述中,(D) 是错误的。、
AIPv6的头部长度是不可变的
BIPv6不允许路由设备来讲行分片
CIPv6采用了16B的地址号,理论上不可能用完
DIPv6使用了头部校验和来保证传输的正确性
基本首部40字节,不可变;开始的mpu值就设定好了,不需要分片;IPV4有首部检验,而IPV6反而没有,取消
下面哪个地址属于专用IP地址?(C)
A127.0.0.1 环回地址
B192.32.116.22
–192.168开头
C172.16.1.31
–172.16-172.31
D255.0.0.0
属于传输层协议的是C
AIP
网络层
BARP
网络层
CTCP
DRARP
TCP流量控制 A
对发送方
对接收方
对发、接双方
链路上任两结点间数据
一个TCP连接的数据传输阶段,如果发送端的发送窗口值由2000变为3000,意味着可以 C
在收到一个确认之前可发3000个TCP报文段
可发1000B
可发3000B
可发2000个TCP报文段
A和B之间建立了TCP连接,A向B发送了一个报文段,其中序号字段seq=300,确认号字段ack=101,数据部分包含7个字节,那么B在对该报文的确认报文段中seq,ack分别为(D)
A307,101
B301,108
C101,306
D101,307
序号就是收到的确认号,确认号为上一个序号加数据300+7=307
在一个TCP连接中,MSS为1KB,当拥塞窗口为34KB时收到了3个元余ACK报文。如果在接下来的4个RTT内报文段传输都是成功的,那么当这些报文段均得到确认后,拥塞窗口的大小是(D)
A 8KBB16KB
C27KB
D21KB
3个ACK,超时减半,然后根据4个RTT(往返时间)线性增加,34/2+4=21
DNS说法错误的是 A
A.DNS系统运行在TCP协议之上
对于数据小,用的少的用UDP
B.DNS采用客户服务器工作模式
C.域名的命名原则是采用层次结构的命名树
D.域名不能反映计算机所在的物理地址
逻辑地址
-
A.地址为202.120.66.88的域名服务器
B.地址为10.1.2.3的域名服务器
C.地址为202.110.6.8的域名服务器
D.不能确定
主机想进行域名解析先查询本地域名服务器,如果其不知,查询根域名,再查顶级,再查权限
一
计网的作用
- 三网融合:电信网络、有线电视网络、计算机网络
- 互联网两个重要特点:连通性、共享
概述
起源 ARPANET
组成
- 边缘部分,端系统之间的通信方式:C/S、P2P
- 核心部分,三种交换方式:电路交换、分组交换(路由器)、电报交换
电路交换
1950S,电报采用基于存储转发的报文交换
电路交换——整个报文的比特流连续地从源点直达终点。好像在一个管道传输。
报文交换
报文交换——整个报文先传送到相邻节点、全部存储下来后查找转发表,转发到下一个节点。
分组交换
分组又称为“包”,分组交换——单个分组传送到相邻节点,存储下来后查找转发表,转发到下一个节点。
路由器
注意分组的存储转发过程,在路由器分组放入缓存,查路由表,转发
路由器输入和输出端口没有直接连线的,而交换机有
路由器利用软件时间数据交换,交换机是依靠硬件,前者比后者慢
注意路由器和交换机的区别
带来的问题:
- 要排队,会造成一定时延。(如果分组太多,造成时延太大,会直接丢掉分组)
- 必须携带首部,造成了一定的开销
⭐三种交换比较
稳定性:电报交换传输更加稳定,报文和分组交换存在丢包可能。
传输速率:当要连续传输大量的数据,电路交换的传输速率较快。
传输效率和信道利用率:传输突发式的计算机数据时,电报交换速率由于线路被占用,且需要预先分配带宽,使得传输效率和信道利用率很低;报文交换和不需要预先分配传输带宽,且不必先占用一条端到端的通信资源,省去了开销,数据的传输效率和信道利用率更高。
例子:有线电话和IP电话
- IP电话成本低,计算机网络连接分组交换逐端占用,通话质量没那么高
- 有线电话稳定,通话质量高,专用链路连接,成本高
计网在我国的发展
94年被正式承认为接入互联网的国家
《中国互联网络发展状况统计报告》
计算机网络的类别
定义
地理位置不同的具有独立功能的多台计算机及其外部设备(硬件),通过通信线路连接,在网络操作系统、网络管理系统和协议等(软件)的管理和协调下,实现 资源共享和i信息传递的计算机系统
分类
从作用范围上分类
- 广域网WAN(Wide) 作用距离在几十到几千公里,是互联网核心部分。
- 域域网MAN(Metroplitan) 作用距离在5-50公里 作用范围可跨越几个街区/整个城市。
- 局域网LAN(Local) 作用距离1公里以内,作用范围一般是一个学校、公司或工厂。
- 个人区域网PAN(Personal) 作用距离10米以内,是用无线技术将个人使用的电子设备连接起来形成的网络。
从网络的使用者上分类
- 公用网 简单理解就是大家都可以用的网络(只要交了钱),由电信公司出资建设。
- 专用网 某个部分/机关由于内部需要专用的网络,不对外提供服务。
计算机网路的性能
性能指标
比特 一个比特就是二进制数字中的0或1
带宽
本来是指信号具有的频带宽度
在计网中表示在单位时间内网络中的某通道所能通过的“最高数据率”。单位是bit/s,即比特每秒
在时间轴上的信号的宽度随带宽的增大而变窄,频率增大
吞吐量
在单位时间内通过某网络(或信道、接口)的数据量
时延
数据从网络的一端传送到另一端所需的时间,有时也称位延迟或迟延。
由四部分组成,发送时延、传播时延、处理时延、排队时延
发送时延:
$$
发送时延=\frac{数据帧长度(bit)}{发送速率(bit/s)}
$$
传播时延:
$$
传播时延=\frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)}
$$
处理时延
排队时延
$$
总时延=发送时延+传播时延+处理时延+排队时延
$$
总时延
发10个分组的用时:每个分组的发送时延之和+最后一个分组的传播时延和处理时延
时延带宽积
$$
时延带宽积=传播时延×带宽
$$
往返时间RTT
$$
发送时间=\frac{数据长度}{发送速率}
$$
$$
有效数据率=\frac{数据长度}{发送时间+RTT}
$$
利用率
利用率越大,时延增加
非性能特征
费用
质量
标准化
可靠性
可拓展性和升级性
易于管理和维护
计算机网络的体系结构
体系结构的形成
为什么分层?分层次结构有很多好处,比如:
- 能够使各层之间独立,问题的复杂度变小了;
- 灵活性好,各层互不影响;
- 结构上可分割,各层都采用最合适的技术来实现;
- 易于实现和维护;
- 能促进标准化工作,每一次的功能都很明确。
- 比如我们学生组织分为几个部门,有些部门负责统筹组织,有些部门负责整合资料,有些部门负责宣传推广,分层次地把一个大的项目和任务实施解决。
缺点
- 麻烦
各层完成的主要功能
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 连接建立和释放
协议与划分层次
- 网络协议三个要素
- 语法,即数据与控制信息的结构或格式
- 语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
- 同步,即事件实现顺序的说明。
三种分层概念
具有五层协议的体系结构
OSI的七层协议
TCP/IP的四层体系结构
五层协议
应用层 处理不同应用
- 应用层是体系结构的最高处。任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。
运输层 运输
- 运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。主要使用传输控制协议TCP和用户数据报协议UDP。流量控制
网络层 路由,找路线
- 网络层负责为分组交换网上的不同主机提供通信服务,将用户数据封装成IP数据报,主要功能是路由。
数据链路层 封装,拆分成帧
- 将数据报组装成帧,包括了数据和必要的控制信息,是链路上传输数据的协议。
物理层 接口有关
- 物理层上传输数据的单位是比特,需要考虑传输的编码方式和硬件条件。
协议与服务有何区别?有何关系?
协议是水平的,服务是垂直的。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。只有那些能被高一层实体“看得见”的功能才能称之为“服务”。
一些名词
协议栈:协议栈是指由多个协议层组成的一种网络通信协议体系结构。每一层协议都负责特定的功能,例如物理层、数据链路层、网络层、传输层、应用层等。协议栈中的每一层都通过接口与上下层交换信息,并对其上层提供服务。
实体:实体是指一个网络节点上的一个网络通信实体,它可以是硬件设备、软件程序、网络服务器等。实体在网络中通过地址进行标识,通常使用IP地址或MAC地址。
对等层:对等层是指在协议栈中相互配对的同级协议层。在对等层之间,通信双方具有相同的角色和功能,并且它们通过接口进行通信。
协议数据单元:协议数据单元是在网络通信中,不同层之间传递信息的基本单元。在不同层之间,PDU的命名和格式可能不同。
服务访问点:服务访问点是指在同一层协议中,对上下层提供服务的接口。每个SAP都有一个唯一的标识符,用于标识服务提供者和服务请求者之间的通信关系。
客户(Client):客户指的是通过网络请求服务的设备或应用程序。在客户-服务器模型中,客户向服务器发出请求,等待服务器响应并接收数据。
服务器(Server):服务器指的是提供服务的设备或应用程序。在客户-服务器模型中,服务器接收客户端请求,处理请求并向客户端发送响应数据。
客户-服务器方式(Client-Server):客户-服务器方式是一种网络通信模型,其中客户端设备或应用程序通过网络向服务器发出请求,等待服务器响应并接收数据。服务器接收客户端请求,处理请求并向客户端发送响应数据。这种模型在分布式计算和Web服务中广泛使用
二 物理层
数据通信的基础知识:奈氏准则、香农定理
传输媒体:导引型,非导引型
信道复用:频分、时分、波分、码分
主要任务
解决与接口有关的任务,包括:
- 机械特性
- 电气特性
- 功能特性
- 过程特性
数据在计算机内部是并行传输,在通信线路上是串行传输
数据通信
模型
通信系统分为:
- 源系统
- 传输系统
- 目的系统
信道
- 单工通信
- 半双工通信
- 全双工通信
来自信号源的信号称为基带信号(基本频带信号)
解决通信问题需要对基带信号进行调制。
- 基带调制 变换后还是基带信号
- 带通调制 使用载波
常见编码方式
- 不归零制
- 归零制
- 曼彻斯特编码
- 差分曼彻斯特编码
基本的带通调制方法
- 调幅
- 调频
- 调相
正交振幅调制
⭐信道的极限容量
奈氏准则
单位波特率,码元传输最高速率是带宽的两倍,2W(码元/秒)
比特率=波特率×log2N
信噪比
$$
信噪比(dB)=10log(S/N)
$$
香农定理
$$
C=Wlog2(1+S/N)
$$
传输媒体
传输媒体分为
- 导引型 (有线)
- 非导引型 (无线)
导引型
双绞线
无屏蔽双绞线UTP
非屏蔽双绞线STP PVC套层与带绝缘层的铜线之间有一层铝箔屏蔽层
导线相互缠绕可降低电磁干扰
- 同向的导线,磁场抵消,消除导线之间的串扰
- 差值法避免了噪声干扰
八个脚位
- 1、2发送数据正/负极,3、6接收数据正/负极
- 交换机内部做了翻转,1、2收,3、6发
- 主机和路由也用交叉
- RJ45:接头+水晶头
同轴电缆
光缆
光纤做成结实的光缆
光线入射角足够大就会出现全发射,即光线碰到包层时就会折射会纤芯
纤芯直径 | 光源 | 传输速率 | 应用 | |
---|---|---|---|---|
多模光纤 | 较大,同时传输多条光线 | 发光二极管 | 低、性能差 | 局域网 |
单模光纤 | 较小,一次传输一条光线 | 激光 | 高 | 楼间、广域网 |
多模光线传输速率低、性能差但是成本低,一般用于局域网
单模光纤通常用于楼间连接或广域网连接
光纤优点
- 通信容量非常大
- 传输损耗小,中继距离长
- 抗雷电和电磁干扰性能好
- 无串音干扰,保密性好
- 体积小,重量轻
缺点
- 成本
- 脆弱
非导引型
波长越长、频率越小
短波通信
主要靠电离层的反射,会产生多经效应
一次反射可传输4000km,一般用于军事通讯
微波通信
频谱范围:300MHz-300GHz
特性:在空间主要是直线传播,难以传过建筑物
两种方式:地面微波中继通信、卫星通信
⭐信道复用技术
复用技术允许共享信道进行通信,降低成本,提高利用率
频分复用、时分复用和统计时分复用
频分复用
在同样时间占用不同的带宽(频率带宽)资源.例子:同时听到猫叫和狗叫,可以区分,因为频率不同
时分复用
所有用户在不同的时间占用同样的频带宽度
是将时间划分为一段段等长的时分复用帧 (TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
波分复用
波分复用就是光的频分复用。使用一根 光纤来同时传输多个光载波信号。
⭐码分复用CDMA
- 码分复用 CDMA
- 特殊挑选不同码型,因此彼此不会相互干扰
- 有较强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现
- 应用:第三代数字移动通信系统(3G)
码片序列
每一个比特时间划分为 m 个短的间隔,称为码片 (chip)。
◼ 每个站被指派一个唯一的 m bit 码片序列。
◼ 如发送比特 1,则发送自己的 m bit 码片序列。
◼ 如发送比特 0,则发送该码片序列的二进制反码。
◼ 例如,S 站的 8 bit 码片序列是 00011011。
◼ 发送比特 1 时,就发送序列 00011011,
◼ 发送比特 0 时,就发送序列 11100100。
◼ S 站的码片序列:(–1 –1 –1 +1 +1 –1 +1 +1) ,-1表示0
两个不同站的码片序列正交,因此有规格化内积为0:
$$
S\cdot T=\frac{1}{m}\sum_{i=1}^m{S_iT_i=0}
$$
和别人为0,和自己为1,和反码为-1
应用
接收信号的时候接收到不止一个站发送的信号,比如此时我想要接收S站的信息,假设收到的是
$$
(S+T)
$$
此时用S的码片序列去做规格化内积:
$$
S·(S+T)=S·S+S·T
$$
此时S·T得到的结果是0,所以最终规格化内积后可得结果为:
$$
S·S
$$
将它除以码片序列的长度,结果为1时说明发了1,结果为-1时说明发了0
- 共有四个站进行码分多址CDMA通信。四个站的码片序列为:
A: (-1 -1 -1 +1 +1 -1 +1 +1) B: (-1 -1 +1 -1 +1 +1 +1 -1)
C: (-1 +1 -1 +1 +1 +1 -1 -1) D: (-1 +1 -1 -1 -1 -1 +1 -1)
现收到这样的码片序列:(-1 +1 -3 +1 -1 -3 +1 +1)。问哪个站发送了数据?发送数据的站发送的是1还是0?
$$
A站:\left( -1-1-1+1+1-1+1+1 \right) \cdot \left( -1+1-3+1-1-3+1+1 \right) /8=1
$$
$$
B站:\left( -1-1+1-1+1+1+1-1 \right) \cdot \left( -1+1-3+1-1-3+1+1 \right) /8=-1
$$
$$
C站:\left( -1+1-1+1+1+1-1-1 \right) \cdot \left( -1+1-3+1-1-3+1+1 \right) /8=0
$$
$$
D站:\left( -1+1-1-1-1-1+1-1 \right) \cdot \left( -1+1-3+1-1-3+1+1 \right) /8=1
$$
A、D站发送的是1,B结果为-1发送的是0,而C站没有发送数据
例题
模拟信道的信号功率为0.62W,噪声功率为0.02W,传输频率为3.5-3.9MHz,问最大传输速率?
有噪声,利用香农公式,其实频带W=(3.9-3.5)M(带宽:信号具有的频带宽度)
数字传输系统
脉码调制 PCM般包括三个过程:采样、量化和编码。
同步光纤网SONET
1988美国提出一个数字传输标准,叫做同步光纤网SONET
同步数字序列SDH
SDH相当于SONET的同义词,标准近似
首次实现了数字传输体制上的世界性标准
宽带接入技术
用户要连接到互联网,必须先连接到某个ISP
初期用户利用电话的用户线通过调制解调器连接到ISP,最高速率56kbit/s
美国联邦通信委员会FCC认为只要双向速率和超过200kbit/s就是宽带
ADSL技术
ADSL非对称数字用户线,上行与下行速率不同。
- 特点
- 下行速率远大于上下
- 采用非对称传输的原因:在网络应用中,用户 的下载数据量要远大于上传的数据量
- ADSL 在用户线(铜线)的两端各安装一个 ADSL 调制解调器。
- 我国目前采用的方案是离散多音调(频率) DMT (Discrete Multi-Tone)调制技术。
- 打电话、上网、上传、下载、多用户,都不互相影响
光纤同轴混合网(HFC网)
HFC 网对 CATV 网进行了改造。HFC 网将原 CATV 网中的同轴电缆主干部分改换为光纤,并使用模拟光纤技术。
FTTx技术
代表多种宽带光纤接入方式
🖼图床至此为止
三 数据链路层
- 数据链路的主要功能
- 数据链路层协议的三个基本问题
- 数据链路使用的信道类型
- PPP协议的特点、帧格式、工作状态
- 局域网拓扑结构
- CSMA/CD 协议
- 以太网V2的MAC帧地址
- 如何实现在物理层、数据链路层扩展以太网
- 集线器、交换机的特点与区别
- 交换机的工作原理
- 生成树协议的作用、工作原理
- VLAN的作用和特点
- 以太网的演进
数据链路和帧
链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
不同的链路层可能采用不同的数据链路层协议:
三个基本问题
- 封装成帧
- 透明传输
- 差错控制
封装成帧
首部和尾部进行帧定界
透明传输
透明:实际存在但是又摸不到看不着,这里是相对上层来说透明
任何一个二层协议都要解决透明传输问题
控制字符在数据出现会导致帧定界出错!
解决方法:字节填充
如果数据中有控制字符,那么在控制字符前进行字节填充
差错控制
传输过程中可能会产生比特差错:1 可能会变 成 0 而 0 也可能变成 1。
传输错误的比特占所传输比特 总数的比率称为误码率 BER
误码率与信噪比有很大的关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
- 广泛使用循环冗余检验CRC的检测方法:
假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送
二进制模2运算:进行2^n乘M的运算,相当于在M后面添加n个0
冗余码计算举例
现在 k = 6, M = 101001。 设 n = 3, 除数 P = 1101, 被除数是 2^nM = 101001000。 模 2 运算的结果是:商 Q = 110101, 余数 R = 001。 把余数 R 作为冗余码添加在数据 M 的后面发送出去。 发送的数据是:2^nM+R,即101001001,共(k+n)位
余数001作为FCS
任意一个比特出错都能查出来
P=1X^3+1X^2+0*X+1,表示1101
检验
若得出余数R=0,则判断这个帧没有差错,就接收
若余数R≠0,则有差错,丢弃
这种方法并不能确定究竟是哪一个或哪几个比特出现了差错,只要经过严格的挑选,并使用位数足够多的除数P,则检测不出差错的概率将很小
仅用循环冗余检验 CRC 差错检测技术只能做到无差错 接受 (accept)。也就是说:“凡是接收端数据链路层接受的帧都没有 传输差错”(有差错的帧就丢弃而不接受)
要做到“可靠传输”(即发送什么就收到什么)就必 须再加上确认和重传机制。
- 奇偶校验这能检测出奇数个位出错,偶数位出错查不出来
练习:要发送的数据是101110,采用CRC的生成多项 式是P(X)=X^3+1。试求应添加在数据后面的余数。
不借位,注意补零,算错两次了
3.2点对点协议PPP
特点、组成、工作状态、帧格式、透明传输
Point-to-Point
3.2.2PPP 协议的帧格式
PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。
标志字段 F = 0x7E (符号“0x”表示后面的字符是用 十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节
透明传输问题
字符填充
零比特填充
在PPP协议中,为了解决传输中出现的数据丢失或者错误,采用了同步传输技术,并在数据帧中使用了零比特填充(Zero-bit stuffing)的方法。具体地,当数据帧中出现连续的五个1时,在第六个1之后自动插入一个零,以避免在传输过程中与控制帧的标识字段发生混淆。
3.3使用广播信道的数据链路层
以太网的两个标准
- DIX Ethernet V2
- IEEE 802.3
- 逻辑链路控制 LLC子层
- 媒体接入控制 MAC子层
由于TCP/IP经常试验DIX Ethernet V2,LLC作用不大,很少有了
- 适配器作用
- 网络接口板又称为通信适配器 (adapter) 或网络 接口卡 NIC (Network Interface Card),或“网 卡”。
- 重要功能
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
- 以太网采取了两种重要的措施,为了通信方便
- 采用较为灵活的无连接的工作方式
- 以太网发送的数据都使用曼彻斯特 (Manchester) 编码
媒体共享技术:
- 动态媒体接入控制(多点接入)
- 随机接入方式:争用,可能会起冲突
- 受控接入方式,每一个站点轮流拿令牌,把信息加载令牌后
- 动态分配的特点
- 信息是开放的
- 没有预分配
通过多点接入协议动态分配信道资源,提高信道利用率。
常用的还是随机接入
- 典型的随机接入协议
- ALOHA协议:想发就发
- CSMA协议:先听后发
- CSMA/CD协议:先听后发、边发边听
CSMA/CD协议
“多点接入”表示许多计算机以多点接入的方式连接 在一根总线上。
“碰撞检测”就是计算机边发送数据边检测信道上的信 号电压大小。
“载波监听”是指每一个站在发送数据之前先要检测 一下总线上是否有其他计算机在发送数据,如果有, 则暂时不要发送数据,以免发生碰撞
争用期
最迟检测时间就是A到B的往返时延$2τ$。过了$2τ$说明就可以了,没有冲突。因此$2τ$称为征用期。
对于10Mbit/s以太网,在争用期内可发送10Mbit/s/*51.2*10^-6=64B,因此以太网最短的帧为64B。
如果发生冲突,就一定是在发送的前 64 字节之 内。由于一检测到冲突就立即中止发送,这时已经 发送出去的数据一定小于 64 字节。以太网规定了最短有效帧长为 64 字节,凡长度 小于 64 字节的帧都是由于冲突而异常中止的无 效帧。
二进制指数类型退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一 个随机时间才能再发送数据。说话有冲突,双方都等一下再说,等多久呢
从整数集合[0,1,…,(2k-1)]中随机取一个数,记为r。重传所需的时延就是r倍基本退避时间
比如k=1,集合就是[0,1],随机到0,那么冲突之后不等待,直接重传
当k≤10时,参数k等于重传次数
当重传达16次仍不成功则丢弃帧,并向高层报告
要点
- 准备发送。
- 检测信道。忙则等待,若检测到信道空闲,并在96比特时间内信道保存空闲(保证了帧间最小间隔),就发送这个帧。
- 检测碰撞
- 发送成功:未检测到碰撞,发送完毕,回到准备发送
- 发送失败:检测到碰撞,立即停止,发送人为干扰信号,然后执行指数退避算法,等待r倍512比特时间后,回到检测信道步骤。若重传16次仍不成功,停止重传向上报错。
使用集线器的星形拓扑
1990年 IEEE 制定出星形以太网 10BASE-T 的 标准 802.3i。
10BAST-T,110BASE-T 中的“10”表示信号在电缆上的传输速率为 10Mbit/s ,“BASE” 表示电缆上的信号是基带信号,“T” 代表双绞线星形网,奠定了以太网在局域网的统治地位,既降低了成本,又提高了可靠性,具有很高的性价比
从此以太网的总线型变为星形网络。
参数α与利用率
在以太网中定义了参数 α,它是以太网单程端到 端时延 与帧的发送时间 T0 之比:α=$τ$/T0
$$
Smax=\frac{T0}{T0+τ}=\frac{1}{1+α}
$$
- 集线器工作在物理层MAC,所有接收的数据都发出去。
- 使用集线器的以太网在逻辑上仍是一个总线网, 工作站使用CSMA/CD 协议共享逻辑上的总线。
- 使用集线器的以太网利用率很低。
以太网的MAC层
MAC层硬件地址
硬件地址又称为物理地址,或 MAC 地址。6个字节,48位
表示的是某个端口的地址。
适配器检查MAC地址
发往本站的帧,包括以下三种帧
- 单播帧(一对一)
- 广播帧(一对全体)
- 多播帧(一对多)
混杂方式工作只要“听到”有帧在以太网上传输都接收下来。
帧头:目的地址、源地址、类型(协议)
加上前后帧,就是64-1518
在帧前面插入的8字节,第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段1个字节是帧开始定界符,表示后面的信息就是MAC帧
7相当于1,2,1,1,2,1的准备指令,最后的1就是齐步走的指令,
IEEE 802.3规定的MAC帧第三个字段是“长度/类型”
3.4 扩展以太网
在物理层扩展以太网
在数据链路层扩展以太网
早期使用网桥,现在使用以太网交换机
以太网交换机
特点:
- 实质上就是一个多接口的网桥
- 每个接口都是与主机或交换机直接相连,并且全双工方式工作
- 以太网交换机具有并行性
优点:
- 用户独享带宽,增加了总容量
- 对于普通共享式以太网,所有用户平分带宽
- 而以太网交换机每个接口带宽都是一样,接口越多,带宽总容量越大
- 共享转交换不用改动
- 具有多种速率接口,适合不同用户
交换机要分割广播域,需要用到虚拟局域网(vlan)
工作原理:
交换机起初有一张空的mac地址表,通信之后自动学习mac地址,然后转发信息
pc0第一次ping pc1,交换机会广播包,然后pc1和pc2都收到,但是是pc1需要的,pc1接到后返回包给交换机,这时候交换机已经知道两者的mac地址了,将包返回给pc0。此后发包交换机都会直接在二者进行,不用广播了。
若在有效时间内两主机都没通信,该条目会被删除
MAC地址表空间有限,一旦表满,就会泛洪到所有新MAC地址的帧,知道现存地址条目老化未知
监听
短时间大量发送错误的mac地址进行攻击,造成内存溢出
交换机就会从点对点的交换式退回共享式hub,****监听其他主机的数据了
交换方式:
- 把整个数据帧先缓存,检查是否出错,如无错才送往目的端口。
- 有差错控制;交换时延较长。
从总线以太网到星形以太网
- 早期,以太网采用无源的总线结构。
- 现在,采用以太网交换机的星形结构成为以太网的首选拓扑。
- 总线以太网使用 CSMA/CD 协议,以半双工方式工作。
- 交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工式工作,但仍然采用以太网的帧结构
使用了生成树协议,不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
虚拟局域网
虚拟局域网( VLAN ):它是将局域网从逻辑上划分为一个个的网段,从而实现虚拟工作组的一种交换技术。
因此同一个网段下的主机都要设置同一个网络号。
补充:当子网掩码为255.255.255.0,则ip前三个段表示网络号;255.255.0.0,前两个为网络号。(255在8位二进制表示全1)
:那么不同网段设置不同网络号就好了为什么要设VLAN?
:IP是逻辑地址,随时改,不安全不严谨
一个VLAN=一个广播域=逻辑网段(子网)
3.5 高速以太网
吉特以太网,上层链路速度要比下层所有加起来要大(或等于)
四 网络层
网络层提供的两种服务:
- 虚电路服务(面向连接,让网络负责可靠交付)
- 数据报服务(无连接,让主机负责可靠交付)
网络层两种服务 | 含义 | 优点 | 缺点 |
---|---|---|---|
虚电路服务 | 借助电信网经验,通信之前先建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。 | 使所发送的分组无差错按序到达终点,不丢失、不重复。 | 占用一定的网络带宽,造成资源浪费 |
数据报服务 | 网络在发送分组时不需要先建立连接。每一个分组(即IP 数据报)独立发送,与其前后的分组无关(不进行编号)。 | 传输网络不提供端到端的可靠传输服务,网络的造价大大降低,运行方式灵活,能够适应多种应用。 | 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),不保证分组传送的时限 |
4.2 网际协议IP
ARP协议:IP到MAC的映射
ICMP( Internet Control Message Protocol ):报告出错情况
4.2.1 虚拟互连网络
意义:
- 所谓虚拟互连网络也就是逻辑互连网络
- 使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
- 如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就是现在的互联网 (Internet)
核心层–汇聚层–接入层
为什么要有IP而不单独用MAC,因为MAC就像一个人的名字,找是很难找的,IP就像学号,具备逻辑信息,找起来方便
4.2.2 分类的IP地址
A类地址的第一个十进制数范围从(1-126)
B类地址的第一个十进制数范围从(128-191)
C类地址的第一个十进制范围(192-223),例如192.168.1.1 网络号字段即192.168.1.0
-A类-127-B类-191-C类-
点分十进制记法
机器中存放IP地址是32位二进制代码,8位为一组,转换为十进制数,提高可读性。
※转换:
为1的位代表的十进制数相加。
一般不使用的特殊的IP地址:
网络号 | 主机号 | 源地址实验 | 目的地址实验 | 代表的意思 |
---|---|---|---|---|
0 | 0 | 可以 | 不可 | 在本网络上的本主机(6.6节DHCP协议) |
0 | host-id | 可以 | 不可 | 在本网络上的某台主机host-id |
全1 | 全1 | 不可 | 可以 | 只在本网络上进行广播(各路由器均不转发) |
net-id | 全1 | 不可 | 可以 | 对net-id上的所有主机进行广播 |
调试网络:
ping自己,ip没错
ping网关,网关没错
ping下一跳,没问题再ping下一跳
IP地址的重要特点
- 分等级的地址结构,两个好处
- IP 地址管理机构在分配 IP 地址时只分配网络号,由该网络号的单位自行分配剩下的主机号,方便IP地址管理。
- 路由器仅根据目的主机所连接的网络号来转发分组;使路由器中的项目数大幅减少,从而减小路由表所占的存储空间
- 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
- 因此,当一个主机连接到两个网络上时,就必须同时具有两个相应的IP地址,这两个网络号必须不同,称为多归属主机。
- 一个路由器至少应对连接到两个网络,这样才能将数据报从一个网络转发到另一个,即路由器至少要有两个不同的IP地址。
- 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
- 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
小结
IP 地址是一种分等级的地址结构
路由器用于连接不同网络,一个路由器至少有两个网络号不同的IP 地址。
用转发器或网桥连接起来的局域网仍属于一个网络。
在同一个网络上的主机或路由器的IP地址中的网络号必须是一样的。
4.2.3 IP地址与硬件地址
IP数据报头部是IP地址,MAC帧首部是硬件地址
在 IP 层抽象的互联网上只能看到 IP 数据报。
图中的 IP1→IP2 表示从源地址 IP到目的地址 IP2 。两个路由器的 IP 地址并不出现在 IP 数据报的首部中。路由器只根据目的站的 IP 地址的网络号进行路由选择。*那怎么知道到哪个路由器呢?
这个时候就需要MAC地址了,IP 层抽象的互联网屏蔽了下层很复杂的细节。在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信 。*
4.2.4 地址解析协议ARP
- 通信时使用了两个地址
- IP地址(网络层地址)
- MAC地址(数据链路层地址)—ARP来找
- 地址解析协议ARP作用就是从网络层使用的IP地址解析出在数据链路层使用的硬件地址。
ARP 作用:从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。
ARP要点:
不管网络层是什么协议,当网络上传输数据帧时还是需要使用硬件地址的。
每一个主机都设有一个ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的IP 地址到硬件地址的映射表。
<IP address; MAC address; TTL>,TTL(Time To Live):地址映射有效时间
A向B发IP数据报先查ARP cache有无B的IP地址
- Yes,就可以查到硬件地址并写入MAC帧,通过局域网将MAC帧发往硬件地址
- No,ARP进程在本局域网广播发送一个ARP请求分组,收到响应后,将映射写入ARP cashe
注意:
- ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
- 如果目的主机不在同一个局域网,则现有ARP找到一个位于本局域网上的某个路由器的硬件地址,将分组发送给路由器进行转发,剩下的工作由下一个网络来做。
- 从IP 地址到硬件地址的解析是自动进行,主机用户不知道
- 只要与已知IP的设备进行通信,ARP协议就会自动地将该IP 地址解析为链路层所需要的硬件地址。
为什么我们不直接使用硬件地址进行通信?
- 异构网络,转换复杂:由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
- IP编址解决这一问题,统一标准,进行编号:连接到互联网的主机只需各自拥有一个唯一的IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为上述的调用ARP 的复杂过程都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
- 因此,在虚拟的IP 网络上用IP 地址进行通信给广大的计算机用户带来了很大的方便。
第一个是广播,发送全1地址;发送路由器的MAC地址,让路由器转发分组
主机1可以访问WWW服务器,但不能访问Internet。
以太网 数据部分46-1500B 整个帧64-1518B
小结
- ARP协议的作用:从IP地址解析出硬件地址。
- 每一个主机都设有一个ARP高速缓存,用于存放最近获得的IP 地址到MAC 地址的绑定。
- 当目的主机和源主机不在同一个局域网时,通过ARP找到默认网关的硬件地址,然后由默认网关把分组转发给下一个网络。
4.2.5IP数据报的格式
一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
IP 数据报首部的固定部分中的各字段
- 首部前一部分是固定长度,共20字节,是所有IP数据报必须具有的
- 可选字段说明长度是可变
第一行从左到右:
版本——占4 位,指IP 协议的版本。目前的IP 协议版本号为4 (即IPv4)。
首部长度——占4 位,可表示的最大数值是15 个单位(一个单位为4 字节),因此IP 的首部长度的最大值是60 字节。
区分服务,只有使用区分服务才起作用,一般不使用
总长度——占16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535 字节。总长度必须不超过最大传送单元MTU。
最大传输单元MTU:一个帧可传输的数据量的上界。
数据经MTU先分片,到目的站再重组
第二行从左到右:
标识(identification) ——占16 位,它是一个计数器,用来产生IP 数据报的标识。
标志(flag) ——占3 位,目前只有前两位有意义。MF=1表示后面还有分片,MF=0表示最后一个分片。DF=0时才允许分片
片偏移—— 占13 位,指出:较长的分组在分片后,某片在原分组中的某片在原分组中的相对位置。片偏移以8 个字节为偏移单位。**(除以8)**
例子
第三行从左到右:
- 生存时间——占8 位,记为TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。
- 协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的IP 层将数据部分上交给那个处理过程
- 首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用CRC 检验码而采用简单的计算方法。
死亡之ping
ping -l [包尺寸] 目标IP -t
IP包最大65535,而实际规定的最大尺寸并达不到。
一直发大包,分片之后没问题,接收到重组之后就发现超过了尺寸,使得额外数据被写入其他正常区域,造成缓存溢出(Buffer Overflow)攻击
解决办法:对超出规定长度的包直接丢掉不重组
- 生存时间
- 协议
- 首部检验和
- 并不检验数据,为了减少路由器处理时延,转发分组更快
- 缺点,出现差错不能及时发现
- 计算距离了解即可
- 目的地址、源地址
- 可变部分,从1字节到40字节不等,现在少用,一般都是固定的
练习
一行由8位16进制标识,当有一个IP分组表,每个单元是一个8位16进制,那么源地址就是第四个单元,如c0 a8 00 08–>1100 0000. . . –>192.168.0.8
【解答】(1)H主机的IP地址是192.169.0.8,对应的十六进制是c0 a8 00 08,根据IP分组的源IP地址知道,分组1、3和4是H发送的。
(2)快速以太网数据帧的数据最小长度为46B,当IP分组总和小于46B时,需要填充。
根据IP分组的“总长度”字段,5个分组的长度分别为00 30H、00 30H、00 28H、00 38H、00 28H,即:
第1、2、4个分组大小分别为48B、48B、52B(均大于最小帧长46B),不需要填充;
第3、5个分组28H(分组大小为40B),因此需要填充。
小结
- IP 数据报由首部和数据组成。
- 途径MTU较小网络,数据报会被分片,到达目的站后再进行重组。
- IP 数据报采用16 位二进制反码求和算法检验数据报的首部。
4.2.6 IP 层转发分组的流程
在路由表中,对每一条路由,最主要的是
(目的网络地址,下一跳地址)
查找路由表
- 根据目的网络地址就能确定下一跳路由器,这样做的结果是:
- IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
- 根据目的网络地址就能确定下一跳路由器,这样做的结果是:
特定主机路由
- 分组转发基于目的主机所在网络,特例是为特定目的主机指明一个路由
- 方便控制和测试
默认路由
- 减少路由表占用空间和搜索路由表时间
注意
- 数据报首部没有指明下一跳路由器的IP
- 当路由器接到数据报,是将下一跳地址递交下一层网络接口软件而非填入IP数据报
- 网络接口软件使用 ARP 负责将下一跳路由器的IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
路由器分组转发算法
- 从首部提取目的主机IP地址D,得出目的网络地址N
- 若直接相连,则直接交付目的主机,否则间接交付,执行3
- 若有特定主机路由,则传送给指明的下一跳路由器,否则执行4
- 若有到达网络N的路由,传送,否则5
- 若有默认路由,传送给指明的默认路由器,否则6
- 报告转发分组出错
⚠4.3划分子网和构造超网
4.3.1划分子网
原因:早期IP地址设计不够合理,利用率低,两级的IP地址不够灵活
解决:在IP地址中增加一个“子网号字段”,从两级IP变成三级IP地址,叫做划分子网
基本思路:
- 划分子网纯属单位内部的事。借助主机位划分子网,对外仍然是一个网络
- 从主机号再借用若干位作为子网号,因此主机号就相应减少了若干位
- 从其他网络发来的数据报,仍然根据IP数据包的目的网络号找到本单位网络上的路由器
- 此路由器再按目的网络号和子网号找到目的子网
优点:
- 减少了IP 地址的浪费
- 使网络的组织更加灵活
- 更便于维护和管理
子网掩码
原因:根据IP数据报首部无法判断目的网络是否进行子网划分
解决:通过子网掩码可以找到IP地址中的子网部分
规则:
- 子网掩码长度=32位
- 某位=1:IP地址中的对应位为网络号和子网号
- 某位=0:IP地址中的对应位为主机号
看例题
因此无法仅通过首部判断源主机或目的主机所连接的网络是否进行了子网划分。
与运算
$$
(IP地址)AND(子网掩码)=网络地址
$$
借的位数越多,子网越多但是每个子网能带的主机数越少,如何理解借用呢,看下面的例子
通过ip地址可以看到是个C类,但是子网掩码不是默认的255.255.255.0而是.224,写出224的2进制,是11100000,前面3个1,借了3位,也就是划分了23个子网,三位二进制有8种组合,每一种组合加上后面全0就对应一个子网号
网络地址:192.168.10.0
子网掩码:255.255.255.192(/26) :192(11000000)说明借了两位产生子网
**1.子网数? **借了多少位产生多少子网
2.主机数?
3.有效子网?
4.广播地址? 网络段不变(包括借位的部分),后面全1
5.有效主机范围是?
IP地址类别 | 分段 | 网络号 | 主机号 | 默认子网掩码 |
---|---|---|---|---|
A | 0-127 | 8位 | 24位 | 255.0.0.0 |
B | 128-191 | 16位 | 16位 | 255.255.0.0 |
C | 192-223 | 24位 | 8位 | 255.255.255.0 |
4.3.2 使用子网时分组的转发
4.3.3 无分类编址 CIDR
128.14.32.0/20 网络前缀的位数(即网络号)为20,/20地址块
- 例 192.199.170.82/27
- 有多少ip地址?一个32位,网络占27,则ip地址有2^5=32
- 最大最小地址:看82:(01010010),最后5位全0则为最小网络号,全1为最大网络号
- CIDR地址块.后5位全0,即最小地址
- 子网掩码,令27位全1,后5位全0
路由聚合
构成超网
将多个子网聚合成一个较大的子网,构成超网或网络聚合
方法:将网络前缀缩短所有网络取交集
206.1.0.0/17
206.1.128.0/17
这两个网络只有前16位相同,因此取交集,网络前缀缩短为16,即206.1.0.0/16
划分子网:从少到多;构成超网:从多变少
最长前缀匹配
使用CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
根据最长前缀匹配,如果匹配成功则选择网络前缀最长的,就是目标路由器
解题步骤:
先将目的地址和路由表所有项目的子网掩码进行与运算
看看结果是否等于路由表的项目IP
如果有多个相同的结果,取子网掩码长的
例:
这里就匹配到了两个结果,选择子网掩码最长的,即206.71.128/25,因此下一跳为2
二叉线索法
4.4网际控制报文协议ICMP
目的:为了更加有效转发IP数据报和提高交付成功的机会
作用:ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
注意:不是高层协议,它封装在IP数据报中,作为数据部分,是IP层的协议
4.4.1ICMP报文的种类
两种:
- ICMP 差错报告报文
- ICMP 询问报文。
报文格式:
- 前4 个字节统一格式,三个字段:类型、代码和检验和。接着4个字节与ICMP类型有关
ICMP 差错报告报文
四种:
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
不应发送ICMP 差错报告报文的几种情况
- 对ICMP 差错报告报文不再发送ICMP 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP 差错报告报文。
- 对具有多播地址的数据报都不发送ICMP 差错报告报文。
- 对具有特殊地址(如127.0.0.0 或0.0.0.0)的数
据报不发送ICMP 差错报告报文。
ICMP 询问报文
- 回送请求和回答报文
- 时间戳请求和回答报文
4.4.2ICMP的应用距离
PING(Packet InterNet Groper)
- PING用来测试两个主机之间的连通性
- PING使用了ICMP 回送请求与回送回答报文。
- PING是应用层直接使用网络层ICMP 的例子,它没有通过运输层的TCP 或UDP。
Traceroute
- Windows中命令是tracert
- 用来跟踪一个分组从源点到终点的路径
- 它利用IP 数据报中的TTL 字段和ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
小结
- ICMP用于主机或路由器报告差错情况和提供有关异常情况的报告
- ICMP报文包括ICMP差错报告报文和ICMP询问报文两种
- ICMP应用:PING、Traceroute
4.5互联网的路由选择协议
4.5.1有关路由选择协议的几个基本概念
路由算法 | 路由选择 | 优点 | 缺点 |
---|---|---|---|
静态路由选择策略 | 非自适应路由选择 | 简单和开销较小 | 但不能及时适应网络状态的变化 |
动态路由选择策略 | 自适应路由选择 | 能较好地适应网络状态的变化 | 实现起来较为复杂,开销也比较大。 |
分层次的路由选择协议
互联网采用分层次的路由选择协议,原因:
- 互联网的规模非常大,为了节省路由表空间,同时避免通信链路饱和
- 单位不想让外界了解自己的网络
自治系统AS:
- 在单一的技术管理下的一组路由器,使用AS内部的路由选择协议和共同的度量来确定其中的路由,还使用AS之间的路由选择协议来确定分组在AS之间的路由。
- 尽管一个AS 使用了多种内部路由选择协议和度量,一个AS 对其他AS 表现出的是一个单一的和一致的路由选择策略。
互联网有两大类路由选择协议
- 内部网关协议IGP (Interior Gateway Protocol)
- 在一个自治系统内部使用的路由选择协议。
- 这类使用的最多,如RIP和OSPF
- 外部网关协议EGP (External Gateway Protocol)
- 源站和目的站不在一个自治系统,数据报传到自治系统边界就要用一种协议将路由选择信息传递进另一个自治系统,这个系欸就是EGP。
- 使用最多的是BGP-4
自治系统之间路由选择叫域间路由选择,内部路由选择叫做域内路由选择。
路由器和网关可以当作同义词
小结
- 路由选择包括静态和动态两种路由选择策略。
- 一个自治系统表现出一致的路由选择策略。
- 根据是在自治系统内部使用,还是在自治系统之间使用,路由选择协议可以分为内部网关协议IGP和外部网关协议EGP。
4.5.2RIP内部网关协议
- 内部网关协议IGP中最先得到广泛使用协议
- 一种分布式的、基于距离向量的路由选择协议
- RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
距离(指最短距离):
- 路由器到直连网络距离定义为1
- 到非直连的距离定义为所经过的路由器数加1
- 也成为跳数,经过一个路由器跳数加1
- 好的路由就是经过路由器数目少,即距离短
- RIP允许一条路径最多只能包含15个路由器,加上自己就是16,16跳就表示不可达,因此只适用于小型网络
- RIP不能使用多条路由,这导致它永远选最短的那条,哪怕另外还有一条低时延的路由
把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1
特点
- 仅和相邻路由器交换信息。
- 交换自己的路由表。
- 按固定的时间间隔交换路由信息
查看错题
若下一跳字段给出的路由器地址相同,则把收到的项目替换源路由表项目。
如果收到项目中的距离小于路由表中的距离,则进行更新
RIP2报文
存在划分子网情况要用version2
RIP2 具有简单的鉴别功能
小结
- 使用跳数判断到其他网络的距离。
- 周期性地和相邻路由器交换自己的路由表。
- RIP能使用的最大距离为15跳(16不可达),适用于小型网络。
- RIP好消息传播得快,坏消息传播得慢(信息一直不匹配,要不断更新,直到超过15),导致更新过程收敛时间过长。
OSPF内部网关协议
采用分布式的链路状态协议(link stateprotocol)。
邻居表
邻居路由器的信息
拓扑表
也叫链路状态数据库(LSDB),同区域中所有路由器的LSDB信息必须保持一致。
路由表
到达目标网络的最佳路径
链路状态数据库(拓扑表)
- “链路状态”即本路由器和哪些路由器相邻,以及该链路的度量
- 所有路由器最终建立一个链路状态数据库,全网的拓扑结构图,它在全网范围内是一致的(同步)
- 能较快地更新,收敛快是其重要优点
OSPF区域 (area)
- OSPF用于规模大地网络,将一个自治系统再划分为若干个更小的范围即区域
- 每个区域有32位的区域标识符(点分十进制表示)
- 区域最好不超过200个
划分区域
- 主干区域,全0
- 常规区域,非0
好处:
利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。
主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF 不用UDP 而是直接用IP 数据报传送,数据报短,不必分片,但只要丢失一个就得整个重传
支持可变长度的子网划分和无分类编址CIDR。
OSPF五种分组类型:
类型1,问候(Hello) 分组。
类型2,数据库描述(Database Description) 分组。
类型3,链路状态请求(Link State Request) 分组。
类型4,链路状态更新(Link State Update) 分组,用洪泛法对全网更新链路状态。
类型5,链路状态确认(Link State Acknowledgment)
分组。与RIP比较
- 每隔一段时间,如30 分钟,要刷新一次数据库中的链路状态。
- 当互联网规模很大时,OSPF协议要比距离向量协议RIP 好得多。
- OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100 ms。
小结
- 包括邻居表、拓扑表(链路状态数据库)、路由表。
- 链路状态数据库在全网范围内一致(同步)
- OSPF的更新过程收敛速度快。
- 将一个自治系统划分为若干个区域,区域内部的路由器只需要知道本区域的网络拓扑。
- 区域包括主干区域和常规区域两种。
- 通过洪泛发送更新分组。
*4.5.4BGP外部网关协议
*4.5.5路由器的构成
4.6 IPV6
4.6.1 IPv6的基本首部
- 主要变化:
- 更大的地址空间,从IPv4 的32 位增大到了128 位。
- 扩展的地址层次结构。
- 灵活的首部格式。IPv6 定义了许多可选的扩展首部。
- 改进的选项。
- 允许协议继续扩充。
- 支持即插即用(即自动配置)。因此IPv6 不需要使
用DHCP。 - 支持资源的预分配
- IPv6 首部改为8 字节对齐。首部长度必须是8 字节的整数倍。原来的IPv4 首部是4 字节对齐。
- 扩展首部
- Pv6 把原来IPv4 首部中选项的功能都放在扩展首部中
- 数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
- 这样就大大提高了路由器的处理效率
4.6.2 IPv6的地址
- 目的地址可以是以下三种基本类型地址之一
- 单播,点对点
- 多播,一点对多点
- 任播,目的是一组计算机,数据包交付时只交付其中一个,通常为距离最近的一个
冒分十六进制
- 允许零压缩,即一连串连续的零可以为一对冒号所取代。例如FF05:0:0:0:0:0:0:B3 可压缩为:FF05::B3
- 注意:在任一地址中只能使用一次零压缩。
- CIDR 的斜线表示法仍然可用。
4.6.3 从IPv4向IPv6过渡
- 两种策略
- 使用双协议栈,网络地址转换/协议转换技术NAT-PT
- 使用隧道技术,把IPv6 数据报封装成为IPv4 数据报,整个的IPv6 数据报变成了IPv4 数据报的数据部分。离开IPv4 网络中的隧道时,再把数据部分(即原来的IPv6 数据报)交给主机的IPv6 协议栈。
*4.6.4 ICMPv6
4.8 虚拟专用网VPN和网络地址转换NAT
4.8.1 虚拟专用网VPN
原因:IP地址紧缺,对于机构内部可以自行分配IP地址。
然而很容易有本地地址和全球地址相同的情况,造成二义性,因此需要作出规定。
- 三个专用IP 地址块:
(1) 10.0.0.0 到10.255.255.255,即10开头
A类,或记为10.0.0.0/8,它又称为24位块
(2) 172.16.0.0 到172.31.255.255,即172.16-172.31
B类,或记为172.16.0.0/12,它又称为20位块
(3) 192.168.0.0 到192.168.255.255,即192.168开头
C类,或记为192.168.0.0/16,它又称为16位块
这类地址不需要申请,直接可以使用,仅在本机构内部使用,不能出公网
虚拟专用网
一般专用网就是专线直接相连使用专用IP地址,然而直接用线路连成本过高,对大部分机构不实际
需要“虚拟”,利用公用的互联网作为本机构各专用网之间的通信载体。表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样。
远程接入VPN
- 远程接入VPN (remote access VPN)可以满足外部流动员工访问公司网络的需求。
小结
专用地址只能用作本地地址,互联网中的路由器不转发目的地址为专用地址的数据报。
采用专用IP 地址的互连网络称为专用网。
虚拟专用网VPN利用公用的互联网作为本机构各专用网之间的通信载体。
使用隧道技术实现VPN。
4.8.2 网络地址转换NAT
问题:在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?
- 申请全球IP地址
- 采用网络地址转换NAT
装有NAT 软件的路由器叫作NAT路由器,它至少有一个有效的外部全球IP地址。
所有使用本地地址的主机在和外界通信时,都要在NAT 路由器上将其本地地址转换成全球IP地址,才能和互联网连接。
优点
- 避免重新编址
- 节约全局地址使用
- 不直接使用全局地址,在互联网上不直接可见,增加了安全性
NAT三种类型
- 静态,每个主机被永久映射成外部网络中的某个合法的地址。-一对一
- 动态,定义了一系列合法地址,利用动态分配进行映射。-一对一
- 重载(PAT),把内部地址映射到外部网络**一个IP地址的不同端口(port)**上。-多对一
*4.9 多协议标记交换MPLS
本章总结
- ⭐网络层提供的两种服务:面向连接(虚电路)、无连接(数据报)
- ⭐网络互联设备:集线器、交换机、路由器、多层交换机
- ⭐两级的IP 地址结构:网络号、主机号
- IP 地址的点分十进制记法
- ⭐IP 地址的分类:A类、B类、C类、D类、E类
- ⭐IP 地址与硬件地址的区别
- ⭐ARP协议的作用、工作原理(如何知道硬件地址)
- IP 数据报的格式 大题
- ⭐路由器分组转发算法
- ⭐划分子网的基本思路、优点 计算题
- 子网掩码
- ⭐使用子网时分组的转发
- CIDR的特点
- ⭐最长前缀匹配
- 使用二叉线索查找路由表
- ⭐ICMP 作用、ICMP报文的格式、种类、ICMP应用
- 路由选择协议: 内部网关协议、外部网关协议
- ⭐RIP、OSPF协议的特点
- IPv6的基本首部、IPv6的地址、IPv4向IPv6的过渡
- VPN、NAT的作用、特点
- ⭐专用IP 地址块
每一点都有关联,理清关系,为什么要有这样的协议/技术,解决何种问题
5传输层
运输层在协议栈中的地位
Ø 从通信和信息处理角度,运输层为上面的应用层提供通信服务,是面向通信部分的最高层和用户功能的最底层。端到端通信时,只有主机协议栈才有运输车,而路由器在转发分组时都只用到下三层。
Ø 从网络层来说,IP协议虽然能把分组送到目的主机,但是分组还停留在主机的网络层,没有交付主机的应用程序。然而真正的通信实体是主机间的进程。所以还需要运输层完成交付。
Ø 从运输层来看,通信真正的端点并不是主机,而是主机的进程,即端到端的通信是应用进程之间的通信。同时,运输层还有复用、分用的功能,还要对收到的报文进行差错检测。
Ø 因此运输层在协议栈中非常重要,必不可少
运输层和网络层的重要区别:
*运输层* | *网络层* | |
---|---|---|
*位置* | 七层网络结构的第四层 | 七层网络结构的第三层 |
*重要区别* | 提供应用进程之间的逻辑通信 | 提供主机之间的逻辑通信 |
*服务协议* | UDP、TCP | IP协议 |
5.1 运输层协议概述
5.1.1 进程之间的通信
路由器工作在下三层。不单只是主机之间通信,还得提供应用进程的通信
复用和分用功能
两大类端口
(1) 服务器端使用的端口号
- 熟知端口,数值一般为0~1023。
- 登记端口号,数值为1024~49151,为没有熟知端口号的应
用程序使用的。使用这个范围的端口号必须在IANA 登记,
以防止重复。
(2) 客户端使用的端口号
- 又称为短暂端口号,数值为49152~65535,留给客户进程选
择暂时使用。 - 当服务器进程收到客户进程的报文时,就知道了客户进程所
使用的动态端口号。通信结束后,这个端口号可供其他客户
进程以后使用。
常用的熟知端口–记忆
http协议明文传输,抓包就能看到具体信息,而https在http基础上加上Secure Sockets Layer安全套接层,加密
5.1.2 运输层的两个主要协议
(1) 用户数据报协议 UDP (User Datagram Protocol)
(2) 传输控制协议 TCP (Transmission Control)
TCP与UDP 表格
- UDP:一种无连接协议
- 提供无连接服务。
- 在传送数据之前不需要先建立连接。
- 传送的数据单位协议是UDP 报文或用户数据报。
- 对方的运输层在收到UDP 报文后,不需要给出任何确认。
- 虽然 UDP 不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。
- TCP:一种面向连接的协议
- 提供面向连接的服务。
- 传送的数据单位协议是TCP 报文段(segment)。
- TCP 不提供广播或多播服务。
- 由于TCP 要提供可靠的、面向连接的运输服务,因
此不可避免地增加了许多的开销。这不仅使协议数
据单元的首部增大很多,还要占用许多的处理机资
源。
5.2 用户数据报协议UDP
在IP数据报服务增加了:
- 复用和分用的功能
- 差错检测的功能
UDP主要特点
- 无连接
- 尽最大努力交付
- 面向报文
- 没有拥塞控制
- 支持一对一、一对多、多对一和多对多
- 首部开销小,只有8字节,而TCP有20字节
检验和
\1. 检验和字段置零,UDP用户数据报凑够偶数字节;
\2. 把所有位(UDP伪首部+UDP首部+UDP数据部分)按16位划分为不同的字;
\3. 计算上述所有16位字的和,如果有进位导致总位数超过16位,则把进位值加到末位;
\4. 将上述计算的和取反即为UDP用户数据报的检验和。
UDP的应用
- 对传输协议的可靠性要求不高,需要传送的数据不多,使用频率不高。如:DNS服务(域名映射IP)、DHCP服务、SNMP服务等。
- 实时应用,如:IP电话、视频会议、QQ等。
IP、ICMP、UDP、TCP报文首部检验和字段
校验和算法一样,但作用范围不同。
- IP校验和只校验IP数据报的首部;
- ICMP校验和覆盖整个ICMP报文(首部+数据);
- UDP和TCP校验和不仅覆盖整个报文,而且还有12
个字节的伪首部。
5.3 传输控制协议TCP 概述
5.3.1 TCP 最主要的特点
- 面向连接
- 只有两个端点
- 点对点
- 可靠交付
- 全双工
- 面向字节流
5.3.2TCP的连接
TCP 连接的端点叫做套接字(socket) 或插口。
端口号+IP地址构成套接字
套接字socket = (IP地址: 端口号)
TCP 连接::= {socket1, socket2}== {(IP1: port1),(IP2: port2)}
5.4可靠传输的工作原理
5.4.1 停止等待协议
理想的传输条件有以下两个特点:
(1)传输信道不产生差错。
(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。
每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
全双工通信的双方既是发送方也是接收方。
1.无差错情况
发完暂停,等待确认,收到确认后,再发送
2.出现差错
传输过程丢失/接收时出错
解决办法:超时重传
3.确认丢失和确认迟到
- 确认丢失
此A 在超时计时器到期后就要重传M1
B接收到后可以1丢弃M1 2向A发送确认
- 确认重传
B 对分组M1 的确认迟到
A 会收到重复的确认后丢弃
B 仍然会收到重复的M,丢弃重复的M1,并重传确认分组
注意
- 在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发
- 分组和确认分组都必须进行编号。
- 在发送完一个分组后,必须暂时保留已发送的分组的副本,以备重发
4信道利用率
停止等待协议的优点是简单,缺点是信道利用率太低。
5.4.2 连续ARQ 协议
连续ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
累计确认
不必对分组逐个发送确认,对到达的最后一个分组发送确认,表示之前的所有我都收到了
优:容易实现,即使确认丢失也不必重传。
?缺:不能向发送方反映出接收方已经正确收到的所有分组的信息。
Go-back-N(回退N)
Go-back-N(回退N),表示需要再退回来重传已发送过的N 个分组。
比如A发的前5个分组是12345,B收到1245,由于3开始不联系,B只确认2(即2以前都收到),A不知道后三个分组下落超时后重传
TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
小结
流水线传输允许发送方连续发送多个分组,而不需要等待对方的确认,从而提高信道利用率。
位于发送窗口内的分组可连续发送出去。
发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置
接收方采用累积确认的方式对按序到达的最后
一个分组发送确认。
5.5TCP 报文段的首部格式
面向字节流,传送的数据单元却是报文段。
❗源端口和目的端口字段——各占2 字节:端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
❗序号字段——占4 字节:数据流每个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
❗确认号字段——占4 字节:期望收到对方的下一个报文段的数据的第一个字节的序号。 比如发的1234,确认号字段就是5
⭐序号确认号
数据偏移(即首部长度)——占4 位,它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远。“数据偏移”的单位是32 位(以4 字节为计算单位)。
保留字段——占6 位 目前为0
紧急URG —— 当URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
❗确认ACK —— 只有当ACK = 1 时确认号字段才有效。当ACK = 0 时,确认号无效。
推送PSH (PuSH) —— 接收TCP 收到PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
复位RST (ReSeT) —— 当RST 1 时,表明TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
❗同步SYN —— 同步SYN = 1 表示这是一个连接请求或连接接受报文。
❗终止FIN (FINish) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
❗窗口字段—— 占2 字节,窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
窗口字段指出了现在允许对方发送的数据量。窗口值是经常在动态变化的。
如:设确认号是701,窗口字段是1000。这就表明,从701号算起,发送此报文段的一方还有1000个字节数据(字节序号是701-1700)的接收缓存空间。
检验和(和IP类似)—— 占2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12 字
节的伪首部。
紧急指针字段—— 占16 位 指出紧急数据多少字节 紧急数据放在本报文段数据的最前面
选项字段—— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度MSS(Maximum Segment Size,TCP报文段长度减去首部长度)
填充字段:使整个首部长度是4字节的整数倍
小结
- TCP的每条连接都有发送序号和确认号。
- 序号字段是本报文段所发送的数据的第一个字节的序号。
- 确认号字段是期望收到对方的下一个报文段的数据的第一个字节的序号。
- TCP 连接的一端根据缓存空间大小确定自己的窗口大小,利用窗口字段控制对方发送的数据量。
5.6 TCP 可靠传输的实现
TCP 的滑动窗口是以字节为单位的。
- 根据B 给出的窗口值,A 构造出自己的发送窗口。
- 发送窗口表示:在没有收到B 的确认的情况下,A 可以连续把窗口内的数据都发送出去。
- 发送窗口里面的序号表示允许发送的序号
- 显然,窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据,因而可能获得更高的传输效率。
小结
TCP连接的一端根据另一端给出的窗口值构造
自己的发送窗口。
TCP连接的一端可以连续把发送窗口内的数据
都发送出去,而不需要等待对方的确认。
收到新的确认号,发送窗口向前滑动。
5.6.2 超时重传时间的选择
重传时间的选择是TCP 最复杂的问题之一。
TCP 采用了一种自适应算法它记录一个报文段发出的时间,以及收到相应的确认的时间。这两个时间之差就是报文段的往返时间RTT。
慢慢更新平均往返更新
通过加权平均往返时间RTTs计算超时重传时间RTO
5.6.3 选择确认SACK
缺少部分只发送缺少的不全部重传
TCP 的接收方在接收对方发送过来的数据字节流的序号不连续,结果就形成了一些不连续的字节块。
如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。只是以后在TCP 报文段的首部中都增加了SACK 选项,以便报告收到的不连续的字节块的边界。
小结
- TCP 采用自适应算法计算报文段的往返时间
RTT。 - 超时重传时间RTO略大于往返时间RTT。
5.7TCP的流量控制
5.7.1利用滑动窗口实现流量控制
- 流量控制(flow control) 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
方法:滑动窗口机制
可能发生的问题:互相等待的死锁
方法:持续计时器
持续计时器
只要TCP 连接的一方收到对方的零窗口通知(举例的最后一条),就启动该持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带1 字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。
若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。
若窗口不是零,则死锁的僵局就可以打破了。
5.8 TCP 的拥塞控制
5.8.1 拥塞控制的一般原理
某资源需求超过了提供的可用部分,网络性能变坏,发生拥塞
拥塞问题很复杂
开环控制和闭环控制
- 开环控制
- 闭环控制
5.8.2 TCP 的拥塞控制方法
TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。
拥塞判断
重传定时器超时:超时
收到三个相同(重复)的ACK:丢包
TCP拥塞控制算法
拥塞控制算法 | 含义 | 作用 |
---|---|---|
慢开始 | 由小到大逐渐增大拥塞窗口数值 | 防止拥塞窗口增长过大引起网络拥塞 |
拥塞避免 | 每经过一个往返时间就把发送方的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长 | 加法增大的特点,按线性规律缓慢增长比慢开始算法的增长速率缓慢很多 |
快重传 | 首先要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即时收到了失序的报文段也要立即发出对已收到的报文段的重复确认。 | 让发送方尽早知道发生了个别报文段的缺失。发送方只要一连收到三个重复确认,就知道接收方确实没有收到,应当立即重传,因此不会出现超时,发送方也不会误认为出现了网络拥塞 |
快恢复 | 发送方收到三次确认可以认为网络没有发送拥塞,不执行慢开始而执行快恢复,新的拥塞窗口等于当前拥塞窗口的一半,并执行拥塞避免算法进行缓慢线性增长 | 提高网络传输效率,提升吞吐量 |
慢开始(slow-start)
算法的思路:由小到大逐渐增大拥塞窗口数值。
发1,收1
发2,收2
发4,收4
发8,收8
指数级增长
拥塞避免(congestion avoidance)
避免办法:设定阈值,超过后下一轮只加1。当计时器超时(拥塞),将阈值改为一半,重新进行慢开始
快重传(fast retransmit)
3-ACK确认,发送方改为执行快重传和快恢复算法。
发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”),这样就不会出现超时,发送方也不就会误认为出现了网络拥塞。
不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
快恢复(fast recovery)
由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法
可以看出,在拥塞避免阶段,拥塞窗口是按照线性规律增大的。这常称为“加法增大” AI(Additive Increase)。
当出现超时或3个重复的确认时,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。这常称为“乘法减小”MD(Multiplicative Decrease)
乘法减小和加法增大
用途 | |
---|---|
乘法减小 | 当出现超时或3个重复的确认时,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。当网络频繁出现拥塞时,门限值就下降得很快,以大大减少注入到网络中的分组数 |
加法增大 | 在拥塞避免阶段,拥塞窗口是按照线性规律增大的,例如在收到对所有报文段得确认后(即经过一个往返时间),就把拥塞窗口增加一个MSS大小,使拥塞窗口缓慢增大,防止网络过早出现拥塞。 |
小结
- 对网络资源的需求超过了可用资源,网络就会
出现拥塞。 - TCP 采用基于窗口的方法进行拥塞控制。
- 拥塞窗口的大小取决于网络的拥塞程度。
- 发送窗口大小取决于接收方公告的窗口和拥塞窗口。
后面的跳过了
5.9 TCP 的运输连接管理
5.9.1 TCP 的连接建立
TCP 建立连接的过程叫做握手。握手需要在客户和服务器之间交换三个TCP 报文段。称之为三报文握手。
防止失效又突然传送到了,产生错误
1SYN→
2←SYN+ACK
3ACK→
SYN=1说明TCP进行确认,确认包ACK=1,ack的值是收到的seq+1
练习
5.9.2 TCP 的连接释放
- 数据传输结束后,通信的双方都可释放连接。
- TCP 连接释放过程是四报文握手。
总结
- 掌握运输层的端口的概念及作用;
- 掌握UDP、TCP的特点;
- 可靠传输:停止等待协议, 连续ARQ 协议;
- 了解UDP、TCP 的首部格式**(源端口、目的端口、序号、确认号、窗口);**
- 掌握TCP 可靠传输、流量控制、拥塞控制的实现;
- 掌握TCP 的连接建立、连接释放的过程。
TCP 连接处于 FIN-WAIT-1 状态。以下的事件相继发生:
(1)收到 ACK 报文段
(2)收到 FIN 报文段
(3)发生了超时
在每一个事件之后,连接的状态是什么?在每一个事件之后发生的动作是什么?
(1) FIN-WAIT2 等待接收方发送连接释放报文
(2) close-wait 进入关闭等待状态半连接
(3) FIN-WAIT1 重传连接释放报文
第6章应用层
6.1 域名系统DNS
6.1.1 域名系统概述
IP地址不便记忆
管理域名的系统就是DNS (Domain Name System) 。
6.1.2 互联网的域名结构
互联网采用了层次树状结构的命名方法。
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
域名的结构由标号序列组成,各标号之间用点隔开:
各标号分别代表不同级别的域名。
域名只是个逻辑概念,并不代表计算机所在的物理地点。
6.1.3 域名服务器
一个服务器所负责管辖的(或有权限的)范围
叫做区(zone)。
每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
四种类型
根域名服务器
顶级域名服务器
权限域名服务器
本地域名服务器
6.2 FTP
特点
使用TCP
主要功能:减少不同操作系统处理文件不兼容性
使用客户服务器方式。服务器进程由一个主进程负责接受新的请求和若干从属进程负责处理单个请求。
两个连接
21端口控制连接
20端口数据连接
*6.3远程终端协议TELNET
本节了解即可
用户用TELNET 就可在其所在地通过TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或IP 地址)。
用户感觉到好像键盘和显示器是直接连在远地主机上。
6.4万维网www
概述
万维网是一个大规模的、联机式的信息储藏所。并非某种特殊的计算机网络。
工作方式
以客户-服务器方式工作
浏览器就是在用户计算机上的万维网客户程序
万维网文档所驻留的计算机则运行服务器程序,
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为**页面(page)**。
解决的问题
(1)怎样标志分布在整个互联网上的万维网文档?
使用URL统一资源定位符,唯一标识
输入URL:
解析域名-建立tcp连接-http请求报文–http响应报文–释放TCP连接
代理服务器
使用高速缓存可减少访问互联网服务器的时延
6.4.4万维网的文档 了解
超文本标记语言HTML
6.4.5 万维网的信息检索系统 了解
6.4.6 博客和微博 了解
小结
- 万维网是一个大规模的、联机式的信息储藏所;
- 万维网用链接的方法从互联网上的一个站点访问另一个站点;
- 万维网以客户服务器方式工作;
- 万维网使用URL 来标志文档;
- 万维网使用HTTP协议在客户程序与服务器程序之间进行交互;
- 万维网使用HTML语言令页面显示出来;
- 可以使用搜索引擎在万维网上查找信息。
6.5电子邮件
发件人调用PC 中的用户代理撰写和编辑要发
送的邮件。
发件人的用户代理把邮件用SMTP 协议发给发送方邮件服务器,
SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。
发送方邮件服务器的SMTP 客户与接收方邮件服务器的SMTP 服务器建立TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。
6.5.2 简单邮件传送协议SMTP
使用客户服务器方式
SMTP通信的三个阶段
- 连接建立:连接是在发送主机的SMTP 客户和接收主机的SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 应释放
TCP 连接
6.5.4 邮件读取协议POP3 和IMAP
非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本POP3。
POP 也使用客户-服务器的工作方式。
缺陷:读取完就在服务器删掉了
IMAP 协议
客户服务器,IMAP 是一个联机协议
需要的时候才传到用户计算机,附件可以先不下载,存在服务器,节省资源
6.5.5 基于万维网的电子邮件
电子邮件从A 发送到网易邮件服务器使用HTTP 协议。
两个邮件服务器之间的传送使用SMTP。
邮件从新浪邮件服务器传送到B 是使用HTTP 协议。
万维网电子邮件的好处:只要能够找到上网的计算机,打开任何一种浏览器就可以非常方便地收发电子邮件。
6.5.6 通用互联网邮件扩充MIME
受限于ASCII,无法传输
错题
6.6 动态主机配置协议DHCP
互联网广泛使用的动态主机配置协议DHCP提供了即插即用连网的机制
客户-服务器方式
需要IP 地址的主机在启动时就向DHCP 服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为DHCP 客户。
DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP 地址池(address pool)中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文(DHCPOFFER)。
DHCP 中继代理(relay agent)
原因:使得DHCP 服务器的数量太多。代理它配置了DHCP 服务器的IP 地址信息。
方法:当DHCP 中继代理收到主机发送的发现报文后,就以单播方式向DHCP 服务器转发此报文,并等待其回答。收到DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。