Skip to content

2017年 408 计算机网络 第 47 题

计算机网络2017年综合题9分

题目

甲乙双方均采用后退 N 帧协议(GBN)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为 1000 B。 分别表示甲方和乙方发送的数据帧,其中: 是发送序号; 是确认序号(表示希望接收对方的下一帧序号);数据帧的发送序号和确认序号字段均为 3 比特。信道传输速率为 100 Mbps,RTT = 0.96 ms。下图给出了甲方发送数据帧和接收数据帧的两种场景,其中 为初始时刻,此时甲方的发送和确认序号均为 0, 时刻甲方有足够多的数据待发送。

场景 (a)

甲方乙方S0,0S1,0S2,0S3,0R0,1S4,1R1,3R3,3t1时间

场景 (b)

甲方乙方S0,0S1,0S2,0R0,1R1,2S3,2S4,2R2,2t1S2,0 超时时间

请回答下列问题。

(1) 对于图 (a), 时刻到 时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?正确接收的是哪几个帧(请用 形式给出)?

(2) 对于图 (a),从 时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?其中第一个帧和最后一个帧分别是哪个(请用 形式给出)?

(3) 对于图 (b),从 时刻起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?重发的第一个帧是哪个(请用 形式给出)?

(4) 甲方可以达到的最大信道利用率是多少?

解析

理解 GBN 中 ack 字段的含义 / 中的 捎带确认——表示发送方累计确认到 、期待下一帧序号 。GBN 的接收窗口为 1,只接受按序到达的帧——乱序到的帧丢弃,并重发当前期待的 作为 ack。

(1) 甲断定乙已正确接收的帧数

时刻甲已收到乙发的最后一个帧 ack = 3 表示乙累计确认到序号 2、期待下一帧 3。

→ 乙已正确接收甲的 三帧。

答案:3 帧,分别是

为什么不包含 :虽然 在图中已发出,但乙在 中给出的 ack 仍然是 3(期待 3)——说明 还没到达乙、或还没被乙处理 → 甲不能断定它"已被收到"。

(2) 后甲最多还能发多少帧

先算 GBN 发送窗口最大值

帧序号 3 比特 → 序号空间 = 。GBN 中接收窗口 = 1发送窗口 ≤ 序号空间 - 1 = 7

为什么发送窗口不能等于序号空间:若发送窗口 = 8 即用满整个序号空间,已发未确认的帧序号"绕回"会让接收方分不清是新帧还是重传。GBN 必须留 1 个缝。

统计 时刻甲已发未确认的帧:甲发了 共 5 帧,其中 已确认(见 (1)),剩 仍在窗口内未确认。

→ 已用窗口 = 2 帧;最多再发 7 - 2 = 5 帧

第一个重发帧的序号 之后是 5、6、7、0、1(GBN 序号 mod 8 循环)。

ack 字段填多少:甲累计确认到的乙的最后一个连续帧。从图 (a) 看,乙发了 ;按 GBN 接收方"只接受按序帧"原则, 因为乱序(中间缺 )会被甲丢弃 → 甲此时仍累计确认到 、期待 → ack = 2

GBN 接收方对乱序帧的处理:丢弃 + 不动 ack。这是 GBN 与 SR 协议的本质差别——SR 会缓存乱序帧,GBN 不缓存。

答案

  • 最多再发 5 帧
  • 第一个:
  • 最后一个:

(3) 图 (b) 中超时后的重发

先看 (b) 中 时刻状态

  • 甲已发: 共 5 帧
  • 甲已收乙的: 三帧
  • 乙的 ack 序列:1、2、2 → 乙累计确认到甲的 (ack=2 表示期待 )。乙没收到

时刻 超时 → GBN 必须累计重传 及其后所有未确认帧

ack 字段填多少:甲已收乙的 三帧(按序连续到达),累计确认到 2、期待 3 → ack = 3

答案

  • 重发 3 帧
  • 第一个:

GBN 累计重传的代价:哪怕只丢一帧 ,后续所有 都要重发——即使它们本身没丢、即使乙也无法接受。这是 GBN 简单换来的代价;SR 协议只重传丢失的那一帧、收方缓存其余。

(4) 最大信道利用率

GBN 信道利用率公式(捎带确认下,):

先算

(题面 0.96 ms)。

代入 (取窗口最大值以求最大利用率):

为什么取 :信道利用率随窗口线性增长,发送窗口越大利用率越高。GBN 在 3 比特序号下窗口最大 7,所以代入 7 给最大值。

信道利用率的物理意义:50% 意味着甲方有一半时间在"等 ACK"——窗口太小撑不满 RTT 长度的链路。只有当 时利用率才能达到 100%。本题需要 才能 100%,但 3 比特序号撑不到,所以受限于窗口大小。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数