2020.12.23日上午9:40-10:40,在信电楼204会议室召开了主题为“IP网络中的拥塞控制”的学术沙龙。主讲人金蓉老师以拥塞控制机制演化的历史为线索,梳理IP网络中已有的拥塞控制技术,同时探讨基于深度强化学习的SDN数据中心网络的拥塞控制方法。金蓉老师的讲述清晰有序、由浅入深,参加讲座的学生的思路随着金蓉老师的讲解逐渐被打开,充分了解拥塞控制的前世今生。
金蓉老师首先是介绍了拥塞控制的意义,提到拥塞是一种持续过载的网络状态,拥塞的发生是Internet体系结构固有的属性,用负载和吞吐量的关系来介绍这种属性。当负载较小时,吞吐量与负载之间呈线性关系;到达膝点knee之后,随着负载的增加,吞吐量的增量逐渐变小;当负载越过崖点cliff之后,吞吐量却急剧下降。为了最大限度地利用资源,网络工作在轻度拥塞状态时较为理想,但这也增加了滑向拥塞崩溃的可能性。因此需要一定的拥塞控制机制来加以约束和限制,这是研究拥塞控制最本质的意义。
接下来,金蓉老师介绍了在TCP网络中实现拥塞控制的主要思路和方法。在Internet设计的初期,对于拥塞的控制是通过传输控制协议TCP中端到端基于滑窗的流量控制完成的。流量控制是实现拥塞控制的一种技术实现途径。1988年,van Jacobson 在论文中指出了TCP在拥塞控制网络拥塞方面的不足,并提出了“慢启动”(slow start)和“拥塞避免”(congestion avoidance)算法。二者都是通过拥塞窗口(cwnd)来实现拥塞控制。这两个结合起来就是AIMD算法,是使用最广泛的算法。当拥塞窗口达到设定的门限(ssthresh)时,拥塞窗口就会呈加法增大,当检测到网络中出现拥塞后,就将拥塞窗口的门限减小为拥塞值的一半,再重新开始慢启动算法。拥塞避免算法不能够完全的避免网络拥塞,通过控制拥塞窗口的大小只能使网络不易出现拥塞。基于此提出了一系列改进算法:TCP Tahoe、TCP NewReno、TCP Vegas等。
然后,金蓉老师又介绍了另一种拥塞控制机制。在Internet技术发展的初期,设计者遵从了一个技术理念:所有与流相关的状态都应该尽量在终端系统是实现和维护,这一指导原则的直接结果就是拥塞控制的绝大多数功能都是在主机端实现的,对网络中间节点所能发挥的作用考虑较少。就拥塞控制而言,网络中间节点有可能更即时,甚至提前准确了解网络的拥塞状态,并依此实施有效的资源管理策略,使网络能有效地避免拥塞,或尽早从严重的拥塞状态中恢复过来。支持ECN(显式拥塞通告,Explicit Congestion Notification)的主机和路由器之间的通信,可以通过TCP包中的保留位ECN的不同置位来表示当前链路是否拥塞。该方法与AQM(主动队列管理,Active Queue Management)结合,拥塞检测不再是唯一的分组丢弃,而可以采用标记分组来通知信源减速。
紧接着,金蓉老师提到了上述中间节点增强机制的局限性:在传统网络中,中间节点增强机制很难实现,因为不同主机、路由器和其他中间节点所支持的协议不尽相同,所以存在一定的困难。数据中心网络相比于传统因特网有两大显著特点:单一控制域和同构网络架构,能够保证网络中各个节点使用的协议是统一可控的,能够对网络设备进行规范化统一的配置。金蓉老师提到三种主要的机制:基于端主机的拥塞控制、网络仲裁机制、交换机优先级调度。得益于软件定义网络(SDN)的发展,在数据中心网络中采用网络仲裁机制进行拥塞控制成为我们研究的主题。通过集中控制器来收集网络中的设备信息和网络状况再由控制器作出相应的调度指令。在这种情况下,我们可以专注于拥塞控制算法的研究,金蓉老师介绍了将深度强化学习算法应用到拥塞控制算法的研究现状及发展前景。
本次学术沙龙,金蓉老师由浅入深、由远及近地介绍了网络拥塞控制机制的发展,不仅让学生了解到了拥塞控制的本质,也了解到了拥塞控制目前的研究现状,拓宽了学生对拥塞控制研究发展的思路。