概述
题目:
(2012年联考) 两台主机之间的数据链路层采用了后退N帧协议(GBN)传输数据,数据的传输速率为16kbps,单向传播时延为270ms,数据帧的长度范围是128~512字节,接收方总是以数据帧等长的帧进行确认(即确认帧长度与发送的帧一样大)。为使信道利用率最高,帧序列的比特数至少是(B)
A.5 B.4 C.3 D.2
解析:
这个解析默认了确认帧与发送帧等长的后退 N 帧协议下,最大信道利用率与发送帧长度成正相关
但我不这么觉得
我不知道别人是怎么推的
比如这个文章好像很有道理……但是式子就跟我的不一样,所以我们的结论是完全不一样的
https://blog.csdn.net/u011240016/article/details/52613941?utm_source=blogxgwz5
他的式子中,最大信道利用率公式的分子是一个发送数据帧的时间
我的式子中,最大信道利用率公式的分子是尽可能最多个数 (floor(T/send)
) 的发送数据帧的时间
我的最大信道利用率的式子为
我说实话我不能一眼看出这个式子的单调性……我不知道这解析怎么就知道了这个正相关的
所以我去画了个图
Matlab 代码:
delay = 270;
send = 0:10:1000;
func = @(x,a) floor(2*a./x+2).*x./(2*(a+x));
w = func(send,delay);
% 画图
plot(send,w);
% 验证
func(64,delay)
func(256,delay)
输出:
ans = 0.9581
ans = 0.9734
虽然在题目条件下,发送帧长度 = 64bit 的时候,最大信道利用率确实比 256bit 小
但是这只是特例
所以说这题出的辣鸡……确认帧与发送帧等长的后退 N 帧协议下,最大信道利用率与发送帧长度不成正相关
最大信道利用率与发送帧长度的关系是类周期性的
因为由于 T/send
算得的小数为 1 1.1 1.2 1.3 ... 1.9 2 2.1 2.2 ... 2.9 3 3.1 ....
的序列,floor
舍去的小数部分 0 0.1 0.2 ... 0.9 0 0.1 ...
是类周期性的,所以 floor
导致的误差也是周期性的,而在这里最大信道利用率的损失完全是 floor
导致的误差,所以最大信道利用率也是类周期性的
强调 确认帧与发送帧等长,是因为确认帧要是其他规律的话,最大信道利用率的函数表达式的单调性就变了,就跟我分析的不一样了
订正:
我错了……我还以为在一个确认周期内必须要发送整数数目的帧
之后做别的题出错时才发现,可以在确认周期内一直传输数据
这样的话我之前的想法就完全错了hhhh
总结就是
后退 N 帧协议,选择重传协议在一个发送确认周期内的发送窗口范围内可以一直发送数据,不要求周期内必须发送整数个帧
那么其实这题的思路就是,如果帧序号足够大,就可以一直发送数据,使得信道利用率达到 100%
最后
以上就是内向啤酒为你收集整理的[计算机网络] 后退 N 帧协议,选择重传协议在一个发送确认周期内的发送窗口范围内可以一直发送数据,不要求周期内必须发送整数个帧的全部内容,希望文章能够帮你解决[计算机网络] 后退 N 帧协议,选择重传协议在一个发送确认周期内的发送窗口范围内可以一直发送数据,不要求周期内必须发送整数个帧所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复