题目描述
【2014年题36】主机甲与主机乙之间使用后退N帧(GBN)协议传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mbps,乙每收到一个数据帧就立即利用一个短帧(忽略其传输延迟)进行确认,若甲乙之间的单向传播延迟是50ms,则甲可以达到的最大平均数据传输速率约为()。
A.10Mbps
B.20Mbps
C.80Mbps
D.100Mbps
前置知识
- 字节用Byte 表示, 1 B = 8 b i t 1B = 8bit 1B=8bit
- 传输延迟就是发送延迟
- 发送周期:第一个分组从发出,到接收对应的ACK所经历的时间
发送周期 = 第一个分组发送时延 + 传播时延 + A C K 发送时延 + A C K 传播时延 发送周期= 第一个分组发送时延 + 传播时延 + ACK发送时延 + ACK 传播时延 发送周期=第一个分组发送时延+传播时延+ACK发送时延+ACK传播时延
解析
- 最大平均传输速率 = 一个发送周期内发送的数据量 发送周期 最大平均传输速率 = \cfrac{一个发送周期内发送的数据量}{发送周期} 最大平均传输速率=发送周期一个发送周期内发送的数据量
- 带宽为最大数据传输率,实际不一定能达到,但本题问最大平均数据传输速率,那么认为发送速率 = 带宽
- 发送周期是多少?
- 发送一个分组所需的时间 = 分组大小 发送速率 = 1000 B 100 M b / s = 8 × 1 0 − 5 s \cfrac{分组大小}{发送速率} = \cfrac{1000B}{100Mb/s} = 8 \times 10^{-5}s 发送速率分组大小=100Mb/s1000B=8×10−5s
- 第一个分组的传播时延(从主机甲到主机乙)= 50ms(题目规定)
- 第一个ACK的发送时延 = 0ms(题目规定:忽略其传输延迟)
- 第一个ACK的传播时延(从主机乙到主机甲)= 50ms(题目规定)
- 发送周期 = 8 × 1 0 − 5 s + 50 m s + 50 m s = 100.08 m s 8 \times 10^{-5}s + 50ms + 50ms = 100.08ms 8×10−5s+50ms+50ms=100.08ms
- 在这
100.08ms
内,主机甲能发送多少个分组?- 首先,在接收到ACK之前,窗口大小不会改变,因此最多可以发送1000个分组
- 每个分组需要
0.08ms
的发送时延,因此 1000 个分组需要1000×0.08ms = 80ms < 100.08ms
也就是说,主机甲可以在第一个ACK到达前,发送完窗口内的所有分组
- 在这
100.08ms
内,主机甲能发送多少数据?
数据量 = 分组数量 × 分组大小 = 1000 × 1000 B = 8 × 1 0 6 b 数据量 = 分组数量 \times 分组大小 = 1000 \times 1000B = 8\times10^{6}b 数据量=分组数量×分组大小=1000×1000B=8×106b - 最大发送速率 = 8 × 1 0 6 b 100.08 m s ≈ 80 M b / s \cfrac{ 8\times10^{6}b}{100.08ms} \approx80Mb/s 100.08ms8×106b≈80Mb/s