tags:
- Networks
Networking Delay
现如今,我们的网络采用的是分组交换的网络。与之相对的,是线路交换网络。
在线路交换的网络中,未来实现端到端之间的通信。往往需要在通信双方之间建立一条专用的物理通信路径。这条链路会在整个通信过程中被独占,直到通信结束。
电话线路就是线路交换的通信方式,好处是路径固定、实时性强(因为一整条链路上的资源都被一条通信连接所霸占)。坏处就是由于独占带宽,可能会造成网络资源浪费。
为了提高资源的利用率,线路交换中的某一条链路可以通过多路复用技术共享链路。常见的多路复用方式有:
我们用频分多路复用举例子,比如说,同一条线路,链路的频谱(Frequency spectrum) 被不同的链接分成多个频段,每个频段都可以用作某一链接的专用频段。如电话线网络通常占有4kHz的频带宽度,FM广播站的频谱可能在 88 MHz-108 MHz 之间,每个广播站都有自己专用的带宽。
再谈谈时分多路复用方式,时间被分成固定持续时间的帧(frame),每一帧又被划分成多个时隙(slot)。当网络通过链路建立某一链接时,这个链接就会专用每一帧时间片内固定位置的时隙。
不同于线路交换对线路资源的独占,分组交换追求对线路资源的共享。分组交换基于存储转发技术,发送方将数据分割成一个个的 packets (大小受 MSS 的限制) 独立传输,Packets 中会包含目标地址和源地址等信息。随后,packets 在网络核心中逐路由器地传递,每个节点在收到 packets 后,会存储到缓冲区并将其转发到下个节点。
因为不涉及对链路的独占,发送方发送的多个报文实际上可以通过不同的路径到达接收方。分组交换是通过一系列的网络协议实现的,比如负责路由转发的网络层协议 IP,提供端到端通信的传输层协议 UDP 和 TCP,和提供物理链路传输方式的数据链路层协议 Wi-Fi 等。
由于分组交换存储转发的特性,packet 每到一个路由器时,都会先把收到的 packet 存储到一个 buffer queue 中。可能发生什么问题呢?因为路由器的处理能力有限,如果数据量过大,就可能发生缓冲区溢出的问题,从而导致丢包(可靠性没有线路交换大)。
同样地,由于路由器的存储转发,每个 packet 在到达 buffer queue 时都需要等待前面的 packets 传输完成之后才能被路由器转发,引入了一个排队的时间。如果一条线路中的每个路由器的 buffer queue 都同时过载,就可能造成这一条线路的拥塞(congestion),导致网络吞吐量急剧下降。
由于不同的分组是独立传输的,即不同的分组可能通过不同的路径到达接收端,导致顺序错乱。
以上的这些问题都发生在网络核心。为了解决这些问题,我们引入了网络分层的思想。网络核心由网络层 IP 协议进行管理,通过分层的方式,我们可以在网络层的上层——传输层对这些问题进行规避或修补。
比如说我们可能会遇到缓冲区溢出的问题。这种情况下,传输层(TCP)就可以通过流量控制或拥塞控制机制动态调整发送的速率,缓解网络核心的拥堵。在网络层,IP 其实也可以通过动态路由分散流量,避免单一路径的过载。
对于网络核心不能提供的按序到达,我们可以在传输层维护一个缓冲区。通过使用序列号标记发送的数据和在缓冲区重排分组确保分组能够按正确的顺序到达应用层。
我们继续按照不同的网络交换方式来解答不同的网络时延。
在线路交换中,通信前会建立独占的端到端的物理连接。这时,数据直接通过固定的路径进行传输,并不会出现分组交换那样的存储转发。所以,在线路交换中,我们不需要考虑数据在路由器节点之间的排队时延。虽然我们仍然需要考虑连接建立的延迟,但是连接建立只发生在通信的开始。
所以,在线路交换网络下,总时延为:
传输时延指的是将数据从发送端转换为电/光信号并送到链路的时间。
中继时延指的是中间节点对数据的处理时间(信号放大、光电转换等)。
传播时延指的是数据信号在物理介质中从发送端到接收端的传播时间。
现代的计算机网络(网络核心)往往采用分组交换的方式。这就导致了不同的 packet (分组/数据包) 从一个 Host 传给另一个 Host 的过程中,数据包会经过一个又一个路由器节点。而分组交换是基于存储转发技术的,所以在每个路由器节点中,都会发生数据包排队和路由器转发的时延。
所以在分组交换网络中,总时延为:
排队时延是指分组在缓冲区中等待被转发的排队时间(主机上也可能发生排队时延)。
处理时延是指 IP 网络层检查分组头部、查找路由表、校验数据(CRC校验)所需的时间。
传输时延是将分组的所有比特推送到链路上的时间,取决于分组长度和链路带宽。
传播时延是信号在物理介质中从发送端到接收端的传播时间。
你可以发现,总时延和中间节点是数量是紧密相关的,为了减少时延,我们可以优化路由策略,减少中间节点的数量。CDN 就是一种行之有效的方法之一。