论文摘要
由于网络资源和网络流量分布的不均衡,拥塞的发生是互联网的固有属性。为了保证互联网的稳定运行,必须执行拥塞控制。拥塞控制算法大致可以分成两类:源算法和链路算法。链路算法,如主动队列管理算法(Active Queue Management, AQM),在网络设备中执行,作用是检测拥塞的发生,并将拥塞信息反馈给用户;源算法,如TCP,在主机及网络边缘设备中执行,根据反馈信息调整数据发送的速率。基于端到端的思想,传统的拥塞控制机制多依赖TCP来实现。随着互联网的发展,传统的拥塞控制机制暴露了许多局限性。如TCP的窗口减小方式不适合流媒体应用,TCP在高速网络上的性能严重下降等。针对这些问题,本文研究了拥塞控制的源算法、效率与公平控制器的解耦、高速与无线混合链路上的显式拥塞制算法、拥塞控制建模以及稳定性分析。本文的主要研究内容如下。本文提出了基于带宽测量的温和慢启动算法(Gentle Slow Start, GSS)。TCP的慢启动过程存在两个缺陷:首先,TCP在建立新连接时盲目设置慢启动门限;其次,在慢启动后期,TCP的指数窗口增长方式过快。GSS解决了这两个问题。对一个新连接,GSS通过网络测量技术获得其可用带宽,然后根据这个带宽设置合适慢启动门限值。在超时导致的慢启动中,GSS使用一个自适应的临界值,当拥塞窗口超过此值时,改用一种温和的窗口增加方法,平滑过渡到拥塞避免阶段。在R. Sastry和S. Lam等人的工作基础上,假设所有的数据流获得相同的反馈,本文总结并证明了几个单播拥塞控制中公平性和TCP友好性的定理。这些定理是以拥塞窗口的增加和减小函数的形式给出的。运用这些定理,通过选择不同的窗口改变函数,可以定制适合不同用应用程序的拥塞控制算法,我们以流媒体拥塞控制进行了说明。受“跨层设计”思想的启发,本文提出了“定制拥塞控制策略”的概念,即应用层可以选择其拥塞控制策略,并探讨了可实现性的一些问题。本文深入分析了XCP(eXplicit Control Protocol)和VCP(Variable-structure congestion Control Protocol)两种协议的效率与公平控制器解耦方式。XCP在网络设备中同时完成效率和公平控制,需要在端系统和网络之间传递较多的信息。在每个控制周期,两种控制器都会被执行一次。VCP的效率控制和公平控制都是在端系统执行的,网络和端系统之间交换的信息很少。在每个控制周期,只有一个控制器被执行。进一步,我们指出了VCP这类TCP+AQM风格协议的公平性远逊于XCP的原因是公平控制器执行的次数过少。通过增加公平控制器的执行次数,我们提出了“公平VCP”(FVCP)算法,有效提高了VCP的公平性。本文提出了几种“自适应的VCP”(AVCP)算法。通过将针对高速链路的VCP扩展至无线链路,AVCP可以同时适应于高速、无线链路以及这两种链路混杂的情况。AVCP是一种显式拥塞算法,其核心思想是通过网络反馈的“路径负载因子”来推测数据包的丢失是拥塞导致的还是的传输错误导致的,然后决定是否减小拥塞窗口的大小。显式拥塞算法中,网络需要链路的带宽来计算反馈信息。但是对于无线链路、竞争型的以太网等,其可用带宽难以准确获得。从控制理论的角度,我们指出带宽估计错误可能导致显式拥塞算法不能取得预期的性能。本文基于优化理论深入研究了拥塞控制的建模与稳定性。我们从物理意义上纠正了Kelly模型中的几个错误,并在Zhang等的工作基础上提出了一个通用的拥塞控制模型:GKJZ(General Kelly-Johari-Zhang)模型,可适应多种拥塞控制算法。GKJZ采用时延各不相同的N维差分方程来描绘拥塞控制的动力学行为。在GKJZ模型的框架下,我们对VCP进行了建模,并基于模型给出了VCP局部稳定性的充分条件。与大多数现有的稳定性条件不同,我们的稳定性判据与时延无关且具有非常简单的形式,易于验证。基于这个稳定性条件,拥塞控制算法只需静态的设置其控制参数,不必根据时延动态调整,具有很强的鲁棒性。