- 多径TCP
在多径TCP中运行拥塞控制算法的最早想法是使用一种非耦合的拥塞控制机制[18]:即简单地将单径的Reno[19]应用到每个子路径中,每个子路径独立地进行窗口大小更新。然而,测量表明,这种在多径TCP的每条子流中独立运行Reno[19]的算法对在共享链路上的单路径TCP流可能是不公平的[2]。因此[4]提出了一种EWTCP的算法,该算法用一个增量参数来控制拥塞窗口的增加,然后基于[20]中的吞吐量计算公式计算得到一个能够实现多径TCP与单径TCP的公平竞争的增量参数。虽然EWTCP实现了对单径TCP流的公平,但是它却并没有充分使用网络资源,在确保对TCP的公平性同时牺牲了自身的吞吐量。在[5]中提出了一种耦合的多径TCP拥塞控制算法COUPLED,该方法基于将流量转移到最不拥塞的链路上去的核心思想来实现对链路的高效利用,但是这种方法仅根据丢包情况进行对链路状态的判断,因此在RTT相差很大的异构链路上,该方法常常会导致多径TCP的性能很差。同时,由于它完全放弃了对最拥塞的链路的使用,导致了它此后无法及时发现在这些链路上的变化[1]。
为了实现在瓶颈链路上与单径流公平竞争的同时保持多径TCP自身良好的性能,一种半耦合的“链接性增加算法”(LIA)在[1]中被提出并随后被IETF在[6]中标准化为多径TCP的默认拥塞控制算法,[1]中提出了多径TCP拥塞控制算法中应该遵循的原则:
1)一个多径TCP流应至少获得与最佳子路径上的单路径连接相同的吞吐量;
2)对于多径TCP流的子流集合的每个子集,该子集中所有路径的吞吐量和不应大于该子集中单个子路径上的最大吞吐量。
将它们作为约束条件,计算出的增量参数可以在理论上实现与所有子路径上的单路径流公平竞争的同时保持自身性能。
Khalili等人观察到由于LIA中拥塞窗口调整不当导致多径TCP中的资源分配不是帕累托最优的,他们提出的“机会链接性增加算法”(OLIA)[3]是对LIA算法的修改,可以实现最佳的资源池并避免LIA的公平性问题。 “平衡链路自适应”(BALIA)[7]是另一种目前被广泛采用的提议,它试图平衡TCP友好性和吞吐量稳定性,在LIA和OLIA的优缺点之间取得了平衡。
除了上述的方法以外,也有基于时延的多径拥塞控制算法被提出[10],它通过在每个子流上使用基于延迟的算法或通过使用专门设计的解决方案来实现多径的拥塞控制。作为著名的TCP Vegas [8]的扩展,Xu等人在[9]中为多径TCP提出了wVegas,它采用分组排队的延迟作为拥塞信号,实现了细粒度的负载平衡。同样的,也有基于链路容量的方法在[11],[12]中提出,以及在[13]中提出了针对跨层模式的方法。但是这些方法都未经过测试,并且仍在开发中[19]。
- 基于学习的多径TCP
在过去的几年中,机器学习已成为网络和协议设计者的重要工具[14];自TCP Remy[15]提出以来,基于机器学习的单径TCP的拥塞控制的研究相继开展。并且已经有许多拥塞控制机制被提出。但是在多径TCP的拥塞控制上,基于学习的方法尚未被广泛研究。
Xu.等人在[16]中第一次使用新兴的深度强化学习方法解决了多径TCP中的拥塞控制问题。该方法为所有活动的多径TCP流和所有子路径共同设置拥塞窗口,并且创新性地将LSTM,actor-critic网络集成在一起进行端到端的模型训练,以减轻多径TCP环境下流的突然加入和终止带来的影响。但是该算法没有对来自多主机的多径TCP流进行竞争的情况进行测试。Li.等人在[17]中针对现有的异构链路上的多路径拥塞控制机制存在的许多如缓冲膨胀,带宽使用不理想性能问题提出了一种基于学习的SmartCC拥塞控制算法,来处理异构网络中多条通信路径的多样性。SmartCC采用异步的强化学习框架来学习一组拥塞规则,使发送方可以观察环境并采取措施来适应性地调整子流的拥塞窗口,以适应不同的网络情况。但是,SmartCC没有考虑TCP友好性问题,可能无法在同一瓶颈上与传统TCP一起很好地发挥作用。其次,SmartCC仅在模拟平台中进行部署和测试而没有在实际系统中进行部署并测试。
[1] D. Wischik, C. Raiciu, A. Greenhalgh, and M. Handley, “Design, implementation and evaluation of congestion control for multipath TCP,” in Proc. 8th USENIX Conf. Netw. Syst. Design Implement. (NSDI), Boston, MA, USA, 2011, pp. 99–112.
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。