logo资料库

BBR算法在高速移动网络中的应用及改进.pdf

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
中国科技论文在线 http://www.paper.edu.cn BBR算法在高速移动网络中的应用及改进 吴旭1,徐明伟2** (1. 北京邮电大学网络技术研究院,北京 100876; 2. 清华大学计算机科学与技术系,北京 100084) 摘要:传统基于丢包类型的拥塞控制算法在丢包率较大的高速移动网络中的传输性能会受到 较大影响。谷歌提出的BBR算法不再将丢包视为拥塞,通过链路探测的方式保证链路资源被 充分利用,同时实现较低的时延。然而高速移动网络,受链路时延波动及频繁切换影响, BBR算法现有设计限制了拥塞窗口增长,损伤吞吐量。为提高BBR在高速移动网络中的吞吐 量,从时延估计和切换后窗口恢复两方面做出改进。利用RTT均值以及时延阈值共同决定计 算拥塞窗口的时延估计值,并设置带宽恢复值用于在切换失败的情况下快速恢复拥塞窗口。 真实网络实验结果表明,在高速移动网络中改进后的BBR算法在保持较低时延的情况下将 TCP吞吐量提高了20%,且在移动网络和无线网络中仍然适用。 关键词:高速移动网络; TCP拥塞控制; BBR算法 中图分类号:TP393 Application and improvement of algorithm in high-speed mobile networks WU Xu1, XU Mingwei2 (1. Institute of network technology, Beijing University of Posts and Telecommunications, Beijing 100876; 2. Department of Computer Science and Technology, Tsinghua University, Beijing 100084) Abstract: The performance of traditional congestion control algorithms based on packet-loss in high-speed mobile networks with large packet loss rates will be greatly affected. Google proposed BBR algorithm that no longer treats packet loss as congestion and detects link capacity to ensure that link resources are fully utilized while achieving low latency. However, in high-speed mobile networks, affected by link delay fluctuations and frequent handovers, the design of BBR will limit the growth of its congestion control window and damage throughput. In order to improve the throughput of BBR, some improvements are made from two aspects: delay estimation and congestion window (cwnd) recovery after handover. The average RTT and a delay threshold are used to jointly determine the estimated delay value for calculating the cwnd, and a bandwidth recovery value is set to quickly recover the cwnd when handover fails. Experiments in the real network show that the optimized BBR improves TCP throughput by 20% while still maintaining low latency in high-speed mobile networks. Moreover, it is still applicable for mobile networks and wireless networks. Key words: high-speed mobile networks; TCP congestion control; BBR algorithm 5 10 15 20 25 30 35 0 引言 40 近年来,高速铁路的快速建设,缩短了城市与城市之间的距离,成为人们中长距离出行 的首选交通工具。截止 2018 年底,我国高铁营业里程已达 29,000 公里以上,超过世界高铁 总里程的三分之二[1]。与此同时,受移动互联网与智能设备快速发展的驱动,人们对高铁上 网络服务质量的要求也越来越高。 不同于静止或低速移动网络,移动速度过快(时速 300km/h 以上)给网络传输带来了巨 作者简介:吴旭(1995-),女,TCP 拥塞控制 通信联系人:徐明伟(1971-),男,博导,计算机网络. E-mail: xmw@cernet.edu.cn - 1 -
中国科技论文在线 http://www.paper.edu.cn 45 大挑战,由于无线信号在传输过程中多普勒频移效应加重,误码率增大;基站切换频繁,切 换期间数据传输被暂停,且切换失败会导致基站缓冲区内数据丢失。而这些 L1/L2 层的变化 又对上层 TCP 协议的传输性能造成影响[2]。学者们对高铁上 TCP 协议的传输性能进行了大 规模的测量实验[3-5]。实验结果显示 TCP 协议性能严重下降,会出现诸如虚假超时重传、拥 塞窗口大幅降低等异常行为。 50 TCP 协议的拥塞控制机制决定了 TCP 如何针对网络变化做出调整。现有关于高铁上 TCP 传输性能的大量研究中,TCP 的拥塞控制都是采用 Linux 默认的 Cubic 算法。Cubic 是一种 基于丢包类型的拥塞控制算法,在未发生丢包的情况会不断增大拥塞窗口,填充缓冲区,造 成较大时延;且该算法无法识别丢包类型,在随机丢包率较大网络中,会出现“盲目”降窗的 问题[6]。谷歌在 2016 年提出了一种新的拥塞控制算法 BBR[7],该算法致力于在具有一定丢 55 包率的网络链路上充分利用带宽以及降低链路缓冲区的占用率减少传输时延,现已被部署在 谷歌 B4 网络以及 Google.com 和 YouTube 的服务器侧。运行结果表明,BBR 可以实现相比 于 Cubic 更大的吞吐量、更低的时延[7-8]。 然而,笔者对高铁环境下,Cubic 与 BBR 两种算法的传输性能进行了实验比较,发现 BBR 可以实现远低于 Cubic 的传输时延,但平均吞吐量低于 Cubic。从 BBR 算法的实现机 60 制发现,BBR 对链路时延的估计方式并不适用于高速移动网络,且在基站切换失败后 BBR 的拥塞窗口很可能需要较长时间恢复。针对以上两个问题,对 BBR 算法进行了改进,改进 后的 BBR 算法在仍保证较低时延的情况下,提高了网络吞吐量,且改进后的算法在常见网 络场景如移动网络、WIFI 网络中仍然适用。 1 高速移动网络的特点 65 1.1 多普勒频移效应 多普勒频移效应是指移动台相对于信号源移动速度过快,导致接收端接收到的无线信号 发生频率偏差的现象[9],多普勒频移差的计算为: (1) 式中,f 为信号源的载波频率,单位 Hz;v 为移动台移动速度;c 为光速;θ 是电磁波传播 70 方向与接收端移动方向的夹角。从式(1)中可以看出,多普勒频移效应与移动速度呈正相 关关系,移动速度过快,频移越高,且当移动台逐渐靠近信号源,θ 夹角越大,频移也会更 加明显。 多普勒频移效应是波动(如声波、电磁波)的普遍特性,低速移动情况下频移效应不明 显,而当移动速度超过 200km/h 的临界速度,多普勒效应开始愈发突出。以高铁为例,列车 75 运行速度可高达 350km/h,多普勒频移势必增加,导致无线链路的误码率变大。对于话音业 务来讲,会出现通话模糊、掉话等问题;对于数据业务来说,会出现链路丢包率变大、传输 中断等问题。 - 2 - cosvffc=
中国科技论文在线 http://www.paper.edu.cn 当前大部分厂商为解决高铁多普勒效应,大多采用自动选频控制(Automatic Frequency Control, AFC)算法[10],根据列车的运行位置进行频率补偿,以达到消除多普勒效应的作用。 80 文献[9]指出 AFC 算法一定程度上对多普勒频移进行了有效补偿,但随列车靠近基站,仍然 存在 AFC 算法跟不上频移变化的问题。 1.2 基站频繁切换 为保证用户(UE)在移动过程仍有连续且信号质量较好的网络接入,运营商会在某一 区域内部署多个基站,当用户目前所处的基站覆盖信号强度较弱时,会对邻区基站进行重选, 85 接入覆盖信号质量较好的另一基站,此过程即为切换。移动速度过快,导致 UE 所经历的切 换事件也更加频繁。以时速 300km/h 的高铁为例,经过一个覆盖范围几百米的小区仅需短短 数秒。 根据 3GPP 标准,当前 LTE 网络的切换方式统一采用“先断开-后建立”连接的硬切换方 式[11],即切换期间,数据传输会先中断直至与新基站建立连接后继续传输。以硬切换为例, 90 切换的大致过程包括:1)基站向 UE 下发测量控制 2)UE 将测量报告上传给基站 3)基站 根据测量报告进行切换决策 4)UE 断开与源基站的连接,根据决策结果与目标基站建立连 接 5)切换完成。切换期间,UE 与基站之间是通过不同的无线信令交互完成切换的。而临 近切换区域,无线信号质量通常较弱,伴随移动速度过快,信令在传输过程中更易丢失,切 换失败的可能性变大。 95 通常来讲,切换过程中如果信令可以成功完成交互,切换往往在 100 毫秒以内即可完成。 而如果切换信令在传输过程中丢失,导致切换失败,切换时延会高达 1 秒以上,更严重时, 源基站的缓存数据全部丢失,进而对上层传输协议造成严重影响。 所以,高速移动过程除切换频繁影响之外,切换失败对传输的影响更大。为减少基站切 换、提高切换的成功率,不同厂商根据话务量需求采用小区合并技术,将多个 RRU(Remote 100 Radio Unit,射频拉远单元)合并成一个小区,将原本相互干扰的多小区信号合成增强信号。 然而,高铁沿线呈狭长带状分布,区域跨度大且地形地势较为复杂。基站的部署需结合地形 场景、指标要求、列车速度,进行链路预算,最终确定站址以及站距,这仍然是一项非常复 杂的工作,既要投入大量的资金,还要克服很多技术困难。 2 BBR 拥塞控制算法介绍 105 2.1 算法思想 拥塞控制是通过设置一个适当的拥塞窗口来发送数据,既保证链路资源被充分利用,又 要避免网络拥塞的一种 TCP 传输机制。通常来说,对于一段完整的传输链路来说,某段链 路 的容 量决 定了 整段 链路 的传 输能 力, 称该 段链 路为 瓶颈 链路 。带 宽和 时延 的乘积 (bandwidth-delay product, bdp)表示链路的传输能力,当在传数据 inflight 等于 bdp 时,链 110 路资源恰好被充分利用,此时的网络吞吐量(Throughput)最大,往返时延(round-trip time, - 3 -
中国科技论文在线 RTT)最小。 http://www.paper.edu.cn BBR 和 Cubic 作为 TCP 协议最为流行的两种拥塞算法,设计思想的区别如图 1 所示。 Cubic 作为基于丢包思想的拥塞控制算法,其拥塞控制的操作点在图 1 所示的 B 点,该点意 味着除瓶颈链路被填满之外,缓冲区中也被数据包填满直至丢包事件发生。这样的操作可以 115 实现较高吞吐量,但会以较高传输时延和丢包率为代价。而 BBR 通过链路探测的方式,将 拥塞控制操作点尽可能地收敛至最优点 A。这样既可以保证链路带宽被充分利用,又不会造 成数据包在缓冲区排队。 120 2.2 算法设计 图 1 拥塞控制操作点 Fig. 1 Congestion Control Operating Point BBR 算法根据接收到的 ACK 响应得到当前链路即时的往返时延 ,并计算即时带 宽 (2) 125 式(2)表示一段时间内被接收到的数据量, 为当前已被接收方接收的数据包 数量, 量, 为该 ACK 的数据包 n 在发送时刻,已被接收方接收的数据包数 为当前时刻时间戳, 为数据包 n 发送时刻时间戳。 根据一段时间内采样的 和 值,得到链路的最小往返时延 以及最大带宽 ,并利用这两个参数共同计算拥塞窗口 。其各自计算公式为 130 135 (3a) (3b) (3c) 其中 为 10 秒, 通常为 6-10 个 RTT, 为窗口调整因子。 图 2 是 BBR 算法的状态转移过程。该算法包括 4 种状态:STRATUP、DRAIN、 PROBE_BW 以及 PROBE_RTT。其中,BBR 的主要生命周期处于 PROBE_BW 阶段,该阶 循环取自 段使用一个速率调整因 动态设置发送速率 乘以来 数组[1.25, 0.75, 1, 1, 1, 1, 1, 1]。STARTUP 阶段发送速率指数增长直至链路达到饱和状态(吞 吐量不再有明显增长),然后进入短时间的 DRAIN 阶段,将 STARTUP 阶段可能造成排队 - 4 - 往返时延吞吐量(A)(B)瓶颈链路带宽缓冲区已满bdp最佳操作点基于丢包类型算法的操作点tRTTtBWt._._−=−deliveredpacketdeliveredBWdeliveredtimepacketdeliveredtimedelivered.packetdelivered_deliveredtime._packetdeliveredtimetRTTtBWminRTTBtlBwcwndminmin(),[,]tRRTTRTTtTWT=−max(),[,]tBBtlBwBWtTWT=−min_cwndcwndpainRTTBtlBw=RWBW_cwndpain_pacinggainBtlBw_pacinggain
中国科技论文在线 http://www.paper.edu.cn 的多余数据量排出去。另外,若连续 10s 内检测到的 未发生变化,BBR 就会进入 140 PROBE_RTT 阶段,将窗口缩小为 4MSS(最大报文段长度),重新探测链路时延。 图 2 BBR 算法状态转移图 Fig. 2 BBR Algorithm State Transition Diagram 145 3 BBR 算法在高速移动网络中的问题 3.1 时延估计偏小 BBR 算法使用检测到的最小往返时延 ,作为链路时延估计,计算拥塞窗口。然 而,高速移动网络是一个时延抖动剧烈的网络场景,这既与移动网络资源调度有关,又与包 含切换在内的基站处理时延有关。在该场景下,链路的平均时延远大于 ,从而导致 150 BBR 会低估了链路传输能力,拥塞窗口设置偏小。BBR 的拥塞窗口设置过小,导致 BBR 算 的增益阶段,发送速率受限于窗口值, 法尽管进入 PROBE_BW 阶段中 仍无法探测到更多可用带宽。自此造成恶性循环,BBR 拥塞窗口持续变小,BBR 无法充分 地利用链路资源,损伤网络吞吐量。 时延抖动不止是高速移动网络所独有的现象,在日常使用的 4G、WIFI 等网络环境中都 155 客观存在,但在高速移动网络中更为显著。因此,解决 BBR 算法应对时延抖动的问题具有 非常重要的意义。 3.2 切换后窗口恢复过慢 最大带宽 作为计算 BBR 拥塞窗口的另一个重要参数,是一段时间内发送方根据 接收到的 ACK 响应计算的最大吞吐量值。在高速移动网络中,基站切换频繁,切换失败的 160 可能性变大,伴随长时间数据传输暂停及大量在传数据丢失。在经历过较长时间的网络中断 后,BBR 采样到的吞吐量结果变小,导致 值可能需要从一个较小值进行恢复。并且, BBR 窗口增长相比于 Cubic 更加平缓(每经历一轮 PROBE_BW 阶段,最多增加 25%)这也 就意味着,切换失败后,BBR 需要更长的时间提高拥塞窗口大小,造成链路资源浪费。 尽管在高速移动网络中,切换失败导致 BBR 算法失速的现象不会经常发生,这与列车 165 移动速度、途径路线的基站信号覆盖等有关,但在我们的实际测量过程中仍发现有这样的现 象,所以这一问题仍需我们进行解决。 - 5 - minRTTSTARTUPDRAINPROBE_BWPROBE_RTT10s内未检测到更小RTTProbeRTT 超时且BW未满ProbeRTT超时且BW已满Inflight<=bdp连续三轮带宽增长小于25%minRTTminRTT_1.25pacinggain=BtlBwBtlBw
中国科技论文在线 4 对 BBR 算法的改进 http://www.paper.edu.cn 针对高速移动网络场景下时延抖动,导致 BBR 算法对传输时延估计偏低的问题,首先 采用指数加权移动平均的方式(Exponentially Weighted Moving Average, EWMA)计算时延 170 均值 为 (4) 其中, 为每次采样的实际时延, 决定了实际时延占时延均值的权重。在保持计算简 单的情况尽量考虑历时 RTT 的影响。 但是链路的实际时延波动除受固定传播时延以及基站资源调度时延影响外,还会受切换 175 时延影响,且切换时延往往远大于前两者,导致利用公式(4)计算的 过大。为了避 免切换时延对 结果的影响,设置一个时延阈值 T 用来限制 的最大值,此时,链 路的估计时延 为 (5) 当 低于时延阈值 T 时, 可以较好地反映链路时延,故用其作为链路时延估。 180 而当链路受切换等其他因素影响, 高于 T 值时,为限制拥塞控制窗口过大,故用时延 阈值 T 作为链路时延估计,直至链路恢复平稳传输。此时拥塞窗口的计算为 (6) 针对切换后窗口恢复过慢的问题,需要对切换事件进行判定,根据判定结果是否需要执 行窗口会进行决策。具体算法步骤如下: 185 (1) 初始设置。设置一个切换标志 ,初始值为 0,用于标识切换状态。设置两个时 延参数 和 ( ),用于判定切换事件。设置一个带宽恢复值 ,用于对切换后带宽 估计值进行恢复。 (2) 切换判定。利用时延变化作为切换事件发生的判定信号。当 ,检测到实际 时延 大于 ,则判定切换事件发生,将 置为 1;之后当 ,检测到连续三 190 次实际时延 小于 ,则判定切换已完成,将 置为 2,并对当前拥塞窗口是否需要 进行恢复进行判断。 (3) 窗口恢复。将检测到切换事件已结束 时,比较当前 和 。如果发 小于 ,则用 对 进行更新,否则保持不变,即 (7) 现 195 更新之后,将 复位为 0。 5 实验与评价 改进后的 BBR 算法同 BBR 相似,都只需实现在服务端。改进后的 BBR 算法涉及一些 - 6 - avgRTTavgt(1)avgRTTRTTRTT=+−tRTTavgRTTavgRTTavgRTTestRTTest=min(,)avgRTTRTTTavgRTTavgRTTavgRTT_estcwndcwndpainRTTBtlBw=flagHO1T2T12TT>recBW0flagHO=tRTT1TflagHO1flagHO=tRTT2TflagHO2flagHO=BtlBwrecBWBtlBwrecBWrecBWBtlBwmax(,)recBtlBwBtlBwBW=flagHO
中国科技论文在线 http://www.paper.edu.cn 参数的设置,其中默认设置权重 为 0.125(参考 Linux 内核 RTO 的算法设置), 、 分 别设置为 1s 和 80ms(参考实际测量数据中发生切换与未发生切换时往返时延的结果)。而 200 时延阈值 T 的选择需要进一步讨论,因为 T 值的设置一定程度上决定了拥塞窗口的上限, 设置不合理,会导致尽管吞吐量得以提高,但传输时延也过分增大。为此,首先对 T 值的 影响进行实验分析,接着,对改进后的 BBR 算法在真实高铁环境下的传输性能进行验证。 5.1 时延阈值 T 的选择 为了验证时延阈值 T 对改进后 BBR 算法传输性能的影响,在两台 ubuntu16.04 主机之 205 间进行 TCP 流传输。实验中利用 TC 指令在发送端端口将链路带宽设置为 10Mbps,时延在 30ms-70ms 之间动态变化,并观察 T 值分别设置为 40ms、50ms、60ms 以及未设置 T 值的 情况下,发送方使用改进后的 BBR 算法及 BBR 算法作为拥塞控制算法,进行 30 秒的 TCP 流传输,比较各自传输性能。 图 3 显示了基于不同 T 值设置改进后的 BBR 算法与 BBR 算法的性能比较,横坐标为 210 往返时延(单位 ms),纵坐标为吞吐量(单位 Mbps)。根据实验结果,可以得到以下结论: 1) 受限于窗口,BBR 无法充分利用链路资源,进而吞吐量更低,但是时延也最低;2) 适当 的设置 T 值可以在提高吞吐量的同时,确保较低时延;3) T 值并非设置的越大越好,因为窗 口设置的过大,会造成缓冲区排队;4) 不设置 T 值的效果等同于将 T 值设置得很大,甚至 更容易造成长尾现象。 215 图 3 T 值对改进后 BBR 的影响(吞吐量、50th 分位往返时延、95th 分位往返时延) Fig. 3 Impact of T value on improved BBR (Throughput, 50th RTT, 95th RTT) 所以,T 值的选择尤为重要。在接下来的真实高铁传输实验中,改进后的 BBR 算法, 220 以提高吞吐量且保证低时延为目的,将 T 值设置为 50ms。 5.2 仿真网络实验结果与分析 改进后的 BBR 算法主要针对延时抖动较大且伴随频繁切换发生的高速移动网络场景, 为了验证改进后 BBR 算法在这样场景下的有效性,搭建了一个高速移动网络仿真环境对其 进行验证。 225 仿真环境包括由交换机连接的两台 ubuntu16.04 主机,在作为服务器端的主机端口处利 用 TC 指令动态设置链路条件。假设每 10 秒发生一次切换,非切换时刻链路带宽为 10Mbps, 临近切换时刻链路带宽越来越小,链路时延在 30ms-70ms 之间抖动,切换时刻分别增加 100ms 或 1s~2s 的切换时延(分别表示成功切换和不成功切换),链路设有 0.2%随机丢包。 实验持续时间为 60 秒,实验内容为服务器端分别基于 Cubic、BBR 以及改进后的 BBR 算法 230 向客户端传输 60 秒的 TCP 流。 - 7 - 1T2T
中国科技论文在线 http://www.paper.edu.cn 图 4 仿真网络中三种算法的吞吐量与往返时延结果 235 Fig. 4 Throughput and RTT Results of Three Algorithms in Emulation Network 仿真实验中分别设置非成功切换为 0-2 次,观察不同拥塞算法最终实现的平均吞吐量及 平均往返时延,实验结果如图 4 所示。显然,随切换失败次数的增加,三种算法的平均吞吐 量明显下降,这与链路的实际带宽及丢包有关,但改进后 BBR 算法的吞吐量仍远高于 Cubic 和 BBR 算法,这是因为改进后的 BBR 算法对链路时延估计更准确,且切换失败后窗口恢复 240 较快。另外,改进后 BBR 算法的往返时延相较于 BBR 算法略有增加,但远小于 Cubic。综 上,改进后 BBR 算法在高速移动仿真网络中可以很好地提高网络吞吐量且保持较低的时延, 且在切换失败次数越多的链路,性能优势越大。 5.3 真实网络实验结果与分析 为了对改进后 BBR 算法的真实传输性能进行验证,实验选择京津城际高铁作为实际测 245 量场景,实验平台包括一台随高铁移动的笔记本电脑充当客户端,通过连接安卓手机的无线 热点,与部署在清华实验室的远端服务器通信。客户端和服务器都使用内核版本 4.16.3 的 Linux 操作系统,接入网络类型为联通 4g 网络,实验全程各设备均保持满电量且后台应用 全部关闭状态。实验内容为在列车进入稳定的高速移动状态(时速 300km/h 以上)时,由服 务器端依次基于 Cubic、BBR 以及改进后的 BBR 算法向客户端传输 100s 的 TCP 长流,因 250 为相比于短流,长流更容易反映不同算法的作用效果,并且这样的传输方式符合用户实际上 网模式(以下行传输为主)。为了避免单次测量结果的误差,进行了多组测量实验且实验结 论取自 20 组测量实验的平均结果。最终实验从吞吐量及往返时延两方面对算法性能进行评 估。 如图 5(a)所示,是在高速移动网络场景下,Cubic、BBR 以及改进后的 BBR 三种拥 255 塞控制算法吞吐量与传输时延的比较结果。可以看到,Cubic 算法实现的吞吐量(6.52Mbps) 略高于 BBR 算法的吞吐量(6.16Mbps),而改进后的 BBR 算法(7.43Mbps)可以将 BBR 算法的吞吐量提高 20.6%。另外,Cubic 的往返时延(345ms)是 BBR 的(147ms)两倍多。 移动网络中基站分配给每个用户的缓冲区较大[8],所以会造成了 Cubic 算法过分填充缓冲区, 数据包的往返时延远高于控制链路时延的 BBR 算法。但是往返时延的大小对于时延敏感的 260 应用(如游戏)尤为关键,通常需控制在 200ms 以内。改进后的 BBR 算法因对拥塞窗口进 - 8 -
分享到:
收藏