传输延时、传播延时到底有何区别?
计算机网络中的传输延时与传播延时的区别?
老李从上海开车去北京,历程1200KM,一路匀速120KM/H,途径12个收费站,每个收费站耗时1分钟,问老李需要多久可以到达北京?
总耗时 = 行车时间 + 过12个收费站时间 = 1200/120 + 12 * 1/60 = 10 + 0.2 =
10.2 小时
上文中的行车时间,在计算机网络里对应的就是传播延迟(Propagation Delay),即源主机到目的主机的物理距离(单位为KM)除以行车速度为光速 ≈ 30万KM/H。
上文中的过12个收费站的总时间,即为传输延迟(Transmission Delay)的总和,收费站为交换机/路由器/防火墙/中继设备。
一个1250 byte(10000bit)Packet(可以理解为小汽车),经过一个通行速率rate = 1Gbps的收费站,需要历时多久(假设收费站0排队)?
Transmission Delay = 10000/1000000000 = 0.000001s
=1us
这1us对应的时间,就是这10000个bit长的小汽车,汽车头离开收费站开始计时,到汽车尾离开收费站为止所耗费的时间。
假设这12个收费站通行速率都是1Gbps,那么总的传输延时= 12 *1 = 12us,这个时间长度用光速跑,对应的距离为 = 0.000012
* 30万= 3.6 KM。换句话说,由于收费站的存在,相当于把源主机到目的主机的物理距离增加了3.6KM。
如果没有收费站,老李10个小时就可以到达北京。由于收费站多份存在,多出来的0.2小时,相当于把上海到北京的距离拉长了0.2 * 120 = 24KM。
问题回答完毕。
但是,在真实的计算机网络里,从A地(源)到B地(目的),不仅有上文的Transmission Delay、Propagation Delay, 还有处理延迟(Processing Delay)和队列延迟(Queue Delay)。
IP小汽车从入口(Incoming Interface)进入,到决定从哪个出口(Outgoing Interface)离开,需要查询转发表/路由表。光知道从哪个出口离开还不行,还需要通过内部高速总线(交换矩阵)把小汽车从入口搬运到出口处,这一系列操作所花费的时间总和,就是处理延迟(Processing Delay)。
如果出口处,已经有小汽车在排队等待通行,这个刚到的小汽车还需要按照先来先走(FIFO)的排队等待离开收费站,这个等待时间就是队列延迟(Queue Delay)。
A地到B地的单向时间延迟= Propagation
Delay(1) + Transmission Delay(2) + Processing Delay(3) + Queue Delay(4)
上文的4个delay,
- 1取决于物理距离大小
- 2取决于收费站(路由器)出口通行速率rate
- 3取决于查表快慢以及内部总线
- 4 取决于收费站是否拥堵,如果不拥堵,该值为0
对于特定的IP小汽车,前3者是固定不变的,只有4是可变的(Variable),也是网络工程师唯一可以通过QoS参数进行控制的。
如果想让一辆IP小汽车优先通行,只要将它在入口处粉刷(Color Mark)成一辆救护车,救护车在收费站可以插队,几乎无需排队(救护车最多等待一辆车的时间,因为收费站可能有一辆正在通行的小汽车),这样就减少了从源到目的的总延迟。
