本周休假更新不一定及时,提前和各位打声招呼。 网络延迟,是指一个IP包从源主机进程发出开始计时,到达目的地主机进程为止,所经历的时间,以毫秒为单位。 IP包从源主机一路经过多个中继设备,如交换机、路由器,最终到达终点,网络延迟由以下三者组成: 网络延迟 = 传输延迟 处理延迟 缓冲队列延迟 传输延迟 处理延迟 缓冲队列延迟 但是网络拥堵经常发生,因为主机对带宽的需求无止境,所以拥堵是常态。当网络拥堵时,路由器将无法及时转发的流量缓冲在出口队列,可能采用加权公平队列WFQ(Weighted FairQueue)、或低延迟队列LLQ (Low Latency Queue),或默认的先进先出队列FIFO(First In FirstOut),这个队列可能会造成几百毫秒或更多的延迟,此值是可变的,可以接近0或几秒不等,依赖网络的拥堵程度。 什么是加权公平队列WFQ? 什么是低延迟队列LLQ? 什么是先进先出队列FIFO? 所以过大的网络延迟主要是由缓冲队列延迟过大造成的! Google最新的TCP BBR算法,就是积极主动测量网络的延迟,运用智能算法,获知网络的最大可利用带宽,使发送速率≤ 最大可利用带宽,最大限度减少路由器的缓冲队列的深度,最大限度减少延迟。 综上可知,网络延迟是由不受人类控制的传输延迟,以及人类可以控制的处理延迟、队列延迟所组成。很显然,如果想减小IP报文的整体延迟,必须从后两者入手,即如何降低处理延迟、队列延迟。 处理延迟是一个衡量一台设备是否牛叉的关键指标。以路由器为例,拥有近百万条路由表的路由器,如何用最快速度匹配到正确的路由条目,包含着满满的黑科技。采用多级查询,只需要查询几百、最多几千次条目,就可以hit到正确的条目。这是产品设计时候需要实现的技术要素。 对于网络管理员来说,能够操控延迟大小的,仅仅就剩下了队列延迟,这需要管理员精通队列的排队、调度机制。 |
|