差异化可靠传输拥塞控制算法①

2022-08-25 02:51张运栋任勇毛杨望泓徐安民于德雷
计算机系统应用 2022年8期
关键词:控制算法传输速率数据包

张运栋, 任勇毛, 殷 明, 杨望泓, 周 旭, 徐安民, 于德雷

1(中国科学院 计算机网络信息中心, 北京 100190)

2(中国科学院大学, 北京 100049)

3(华为技术有限公司, 北京 100085)

随着网络通信技术的飞速发展和普及, 各种新型网络应用不断涌现, 未来网络正朝着多样化, 智能化方向发展, 各种新型网络应用对于网络提出更精细化的需求. 同时随着数据通信技术进一步发展, 现在互联网存在多种数据传输方式, 每种传输方式都有其自身的特性. 其中有线传输网络主要通过光纤等有形媒质传送信息, 通信容量大、传输距离远、质量高[1], 但部署相对繁琐, 维护成本大[2]. 无线传输网络相对有线方式部署方便, 但可靠度和传输速率较低, 安全性较差, 且易受环境干扰, 如WiFi[3]速率高、但功耗大、安全性差、传输距离中等; 毫米波通信[4]工作频率高、通信容量大、传输质量高、但覆盖距离短、易受障碍物阻挡影响. 由于通信方式多样性, 现在网络链路越来越复杂, 网络异构性越来越强, 链路差异化也越来越大.

互联网应用程序网络传输需求的多样性和通信质量的差异化特性使得传统的两个互联网标准传输协议TCP与UDP所提供的服务并不能完全满足这些应用需求, TCP协议以增加延迟和降低吞吐量为代价来提高可靠性, UDP协议虽然延迟低且吞吐量比较高, 但是没有可靠性保证. 对于部分应用来说, 一方面部分数据包丢失对其服务质量无较大影响, 例如高清视频传输场景中如果丢包率在一定阈值范围内则不影响用户体验[5]; 云游戏场景中如果客户端到服务器丢包率损失为1%以内则用户几乎无感[6]; 天文数据传输中e-VLBI(very long baseline interferometry) 对数据传输容忍丢包率要求小于2%[7], 另一方面TCP在遇到网络丢包或网络拥塞时为保证数据可靠性传输会重传丢失数据包,同时降低发送窗口, 进而影响网络传输效率和带宽利用率.

因此, 本文针对应用差异化的可靠传输需求和不同链路的可靠性, 提出了一种差异化可靠传输协议(differentiated reliable transmission protocol, DRTP), 在满足应用可靠度需求条件下, 最大化提升应用传输速率. 在DRTP协议框架下, 重点设计了一种基于可靠度的新的拥塞控制算法.

1 相关工作

1.1 部分可靠传输协议

为满足应用差异化传输需求, 目前的解决方案主要通过部分可靠传输协议实现. 部分可靠传输协议保证应用程序可以通过牺牲部分传输数据可靠性以提高网络传输速率或者网络吞吐量, 减少延迟抖动等[8].不同应用场景数据对于可靠度需求不同, 如果传输协议可以精确了解应用程序需求[9], 在满足其需求下提高网络服务质量和数据传输速率将是传输协议发展的新方向. 对于这一方向的研究尚很缺乏, 已有的研究主要是基于专用传输协议的改进, 例如基于datagram congetion control protocol (DCCP)扩展的PR-DCCP[10]、基于stream control transmission protocol (SCTP)扩展的PR-SCTP协议[11], 以及基于MPTCP的messageoriented partial-reliability (MO-PR)[12]和receiver-centric partial-reliable multipath transport solution (rec PRMPTCP)[13], 然而这些协议由于基于传输协议改进, 因此适用场景有限.

1.2 拥塞控制算法分析

如何设计合理的拥塞控制算法解决网络拥塞, 减少网络丢包, 提高网络数据包传输效率是网络传输的研究热点[15], 近年来涌现出各种各样的拥塞控制算法,拥塞控制算法旨在提高传输协议性能同时最大化网络资源利用率, 提高网络吞吐率.

目前的拥塞控制算法思路主要是通过检测网络丢包检测网络拥塞, 例如传统的NewReno算法和高带宽长时延的BIC-TCP、CUBIC[16,17]; 基于时延检测网络拥塞, 例如TCP Vegas[18]、TCP Westwood[19,20]等, 及基于时延带宽测量的丢包控制算法, 比如BBR[21]等.

然而目前的拥塞控制算法对于差异化可靠传输协议适用性较差, 差异化可靠传输协议应对于网络出现数据包重传时提高TCP传输速率, 而基于丢包的算法在网络频繁丢包时吞吐率较差; 基于时延的拥塞控制算法在某些环境下RTT延时不能反映网络拥塞状态;基于时延和带宽测量的算法在频繁数据流时性能较差,公平性较低.

总的来说, 现有的部分可靠传输协议沿用TCP拥塞控制算法, 没有考虑部分可靠传输协议中可靠度考量标准, 而目前的拥塞控制算法对于部分可靠传输协议和差异化可靠传输协议并没有完美适配, 因此本文基于可靠度设计一种适应于差异化可靠传输协议的拥塞控制算法.

2 差异化可靠传输拥塞机制

目前拥塞控制协议主要适用于可靠传输协议, 比如TCP. 然而随着未来网络体系与网络协议发展, 为满足应用差异化需求, 差异化可靠传输协议将成为未来研究网络架构的新传输协议. 差异化可靠传输协议机制通过在发送端基于当前可靠度计算判断数据包是否可以丢失, 如果数据包允许丢失则发送通知包并进行窗口前移, 接收端在收到通知包时移动窗口进而发送新的ACK. 因此差异化可靠传输协议保留了ACK可靠传输机制和其拥塞状态机, 由于差异化可靠传输协议并未影响TCP拥塞状态机, 因此基于丢包检测和基于时延检测的拥塞控制算法适用于差异化可靠传输协议.

2.1 差异化可靠传输拥塞控制算法框架

本文设计的差异化可靠传输拥塞控制机制通过检测网络丢包实现, 其主要算法是基于可靠度机制实现不同程度的拥塞避免策略和拥塞恢复策略, 同时基于网络带宽测量合理调控网络窗口阈值, 其实现机制主要分为可靠度满足目标可靠度的拥塞避免策略和拥塞恢复策略, 可靠度不满足目标可靠度的拥塞避免策略和拥塞恢复策略, 以及基于带宽测量调控窗口阈值策略. 差异化可靠传输拥塞控制框架如表1所示.

当代青年的文明素养和思想道德建设离不开传统文化。文化的传递性使中国传统文化得以延续,任何一个国家的建设都无法脱离本民族的优秀传统文化。我们对于当代青少年的培养也离不开中国传统文化的引导与熏陶,传统文化的传承与创新也有赖于青少年的继承与发扬光大。中华传统文化有利于青少年建立正确的人生观、价值观、世界观。有利于培养青少年以爱国主义为核心的民族精神。传统文化对于青少年的思想熏陶和人格塑造都有着不可否认的积极作用,能够帮助青少年丰富文化知识、提升思想境界,学会如何处理好人际关系,对于树立青少年正确的价值取向有着积极作用。

表1 拥塞控制机制设计框架

2.2 可靠度计算

差异化可靠传输与传统传输控制协议区别在于其需要时刻感知当前可靠度与目标可靠度进而判别是否发送通知包, 通过判别当前时刻网络传输可靠度与应用层所需可靠度差别, 进而实现差异化的可靠传输机制.

目标可靠度为应用层定义接口, 传输层感知当前应用所需目标可靠度, 然而目前由于应用的多样性, 目标可靠度采用人为设定, 目前在IP视讯业务中丢包率小于1%时画面流畅、较清晰、声音清晰, 而丢包率为3%时画面较流畅, 运动大时有轻微马赛克; 而对于天文台天文数据传输, 数据完整率基本保障97%–98%以上. 在数据处理时, 一般有明显错误的数据会剔除掉,因为1%–2%的数据基本不影响最后的数据结果精度.因此在实验测试时设置目标可靠度为2%.

当前可靠度为当前时刻数据主动丢失情况, 当前可靠度R的计算公式为当前时刻本周期内未主动丢失数据包与周期内发送总数据包比值, 如式(1)所示:

其中,Psend为 当前周期内发送数据包数,Plost为本周期内已丢弃数据包数,Plost在判别数据包可丢失后实时更新. 当前可靠度计算以滑动窗口内固定数据包个数为周期更新当前可靠度, 目前以1 000个数据包作为固定周期, 每发送1 000个数据包更新网络丢包情况. 当前可靠度进行周期性计算优势在于可以保证此连接数据传输的均匀性丢包分布, 保证每周期数据传输的可靠度. 同时当前可靠度基于数据包粒度实时更新, 方便模块化工作. 当前可靠度一方面反映此连接可容忍数据丢失情况, 反映周期内网络数据传输的稳定程度, 另一方面反映网络进行丢包判别情况, 反映网络当前时刻拥塞程度, 因此可靠度对于网络拥塞有一定指导价值,在此将可靠度作为差异化可靠传输判别机制, 差异化可靠传输的拥塞机制基于可靠度实现不同程度的拥塞控制策略.

2.3 可靠度优于目标可靠度

差异化可靠传输拥塞控制机制基于当前可靠度实现不同拥塞避免策略和拥塞恢复策略, 当检测网络丢包时, 通过观测当前可靠度值, 如果当前可靠度大于目标可靠度则反映当前网络拥塞状态较轻, 同时也反映此时应用程序可以容忍数据包丢失, 因此在拥塞避免阶段网络可以较低程度降低拥塞窗口以更快恢复带宽,因此当可靠度优于目标可靠度的拥塞避免函数如式(2)所示:

在拥塞恢复阶段拥塞策略以较快速率恢复拥塞窗口, 具体的拥塞恢复算法如式(3):

式(2)中α 表示拥塞避免阶段窗口降低比率, 在此为0.8. 式(3)中l代表用于比较时间和拥塞窗口大小变化的速率常数, 在此为0.5.K值用于表示当前拥塞窗口cwnd恢复到上次发生拥塞时的窗口值所需的时间,K值计算如式(4)所示, 而Wmax代表上次拥塞发生时窗口的最大值.

式(2)表明在可靠度优于目标可靠度时差异化可靠传输拥塞避免的窗口降低程度为α ×cwnd, 实现拥塞避免阶段少下将策略, 式(3)表明在拥塞恢复阶段窗口增长函数按照三次函数形式增长, 一方面合理化恢复网络带宽, 另一方面最大化探测网络带宽. 同时拥塞避免阶段算法通过检测发生拥塞事件时窗口值是否低于上次发生拥塞时窗口最大值记录Wlast_max合理探测带宽. 如果窗口值低于Wmax是则说明有新流加入, 因此需降低Wmax让出带宽给新流, 否则记录当前时刻Wmax为Wlast_max, 具体算法如算法1所示.

算法1. 带宽检测算法1. if cwnd<Wmax&&fast_convergence then 2. Wlast_max= cwnd×(1+α)/2 3. else 4. Wlast_max =cwnd 5. end if

2.4 可靠度不满足目标可靠度

当检测网络丢包时如果当前可靠度值不满足目标可靠度则反映当前网络拥塞状态较严重, 同时反映应用程序对于数据包可靠度要求较高, 因此在拥塞避免阶段阈值函数如式(5)所示:

在拥塞恢复阶段窗口在每收到ACK窗口增加为1/cwnd. 具体如式(6)所示:

式(5)表明差异化可靠传输拥塞机制在网络重拥塞状态下通过窗口减半, 实现基于TCP拥塞避免机制进行标准窗口下降策略, 因为此时通过窗口少下降策略并未能完全减轻网络拥塞状态. 式(6)实现基于TCP拥塞恢复机制进行窗口慢增长策略, 有效避免通过三次函数快恢复策略而造成拥塞窗口频繁下降进而网络发生多次拥塞情况. 差异化可靠传输拥塞控制机制采用基于混合拥塞控制的方法, 使用可靠度作为主要拥塞指标, 使用丢包信息作为第2拥塞指示符, 共同调整窗口大小, 满足对TCP公平性和性能的设计需求.

2.5 基于带宽测量的拥塞避免

差异化可靠传输协议在网络存在较大丢包时可以显示其优势, 相对于传统TCP传输协议明显提高传输速率. 差异化可靠传输协议拥塞控制机制的核心思想是基于可靠度和丢包信息实现不同程度拥塞避免和拥塞恢复算法, 然而基于丢包的拥塞控制机制在网络质量较差导致频繁丢包时仍有很大提升空间, 主要原因在于基于丢包进行拥塞检测对链路差错引起频繁丢包的网络拥塞状态误判, 导致拥塞窗口频繁下降, 难以尽快恢复进而降低链路带宽利用率, 而通过估计瓶颈带宽可以提高易损链路网络环境的传输控制协议性能.因此差异化可靠传输机制在基于丢包实现拥塞控制机制的基础上通过瓶颈带宽估计策略合理设置网络拥塞避免阶段拥塞阈值, 具体的带宽测量方法如式(7)所示:

式(7)中Tcur为当前时刻测量带宽,rtt为带宽测量周期,Nack为当前rtt周期内接受数据段数量, 式(8)[22]通过将带宽在低通滤波器中过滤高频成分测得实际当前带宽, 因此当网络检测丢包进入拥塞避免阶段时的窗口阈值如式(9)所示:

其中,RTTmin为最小往返时延,Tcur×RTTmin为基于带宽测量的BDP, BBR算法认为当网络飞行数据到达BDP时网络发送速率达到最大值[23]且网络不发生拥塞. 因此基于BDP设置阈值可以避免由于频繁丢包导致的拥塞窗口阈值不合理下降. 式(9)在发生丢包时通过带宽测量将窗口降到合理的阈值, 避免频繁丢包导致窗口不合理下降, 提高带宽利用率.

2.6 算法复杂度分析

差异化可靠传输拥塞控制算法分为慢启动阶段,拥塞避免阶段和拥塞恢复阶段. 慢启动阶段算法基于传统的TCP慢启动算法增长其窗口值, 当窗口值高于窗口阈值时算法进入拥塞避免阶段, 同时每收到ACK算法根据式(7)和式(8)计算当前网络带宽值; 拥塞避免阶段根据式(9)设置当前阈值; 拥塞恢复阶段算法通过查询当前可靠度判定当前可靠度是否高于目标可靠度, 如是则根据式(3)恢复带宽并设定窗口值, 否则根据式(6)设定窗口值. 因此算法时间复杂度为拥塞避免阶段每收到ACK时计算带宽, 以数据包个数为单位,式(7)和式(8)的时间复杂度为O (n) . 式(3)和式(5)的时间复杂度为O (n) , 因此算法的时间复杂度为O (n).

差异化可靠传输拥塞控制机制通过联合丢包检测和时延带宽检测控制拥塞窗口变化, 通过丢包检测提高时延带宽测量在网络拥塞时的带宽利用率较低的弊端, 同时通过带宽检测避免由于频繁丢包导致窗口下降问题, 下面将通过实验测试验证差异化可靠传输拥塞机制的性能.

3 实验性能评估

为了验证差异化可靠传输拥塞控制机制的性能,本次实验测试基于NS3网络模拟器实现, 系统为Ubuntu 16.04系统, 通过NS3中实现的差异化可靠传输协议, 测试不同拥塞控制算法对于差异化可靠传输协议性能影响, 实验测试不同丢包率、不同带宽时延和不同背景流下基于差异化可靠传输协议的各种拥塞控制算法实验性能. 其中实验网络拓扑如图1所示.

图1 NS3仿真网络拓扑

实验拓扑图中, 客户端基于NS3中BulkSend-Helper应用类实现数据流发送, 服务器基于NS3中PacketSinkHelper类实现数据接收, 丢包率设置基于NS3中RateErrorModel差错模型类实现.

3.1 不同丢包率下拥塞机制性能测试

对于未来网络场景, 例如卫星通信由于通信延迟和比特错误的概率, TCP传输性能受到影响, 而差异化可靠传输协议在易损网络中性能表现较佳. 差异化可靠传输拥塞机制算法旨在于不同丢包率下获得较大吞吐, 同时实现提高数据传输速率. 本文首先基于网络拓扑测试针对不同丢包率在差异化可靠传输协议下拥塞控制算法性能. 其中实验中指定差异化可靠传输的应用可靠度为98%, 具体的数据传输参数如表2.

表2 丢包率下NS3参数

首先通过设置不同链路丢包率测试NewReno,CUBIC, Vegas, Westwood, Westwood+, BBR及差异化可靠传输的拥塞控制算法congestion control based on reliability (CCOR). 图2表明当丢包率在0.1%–2%时基于丢包的拥塞控制算法例如NewReno, CUBIC算法性能较差, 基于时延及带宽测量的算法性能例如Vegas, Westwood, Westwood+, BBR优于基于丢包的拥塞控制算法, 然而总体性能较差, 而CCOR算法有效数据传输速率明显优于NewReno, CUBIC, Vegas,Westwood, 相对于Westwood+, BBR有些许提升.

图2表明基于丢包的拥塞控制算法存在链路丢包时性能表现较差, 随着丢包率增大性能表现越差. 基于时延的拥塞控制算法在存在链路丢包时性能表现较好,CCOR算法结合基于带宽测量的丢包阈值判断, 在丢包率大的时候有较大的性能提升.

图2 300 Mb/s, 50 ms拥塞算法传输速率

图3为丢包率为0.1%时各种拥塞算法前50 s吞吐率变化, 表明在0.1%丢包率下BBR与CCOR算法窗口值保持平稳且较高水平, 但是BBR在24 s吞吐率下降影响其性能, 因此CCOR性能最佳. 图4为丢包率为0.2%时各种拥塞控制算法前50 s吞吐率变化, 在从图4看出当同时传输300 MB数据量时CCOR在36 s传输结束, 而BBR在41 s传输结束, Westwood+在45 s结束数据传输, 且CCOR吞吐率高于BBR和Westwood+.表明在0.2%丢包率下CCOR算法性能优于其他算法,表现在高带宽长时延下CCOR算法保持较高吞吐率.

图3 300 Mb/s, 50 ms, 0.1% 丢包率下吞吐率变化

图4 300 Mb/s, 50 ms, 0.2% 丢包率下吞吐率变化

3.2 不同带宽时延下拥塞机制性能测试

差异化可靠传输协议在不同带宽和不同时延下表现不同性能, 下面基于图1网络拓扑测试不同带宽和不同时延下各种拥塞控制算法在差异化可靠传输协议下的性能. 具体的数据传输参数如表3.

表3 不同带宽时延下NS3参数

设置不同带宽和不同往返时延测试NewReno,CUBIC, Vegas, Westwood, Westwood+, BBR及CCOR算法有效数据传输速率. 图5表示从10 Mb/s到500 Mb/s,时延为50 ms时数据传输速率, 图5表明在0.1%丢包时增大带宽, NewReno, CUBIC, Vegas, Westwood算法传输速率没有明显提升, Westwood+, BBR, CCOR算法有明显提升, CCOR性能最优.

图5 50 ms, 0.1%丢包率下传输速率

图6表示从10 ms到200 ms, 100 M/ps带宽时数据传输速率, 图6表明0.1%丢包率下, CCOR取得较好实验结果, CCOR算法基于可靠度实现不同拥塞控制策略, 在往返时延较小时CCOR表现较好实验性能,随着时延增大, CCOR随时延传输速率变低, 但是仍然高于其余拥塞控制算法变化, 但是传统的基于丢包和基于时延的拥塞控制算法随时延传输效率变低.

图6 100 Mb/s, 0.1%丢包率下传输速率图

3.3 不同背景流下拥塞机制性能测试

拥塞控制算法在不同网络流量下能够取得较好带宽同时保持数据流公平性是衡量拥塞控制算法特性的目标之一, 因此设置不同背景流验证差异化可靠传输拥塞控制算法性能. 其中背景流基于NS3下UdpEcho-ClientHelper类产生间隔UDP流.

图7为UDP背景流为80 Mb/s, 时间在10–15 s,20–25 s, 30–35 s间隔出现3次时各种算法的吞吐率图,图7表明CCOR在出现背景流时带宽下降, 但是保持基于丢包的拥塞控制算法对于带宽的利用率, 相对于BBR低到带宽到20 Mb/s, CCOR可以与NewReno,CUBIC等基于丢包的算法保持其40 Mb/s以上的带宽, 同样表明在较大背景流下CCOR算法较好带宽利用率, 因此在不同背景流下CCOR可以更好利用带宽.

图7 100 Mb/s, 10 ms下吞吐率变化

3.4 拥塞控制机制的公平性

公平性是拥塞控制算法的一个重要性能指标, 有的拥塞控制算法虽然传输吞吐率高, 但是公平性差, 比如最新的BBR协议[24]. 下面将实验验证差异化拥塞算法CCOR公平特性.

图8为100 Mb/s, 20 ms往返时延下3条CCOR流传输窗口变化, 其中第2条数据流在20 s加入网络,在80 s离开网络, 第3条数据流在40 s加入网络, 在60 s离开网络, 图9显示其吞吐率变化, 图9表明在第2条数据流加入时CCOR可以较快降低网络带宽为47 Mb/s, 在第3条数据流加入后CCOR带宽降低为31 Mb/s, 表明CCOR数据流可以较好与新流共享网络带宽, 而在数据流离开网络时可以较快恢复网络带宽,CCOR算法在较大提升带宽利用率同时可以保持数据流之间的公平性, 显示出CCOR算法的优势.

图8 100 Mb/s, 20 ms下CCOR拥塞窗口

图9 100 Mb/s, 20 ms下CCOR吞吐率

4 结论

随着未来网络体系的发展, 差异化可靠传输协议在未来网络传输协议有很好应用前景, 本文通过针对差异化可靠传输协议提出一种新的基于丢包和带宽测量联合的拥塞控制机制, 旨在于提高差异化可靠传输协议的性能, 同时最大化网络资源利用率. 差异化可靠传输拥塞控制机制通过差异化可靠传输协议的可靠度机制实现不同拥塞控制机制, 在当前可靠度满足目标可靠度时通过少下降式拥塞避免策略和快恢复拥塞恢复策略实现其窗口变化, 在当前可靠度不满足目标可靠度时通过标准式拥塞避免策略和恢复策略实现其窗口变化, 在可靠度考量标准下实现更好窗口策略, 同时差异化可靠传输拥塞控制机制充分考虑网络条件, 基于带宽测量作为窗口策略的变化标准, 提高不同丢包率下差异化可靠传输协议性能.

本文通过实验验证差异化可靠传输拥塞算法CCOR在不同丢包率、不同时延及不同背景流下均取得较好的实现性能, 相对于传统拥塞控制算法其窗口值和网络吞吐率均表现效果良好, 同时通过实验验证其公平性. 在未来针对于差异化可靠传输协议拥塞控制机制以及对于未来基于丢包和带宽实现不同程度拥塞控制机制提供一定的指导价值.

猜你喜欢
控制算法传输速率数据包
基于时隙ALOHA与NOMA的通信系统性能分析
三星利用5G毫米波 实现创纪录传输速率
C#串口高效可靠的接收方案设计
基于dSPACE和PLC的控制算法测试系统设计
夏季滨海湿地互花米草植物甲烷传输研究
数据传输速率
基于DCS的过程实时控制平台的研究
卫星姿控系统半物理仿真中转台控制算法的实现
网络数据包的抓取与识别
SPCE061A单片机与USB接口