基于链路容量的多路径拥塞控制算法

2020-06-06 00:54王竹袁青云郝凡凡房梁李凤华
通信学报 2020年5期
关键词:多路径数据量控制算法

王竹,袁青云,郝凡凡,房梁,李凤华

(1.中国科学院信息工程研究所,北京 100093;2.中国科学院大学网络空间安全学院,北京 100049)

1 引言

随着移动互联网的迅速发展及终端接入模块的微型化,越来越多的终端设备具备(如电子发票终端、多模移动通信终端等)多种网络接入模式(如Wi-Fi、4G/5G、卫星通信等)。用户可根据不同网络场景下的不同需求,通过不同接入方式使用电子发票、移动通信、视频会议等网络信息服务。然而目前传输控制协议(TCP,transmission control protocol)模式仅可利用其中一种网络接口进行数据传输,这降低了网络资源利用率,无法满足海量电子发票数据、音视频等高效传输要求。因此,为了充分利用网络资源,多路径传输技术应运而生。国际互联网工程任务组(IETF,Internet Engineering Task Force)于2009 年提出多路径传输协议(MPTCP,multipath TCP)[1],该协议在继承TCP 的基础上,利用多接口技术建立多条链路,提升网络带宽利用率,降低服务中断风险。近年来,MPTCP 的研究逐步从传统的Internet拓展到数据中心[2]、云平台[3]、卫星网络[4]等新的应用场景。在工业界,MPTCP 已得到初步应用,Linux 发行版已实现MPTCP,三星Galaxy 系列智能手机、iPhone Siri 等产品均支持MPTCP。理论与工程的相互促进为MPTCP 的完善注入了源源不断的动力。

与传统TCP 相同,拥塞控制是MPTCP 的关键技术之一,对MPTCP 的性能有着重要影响。因此,需要对MPTCP 的应用场景进行分析,对MPTCP的拥塞控制进行优化,从而实现高效、可靠的多路径传输。设计MPTCP 拥塞控制算法会面临两方面挑战:在多路径传输环境下,每条子流均单独维护拥塞窗口,导致MPTCP 多条流会过多地抢占带宽,严重时会导致TCP 流无法正常工作;在链路质量差异较大的异构网络环境下,多路径传输稳定性变差,带宽利用率下降。

近年来,学者在多路径拥塞控制算法方面提出了多种解决方案,包括基于分组丢失的多路径拥塞控制算法[5-7]、基于时延的多路径拥塞控制算法[8-10]、基于瓶颈公平性的多路径拥塞控制算法[11-13]等。但上述算法存在无法分辨噪声、分组丢失严重、带宽竞争能力弱、共享瓶颈子流集合误判等缺陷。

为解决现有工作的不足,满足海量电子发票数据及相关用户数据传输的高效性,本文设计了适用于反馈调节拥塞的多路径拥塞控制框架,在BBR(bottleneck bandwidth and round-trip propagation time)算法[14]反馈调节拥塞窗口和发送速率的思想基础上,通过建立M/M/1 缓存队列模型调节接收端缓存队列对发送端吞吐量进行约束,实现了基于链路容量的多路径拥塞控制(MPLC,multipath congestion control based on link capacity)算法,提升了多路径传输的带宽利用率,保证了多路径传输公平性。本文主要贡献如下。

1) 设计了多路径拥塞控制框架,将拥塞控制状态和TCP 状态分离,便于多级反馈调节拥塞的多路径拥塞控制算法的设计与实现。

2) 设计了MPLC 算法,将BBR 算法中根据链路容量反馈调节发送窗口和发送速率的思想引入多路径拥塞控制,提升了多路径传输带宽利用率。

3) 设计了M/M/1 缓存队列模型,通过调节接收端缓存队列对发送端吞吐量进行约束,解决了多路径传输占用带宽过高的问题,保证了MPLC 算法公平性。

4) 在NS3(Network Simulator Version 3)仿真平台上实现了MPLC 算法,实验结果证明,MPLC算法实现了MPTCP流与TCP流竞争带宽资源的公平性,比BALIA(balanced linked adaptation)算法[15]的带宽利用率提升了9.5%,比EWTCP(equally weighted TCP)算法[16]的响应时间减少了1.25 s。

2 相关工作

随着多路径传输的快速发展,多路径拥塞控制面临的问题引起了研究者的广泛关注。本节主要对现有基于分组丢失、基于时延、基于瓶颈公平性的多路径拥塞控制算法,以及其他方式的多路径拥塞控制算法进行介绍。

基于分组丢失的多路径拥塞控制算法[5-7]根据链路是否发生分组丢失来判断网络拥塞状况。Wischik 等[5]提出semi-coupled 拥塞控制算法,基本思想是通过多路径总拥塞窗口和侵略因子调整子流拥塞窗口增长模式,实现负载均衡,但不足是假设子流往返时延(RTT,round-trip time)相同。考虑到子流RTT 差异对其吞吐量的影响,Raiciu 等[6]提出LIA(linked increase algorithm),在计算联合拥塞窗口时通过引入权重因子,动态调整子流对带宽侵占能力,但没有对权重因子做出限制。当权重因子较大时,LIA 会侵占过多的带宽资源。Khalili 等[7]在LIA 的基础上提出OLIA(opportunistic linked increase algorithm),从最优化资源池和均衡拥塞响应能力角度出发,为优质路径提供更大的拥塞窗口变化加速度,从而使资源得到更充分的利用。该算法对网络状态变化反应较快,易于侵占过多带宽资源,TCP 友好性较差。

基于时延的多路径拥塞控制算法根据链路中数据分组传输的RTT 变化来判断网络拥塞状态。Cao 等[8]将基于时延变化估计网络中缓存的数据分组数量来调节拥塞窗口的思想引入MPTCP 中,实现了较好的拥塞均衡,但该算法与其他算法共存时带宽竞争能力较弱。Gonzalez 等[9]通过引入加性增长乘性减少策略,设计了混合时延的多路径拥塞控制算法,增强了带宽竞争能力,但带宽利用率低于其他多路径拥塞控制算法。Li 等[10]在综合考虑时延和吞吐量对拥塞窗口影响的基础上,设计了最小化子流时延差异和基于遗传算法的速率分配方案,提升了吞吐量,但与其他拥塞控制算法相比,难以保证算法公平性。

基于瓶颈公平性的多路径拥塞控制算法通过瓶颈检测来区分共享瓶颈子流集合与非共享瓶颈子流集合,再对共享瓶颈子流集合与非共享瓶颈子流集合采取不同的拥塞控制策略。Hassayoun 等[11]提出基于瓶颈公平性的动态窗口耦合算法,该算法通过检测子流分组丢失相关程度,划分共享瓶颈带宽子流集合和非共享瓶颈带宽子流集合,使共享瓶颈子流集合保持TCP 友好性,使非共享瓶颈子流集合可以独立地与TCP 流竞争带宽资源,从而达到提升吞吐量、保持算法公平性的目的。但其检测子流的方法会对共享瓶颈带宽子流产生误判,从而导致算法性能下降。Ferlin 等[12]提出多路径共享瓶颈检测算法,通过计算单向时延的方差、偏度、关键频率这3 个统计量来判断共享瓶颈带宽子流,但由于3 个统计量的门限值通过经验值获取,因此导致应用场景受限。Zhang 等[13]提出基于时延趋势线性回归方法检测共享瓶颈子流集合的方案,可以有效地预测共享瓶颈带宽子流。但当网络环境差异较大时,该方案可能会带来误判。

除了上述多路径拥塞控制算法外,Xue 等[17]将网络编码引入多路径拥塞控制中,设计了“couple+”的拥塞控制方案,使编码子流可以及时发现拥塞,进行负载均衡,但实际应用中需要考虑编解码器的设计问题。Trinh 等[18]针对无线多媒体传感器网络提出节能型的多路径拥塞控制算法,基本思想是采用低能耗的路径传输数据,同时保证良好的服务质量级别,综合考虑节能和路径特征来调节拥塞窗口,以兼顾节能与服务质量,但需考虑应用场景,这给实际应用带来不便。Xu 等[19]将深度学习算法引入网络研究中,保证了TCP 友好性,提升了高动态网络的稳健性,但学习规则并未全面考虑实际网络的复杂性。Sun 等[20]通过使用SDN/NFV(software defined network/ network function virtualization)上的段路由转发MPTCP 子流,为终端用户提供优化的端到端QoE(quality of experience),但流量分配需要大量的转发机制,这导致存储资源消耗过多,成熟的应用有待方案进一步优化。

在上述的拥塞控制算法中,基于分组丢失的拥塞控制算法无法区分拥塞分组丢失和噪声分组丢失,造成算法性能下降;基于时延的拥塞控制算法与其他拥塞控制算法并存时,往往带宽竞争能力较弱;基于瓶颈公平性的拥塞控制算法在检测共享瓶颈带宽子流时,由于网络环境的复杂往往会带来误判;其他方式的拥塞控制算法通常需要修改现有协议,或针对特殊网络环境进行设计。因此拥塞控制算法广泛运用还有待进一步发展。

3 预备知识

3.1 MPTCP 概述

MPTCP 是TCP 的扩展[21]。支持MPTCP 的多模终端设备可以利用多个网络接口建立多条网络链路,提升吞吐量和网络连接弹性。多路径传输场景如图1 所示,支持MPTCP 的终端设备(如智能手机、电脑等)利用3G/4G、Wi-Fi、IP 等接入方式与应用服务器间建立多条网络链路,并选择其中一条或多条链路进行数据收发。

图1 多路径传输场景

与TCP 相比,MPTCP 在实现TCP 确认应答、校验和、拥塞控制等功能的基础上,增加了路径管理、数据分组调度、子流接口等功能。在拥塞控制方面,TCP 中的经典拥塞控制算法会经历慢启动、拥塞避免、快速重传、快速恢复等过程,若直接用于MPTCP中会导致多路径流侵占带宽过多。因此,为实现多路径联合拥塞,多路径拥塞控制算法通常会对拥塞避免阶段的增窗策略进行调整,其目标[6]如下。

目标1MPTCP 连接的总吞吐量不应该小于其最好路径上的单TCP 连接的吞吐量。

目标2与仅使用任一单路径TCP 流相比,多路径流不应该对其共享的任何资源占用过多。

目标3在满足目标1 和目标2 的前提下,MPTCP需将最拥塞路径上传输的数据转移到其他路径。

3.2 BBR 算法分析

BBR 算法[14]通过测量链路最大可用带宽Bmax和最小往返时延Tmin,计算当前传输速率PacingRate 和拥塞窗口Cwnd,以调节数据发送量,从而形成反馈调节机制。当算法达到稳定状态时,系统将工作在拥塞控制最优点[22],链路中传输的数据量Inflight(发送端已经发送,但未确认的数据)为Bmax与Tmin的乘积,即带宽时延积(BDP,bandwidth-delay product)。相比于TCP 中其他拥塞控制算法,BBR 算法减少了缓冲区排队数据分组,降低了传输时延,提升了带宽利用率。

BBR 算法的主要调控参数PacingRate 和Cwnd的计算式分别为

其中,PacingGain 表示发送速率增益因子,用于调节算法不同运行状态下的发送速率;CwndGain 表示拥塞窗口增益因子,用于调节算法不同运行状态下的发送窗口。

BBR 算法的运行状态转移如图2 所示,包括4种运行状态[14]:Startup、Drain、ProbeBW 和ProbeRTT。通过4 种运行状态可以准确测量出Bmax和Tmin,运行状态的工作过程具体如下。

图2 BBR 算法运行状态转移过程

1) Startup 状态。采用慢启动方式抢占带宽,在检测到带宽被占满3 次后进入Drain 状态。

2) Drain 状态。将Startup 状态占用的接收端缓冲区排空,之后进入ProbeBW 状态。

3) PrbeBW 状态。探测时长为10 s,根据发送速率增益数组[m,n,k,k,k,k,k,k]周期性改变PacingGain(其中m> 1,默认值为;n< 1,默认值为;k默认值为1。PacingGain=m表示增加数据发送量,PaingGain=n表示减小数据发送量,PaingGain=k表示平稳发送数据),以测量Bmax,之后进入ProbeRTT 状态。

4) ProbeRTT 状态。探测时长为200 ms,窗口减小为4 个TCP 分段大小,以探测Tmin。若此状态结束时,带宽仍被占满,则进入Startup 状态,否则返回ProbeBW 状态。

3.3 研究思路与目标描述

在网络传输系统中,TCP 友好性可表述为“在相同条件下,非TCP 流相比于TCP 流不应消耗过多的带宽资源[23]”。共享资源池如图3 所示,S1—D1的MPTCP 双流和S2—D2的TCP 单流共享9 Mbit/s瓶颈带宽,理想公平情况下,MPTCP 流和TCP 流各占4.5 Mbit/s 带宽资源。但实际中MPTCP 有两条路径传输数据,而TCP 流仅一条路径传输数据,因此MPTCP 流占6 Mbit/s 带宽资源,而TCP 流占3 Mbit/s 带宽资源,从而导致MPTCP 流相对于TCP流抢占过多的带宽资源。这破坏了TCP 友好性,会带来网络服务质量变差的问题,严重时会造成网络瘫痪。

图3 共享资源池

为充分利用带宽资源,保证多路径传输的友好性和公平性,本文研究思路如下。

1)为提升多路径传输效率,根据BBR 算法传输时延低、吞吐量高的特性,将BBR 算法根据链路容量反馈调节发送速率和发送窗口的设计思想引入多路径拥塞控制中,设计基于链路容量的多路径拥塞控制算法,保证多路径传输充分利用带宽资源。

2)为保证多路径传输的友好性和公平性,设计M/M/1 缓存队列模型,对基于分组丢失的拥塞控制算法通过缓冲区溢出分组丢失判断拥塞和BBR 算法不占用缓冲区而根据带宽延时积调节拥塞的做法进行折中,通过按一定比例占用接收端缓冲区对发送端吞吐量进行调节,并通过多级反馈模型,动态调节发送端的数据发送量,保证算法公平性。

基于上述研究思路,本文要达到的基本目标为保证MPTCP 流与TCP 流竞争带宽的公平性,实现带宽资源的充分利用,提升动态环境下算法的响应能力。

4 多路径拥塞控制算法设计

4.1 多路径拥塞控制框架

多路径拥塞控制框架主要设计思想是将发送端TCP 状态与多路径拥塞控制算法状态进行分离,便于反馈调节拥塞的多路径拥塞控制算法的设计。

多路径拥塞控制框架如图4 所示,主要包括子流监测模块、网络监测模块、拥塞控制模块等。子流监测模块的主要功能是监测子流数据分组收发情况,计算相关通信参数,如往返时延、发送窗口等。网络监测模块的主要功能是维护每条链路的TCP 状态,监测多路径传输子流的数据发送量。拥塞控制模块的主要功能是利用通信参数调节子流发送窗口和发送速率,利用上一轮子流的数据发送量预估接收缓冲区占有量,进而调节当前子流数据发送量。

在多路径拥塞控制框架中,发送端相当于多模客户端,接收端相当于服务端,发送端与接收端通过MPTCP 建立多条链路,并利用拥塞控制算法维护多条链路数据收发管理。其中,拥塞控制算法包括两级反馈调节,分别是子流级反馈调节和连接级反馈调节。子流级反馈是指发送端通过接收端反馈的ACK(acknowledge character)情况,更新子流通信参数,再通过预估链路容量调节子流发送窗口和发送速率。连接级反馈是指发送端通过检测所有子流的数据发送量,预估接收端缓冲区占有量,再根据拥塞控制算法原理调节子流的数据分配量,维持多路径传输的公平性。

图4 多路径拥塞控制框架

4.2 MPLC 算法基本原理

MPLC 算法在BBR 算法4 种运行状态的基础上,通过调节每条链路向网络中传输的数据量,实现多路径联合拥塞控制。

MPLC 算法调节链路中传输的数据量基本原理如图5 和图6 所示,其中图5 展示的是传输的数据量与往返时延关系,图6 展示的是传输的数据量与发送速率关系。其中,Inflight 表示网络中传输的数据量,α表示Inflight 的调节因子,BufSize 表示接收端缓存大小,DeliveryRate 表示发送端的数据发送速率。通过分析图5 与图6,可得出以下结论。

图5 传输的数据量与往返时延关系

图6 传输的数据量与发送速率关系

1) 当Inflight ≤BDP时,随着Inflight 增加,DeliveryRate 增大,RTT 不变,此时RTT 与物理链路传输时延相等。

2)当BDP

3)当Inflight>BDP+BufSize 时,随着Inflight 增加,链路中传输的数据量将超过接收缓冲区可承载的数据量上限,导致分组丢失。

MPLC 算法维持BDP

1) 当发送端向网络中发送的数据量大于BDP时,将导致接收端缓冲区排队数据分组增多,数据分组传输时延增大。上述方法虽然约束了多路径传输效率,但有利于维护MPTCP 流与TCP 流竞争带宽的公平。

2) 当发送端向网络中发送的数据量小于

BDP+BufSize 时,不容易造成接收端因缓冲区溢出而发生分组丢失,避免了发送端发送数据过多所导致的分组丢失问题,提升了网络传输效率。

MPLC 算法的4 个阶段如图7 所示,具体如下。

图7 MPLC 算法4 个阶段

1) Startup 阶段。采用慢启动方式抢占带宽,在检测到带宽被占满3 次后进入Drain 阶段。

2) Drain 阶段。将Startup 阶段占用接收缓冲区的数据按比例排空,使Inflight 回退到大于BDP 的某个位置。

3) ProbeBW 阶段。设置探测时长为固定时间段(默认为10 s,可根据网络环境调整),并设置发送速率增益数组为[1+β,1−β,1,1,1,1,1,1](β< 1,表示PacingGain 调节因子),并根据增益数组周期性调节PacingRate,以探测最大可用带宽。

4) ProbeRTT 阶段。设定探测时长为固定时间(默认为200 ms,可根据网络环境调整),将发送窗口减小为4,一方面是探测最小RTT 值,另一方面是排空ProbeBW 阶段在接收缓冲区累积的数据,避免缓冲区溢出而丢失分组。

4.3 基于M/M/1 缓存队列的传输数据量求解

为了清晰地描述Inflight 所占用接收缓冲区的规律,本节引用排队论中的基本规律对接收端缓存队列进行建模。

在通信网络中,网络中的数据分组会按照一定规律进入网络中间节点(如路由器、交换机等)。当节点无法及时处理时,数据分组便会进入节点缓冲区进行排队,待数据被处理完后便离开节点缓冲区。其基本过程是数据达到、排队等待、数据处理、离开,满足排队系统的基本属性。

对于网络中的数据流,数据分组到达缓冲区的稳态概率与泊松过程的概率趋势一致[24],且网络流量可用基于马尔可夫调制泊松分布的参数模型进行精确估算[25]。对于MPTCP 传输链路,每条子流都满足M/M/1 的排队系统,其中第一个M 表示数据分组到达服从泊松分布,第二个M 表示服务器服务时间服从负指数分布,1 表示只有一个服务器提供服务。下面对基于M/M/1 缓存队列模型中使用的符号及其含义进行说明,如表1 所示。

表1 基于M/M/1 缓存队列模型中的符号及其含义

令n(n 0)时刻缓存队列中数据分组个数,在数据分组的到达率为λ、服务率为μ的条件下,接收端缓存队列模型从n个数据分组切换到n+1个数据分组时,系统状态转移如图8 所示。

图8 接收端缓存队列数据分组状态转移

设Pn为系统达到稳定时接收端缓存队列中有n个数据分组的概率,则根据图8 可得系统状态平衡方程为

根据系统状态平衡方程,在接收端缓存无限大的条件下,数据分组的排队时延t可表示为

数据分组传输的往返时延等于传输时延、排队时延及处理时延三者之和,其中传输时延和处理时延之和用t0表示,结合式(4),RTT 可表示为

根据MPLC 算法,数据分组到达率λ即是MPLC 算法中发送端的DeliveryRate。结合式(5)可以得到发送速率与往返时延的关系,如图9 所示。图9 中曲线f(λ)与横坐标轴所围成的面积即是发送端一次向网络中发送的数据量W,其计算方法为

根据MPLC 算法,链路一次向网络中发送的数据量即是网络中传输的数据量Inflight。结合式(6)可得,Inflight 计算式为

根据MPLC 算法可知,α> 1。另外,根据MPTCP 体系结构[1]推荐的多路径接收缓冲区大小为2(sum(BWi))RTTmax,其中BWi表示多路径流第i条路径的带宽,RTTmax表示多路径流中往返时延最大值。对2(sum(BWi))RTTmax进行不等式放缩可得,2sum(BWi)RTTmax≥2BWiRTTi=2BDP,其中RTTi表示第i条路径的往返时延。当链路中传输的数据量占满瓶颈带宽和接收缓冲区时,将达到BDP 的3倍,因此可得α上限最小取值为3。

图9 DeliveryRate 与RTT 的关系

4.4 MPLC 算法描述

MPLC 算法为调节每条链路向网络中发送的数据量,以实现多路径联合拥塞控制,需对MPLC 算法的Drain 阶段排空下限进行设置,对ProbeBW 阶段发送速率增益数组切换条件进行调整。

MPLC 算法的Drain 阶段排空下限设置如算法1所示。首先获取当前的运行状态、网络中传输的数据量、预估带宽时延积,然后对当前的运行状态进行判断,若处于Drain 状态,则直到Inflight 值小于αBDP 时,才进入ProbeBW 阶段。

算法1Drain 阶段的排空下限设置方法

输入传输数据量调节因子α

输出排空完成情况drainComplete

MPLC 算法的ProbeBW 阶段发送速率增益按增益数组周期循环如算法2 所示。首先获取当前算法运行状态,若为ProbeBW 阶段,根据发送速率增益值,对增益切换条件进行检测,在满足增益切换条件的情况下,进入下一阶段。其中增益切换条件需满足如下条件之一。

条件1PacingGain>1,满足探测时长,且向网络中发送的数据量 Inflight 值超过α(1+β)BDP。

条件2PacingGain<1,满足探测时长,或满足向网络中传输的数据量Inflight 值小于αBDP。

条件3PacingGain=1,且满足探测时长。

算法2ProbeBW 阶段发送速率增益按增益数组循环方法

输入传输数据量调节因子α,发送速率增益调节因子β

输出进入下一阶段标志nextState

4.5 理论分析

4.5.1 公平性分析

对于多路径拥塞控制,每条链路都独立运行相同的拥塞控制算法。在这种情况下,MPTCP多路径流相比于TCP 单路径流会抢占过多的带宽资源,因此保持MPTCP 流对TCP 流竞争带宽的公平性变得十分重要。此公平性[6]可概述为MPTCP 流的总吞吐量不应该小于其最好路径上单TCP 流的吞吐量;且与仅使用任一单路径TCP流相比,多路径流不应该对其共享的任何资源占用过多。

根据公平性原则,MPTCP 流获得的吞吐量应等于TCP 流最优路径获得的吞吐量,因此单位时间内二者传输数据量相等,即

其中,R表示多路径子流集合,λi表示第i条子流的数据发送速率。

根据MPLC 算法可以得到,单位时间内TCP单路径传输的数据量极大值如式(9)所示,MPTCP多路径传输的数据量极大值如式(10)所示。

其中,BDPTCP表示TCP 单路径的带宽时延积,BDPi表示多路径第i条子流的带宽时延积。对于共享瓶颈的MPTCP 流与TCP 流,二者在瓶颈带宽处所占带宽资源大小相等,即,并且二者接收端缓冲区大小相等。因此,通过对式(9)和式(10)进行推导可以得出式(8),即 MPLC 算法满足MPTCP 多路径传输公平性原则。

另外,根据MPLC 算法在ProbeBW 阶段遍历速率增益数组[1+β,1−β,1,1,1,1,1,1]调节发送速率的特点,MPTCP 多路径子流发送的数据量受限于预估的瓶颈带宽。对于多路径中第i条子流在网络中传输的数据量应满足式(11)所示的不等式。

4.5.2 抗分组丢失性能分析

根据MPLC 算法4 个运行状态,ProbeBW 阶段占整个算法运行周期的绝大部分时间(约占整个周期的98%)。从吞吐量的角度分析,要使算法的吞吐量不急剧下降,其ProbeBW 阶段带宽抢占量不应该小于分组丢失量。

在ProbeBW 阶段,发送速率按照增益数组[1+β,1−β,1,1,1,1,1,1]周期性进行调节,增益为1+β表示增大数据发送量,增益为1−β表示减小数据发送量,增益为1 表示平稳发送数据。结合式(7),对于利用MPTCP 建立多条链路传输数据的网络系统,可以估算出在增益为1+β时的数据增量为

假设第i条路径上的分组丢失率为Pi,在增益为1+β时,分组丢失数据量表示为

由于Δ1>Δ2,结合式(12)和式(13),因此分组丢失率应满足式(14)所示的不等式。

另外,根据MPLC 算法连接级反馈特点,多路径传输的数据量应该满足式(15)所示的不等式。

根据式(15)可知,MPLC 算法限制 Inflight上限小于,避免了大量数据填充接收端缓冲区,缓解了接收端缓冲区溢出导致的分组丢失现象,因此MPLC 算法相对于基于分组丢失的拥塞控制算法具有更好的抗分组丢失性能。

4.5.3 系统效率分析

效率是指单位时间完成的工作量。在MPTCP多路径传输条件下,系统效率可表示为单位时间传输的数据量。定义多路径传输系统效率为E,则系统效率计算式为

对于多路径传输系统,设子流往返时延向量可表示为(RTT1,RTT2,… ,RTTn),子流的数据发送速率向量可表示为(λ1,λ2,…,λn),子流在往返时延内可以传输的数据量向量可表示为(W1,W2,…,Wn),子流传输时延和数据处理时延之和的向量可表示为 (t1,t2,…,tn)。根据系统效率定义,MPTCP 多路径传输系统总效率等于各个子流效率之和,可表示为

结合式(5)和式(6),将子流往返时延表达式和子流一次向网络中发送的数据量表达式代入式(17),可得

根据式(18),对系统效率函数E求一阶导数E′和二阶导数E′,可得E′< 0,故E′为单调递减函数。其中,E的一阶倒数E′表示为

5 实验及分析

为验证MPLC 算法公平性、分组丢失率对吞吐量的影响、动态环境下算法响应能力,本文在NS3网络仿真平台上设计并实现了MPLC 算法[26]。另外,实验测试中的数据调度算法采用Linux 中默认的轮询调度算法。

5.1 拥塞算法测试场景

为测试MPLC 算法公平性,采用图10 所示的共享瓶颈带宽、图11 所示的非共享瓶颈带宽的实验拓扑[15,27]。在图10 与图11 中,客户端、服务端连接路由器的线路表示接入带宽,路由器与路由器连接的线路表示瓶颈带宽。另外,根据图11 所示的拓扑结构进行了分组丢失率对吞吐量的影响、动态环境下算法响应能力的实验测试。

图10 共享瓶颈带宽的实验结构

图11 非共享瓶颈带宽的实验拓扑结构

实验仿真参数如表2 所示,为了满足4G/5G应用高带宽低时延的发展趋势,其中瓶颈带宽为100 Mbit/s,往返时延为5 ms;另外,分组丢失率P、MPTCP 流的对数N1、TCP 流的个数N2、传输数据量调节因子α、发送速率增益调节因子β为可变参数,其他值为不变参数。

表2 实验仿真参数

5.2 公平性评估

为了评估不同协议占用网络带宽资源的公平性,利用吞吐量等价比[28]来衡量两种协议之间的公平性。对于协议a和协议b,在时间尺度δ下吞吐量等价比函数定义为

在共享瓶颈带宽条件下,仿真测试结果如图12所示。在非共享瓶颈带宽条件下,仿真结果如图13所示。图12 和图13 分别展示了MPTCP 流吞吐量与TCP 流吞吐量随时间的变化趋势。

图12 共享瓶颈带宽条件下仿真结果

在时间尺度δ=10 s条件下,利用式(20)分别计算10 s、20 s、30 s、40 s、50 s、60 s 时刻的MPTCP 流和TCP 流的吞吐量在共享瓶颈带宽和非共享瓶颈带宽条件下的等价比,其结果如图14所示。由图14 可知,在共享瓶颈带宽条件下,MPTCP 流与TCP 流的吞吐量等价比接近1,表明MPTCP 流与TCP 流竞争带宽资源的公平性,实现了MPTCP 对TCP 的友好性。在非共享瓶颈带宽条件下,MPTCP 流与TCP 流的吞吐量等价比接近0.8,表明MPTCP 流比TCP 流在竞争带宽资源中具有一定优势,表明MPTCP 具有较好的TCP友好性。

5.3 分组丢失率对吞吐量影响评估

将MPLC 算法与BALIA 算法在不同分组丢失率下的吞吐量进行对比。通常分组丢失率小于1%认为网络环境是“好的”,分组丢失率在1%~2.5%认为是可以接受的[29]。因此设计分组丢失率取值为0、0.01%、0.1%、1%、5%。实验拓扑如图11 所示,参数如表2 所示,其中N1=1、N2=0,两条路径分组丢失率P设置如表3 所示,其他参数保持不变。

图14 MPTCP 流与TCP 流的吞吐量等价比

表3 两条路径上MPTCP 的分组丢失率

按照表3 的分组丢失率参数值,固定其中一条路径分组丢失率,变化另外一条路径分组丢失率,分别测量MPLC 算法和BALIA 算法分组丢失率对吞吐量的影响,结果如图15 所示,图15(a)表示在路径1 没有分组丢失(即P1=0)的情况下,路径2分组丢失率P2按照表3 变化时,MPLC 算法和BALIA 算法吞吐量的变化情况。图15(b)~图15(e)分别表示路径1 在其他分组丢失条件下,2 种算法的对比情况。此处仅以图15(a)为例进行分析。在路径2 的分组丢失率P2=0的条件下,MPLC 算法吞吐量为179.4 Mbit/s,带宽占用率为89.7%。BALIA算法吞吐量为160.3 Mbit/s,带宽占用率为80.2%。相比BALIA 算法,MPLC 算法带宽利用率提升了9.5%,并且MPLC 算法和BALIA 算法的吞吐量都随着分组丢失率的增加而降低,且在相同分组丢失率情况下,MPLC 算法的吞吐量是BALIA 算法吞吐量的1.12~11.3倍,故MPLC 算法分组丢失容忍能力优于BALIA 算法。

5.4 动态环境下算法响应能力评估

实验拓扑如图11 所示,参数如表2 所示,其中N1=1、N2=5,其他参数保持不变。为了测试动态环境下算法响应能力,在程序运行25 s 后,撤出TCP 流,观察MPTCP 流抢占带宽的变化情况,结果如图16 所示。由图16 可知,在0~25 s 时,MPTCP 流与TCP 流竞争带宽资源并达到稳定;在25 s 时,TCP 流撤离,MPTCP 流感知到可用带宽增加,在27 s 时占满带宽并达到稳定。故MPLC 算法对带宽变化反应时间大约为2 s。

对比MPLC 算法与其他多路径拥塞控制算法对网络带宽变化的响应能力[15],其对比结果如表4所示。在多路径拥塞控制算法EWTCP[16]、OLIA[7]、BALIA[15]中,EWTCP 算法对带宽变化响应速度最快,为3.25 s;而MPLC 算法对带宽变化响应速度为2.0 s,所以MPLC 算法较EWTCP 算法响应时间减小了1.25 s。

图15 分组丢失率对BALIA 算法和MPLC 算法吞吐量的影响

图16 MPLC 算法对带宽变化的响应能力

表4 几种多路径拥塞控制算法对带宽变化的响应速度

6 结束语

传统的多路径拥塞控制算法主要依据拥塞窗口、往返时延判断网络拥塞状态,新兴的多路径拥塞控制算法尝试使用人工智能或SDN 方法辅助多路径拥塞控制,而本文将TCP 单路径传输中根据链路容量调节发送速率的思想引入多路径传输,提出基于链路容量的多路径拥塞控制算法,为现有的多路径拥塞控制提供了新的实现方案,有效提升了多接入模式环境下电子发票等数据的传输效率。

本文针对多路径拥塞控制带宽资源利用不充分、分配不公平的问题,首先设计了反馈调节拥塞的多路径拥塞控制框架;然后在聚合多路径链路容量基础上,设计M/M/1 缓存队列模型调控发送端MPTCP 子流吞吐量;最后根据接收端数据处理情况,利用多级反馈动态调节发送端的数据发送量。通过NS3 仿真实验结果表明,MPLC 算法保证了公平性,提升了带宽利用率和动态环境下算法响应能力。考虑到未来工作,可以根据MPLC 算法的反馈调节机制,设计合理的数据调度算法,进一步提升多路径传输性能。

猜你喜欢
多路径数据量控制算法
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
多路径效应对GPS多普勒测速的影响
多路径助推肉牛产业稳定发展
基于大数据量的初至层析成像算法优化
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
基于5.8G射频的多路径识别技术应用探讨
高精度位置跟踪自适应增益调度滑模控制算法
多路径传输协议测试床构建与测试
刚体航天器大角度姿态机动控制算法