差错控制是指在数据通信过程中能发现或纠正差错,把差错限制在尽可能小的允许范围内的技术和方法。
1、什么是差错?
信号在物理信道中传输时,由于各种因素导致接收端收到的二进制位数和发送端实际发送的二进制位数
不一致,从而造成由“0”变成“1”或由“1”变成“0”的差错。
2、差错控制方法主要分为两类:
自动请求重发(ARQ),前向纠错(FEC)。
本文主要分享ARQ的几种实现方案:空闲重发请求和连续重发请求。实现这几种重发需要遵循以下的三个
协议,它们是逐级递进的,对信道的利用率逐渐升高。
协议/区别 | 方案 | 优点 | 缺点 | 滑动窗口 |
停等协议 | 空闲重发 | 发、收双方所需缓存空间最小 | 发送方收到接收方的应答后才能继续发送,信道浪费 | 发送窗口=1;接收窗口=1 |
顺序管道 | 连续请求重发 | 发送方不用等前一帧被确认便可连续发送下一帧 | 需要分配较大的内存给发送方重发表来存储待确认帧(Go-back-N策略) | 发送窗口>1;接收窗口=1 |
选择重传 | 选择重传 | 在某帧出错时,减少了后面所有帧都要重传的浪费 | 对接收方的缓存要求大 | 发送窗口>1;接收窗口>1 |
3、涉及的概念:
重发表:存放若干待确认的信息帧;
计时器:约定发送方等待时长,超时即确认该帧传输出错;
基于窗口的流量控制方法:限制发送方已发送而未确认的帧数目。注意:重发表存放的是未确认的
信息帧,此控制方法专用来限制数目;用发送方允许打开窗口的数目来表示允许发送方未被确认的接
收的信号帧数目;
总结:
这三种协议都可以看成滑动窗口协议,只是各自窗口尺寸的大小不同。