论文部分内容阅读
随着计算机网络和通讯技术的发展,通讯设备通常配备多个网卡接口,例如智能手机和便携式电脑都配置有WiFi和LIE等多个网卡。然而传统的单路径TCP连接只使用单个的网卡和链路进行传输,导致剩余的接口和链路资源空闲以及单路径传输的性能问题。为了实现多网卡多链路的同时传输,互联网工程任务组提出并标准化多路径传输控制协议(MPTCP),它将单一的TCP数据流划分为多个子流,在不同的链路传输。由于链路多样性,MPTCP 比单路径TCP更加可靠,并且能充分利用网络资源。然而在多链路网络,特别是异构网络中,每条链路在带宽、往返时延等服务质量指标上存在较大差异,使得MPTCP面临缓冲区膨胀、带宽利用率低、队头阻塞、吞吐量下降、应用延迟增大等性能问题。拥塞控制和数据包调度是MPTCP的基本机制,同时是MPTCP设计和实现的核心。因此,优化MPTCP的传输性能,需要考虑以下两个问题:(1)拥塞控制问题,即如何为每个子流设置合适的拥塞窗口。子流的拥塞窗口直接影响子流的吞吐量,对MPTCP的总吞吐量等服务质量指标有着重要影响。(2)数据包调度问题,即如何在各个子流间进行数据包调度。MPTCP数据包调度算法决定了子流之间的数据流量分配。一个优秀的MPTCP数据包调度算法能够适应复杂多变的网络环境,优化子流之间的流量分配,提高MPTCP的性能。针对上述问题,本文分析了传统启发式拥塞控制算法和数据包调度算法的缺陷:基于特定或简化的网络模型,采用固定的控制规则,在复杂多变的动态网络中,难以实现最优的拥塞控制和数据包调度。为了从根本上解决上述问题,本文提出并实现基于强化学习的MPTCP拥塞控制算法SmartCC和基于深度强化学习的MPTCP数据包调度算法ReLeS。SmartCC把拥塞控制过程建模为马尔可夫模型,使用强化学习技术,训练生成不同网络环境下的最优的拥塞控制规则。实验表明:SmartCC在总吞吐量、时延抖动等方面均优于现有MPTCP拥塞控制算法。ReLeS用人工深度神经网络表示MPTCP数据包调度策略,训练生成各种网络环境下的最优数据包调度策略。实验结果表明,对比现有启发式MPTCP数据包调度算法,ReLeS能自适应多种动态的网络环境,综合优化吞吐量、应用时延等指标,有效缓解队头阻塞和缓冲区膨胀等问题。