题目来源于王道论坛
主机甲通过128kbps卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播延迟为250ms,帧长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是 。
以发送周期为切入点来思考这个问题。开始发送帧到收到第一个确认帧为止,用时:
T = 第一个帧的传输时延+第一个帧的传播时延+确认帧的传输时延+确认帧的传播时延。
因为确认帧的开销不计,所以它的传输不计。但是传播时延要计的。
所以T = 1000B/128kbps + RTT = 0.5625s
那么在0.5625s内需要发送多少数据可以满足利用率80%呢?
设为L字节,则:
就是说在一个发送周期内至少发7.2帧就可满足要求。
因此,需要编号的比特数为n;
2n−1≥7.22n−1≥7.2
所以n至少为4.
此外,还需要特别思考一下,信道的数据传输速率的极限是128kbps,理论上最大每秒可传输16000B,即16帧,大于12.8,因此符合要求
解析:
不考虑确认帧的开销,一个帧发送完后经过一个单程传播时延到达接收方,再经过一个单程传播时延发送方收到应答,从而继续发送。要使得传输效率最大化,就是不用等确认也可以连续发送多个帧。设连续发送n个帧,一个帧的发送时延为:1000B/128kbps=62.5ms。对于采用滑动窗口协议的流水线机制,我们有如下公式:链路利用率=(n×发送时延)/(RTT+发送时延)。
依题意,有:(n×62.5ms)/(62.5ms+250ms×2)≥80%
得n≥7.2,帧序号的比特数k需要满足2k ≥n+1。从而,帧序号的比特数至少为4。