X

随笔:什么造成了网络延迟?如何降低(优化)网络延迟?

弈心:从事计算机网络工作11年(新加坡7年,沙特4年),2013年考取CCIE,在新加坡先后任职于AT&T,新加坡交通部,苹果,Equinix,苏格兰皇家银行等大型企业、银行和政府部门。 目前供职于“世界第一土豪大学“沙特阿卜杜拉国王科技大学(KAUST),担任Senior Network Engineer,为KAUST校史上第一位也是唯一一位华人IT部门高级职员。2019年6月在知乎发布了华语圈第一本专门为编程零基础的网络工程师量身打造的Python教程《网络工程师的Python之路》。


最近一个月《网络工程师的Python之路》系列文章写的有点多,有读者问我能不能像以前一样写点网络这行本专业知识点的文章。今天翻看自己的Onenote,看到了一篇N年前自己备战CCDE的关于“网络延迟”这个话题做的笔记,这是一篇纯理论笔记,不涉及任何设备的任何配置及优化方案。感觉还行,就拿出来分享给大家吧。

网络延迟的定义

数据(报文)在传输介质中传输所用的时间,即报文从发送者一方开始进入网络到它离开网络进入接收者一方所花费的时间。造成网络延迟的因素主要有六点:

1. Serialization Delay (也叫Transmission Delay)

2. Propagation Delay

3. Packet Switching

4. Queueing

5. Packet Drop

6. Processing


如何降低(优化)网络延迟?

1.Serialization Delay(SD)指的是数据进入传输介质(网线)所花费的时间,数据大小和传输介质能提供的带宽(bandwidth)决定了SD的长短。下图为数据的大小和传输介质能够提供的带宽(bandwidth)所对应的SD值(注:ms=毫秒,µs=微秒,ns=纳秒)。结论:数据包越小,传输介质带宽越高,Serialization Delay越小。

2.Propagation Delay (PD)和传输介质的类型/传输距离(尤其是物理距离,比如中国到美国西海岸的延迟怎么也得有个100ms以上,到东海岸怎么也得有个150ms以上)有关,从速度上来讲,常用的传输介质中,Passive Twinax CX-1 (SFP+) cables快过光纤,而光纤又快过RJ-45网线(注:微波(Microwave)快过光纤)。


3.Packet Switching受交换模式(switching mode)的影响,毋庸置疑,Cut-through mode(又分为Fast-forward和Fragment-free两种mode) 比Store-and-Forward mode快,但是在处理64 Byte和512byte这些小型数据包时,Store-and-Forward比Cut-through快。


4. Queueing,两个因素:

a. 网络设备的缓存(buffer)是否足够。

b. 当网络使用量饱和,链路出现拥塞的时候,网络设备采用了什么样的队列方式,对路由器来说,FIFO?WFQ?CBWFQ?LLQ?对交换机来说,WRR有几个queue? 不同类别的CoS是否划入了不同的WRR queue? 除了priority queue外,其他每个queue的权重(weight)设置是否合理?WRED阀值(threshold)的设置是否合理?以上是关于QOS中队列(Queueing)和拥塞避免(Congestion Avoidance)的大话题,这里不做详细讨论,但是需要知道的是:当网络出现拥塞时,良好的队列机制能够起到降低(优化)网络延迟的作用。


5. Packet Drop, 两个因素: a. 硬件故障 ,NIC(网卡)和传输介质(线路质量、ISP设备)的故障导致丢包。b. 人为失误,端口的速率和双工模式配置错误导致丢包,进而加重网络延迟。


6.Processing, 优化方式繁多,如下:1) 关闭网络中不需要的功能(feature),比如CDP, IP Redirect, Finger, Proxy ARP, IP BOOTP Server等等,以降低不必要的链路开销。**注:思科的Nexus 3548交换机(Ultra low latency switch)不受此影响,也就是说无论在N3548里面打开多少feature, 也不会对它造成网络延迟的影响,具体原理不在此讨论,有兴趣的可以去看下N3548的设计原理。2) 网络设计:大型网络内,是否严格采用传统的层级结构(介入,汇聚,核心三层)?传统的Hub and spoke 类型网络中,边缘站点是否被设置为末节区域(OSPF/EIGRP: stub area)以减少路由表的条目以达到优化网络设备处理数据的能力?3) 适配器(Adapter): 大多数情况下,独立网卡优于集成网卡,原因很复杂,不作讨论。4) 网络安全:从网络延迟的角度看,使用路由器自带的安全功能(ACL, PVLAN,以及其他各种security feature)比使用防火墙等专业安全设备造成的网络延迟更少。