影响网络通信质量的两大因素:延迟和带宽。延迟主要指分组从信息源发送到目的地所需的时间,而带宽主要是指逻辑或物理通信路径最大的吞吐量。这篇文章主要讲述网络延迟的组成部分及如何评估传输速率及理论上的最大传输速率。
网络延迟
延迟是消息 (message) 或分组 (packet) 从起点到终点经历的时间,它主要四个部分组成:
- 传播延迟:消息从发送端到接收到需要的时间,是信号传播距离和速度的函数;
- 传输延迟:把消息中的所有比特转移到链路中需要的时间,是消息长度和链路速率的函数;
- 处理延迟:处理分组首部、检查位错误及确定分组目标所需的时间;
- 排队延迟:到来的分组排队等待处理的时间;
以上延迟的时间总合,就是客户端到服务器的总延迟时间。
传播延迟取决于距离和信号通过的媒介,其传播速度通常不超过光速。光速是所有能量、物质和信息运动所能达到的最高速度,这个结论给网络分组的传播速度设定了上限。光在真空中每秒可以达到 299 792 458 米 (大约 30 万公里)。而网络中的分组是通过铜线、光纤等介质传播的,这些介质会导致传播速度变慢。光速与分组在介质中传播速度之比,叫做该介质的折射率。这个值越大,光在该介质中传播的速度就越慢。光纤的折射率从 1.4 到 1.6 不等,我们以 1.5 的折射率来计算,分组在光纤中速度为每秒 200 000 000 米 (大约 20 万公里)。我们以深圳到其它城市的距离来计算下它们之间的延迟。
路线 | 距离 (km) | 时间: 光在真空中 | 时间:光在光纤中 | 光纤中的往返时间 (RTT) |
---|---|---|---|---|
深圳到北京 | 2372 | 8 ms | 12 ms | 24 ms |
深圳到杭州 | 1496 | 5 ms | 7.4 ms | 14.8 ms |
深圳到乌鲁木齐 | 3380 | 11.2 ms | 16.9 ms | 33.8 ms |
深圳到纽约 | 12945 | 43 ms | 65 ms | 130 ms |
这里计算的时间是以两地间有一条光纤直连的情况,但在真实的环境中,两地之间可能会经过多条线路,多个路由器相连,中间还会有其它的延迟。
传输延迟由传输链路的速率决定,与客户端到服务器之间的距离无关。举个例子,假设有一个 10 Mb 的文件 ,分别通过两个链路,一个 1 Mbit/s, 另一个 100 Mbit/s. 在前一链路上,需要花费 10 s,而在后一个链路上,则只需要 0.1 s.
分组到达路由器,路由器必须检测分组的首部,以确定路由,并且还可对数据进行检查,这些检查通常由硬件完成,因此相应的延迟一般非常短。最后分组到达的速度超过了路由器的处理能力,那么分组就要加入到入站缓冲区中排队,数据在缓冲区排队等待的时间,就是排队延迟。
带宽
带宽定义:在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。计算机网络的带宽是指网络可通过的最高数据率,即每秒多少比特(常用的单位是bps(bit per second))。
在网络核心网中,一般使用光纤通信。光纤就是一根 “光导管”,比人的头发稍微粗一点,专门用来从一端向另一端传送光信号。通过波分复用 (WDM, Wavelength-Divisiion Multiplexing) 技术,光纤可以同时传输不同波长(信道)的光,一条光纤连接的总带宽,等于每一个信道的数据传输速率乘以可复用的信道数。到 2010 年初,研究人员已经可以在每一个信道中耦合 400 多种波长的光线,最大容量可达 171 Gbit/s, 而一条光纤的总带宽能够达到 (171 * 400 = 68, 400 Gbit/s) 70 Tbit/s. 每一条光缆会封装几条光纤(常见是 4 条),折算出来的带宽容量能达到每秒几百太比特。2017 年 9 月,Facebook 和微软在美国弗吉尼亚海滩和西班牙毕尔巴鄂之间建立的 6600 公里海底光缆 “Marea” 建成投用,其数据传输速度高达为每秒 160 Tb。
香农第二定理
网络分组可以在“有线”的介质中传输,如同轴电缆、光纤等等。也可以在通过无线技术进行传输。然而,使用无线技术所有通信方法都有一个最大的信道容量,这个容量决定了无线传输技术传输速率的上限。信息轮之父香农给出了一个数学模型:
- C 是信道容量,单位是 bit/s;
- B 是信道带宽,它表示是频率范围,即最大频率减去最小频率,单位是 Hz ;
- S 是信号,N 是噪声,S/N 为信噪比,通常用分贝(dB)表示。
关于信道带宽,可以用一个例子来解释,一个无线电的频带是从 95.6 KHz 到 95.8 kHz, 那么这它的带宽就是两者相减的结果,即 0.2 KHz, 或者 200 Hz. 粗略一点理解,我们可以认为它包含了 200 条正弦波。
在上面的例子中,如果带宽 B = 200 Hz, 信噪比为 63:1, 那么这个信道的容量就是:C = 200 * log( 1 + 63) = 1 600 bit/s。
参考: