三种自动请求重传

时间:2024-03-30 09:30:30

停止-等待协议

停止-等待协议相当于发送窗口和接收窗口大小均为 1 的滑动窗口协议。
也就是说,发送方发送一个帧后,必须接收到一个确认帧才能发送下一个。

算法实现的步骤(了解即可)

发送端
Created with Raphaël 2.2.0Start取数据帧,送交发送缓存V(S)<-0(发送状态变量初始化)N(S)<-V(S) (发送状态量赋给发送序号)缓存中的数据帧发送出去设置超时计时器等待收到确认帧 ACKn?n = 1-V(S)从主机取新帧V(S)<-1-V(S)丢弃确认帧超时yesnoyesnoyes
接收端
Created with Raphaël 2.2.0StartV(R)<-0(欲接收的发送序号)等待检查接收帧有无差错N(S) = V(R)(若为 no 则丢弃)收到的数据帧送交主机V(R)<-1-V(R),更新接收状态变量发送确认帧 ACKnyesnoyes

注意: 如果出现连续相同发送序号,说明发送端超时重传。如果出现连续相同序号的确认帧,说明接收端收到重复帧。

停止等待协议帧之间的时序关系

三种自动请求重传

多帧滑动窗口与后退 N 帧协议(GBN Go-Back-N ARQ)

发送端
  1. 在 GBN 下,发送方可以连续发送多个帧,而无需发送一个帧就要等待一个确认帧。
接收端
  1. 但是需要注意的是,接收方只按顺序接收帧,如果失序,则要重传。
  2. 同时,接收端不需要接收一个就返回一个确认帧,可以是接收 n 个帧后,返回第 n 个确认帧。这叫做累加确认
  3. 后退 N 帧在接收端的接收窗口大小为 1
  4. 传输质量差和误码率较大时不适合 GBN

下图可说明,只要某个帧出错,则该帧后的所有帧都丢弃,不会返回确认

三种自动请求重传
其中,若采用比特对帧编号,则应该满足,12n111\leq发送窗口\leq2^n-1(窗口大小-1)

note
1.***问题:该协议中***至少是 max+1,如32位发送窗口则要33位***,33位***转换成二进制则是6位序号。

多帧滑动窗口与选择重传协议(SR)

思想

只重传错误的帧

注意
  1. 加大接收端口,用来存放失序的帧
  2. 每个发送缓冲区保存一个计时器
  3. 接收窗口和发送窗口都大于 1,一般都相等(或者接收窗口不能超过发送窗口)
  4. 采用累计确认

其中,若采用比特对帧编号,则应该满足,+2n发送窗口+接收窗口\leq2^n
接收窗口max = 发送窗口max = 2(n1)2^{(n-1)}

通信方面的知识补充
  1. 信道效率,发送方在发送周期中,有效发出数据的时间占整个发送周期的比率
    如,发送周期 T【发送周期往往=发送时延+传播时延(往返时延)】,发送 L 比特,传输速率 C
    信道利用率 = (L/C)/T(L/C)/T
  2. 信道吞吐量 = 信道利用率 X 发送方的发送速率(吞吐量即速率)