作者:车小胖
计算机网络,由终端设备 + 网络中继设备组成。
网络中继设备,就是把用户IP包通过接力的方式,送到目的地的设备的泛称,可能是物理层设备(猫)、可能是二层设备(交换机)、也可能是三层设备(路由器/防火墙)。
可以将这些中继设备看成一个个小水池,有粗细不一的进水管,也有粗细不一的出水管。
现在假设有一个出水管A,直径为2CM,两个进水管B、C,直径也为2CM。
情况一
如果B、C的流入速率 <= A 的流出速率,则水基本不会逗留在池子里。
情况二
如果B、C的流入速率 > A 的流出速率,则一定有一部分水逗留在池子里。随着积聚水的数量增加,水可能会溢出(丢弃)。
情况一延迟很小,基本上就是IP包在中继设备中的处理延迟 + IP包传输延迟 + IP包的传播延迟(依赖于光速,IP包从起点跑到终点的时间,可以忽略不计)
情况二延迟大,延迟大小取决于缓冲池的大小与深度。有四部分组成:
处理延迟 + IP包传输延迟 + IP包的传播延迟 +缓冲队列延迟
而我们对前三者基本上无能为力,只能对“缓冲队列延迟”动手脚,可以设置优先级队列、调整队列深度来减少缓冲队列的延迟。
需要指出的是,造成缓冲延迟大,是因为进水管流速大于出水管,最根本的解决方案是:加大出水管的口径。