第6章 数据链路层
计算机网络-第6章 数据链路层
目录
数据链路层功能和服务 链路和数据链路 成帧 物理地址和地址映射 流量控制 差错控制 数据链路层协议:HDLC,PPP
数据链路层功能和服务
数据链路层为网络层提供这样的服务, 在相邻节点间传递IP数据报
应用层 应用层 传输层 传输层
网络层 数据链 路层 物理层
窗口的最大值
发送窗口
如果帧中编号所占的比特位数为n, 那么发 送窗口WT <=2n -1 WR <=WT 。 当帧中编号所占的比特位数为n时,接收窗 口WR <=2n-1
接收窗口
差错控制
差错控制包括两个方面,
检测差错 对差错进行处理
检测差错
帧损坏:帧传输过程中,可能会受到干 扰,造成接收到数据帧同发送时的数据 帧不一样,这种情况称为帧损坏。使用 CRC冗余校验检测帧损坏 帧丢失:在传输中一个帧被噪声破坏, 造成接收方不将其视为一个帧,就发生 了帧丢失。使用帧编号、确认帧和定时 器检测帧丢失
物理地址
数据链路层上的地址称为物理地址或硬 件地址。 物理地址通常是固化在网络接口(网卡) 内的ROM 内,是不可更改的,一个物理 地址可以确定网络中一个站点。 在生成数据帧时,帧的首部通常会写入 地址信息,用以保证数据帧被正确的站 点接收
物理地址和IP地址
IP地址在网络层,IP的首部要写入IP地 址。物理地址在数据链路层,帧的首部 要写入物理地址 IP地址是逻辑地址,可以人为指定。但 物理地址是固化在网络接口的,
检测帧丢失
(1)发送方要对帧进行编号,而接收方 每收到一个帧,就向发送方发送一个确 认帧。 (2)发送方每发送一个帧,就启动一个 定时器。如果定时器时间到了,确认帧 仍未收到,就认为该帧丢失了。
差错处理
当检测到错误,不论是帧损坏或帧丢失,数据 链路层通常不去修正错误,而是简单地重新传 输对应的帧,这个过程称为自动重复请求。 (Automatic Repeat reQuest,ARQ) 差错控制和流量控制是结合在一起的。因此停 止等待常以停等ARQ来实现,而滑动窗口常以 连续ARQ和选择重传ARQ来实现。
流量控制
链路层需要限制发送方发送数据帧的速 度,以免造成接收方缓冲溢出 两种方法
停止等待 滑动窗口
停等基本原理
实用的停等协议
发送方 接收方 发送方 接收方 数据帧0 数据帧0 ACK ACK
数据帧1 ACK
数据帧1 出错,丢弃 NAK
数据帧0 ACK
数据帧1 ACK
(a)无错误、无丢失
CRC校验举例
通信前双方要首先商定一个二进制串P,例如 11101。 设要发送的信息M=110 将M左移4位(比P的位数少1),得到 1100000,然后用P去模2除1100000,得到 余数R=1001
g(x) 101 11101 1100000 11101 10100 11101 1101 M左移4位
点对点的链路
共享链路
链路层的主要功能
成帧 差错控制 流量控制 链路管理 MAC寻址 区分数据与控制信息
成帧
数据链路层要在网络层数据前面添加首 部和尾部,封装成帧 帧是数据链路层的传输单位
帧同步
数据链路层使用帧同步技术来区分每一 帧的开始和结束
字节计数法 含字节填充的分界符法 含位填充的分界标志法 物理层编码违例法
数据帧1 ACK0
丢失 数据帧1
重传
数据帧1 ACK0
重传
重复,丢弃 ACK0
(c)停等ARQ 数据帧丢失
(d)停等ARQ 确认帧丢失
连续ARQ
选择重传ARQ
选择重传ARQ基本思想是只重传出错的 帧或丢失的帧,而不去回退N帧重传。 接收方要缓存那些正确的但不是按顺序 到来的帧。接收方的窗口要大于1,同时 还要对到来的帧进行排序 与连续ARQ相比,选择重传ARQ效率高, 但是算法复杂,同时接收方需要的缓冲 要比连续ARQ大。
停等ARQ
发送方 接收方 发送方 接收方 数据帧0 数据帧0 ACK1 ACK1 数据帧1 ACK0 重传 数据帧1 ACK0 数据帧1 出错,丢弃 ACK1
数据帧0 ACK1
(a)停等ARQ 无错误
(b)停等ARQ 帧出错
发送方
接收方
发送方
接收方
数据帧0
数据帧0 ACK1
ACK1
数据帧1 超时
丢失 超时
信息帧
在信息帧的控制字段中,第一个比特固 定是0,N(S)字段占3比特,表示要发送 的这一帧的编号。N(R)字段也占3比特, 表示期望收到的对方的下一个帧的编号。
监督帧
在监督帧的控制字段中,前两个比特固 定的是10,在监督帧中没有信息字段。 N(R)字段同样也代表确认。 另外有两个比特的Code字段,共有00、 01、10、11四种组合,分别代表不同 的含义,用来进行流量控制和差错控制。
物理地址 IP地址
帧首部
IP首部
Data
帧尾部
物理地址和IP地址
IP数据报在经过多个站点的转发过程中,IP首 部的源IP和目的IP不会发生变化;而帧首部中 的源物理地址和目的物理地址在每段链路上都 会发生变化
HA1 HA2 HA3 HA4 HA5 HA6
A Data IPA-> IPB HA1->HA2 Data IPA-> IPB HA3->HA4 Data IPA-> IPB HA5->HA6
发送窗口
接收窗口
发送窗口WT=3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 „
(a)初始状态:可以接收0号、1号和2号帧
0
1
2
3
4
5
6
7
0
1
2
3
4
5
„
(b)收到了0号帧,接收窗口向右移动一格,可以接收1、2、3号帧,发送ACK 1
0
1
2
3
4
5
6
7
0
1
2
3
4
5
„
(c)收到了0-4号帧,可以接收5、6、7号帧,发送ACK 5
ARP的工作原理
ARP报文格式
ARP缓存
避免每次都广播ARP请求,ARP协议设 置了ARP缓存。 每次收到ARP应答,都将IP地址和物理 地址的映射关系缓存起来。 每次要发送数据时,首先查找ARP缓存, 看其中是否有目的IP所对应的物理地址, 如果有,直接取出来即可;如果没有, 再广播ARP请求
面向字符协议
每一个数据帧都是由若干个字符组成的,每个 字符通常用一个字节(8比特)表示。 在协议中定义一些特殊的字符表示特殊的含义 (如帧的开始、帧的结束、数据的开始、数据 的结束等)。 代表协议:BSC 缺陷:强烈地依赖字符集,使用不同字符集的 机器不能利用字符协议进行通信,扩展性差
面向比特的协议
B
帧尾部
IP首部
帧首部
地址映射和ARP
对于数据链路层,当收到IP数据报和下一站的 IP地址后,需要将IP数据报封装成帧,在帧的 首部应该写入下一站的物理地址。如何能够从 下一站的IP地址获得下一站的物理地址?这就 是地址映射问题。 地址解析协议(Address Resolution Protocol, ARP)来完成从IP地址到物理地址 的映射
数据链路层协议
数据链路层协议可以分成两大类:异步 协议和同步协议
异步协议
异步协议中以一个字符为一个传输单位, 每个字符的开始和结尾都有特殊的标记 字符和字符之间的间隔是不确定的,所 以在字符之间是异步的
同步协议
同步协议以一个数据块为一个传输单位, 在整个数据块内部都是同步的
面向字符的协议 面向比特的协议
A 站与 C 站建立链路 状态变量初始化
V2 (S)←0 V2 (R)←0
数据传输阶段
B,DISC,P
释放 A 站与 B 站的链路
B ,UA ,F C.DISC,F C ,UA ,F
释放 A 站与 C 站的链路
R
CRC校验举例
发送方要将R添加到M后面发送过去,即 发送的实际数据为1101001 。 如果发送过程中没有错误,接收方用P对 收到的1101001进行模2除,结果应该 是 0。 如果得到的结果不是0,就表明数据传输 错误。
CRC校验
使用位数足够的P,能够使检测不到的差错的 概率非常小。目前CRC校验中常用的生成多项 式有CRC-16,CRC-CCITT和CRC-32 。 CRC校验值通常作为帧的尾部添加在数据后面, 在数据后面添加上的冗余码称为帧检验序列 (Frame Check Sequence,FCS)。CRC校 验值是最常用的FCS。
从站
复合站
三种链路结构
三种操作模式
正常响应方式(NRM) 异步响应方式(ARM) 异步平衡方式(ABM)
HDLC帧格式
比特 8 标志字段F 8*n 地址字段A 8 控制字段C 长度可变 信息字段 I 16 帧校验序列FCS 8 标志字段F
HDLC帧格式
标志字段
标志字段用来区分帧的开始和结束。HDLC 指定采用01111110为标志序列 ,并采用 零比特填充法 地址字段表示链路上站的地址。在使用不平 衡方式传送数据时(采用NRM和ARM), 地址字段总是写入从站的地址;在使用平衡 方式时(采用ABM),地址字段总是写入 应答站的地址。