3.2 流量控制与可靠传输:停止-等待、GBN 与 SR

滑动窗口机制,停止-等待协议、后退 N 帧协议(GBN)与选择重传协议(SR)的工作过程、窗口大小限制,以及信道利用率的计算。

考查要求 ★★★ 重点掌握 滑动窗口停止-等待协议后退 N 帧选择重传累积确认窗口大小约束信道利用率

滑动窗口机制

流量控制:由接收方控制发送方的发送速率,使接收方有足够的缓冲空间来接收每个帧。可靠传输:使用确认和超时重传两种机制,保证发送方发送的数据能被接收方正确、完整地收到。数据链路层的流量控制与可靠传输都基于滑动窗口:

  • 发送方维持一组连续的允许发送的帧的序号,称为发送窗口;接收方维持一组连续的允许接收帧的序号,称为接收窗口;
  • 发送窗口用来对发送方进行流量控制,其大小 WTW_T 代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧;
  • 只有接收窗口向前滑动(并发送了确认帧)时,发送窗口才有可能(只有发送方收到确认帧后才一定)向前滑动;
  • 接收窗口的大小 WRW_R 为 1 时,接收方只能按序接收帧。
协议发送窗口接收窗口
停止-等待11
后退 N 帧(GBN)>1> 11
选择重传(SR)>1> 1>1> 1

三种可靠传输协议

动画演示停止-等待 / GBN / SR 协议
发送方接收方0123456701234567已确认 / 已发送未确认 / 可发送已交付 / 已缓存 / 接收窗口时间 ↓
数据帧确认帧丢失 / 重传
1/25后退 N 帧协议(GBN):发送窗口 = 4,接收窗口 = 1,累积确认。发送一帧需 1 个时间单位,单程传播 2 个单位,超时重传时间 7

停止-等待协议(SW)

发送方每发送一帧,都要等待接收方的确认,收到确认后才能发送下一帧。为了应对帧丢失和确认丢失,发送方设置超时计时器,超时未收到确认就重传;为了让接收方能识别重复帧,数据帧需要编号,停止-等待协议只需 1 bit 序号(0 和 1 交替)即可。

  • 超时重传时间一般选为略大于”从发送完数据帧到收到确认帧所需的平均时间”(RTT);
  • 发送方必须保留已发送帧的副本,直到收到确认;
  • 优点:简单;缺点:信道利用率很低。

后退 N 帧协议(GBN)

发送方无须在收到上一帧的 ACK 后才开始发送下一帧,而是可以连续发送帧。当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了 NN 个帧后,若发现该 NN 个帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重传该出错帧及随后的 NN 个帧。

  • 接收方只允许按顺序接收帧,失序帧一律丢弃;
  • 采用累积确认:对 nn 号帧的确认表明接收方已正确收到了 nn 号帧及以前的所有帧;
  • 若采用 nn 比特对帧编号,则发送窗口的尺寸 WTW_T 应满足 1≤WT≤2n−11 \leq W_T \leq 2^n - 1。若 WT=2nW_T = 2^n,接收方无法区分新帧和旧帧(所有确认都丢失时);
  • 缺点:一方面,由于连续发送数据帧而提高了信道的利用率;另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传,使传送效率降低。

选择重传协议(SR)

为进一步提高信道的利用率,可设法只重传出现差错的数据帧或计时器超时的数据帧。此时必须加大接收窗口,以便先收下失序但正确到达且序号仍落在接收窗口内的那些数据帧,等到所缺序号的数据帧收齐后,再一并送交主机。

  • 每个帧都有自己的计时器,对每个帧逐一确认;
  • 窗口大小约束:WT+WR≤2nW_T + W_R \leq 2^n,且 WR≤WTW_R \leq W_T,因此 WR≤2n−1W_R \leq 2^{n-1}。通常取 WT=WR=2n−1W_T = W_R = 2^{n-1};
  • 接收窗口大小为 WRW_R,则接收方要有 WRW_R 个帧的缓冲区。

信道利用率

信道利用率是指发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

发送方接收方T_DRTT数据帧(发送时延 T_D)确认帧(发送时延 T_A,常忽略)一个发送周期 T = T_D + RTT + T_A
停止-等待协议中,发送方大部分时间都在等待确认
停止-等待: U=TDTD+RTT+TA连续 ARQ: U=min⁡(1, WT⋅TDTD+RTT+TA)\text{停止-等待:}\ U = \frac{T_D}{T_D + RTT + T_A} \qquad \text{连续 ARQ:}\ U = \min\left(1,\ \frac{W_T \cdot T_D}{T_D + RTT + T_A}\right)

信道吞吐率 = 信道利用率 × 发送方的发送速率。

即时练习

即时练习6 题
点击选项即可作答
  1. 1
    (408 真题 2009)数据链路层采用了后退 N 帧(GBN)协议,发送方已经发送了编号为 0~7 的帧。当计时器超时时,若发送方只收到 0、2、3 号帧的确认,则发送方需要重发的帧数是( )。
  2. 2
    (408 真题 2011)数据链路层采用选择重传协议(SR)传输数据,发送方已发送了 0~3 号数据帧,现已收到 1 号帧的确认,而 0、2 号帧依次超时,则此时需要重传的帧数是( )。
  3. 3
    (408 真题 2012)两台主机之间的数据链路层采用 GBN 协议传输数据,数据传输速率为 16 kb/s,单向传播时延为 270 ms,数据帧长度范围是 128~512 字节,接收方总是以与数据帧等长的帧进行确认。为使信道利用率达到最高,帧序号的比特数至少为( )。
  4. 4
    (408 真题 2014)主机甲与主机乙之间使用 GBN 协议传输数据,甲的发送窗口尺寸为 1000,数据帧长为 1000 字节,信道带宽为 100 Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲乙之间的单向传播延迟是 50 ms,则甲可以达到的最大平均数据传输速率约为( )。
  5. 5
    (408 真题 2015)主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是 3 kb/s,单向传播延时是 200 ms,忽略确认帧的传输延时。当信道利用率等于 40% 时,数据帧的长度为( )。
  6. 6
    采用 3 比特帧序号的选择重传协议,接收窗口的最大尺寸是( )。
学完了吗?

标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。