目录
- 正文
- 流量控制的基本方法
- 停止-等待流量控制基本原理
- 滑动窗口流量控制基本原理
- 可靠传输机制
- 1. 停止-等待协议
- 2. 后退 N 帧协议(GBN)
- 3. 选择重传协议(SR)
正文
流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧。
流量控制的基本方法
流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。
停止-等待流量控制基本原理
- 发送窗口大小=1,接受窗口大小=1
- 发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧, 都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。
滑动窗口流量控制基本原理
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
滑动窗口有以下重要特性:
- 只有接收窗口向前滑动(同时接收方发送了确认帧)时,发送窗口才有可能(只有发送方收到确认帧后才一定)向前滑动。
- 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:
- 停止-等待协议:发送窗口大小=1,接收窗口大小=1。
- 后退N帧协议:发送窗口大小>1,接收窗口大小=1。
- 选择重传协议:发送窗口大小>1,接收窗口大小>1。
- 接收窗口的大小为1时,可保证帧的有序接收。
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(注意与传输层的滑动窗口协议的区别)。
可靠传输机制
- 数据链路层的可靠传输通常使用确认和超时重传两种机制来完成。
- 确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。
- 超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
- 自动重传请求(Automatic Repeat reQuest, ARQ) 通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。
- 传统自动重传请求分为三种,即停止-等待(Stop-and-Wait)ARQ、后退 N帧(Go-BackW)ARQ 和选择性重传(Selective Repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续 ARQ 协议。
- 注意:在数据链路层中流量控制机制和可靠传输机制是交织在一起的。
- 注意:现有的实际有线网络的数据链路层很少采用可靠传输。
1. 停止-等待协议
- 发送窗口大小=1,接收窗口大小=1
- 单帧发送、必须等待确认
2. 后退 N 帧协议(GBN)
- 发送窗口大小>1,接收窗口大小=1
- 重传出错帧及随后的 N个帧
- 累计确认
在后退 N 帧式 ARQ 中,发送方无须在收到上一个帧的 ACK 后才能开始发送下一帧,
而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了 N 个帧后,若发现该 N 个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的 N 个帧。换句话说,接收方只允许按顺序接收帧。(接收窗口大小=1 则按序接收)
后退 N 帧协议一方面因连续发送数据帧而提高了信道的利用率,另一方面在重传时又
必须把原来已传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若信道的传输质量很差导致误码率较大时,后退 N帧协议不一定优于停止-等待协议。
3. 选择重传协议(SR)
-
发送窗口大小>1,接收窗口大小>1
-
乱序接收
为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧,但此时必须加大接收窗口,以便先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。这就是选择重传 ARQ 协议。在选择重传协议中,每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传。另外,该协议使用了比上述其他协议更有效的差错处理策略,即一旦接收方怀疑帧出错,就会发一个否定帧 NAK 给发送方,要求发送方对 NAK 中指定的帧进行重传。 -
接收窗口和发送窗口的大小通常是相同的