高时延混合网络拥塞控制仿真实验设计
2020-09-14马琛璐唐俊勇
马琛璐, 唐俊勇
(西安工业大学计算机科学与工程学院,西安710021)
0 引 言
随着网络技术在能源装备、工业互联、边缘与云计算中的发展与融合,极大地促进了智能化生产、运维服务和供应链的集成。传统单一的网络结构已经无法满足高速发展的网络环境,随之产生的是由有线、WiFi、无线传感、LTE和卫星网络等多种异构网络结合而成的混合网络[1-2],作为一种新型网络形式,以其覆盖面广、网络兼容性好和转发灵活等优势,被广泛应用在各个领域。混合网络由于具备有线、无线信道和高速、低速网络结合的特点,决定了其各链路的延迟并不均衡,尤其是存在卫星网络这种高时延链路,使得网络带宽被低时延链路大量抢占,不仅造成了混合链路传输不公平,还导致与高时延链路所在的全部路径传输利用率不足。解决高时延混合网络的传输不均衡问题成为近年来研究的热点。
目前研究主要是提出新的拥塞控制算法[3-5]来解决传统TCP协议在混合网络中的传输问题,在解决高时延混合网络传输的公平性和与其他拥塞机制共存的友好性问题上取得较好的效果,并开始应用在相应的传输环境中。其中TCP Hybla[6]算法以其明显的优越被应用在高延迟卫星网络中。避免了以TCP NewReno为代表的丢包触发机制激进的数据发送模式,从而占用高延时链路带宽的不公平性;提高了以TCP Vegas[7]为代表的延迟拥塞机制的响应灵敏性,较好地解决了高时延混合网络各链路传输的不友好性。
TCP Hybla已经应用在实际环境中,现实中混合网络的搭建费用昂贵且TCP拥塞控制理论复杂抽象,难以直观地在课堂教学中表现出来。针对这些问题,本文利用NS-3(Network Simulator-3)[8]网络仿真软件灵活、便捷地设计高时延混合网络仿真实验,在节约实验成本的基础上,采用NS-3中的追踪机制和流量监测机制高效,便捷地将TCP拥塞控制中拥塞窗口(Congestion Window,CWND)和吞吐量(Throughput)的变化过程记录下来,并通过模块调用以文件的形式保存,便于进行实验研究。
相较于传统的教学实验在拥塞控制部分黑板式教学[9-10]的缺陷,NS-3能够针对高时延混合网络的各链路时延不同的特点,观察在混合网络结构中,传统的TCP拥塞控制机制与TCP Hybla机制的性能优劣以及细节变化,突破了原有实验教学难以直观分析抽象难懂的TCP理论的局限性。同时,该实验可用于混合网络的相关教学和研究,并可进一步开展TCP拥塞控制协议的一系列实验教学。
1 NS-3仿真实验平台
1.1 NS-3仿真软件简介
NS-3旨在提高实验效率,节省实验成本,通过忽略底层细节进行大规模网络的相关研究,缩小现实网络与实验结果的差距。利用该软件进行混合网络的拥塞控制相关教学实验,可以帮助学生更好的理解理论知识,并有助于相关研究人员对新的网络协议进行实验和验证,方便研究人员及时对新的协议进行改进、调整。该软件用于实验教学中,可有效提升教学质量,培养学生独立思维能力。
图1所示为NS-3仿真[11]实验平台的基本搭建流程,根据相关网络结构编写模块源码,若满足仿真需求直接运行脚本文件,否则根据需求修改合适的源码和模块,并重新编译运行,并将仿真结果以文件的形式输出,收集相应的数据,对仿真结果进行分析。
图1 NS-3仿真平台的基本搭建流程
1.2 NS-3实验平台搭建
本文采用NS-3中的Internet模块设计传输层TCP协议性能分析仿真实验[12]。在仿真中需要为网络中的各节点设置相应的参数,在NS-3中节点被视为裸机,需要添加相应的网卡、TCP/IP协议栈以及Application。图2所示为NS-3中的Internet模块架构。
图2 NS-3中Internet模块架构
各模块的具体含义:
Internet 在NS-3中的TCP/IP协议栈,包含了所有传输层以及网络层的协议算法,是网络仿真的核心模块;
TcpSocket 主要用来定义基本的TCP属性,是一个虚拟类变量;
TcpSocketBase TCP协议的拥塞控制和窗口管理算法的核心类,是NS-3中实现拥塞控制仿真模拟的关键;
TcpTx 获取TcpSocketBase产生的Tx trace变量,并接收应用层传递的数据分组;
TcpRx 通过TcpL4Protocol接收来自网络层的Rx trace变量;
TcpL4Protocol 用于创建TcpSocketBase对象,是传输层与网络层的接口,负责把TcpTx产生的数据传递给网络层。
在NS-3中,当仿真程序开始时,由客户端应用程序通过配置了跟踪变量的SendApplication协议发送TCP分组,传递给Internet模块的TcpSocket类,通过与IP地址对应的端口号中的TcpTx变量继续发送TCP分组,在TcpL4Protocol创建的TcpSocketBase类的拥塞机制控制下,将下层所能容纳的最大TCP分组传递下去,最终在接收端回调函数的作用下,通过配置接收跟踪变量TcpRx将所接收的分组信息回传给PacketSink。
2 TCP Hybla算法原理分析
在异构网络中,网络资源的可用性通过CWND来探测评估。理想状态下(即不丢包),每当发送方发送一个最大报文段(Maximum Segment Size,MSS),接收方会反馈一个确认号(Acknowledge character,ACK)作为响应。标准的TCP拥塞控制算法TCP NewReno在慢启动(Slow Start,SS)阶段,CWND 值呈指数变化,而在拥塞避免(Congestion Avoid,CA)阶段,CWND值呈线性变化。
为便于观察往返时延(Round-Trip Time,RTT)的变化对拥塞窗口的影响,将TCP NewReno的离散动态模型进行连续化处理,得到CWND随时间变化的评估模型式:[13]
式中:tλ= RTT lbλ;λ 为慢启动阈值(Slow Start Threshold,ssthresh),也是进入CA阶段的起点。由此可以看出,在TCP NewReno中受RTT的影响,较长的RTT会使W(t)减小,使CWND数量减少,降低吞吐量。为使较长的RTT获得与短的RTT相同的吞吐量,TCP Hybla算法原理通过平衡因子ρ使CWND摆脱对RTT的依赖,使得在高时延的网络中,TCP Hybla仍然具有良好的性能。
其中ρ=RTT/RTT0,RTT0默认为25 ms,在NS中默认为50 ms。引入平衡因子ρ后的TCP Hybla的CWND 表达式[14]为:
由BH(t)=WH(t)/RTT 可得TCP Hybla的动态吞吐量模型[15-16]:
从式(2)、(3)可以看出,TCp Hybla算法的CWND和吞吐量与RTT无关,只与RTT0这一参考常量相关。
此外,由式(1)、(2)对比可知,在高时延的网络中,TCP Hybla比TCP NewReno算法更容易获得更大的CWND,也可更快地获得较高的吞吐量。这表明,在相同传输时间下,TCP Hybla拥有更好的调控性能,同时也说明了TCP Hybla更适用于包含卫星网络在内的高时延的混合网络。
3 基于NS-3的仿真实验
为了验证TCP Hybla算法原理优于传统的TCP NewReno算法并提供其吞吐量和CWND变化的相关实验结果,本文使用NS-3模拟器进行仿真。仿真网络结构如图3所示,由8个节点和R1,R2两个路由组成的哑铃状混合网络拓扑。
图3 混合网络结构
哑铃状网络结构符合混合网络多链路共享瓶颈带宽的特点,可有效地模拟混合网络有线、无线并存争用网络带宽的情况。其各链路结构具体仿真参数见表1。
表1 网络结构仿真参数
仿真的主要目的是通过追踪机制和流量监测机制追踪数据来观察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的变化,以此验证TCP Hybla算法在高时延混合网络中的公平性、友好性及响应灵敏性。在NS-3中添加追踪和流量监测机制设置高时延混合网络仿真场景的基本流程为:
(1)搭建高时延混合网络结构;
(2)为各网络节点设置变量属性和参数,具体参数见表1;
(3)分配IP地址给各个节点;
(4)配置MyApp函数,并添加Trace变量用于记录CWND的变化;
(5)为追踪变量设置回调函数,将CWND的变化以文件的形式保存下来;
(6)添加流量监测和事件调度函数,统计相同时间间隔内。混合网络各链路吞吐量变化;
(7)为各个节点设置运行的始末时间,实时调控各链路的流量。
完成上述设计流程,可以建立一个完整的高时延混合网络场景用于实验教学,使学生可以更好地理解复杂抽象的TCP拥塞控制机制,并通过修改仿真时间、信道时延等仿真参数以获得不同的仿真结果。通过设置追踪变量和流量监测机制将仿真结果进行相关计算并写入相关的文件中,利用Oringin软件对仿真结果绘图分析。
4 实验结果分析
为直观观察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的变化并评估TCP Hybla的性能,采用7.5 Mb/s的瓶颈带宽和1 Mb/s的4条支路带宽,并设置时延为2.5 ms的3条链路和时延为100 ms的一条高时延链路,构造混合网络结构,模拟高时延卫星链路和普通网络链路的状态。
在RTT 分别为25、50、100、200 ms的状态下,由TCP Hybla理论可得CWND随时间变化的趋势如图4所示。
图4 理论Hybla算法CWND
理论上是每经过一个传输轮次增大发送窗口数,而NS-3仿真中发送窗口数量由具体仿真的网络容量决定,在NS-3中仿真可得TCP Hybla的CWND随时间变化的仿真结果如图5所示。
图5 NS-3仿真Hybla算法CWND
仿真结果表明,在高时延混合网络里,TCP Hybla算法不会受RTT的影响而降低CWND,而且随着RTT的增大,CWND越大,仿真结果与理论结果基本一致。
4.1 单个TCP算法场景:Hybla公平性
时延差异是混合网络的一个重要特点,主要影响TCP拥塞控制算法的公平性,本节利用哑铃网络结构评估Hybla算法和NewReno算法,为了确保公平性,仿真设定在丢包率为零(即仅有拥塞丢包)的理想状态下,4条TCP流同时启动,共享瓶颈带宽,仿真时间持续50 s。
图6为在NewReno算法下,3条低时延流与1条高时延流的对比,可以清晰的看到,从启动开始,1、2、3号低时延流快速抢占瓶颈链路,分别占带宽的0.27、0.28、0.30,几乎均分瓶颈链路,而4号高时延流的带宽几乎为零。从图中可以看出,只有当1、2、3号流逐渐减小,并趋于稳态时,4号流才有机会分享带宽,并且缓慢的增长,直到最后1,2,3号流均稳定在吞吐量为0.30附近,4号高时延流的吞吐量才增长到0.11。恰好验证了在标准的TCP拥塞协议下,较大的RTT会遭受TCP连接的严重惩罚,体现了NewReno算法在不同RTT的链路下的不公平性。
图6 New Reno算法不同时延吞吐量
为了验证Hybla算法不受RTT影响的特性,与图6的标准TCP拥塞控制协议进行对比,图7是在Hybla算法下,4条TCP流同时启动的吞吐量分布情况,由对比可见,4号高时延流一开始就快速抢占带宽,同时1、2、3号低时延流均逐渐减小,吞吐量都保持在0.28~0.325之间,并在第10 s快速的达到吞吐量为0.25的稳定状态。而4号高时延流在第10 s时也迅速增长至0.25,并在10 s之后逐渐稳定在0.26附近。
图7 Hybla算法不同时延吞吐量
这是由于Hybla算法里的拥塞系数ρ,使得Hybla算法公平地摆脱了RTT的依赖,大大优化了因受RTT困扰而处于劣势的高时延链路的性能,这也表明了在高时延链路中Hybla算法的公平性更好。
图8则是为体现Hybla算法的优越性,设置仿真时间为150 s,在1、2、3号低时延流启动20 s后,逐渐进入稳定状态时再启动4号高时延流。由图可见,4号高时延流并未打破原有3条流的稳定状态,而是快速增长至吞吐量为0.25附近,与其他3条流一起趋于稳定,并均分带宽。
图8 Hybla稳态吞吐量
4.2 两个TCP算法场景:Hybla灵敏性及友好性
图9 为容错率为0.1%,时延为100 ms的高时延链路中TCP Hybla算法和TCP Vegas算法的CWND变化,可见在高时延链路中TCP Hybla的CWND发送量远高于TCP Vegas算法,由此可说明,在高时延链路中,TCP Hybla的响应灵敏性。
图9 TCP Vegas和TCP Hybla算法CWND
为反映TCP Hybla算法的混合网络中与其他算法之间的友好性,在混合网络结构中令1、2、3号低时延流为TCP NewReno,4号高时延流分别为TCP Hybla和TCP Vegas,将2次运行结果进行对比,如图10所示。虽然TCP Vegas在高时延链路中的性能低于TCP Hybla,但是带宽并没有被完全抢占,稍低于适应高时延链路的TCP Hybla,约占20%,而TCP Hybla和TCP NewReno算法均稳定在25%左右,这恰好说明了TCP Hybla算法友好性。
图10 不同TCP算法的吞吐量
5 结 语
本文对在NS-3中搭建高时延混合网络结构仿真的过程进行了详细描述,在仿真过程中运用追踪机制和流量监测机制对仿真结果进行输出保存。实验不仅仿真了TCP Hybla算法在高时延混合网络中的吞吐量和CWND的变化,还设计实验对TCP Hybla在混合网络中的公平性,友好性以及响应灵敏性进行了评估,仿真结果与理论贴合度较高,实验设计成功。可在此实验的基础上进一步进行混合网络的研究与教学工作以及一系列相关的TCP拥塞控制教学实验设计。