概述
首先是概念。
信道利用率,也叫信道的效率,定义很多,但是常用的是时间角度的定义。
OK,上定义:对发送方而言,发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。
那么,什么是发送周期?
发送周期:发送方从发送第一个数据开始,到接收到第一个确认帧为止。
设发送周期为T
,这个周期内发送的数据量为L
,发送方的速率是C
,则发送方用于发送有效数据的时间是L/C
。
在这种情况下,信道的利用率是:
(
L
/
C
)
T
frac{(L/C)}{T}
T(L/C)
另外,信道的吞吐率 = 信道的利用率 * 发送方的发送速率。
看一道题目加深理解:
(2012年联考) 两台主机之间的数据链路层采用了后退N帧协议(GBN)传输数据,数据的传输速率为16kbps,单向传播时延为270ms,数据帧的长度范围是128~512字节,接收方总是以数据帧等长的帧进行确认(即确认帧长度与发送的帧一样大)。为使信道利用率最高,帧序列的比特数至少是(B)
A.5 B.4 C.3 D.2
思考:本题用的并不是捎带确认,因此只需要看一个帧的确认即可。
传输速率C = 16kbps
延迟是R = 270ms
设帧的大小是a字节。则发送周期是:T = a / C + 2 * R + a / C
第一个a/c是发送方发送一帧的时间,2*R是发送的帧和确认帧的传播时延,这里的确认帧大小不可忽略,所以是a/C
从而发送效率
α
=
(
a
/
C
)
(
2
∗
(
a
/
C
+
R
)
)
alpha = frac{(a/C) } { (2*(a/C+R))}
α=(2∗(a/C+R))(a/C)
这里就是求如何使得 α alpha α最大。
这样推导的结果是512B时利用率最高!
但是答案又说,为了发送的数据帧数更多!Why? 帧数大和帧数多居然直接取帧数多作为优先?
不科学,因此这题存疑。
update: 2016.11.13修正。
我之前一直理解错了题干的含义。题干说数据帧的长度范围是128B~512B。我片面的认为取512B时可以使得数据链路不停发送数据,即利用率接近100%时,用的帧序号数最小。诚然,这没有任何可以争论的点。我存疑就是因为大部分的解释是,为了使信道利用率最高,需要多发帧。所以帧长越短越好。这个推导逻辑是不对的!因为无论使用128B还是512B都可以理论上达到最大的100%。现在是,我们需要考虑到最极端的情况,即帧序号用的编码比特数无论何时都能满足。很显然128B,帧长最小时,需要的帧序号编码数自然多与512B。如果就以512B计算,那么得到的最小帧序号数在128B的帧长下,达不到最大的信道利用率。因为帧序号数目的限制,连续发送的数目有限。这才是整个题目的设计逻辑。
有了这个理解,问题就简单多了,我们考虑128B至少需要多少比特,就是我们需要的数。
发送一帧用时:128B/16kbps = 64ms
RTT = 540ms
发送周期T = 64+RTT+64 = 668ms
则连续不断发送时可以发送:668/64 = 10.4帧
因此,需要比特数是n.
2 n ≥ 10.4 + 1 2^ngeq 10.4+1 2n≥10.4+1即:要能够区分新旧轮次的帧。
得到n至少为4.
进一步思考:668ms发送10.4帧,则数据传输率是:15.942kbps
10.4是取了约数的,即我们可以直接认为连续不断发送。则用16kbps,因此,每秒发送的帧数是:15.6帧。则一个发送周期内发送:10.4帧。
也是一样的结果。
特别注意,我们算帧数时,是以一个发送周期为单位计算的,不是1秒!
我们担心的是不能区分每个发送周期的帧是新的还是旧的,因此,才来计算序号,换算成1秒发送多少,毫无意义!所以之前考察2015年的一道习题时理解错了。这里一并纠正。那边也更新了。
END.
最后
以上就是悦耳八宝粥为你收集整理的关于信道利用率的总结与一道习题的最终解释的全部内容,希望文章能够帮你解决关于信道利用率的总结与一道习题的最终解释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复