[Home]   [TOC]

Study_Network_TCPTransferAccelerate  
TCP传输加速
Updated Nov 17, 2013 by jht5...@gmail.com
  • Loss-based (基于丢包的拥塞判断及处理)– 以丢包来判断拥塞并调整传输速率
Loss-based 的 TCP 加速技术沿袭了主流 TCP 以丢包来判断拥塞并调整传输速率的方式。其对传统 TCP 的改进主要是通过增大初始拥塞控制窗口(Congestion Window,CNWD),同时在通过丢包判断出现拥塞后使用比传统 TCP 更激进的方式恢复 CNWD,以期减少拥塞对速率的影响。尽管这些改进在很多情况下确实能够提升速率,但 Loss-based 的 TCP 加速技术在原理上具有以下两个严重问题:
  1. 将丢包作为拥塞发生的信号很容易误判,导致传输速率下降,带宽得不到有效利用。现代很多网络会产生非拥塞因素的丢包,特别是对无线网络,如信号被干扰等因素导致的丢包并不意味有拥塞发生。
  2. 现代网络设备通常队列比较深,当拥塞发生时队列变长,延迟显著提高,但丢包迟迟不会发生。Loss-based 的 TCP 加速机制将继续高速传输直到队列完全充满,往往导致大量数据包丢失。这不但加重路径节点拥塞,而且需要花更长时间从大量丢包中恢复过来,经常会导致传输阻滞。
Loss-based TCP 加速包括在最新 Linux 系统中的 Cubic TCP 等。
  • Delay-based(基于延迟的拥塞判断及处理)– 以往返延迟(Round Trip Time, RTT)变化来判断拥塞并调整传输速率
Delay-based 的 TCP 加速技术克服了 Loss-based 的主要缺陷,在原理上采用延迟的变化来判断拥塞程度并相应调整传输速度。这一机制更符合现代网络的特点,能够在发生拥塞网络节点的队列开始堆积时就及时下调传输速度,避免拥塞恶化,减少甚至避免丢包的发生。同时,Delay-based 的 TCP 加速技术不将丢包当作拥塞,在非拥塞因素发生的丢包时可以保持较高的速率。因此,设计优良的 Delay-based TCP 加速技术比 Loss-based TCP 加速技术在传输速度上有了显著的提升。尽管如此,Delay-based TCP 加速技术在使用中逐渐暴露出以下主要缺陷:
  1. 当 TCP 连接的路径上发生拥塞节点的队列很浅时,延迟并不提高,拥塞体现为阵发的丢包。Delay-based 的 TCP 加速技术感应不到这种拥塞,会继续高速发送数据包,从而导致持续大量丢包,之后的丢包恢复期会很长,导致传输速率显著降低。
  2. 当网络路径本身的延迟就变化很大时,Delay-based 的 TCP 加速技术会将非拥塞因素导致的延迟增加误判为拥塞并转入拥塞处理,从而导致没有必要的压低传输速率。包括移动互联网在内的无线网络延迟变化就很频繁;一些网络设备(特别是安全设备)也可能不定时地引入额外的数据包处理延迟。
FastTCP 是一个典型的 Delay-based TCP 加速。
  • Learning-based(基于学习的拥塞判断及处理)– 通过对路径上传输历史的学习动态判断拥塞并调整传输速率
不论是 Loss-based 还是 Delay-based 的 TCP 加速技术都采用静态算法:基于对互联网流量模型的假设前提采用固定的拥塞判断及恢复机制。但网络的发展趋势是流量特征越来越复杂并难以预测。因此,Loss-based 和 Delay-based 的 TCP 加速技术常常只在其前提假设成立的特定网络场景下有效,并且随着传输的进行,网络路径特征发生变化,效果也会起伏不定,有时甚至出现反效果。为此,AppEx 研究设计的新一代 Learning-based TCP 加速技术采用网络路径特征自学习的动态算法,基于每一个TCP 连接实时观察、分析网络特征,根据学习到的网络特征随时调整算法来更准确的判断拥塞程度、更及时地判断丢包,从而更恰当的进行拥塞处理并更快速的进行丢包恢复。这一设计从原理上克服了静态算法无法适应网络路径特征变化的问题,保证了在各种不同网络环境及频繁变化的网络延迟、丢包特征下加速效果的持续有效性。

参考资料

[1]. http://www.appexnetworks.com.cn/white-papers/Zeta-TCP.pdf