题目:
要传送的报文共 x(bit),从原点到终点共经过 k 段链路,每段链路的传播时延为 d(s),数据率为 b(bit/s),分组交换时分组长度为 p(bit),求分组交换的时延。
答案:kp/b+p/b(x/p-1)+kd
kd不解释了,就是传播时延。
解法一
每一个分组的发送时延是p/b,有k段链路就有k个转发点,终点不算
所以所有转发点的发送时延就是kp/b
每发送一个分组,再发送上一个分组完毕后才能进行下一个分组的发送,这段等待的时间记为t,
例如发送3个分组,每个分组发送的时间都是T,再3个分组发送完毕后,
所需要的发送时延=T+(3-1)t=T+2t (2的原因是第一个分组不用等待t)
题目中的发送时延=kp/b+(x/p-1)p/b ( t等于p/b的原因是不考虑排队时延和处理时延 )
解法二
设有n个分组 n=x/p
先将所有的分组推入链路,所需要的发送时延=np/b
再计算最后一个分组在k-1个节点上的所需要的发送时延
即=(k-1)p/b
这里很多人不理解为什么不乘n,就要谈到发送时延的概念
发送时延:从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需要的时间。最后一个比特这里很重要。
根据这题广义理解就是在发送所有分组的第一个分组起,到所有分组的最后一个分组发送完毕所需要的时间。这里我们只计算最后一个分组的发送时延就行了,因为最后一个分组发送完毕,那么在它之前的所有分组就已经发送完毕了,即=(k-1)p/b,不乘n的原因。
又比如说一队按顺序排的小学生,第一个同学花费了5分钟进入了食堂,最后一个同学花费了
5分10秒进入了食堂,那你说算谁的发送时延嘞?发送完毕用了5分10秒!
解法一与解法二的不同之处:
解法一 他没有提前把所有分组推进链路,而是一个一个推的,起始点是转发点,所以是k
解法二 它是提前把所有分组推进链路了,所以起始节点此时已经完成了发送任务,就不算一个转发节点了,所以是k-1