3.2 组帧
3.2.1 字符计数法
如图 3.1 所示,字符计数法是在帧头部使用一个字段来标明
帧内字符数。
4 1 2 3 4 4 6 7 8 9 7 0 1 2 3 4 5 6
字符计数
第1个帧
4个字符
第2个帧
4个字符
第3个帧
7个字符
图 3.1 字符计数成帧法
3.2.2 字节填充法
字节填充法是指在帧中采用特殊的字节来标识帧的开始和结
束。例如每一帧以控制字符 SOH(Start Of Header)开始,以控制字
符 EOT(End Of Transmission)结束。SOH 和 EOT 都是控制字符名
称,它们的十六进制编码分别是 01H 和 04H。
当传送的是文本文件时,其数据部分显然不会出现 SOH 和
EOT 这样的控制字符。当传送的是二进制数据时,SOH 和 EOT
可能出现在数据部分,这时,发送方的数据链路层在每一个 SOH
或 EOT 前面插入一个转义字符 ESC(其十六进制编码是 1BH),接
收方的数据链路层在将数据交给网络层之前删除这个转义字符。
如果转义字符也出现在数据段中,则在转义字符前插入一个转义
字符,对应地,接收方收到连续的两个转义字符时要删除前面一
个。
还有其它字节填充法。例如,PPP 协议在使用异步传输时使
用自己的字节填充法,思想是一样的。
3.2.3 位填充法
以 HDLC(High-level Data Link Control,高级数据链路控制)协
议为例。
帧开头和结尾用 7E(01111110)标识,发送方在数据段中发现
有 5 个连续 1 就立即插入一个 0,经过这种 0 比特填充后的数据
段,可以保证不会出现 6 个连续 1。接收方在数据段每发现 5 个
连续 1 就把后面的一个 0 删除。
PPP 协议在使用同步传输时也使用这种位填充法。
3.3 差错控制
3.3.1 检错编码
目前数据链路层广泛采用了 CRC 码进行检错。
3.3.2 纠错编码
海明码,见计组 2.7 节。
3.4 流量控制与可靠传输机制
可靠传输通常使用确认和超时重传两种机制来完成(它只是
一种方法,不是数据链路层专用的,其它层也可以使用)。确认是
一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道
哪些内容被正确接收。有些情况下为了提高高传输效率,将确认
捎带在一个回复帧中,称为捎带确认。超时重传是指发送方在发
送某一个数据帧以后就开启一个计时器,在一定时间内如果没有
得到发送的数据帧的 ACK 报文,那么就重新发送该数据帧,直到
发送成功为止。
由于超时重传是自动进行的,接收方不需要通知发送方重传
某个出错的帧,因此使用确认和超时重传两种机制来实现可靠传
输的策略称为自动请求重传(Auto Repeat reQuest, ARQ)。有三种
常用的 ARQ 协议,即停止-等待式(Stop-and-Wait)ARQ、后退 N
帧(Go-Back-N)ARQ 和选择重传(Seletctive Repeat)ARQ。后
两种协议是滑动窗口技术与请求重传技术的结合,由于窗口尺寸
开到足够大时,帧在线路上可以连续地流动,因此又称其为连续
ARQ 协议。
3.4.1 单帧滑动窗口与停止等待协议
在停止等待协议中,源站发送单个帧后必须等待确认,在目
的站的确认帧到达源站之前,源站不能发送新的数据帧。停止等
待协议可以用图 3.2 来说明。
图 3.2 停止等待协议
图 3.3 说明了两种出错情况以及对应的处理。
图 3.3 确认丢失(a)和确认迟到(b)
对于停止等待 ARQ 协议,发送窗口 W
T
=1, 接收窗口 W
R
=1。
3.4.2 多帧滑动窗口与后退 N 帧协议
源站在发送完一帧后,不是停下来等待确认帧,而是可以连
续再发送若干帧。如果这时收到了目的站发来的确认帧,那么还
可以接着发。
图 3.4 连续 ARQ 协议
如图 3.4 所示,主机 A 向主机 B 发送数据帧。当 A 发完 0 号
帧后,不是停止等待,而是继续发送后续的 1 号、2 号帧等。A
每发送完一帧就要为该帧设置超时计时器。由于连续发送了许多
着帧,确认帧必须要指明是对哪一帧进行确认。在图 3.4 中,ACKn
表示对第 n-1 号帧的确认。这表示第发送方说:“我已正确收到了
第 n-1 号帧,下一次我期望收到第 n 号帧”。
主机 B 正确地收到了第 0 号和 1 号帧,现在设 2 号帧出了差
错,于是结点 B 就自动将有差错的 2 号帧丢弃,如果此时收到了
后面的 3 号、4 号等帧,也全部丢弃,等待主机 A 重传。尽管主
机 A 已经发完了 5 帧,但必须回退到 2 号帧开始重传。
为了减少开销,GBN 协议一般采用累积确认的方式,即接收
方不必每收到一个帧就发回一个确认帧,而是可以在连续收到好
几个帧后,才对最后一个帧发送确认。
对于 GBN ARQ 协议,发送窗口 W
T
≤2
n
-1, 接收窗口 W
R
=1。
3.4.3 多帧滑动窗口与选择重传协议
为进一步提高信道的利用率,可设法只重传出现差错或超时
的帧。但这时必须加大接收窗口,以便收下序号不连续但仍处在
接收窗口中的那些帧,等到所缺序号的帧收到后再一并递交给上
一层。这就是选择重传 ARQ 协议。
选择重传 ARQ 协议可以避免重复发送那些本来已经正确到
达接收方的帧,但付出的代价是在接收方要设置具有相当容量的
缓存空间。
对于选择重传 ARQ 协议,W
T
>1,W
R
>1
。
接收窗口显然不应该大于发送窗口,又因为 W
T
+W
R
≤2
n
,所
以 W
R
≤2
n-1
。当接收窗口为最大值时,W
T
=W
R
=2
n-1
。
3.5 介质访问控制
当使用广播信道时,需要考虑的一个问题是如何使多用户共
享通信介质资源。有三种方法。