2. 中国人民解放军61618部队, 北京 100094
2. No. 61618 Unit of PLA, Beijing 100094, China
缓存膨胀问题(bufferbloat)的研究最早始于互联网,由Gettys等[1]提出。它是指当发送窗口(swnd)过大时,多于链路容量的分组阻塞在缓存中造成的网络延时增加的现象。在蜂窝网络中,无线链路是一个易错链路,链路状态呈动态变化的趋势。为提高无线链路中分组传输的可靠性,通常采用链路层的重传机制,这就需要在基站上给每个用户都配置一个大缓存[2-3]。相比带宽固定的有线链路,与基站直接相连的无线链路通常是蜂窝网络中数据传输的瓶颈链路[4-5]。当数据的发送速率大于无线链路的可用带宽时,大缓存的存在会使得缓存膨胀问题更易于发生。
蜂窝网络中对缓存膨胀问题的解决方案可以分为两种类型:一类是运行于数据发送端的解决方案,如TCP-RRE (TCP receiver-rate estimation)[6];另一类是基于接收端的解决方案,如DRWA(dynamic receive window adjustment)[2]。这两类方案其本质都是使数据的发送速率与网络可用带宽的大小相适应,区别在于估计网络可用带宽的位置和所用方法的不同。TCP-RRE取消了传输控制协议(transport control protocol, TCP)的分组确认(ACKnowledgement,ACK)机制,发送端以它计算的接收速率来估算网络的可用带宽,并依据接收速率和缓存中队列长度的变化来动态改变发送速率,使之与网络的可用带宽相适应。DRWA则是一个基于延时的接收窗口(rwnd)调节算法,用以解决接收窗口的静态阈值无法适应动态变化的网络状态的问题。DRWA在接收端通过接收的数据量来估计可用带宽,并结合网络延时的变化来动态地设置接收窗口的大小,再通过TCP的流控机制使发送窗口的调节适应于网络可用带宽的变化,最终达到解决缓存膨胀问题的目的。
就蜂窝网络中作为瓶颈链路的无线链路来说,其可用带宽由无线链路的信道质量决定,而信道质量则由信道状态参数所表征。基站就是通过使用移动终端上传的信道状态参数来确定无线链路的数据传输速率[7-9]。然而上述两类方案只利用传输层的信息估计可用带宽,构建模型时需要设定部分参数,从而会引入额外的误差,而且静态参数也无法适应不同的网络环境。
因此, 本文提出了一种名为ABRWDA (available bandwidth based receive window dynamic adjustment)的接收窗口调节方案来解决蜂窝网络中的缓存膨胀问题。该方案的主要特点是在移动终端直接利用可测的信道状态信息来计算作为瓶颈链路的无线链路的可用带宽,并使接收窗口的调节与可用带宽的变化相匹配;进而利用TCP的流量控制机制使发送窗口的调节与瓶颈链路可用带宽的变化相适应,从而避免过量的分组积压在基站的缓存之中,有效地克服了缓存膨胀问题。
1 基本思路缓存膨胀问题是由于大量数据分组阻塞在大缓存中而产生的,因此解决它的关键就是减少分组在缓存中的累积。缓存中分组的入速率由TCP发送窗口的大小决定,出速率则由网络的可用带宽决定。而网络的可用带宽往往取决于瓶颈链路的可用带宽,因此,若TCP发送窗口的大小与网络的可用带宽相匹配时,缓存膨胀问题就能得到解决。在蜂窝网络中,有线链路的状态对网络性能的影响较小[10]。相对于带宽固定的有线链路,无线链路往往是TCP连接的瓶颈链路[2-3],无线链路的可用带宽也就成为网络的可用带宽。所以,估计无线链路的可用带宽就成为解决缓存膨胀问题的关键。
在蜂窝网络中,移动终端作为TCP连接下行链路的接收端和上行链路的发送端,与无线链路直接相连,可以直接测量无线链路的状态信息[11-13]。基站根据移动终端测量上传的信道参数来调节无线资源的调度。无线资源的多少决定了可以传输的数据量,也就是可用带宽的大小。尽管不同类型的网络所对应的信道状态参数各有不同,但这些信息在移动终端都是可测的[11, 13]。相对于其他基于传输层信息估计可用带宽的方法,直接利用信道状态参数计算可用带宽则更为准确,文[11]也验证了这一点。
TCP发送窗口的调节开始于一个新的往返时间(round trip time,RTT),当前计算的接收窗口值只在下一个RTT时间内起作用。因此在使用可用带宽计算接收窗口时,需要对可用带宽的变化做进一步的预测。同时,RTT估计也需要接收端来完成。发送端对RTT的估计是根据数据分组的发送时间和相应的ACK分组的接收时间来计算的;而对接收端而言,每一个ACK分组的发送都会触发新的数据分组的发送。因此一个ACK分组的发送与相应的数据分组的接收之间的时间间隔则为一个RTT时间。RTT可以通过时间戳来估计,也可以通过估算发送窗口的方法来估计。使用可用带宽和RTT的估计值就可以计算出接收窗口的大小,而发送窗口的调节则通过TCP的流控机制来实现。
在估计可用带宽时,ABRWDA需要通过与移动终端硬件系统的交互来获取无线链路的状态参数,并通过状态参数与数据传输速率的映射来估算出可用带宽。这就需要获取移动终端的根权限,从系统内核读取信道的状态参数;另外还需要在移动终端上保存链路状态参数与数据速率的映射表。所有这些操作都会带来一定的CPU和内存占用,以及额外的能耗。然而现有研究表明,这些系统负载的数量级较小,不会对网络整体的数据传输性能造成影响[13]。
2 ABRWDA方案设计 2.1 总体框架ABRWDA方案设计在移动终端完成,如图 1所示,主要分为3个部分:根据无线链路的状态信息估计可用带宽;可用带宽的精化估计与预测;接收窗口的计算。图中k表示当前时间,y(k)表示在当前时间内根据信道的状态信息计算的可用带宽,
|
| 图 1 ABRWDA的总体框架 |
ABRWDA运行时,首先要根据信道状态参数计算可用带宽(图 1中的步骤①)。蜂窝网络中无线信道的状态参数可以反映无线信道的数据传输质量。信道的状态参数与所要传输的负载量、物理信道调制编码方案及物理资源块的数量等因素之间存在一定的对应关系[7-9]。因此该模块根据所获取的不同的信道状态参数值,如RSSI(received signal strength indicator)或CQI(channel quality indicator)等,就可以计算出无线链路的数据速率,也就是本文中的可用带宽y(k)。
其次是对可用带宽进行精化估计和预测(图 1中的步骤②)。由于信道噪声和计算方法的影响,根据无线链路的状态信息所计算出的可用带宽不可避免地带有一定的误差;同时,在TCP流控机制中,接收窗口对发送窗口的调节要在下一个RTT时间才生效,而当前的接收窗口并不能准确反映下一个RTT时间内的可用带宽,所以需要对下一个RTT时间内的可用带宽进行有效的预测。Kalman滤波算法[14-15]能够根据系统噪声和测量噪声的变化,动态地调节测量值和预测值在估计可用带宽时的权重,因此可以用于可用带宽的精化估计和预测。精化估计和预测后的可用带宽
最后是RTT的估计和rwnd的计算(图 1中的步骤③)。根据TCP的时间戳选项是否可用,RTT的估计方法分为两类:当时间戳选项可用时,RTT估计值为一个窗口内用时间戳计算的RTT采样的平均值;而当时间戳选项不可用时,RTT的估计值就是一个字节首次被确认的时间与另一个序列号至少大出一个窗口值的字节的确认时间之间的差值。
将所预测的可用带宽与估算的RTT相乘,就得到接收窗口的大小:
| $ {\rm{rwnd = }}\mathit{\hat B}{\rm{(}}\mathit{k}{\rm{ + 1|}}\mathit{k}{\rm{)RTT(}}\mathit{k}{\rm{)}}{\rm{.}} $ | (1) |
发送端依据TCP的流控机制,在拥塞窗口和接收窗口之中选取一个最小值设定为发送窗口的大小,进行数据的发送。
2.2 可用带宽的精化估计与预测从长时间尺度来看,无线信道的状态是动态变化的,但在一个小的时间范围内,信道状态的变化是相关的。因此,下一个时间周期内的可用带宽B(k+1)可认为是由当前时间内的可用带宽B(k)与一个过程噪声w(k)组成。当采用信道的状态信息计算可用带宽时,由于信道噪声和干扰等各方面因素的影响,所得的计算结果y(k)与真实的可用带宽B(k)并非完全一致,其差异可以用一个计算噪声v(k)来表示。因此可用带宽的精化估计与预测可用如下的系统模型表示:
| $ \left\{ \begin{array}{l} \mathit{B}\left( {\mathit{k}{\rm{ + 1}}} \right){\rm{ = }}\mathit{B}\left( \mathit{k} \right){\rm{ + }}\mathit{\boldsymbol{w}}\left( \mathit{k} \right){\rm{, }}\\ \mathit{y}\left( \mathit{k} \right){\rm{ = }}\mathit{B}\left( \mathit{k} \right){\rm{ + }}\mathit{\boldsymbol{v}}\left( \mathit{k} \right){\rm{.}} \end{array} \right. $ | (2) |
假设过程噪声w(k)和计算噪声v(k)都为独立的Gauss白噪声,且服从正态概率分布。其方差分别记为Q=E[w(k)· w(k)T]和R=E[v(k)· v(k)T]。基于Kalman滤波算法的可用带宽预测分为3个部分:可用带宽的预测,模型的输入量为可用带宽的计算值y(k);Kalman增益的迭代计算,模型的输入量为计算噪声的方差R;预测误差的计算,模型的输入量为过程噪声的方差Q。预测可用带宽的原理框图如图 2所示,其中Kalman增益和预测误差的计算都包括在Kalman增益求解模块之中;Z-1表示单位延时,I为单位矩阵,Z-1I表示系统状态回退到上一个时间周期。
|
| 图 2 ABRWDA中可用带宽的预测原理框图 |
在当前的时间周期内,根据信道的状态信息计算的可用带宽为y(k), 上一个时间周期内预测的可用带宽为
| $ \begin{array}{l} \mathit{\hat B}{\rm{(}}\mathit{k}{\rm{|}}\mathit{k}{\rm{) = }}\mathit{\hat B}{\rm{(}}\mathit{k}{\rm{|}}\mathit{k}{\rm{ - 1) + }}\\ {\rm{Km(}}\mathit{k}{\rm{)}}\left[{\mathit{y}{\rm{(}}\mathit{k}{\rm{)-}}\mathit{\hat B}{\rm{(}}\mathit{k}{\rm{|}}\mathit{k}{\rm{-1)}}} \right]{\rm{.}} \end{array} $ | (3) |
其中: y(k)-
| $ \mathit{\hat B}{\rm{(}}\mathit{k}{\rm{ + 1|}}\mathit{k}{\rm{) = }}\mathit{\hat B}{\rm{(}}\mathit{k}{\rm{|}}\mathit{k}{\rm{)}}{\rm{.}} $ | (4) |
权值Km(k)称为Kalman增益,按下式计算:
| $ {\rm{Km}}\left( \mathit{k} \right){\rm{ = }}\frac{{\mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{|}}\mathit{k - }{\rm{1}}} \right)}}{{\mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{|}}\mathit{k - }{\rm{1}}} \right){\rm{ + }}\mathit{R}}}{\rm{.}} $ | (5) |
而P(k|k-1)是可用带宽预测的误差矩阵,可按下列公式进行迭代计算:
| $ \mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{|}}\mathit{k}} \right){\rm{ = }}\left( {{\rm{1 - }}\mathit{Km}\left( \mathit{k} \right)} \right)\mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{|}}\mathit{k - }{\rm{1}}} \right){\rm{, }} $ | (6) |
| $ \mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{ + 1|}}\mathit{k}} \right){\rm{ = }}\mathit{\boldsymbol{P}}\left( {\mathit{k}{\rm{|}}\mathit{k}} \right){\rm{ + }}\mathit{Q}{\rm{.}} $ | (7) |
在式(5)和(7)中,Kalman增益和预测误差都随过程误差和计算误差的变化而变化,因此可用带宽的预测能够动态地适应网络状态的变化,获得更为准确的预测值。
2.3 RRT估计和rwnd的计算TCP的时间戳选项中,字段TSval表示数据分组的发送时间,TSecr则回显了触发该分组发送的ACK分组的发送时间[16]。当终端接收到分组时,用当前时间减去时间戳中的回显时间,就是一个RTT采样。在ABRWDA中,RTT的估计是在接收端完成的, 估计的方法如图 3所示。
|
| 图 3 RTT估计原理图 |
在图 3中,实线表示数据分组的发送,虚线表示ACK分组的发送。当时间戳选项可用时,trn时刻发送的ACK分组的时间戳可表示为(trn, tsn), 该ACK分组在tsk时刻触发数据分组的发送,其时间戳为(tsk, trn),trk时刻数据分组到达接收端,则RTT可由下式计算:
| $ {\rm{RTT(}}\mathit{k}{\rm{) = t}}{{\rm{r}}_\mathit{k}}{\rm{ - t}}{{\rm{r}}_\mathit{n}}. $ | (8) |
而当时间戳选项不可用时,采取估算发送窗口的方法来计算RTT。在一个RTT时间内,发送端发送的数据量为发送窗口的大小, 因此当接收端接收到的数据量累积达到估算的发送窗口的大小时,则认为这期间的时间长度为一个RTT。在ABRWDA中,发送窗口的大小用可用带宽与RTT的乘积来估计。如在图 3中,从trn时刻到trk时刻当接收数据的累积量大于估算的发送窗口时,RTT则为trn和trk的差值。
接收窗口的大小则由RTT的估计值与可用带宽预测值的乘积来确定。这样,当发送端收到由ACK分组带回的接收窗口的大小时,就可以根据TCP的流控机制进行发送窗口的调节,使之与网络可用带宽的变化相匹配。
3 实验与性能评价 3.1 实验设置本节使用网络仿真平台NS-2来验证ABRWDA的性能。仿真拓扑结构如图 1所示,链路参数按照UMTS (universal mobile telecommunications system)的标准进行配置,并参考了文[17]中的链路模型。
在实验中使用了文[18]中实际测量的下行链路的带宽测量文件,也就是说测量方程中的y(k)为测量文件中的带宽值。文[18]中的带宽测量文件来源于3G网络中接收端对基于超文本传输协议(hyper text transport protocol,HTTP)的移动视频流的数据记录, 实验中服务器和接收端位于同一位置(有线链路对网络性能的影响可以忽略不计),因此测量结果可以真实地反映网络的可用带宽。
3.2 性能评价传输控制协议有2种类型:一种以分组丢失或超时作为网络拥塞的标志,如本文提出的ABRWDA;另一种则以延时变化作为判断拥塞的依据,如TCP Vegas[19]。本节基于实验结果分析比较在发生缓存膨胀问题的网络环境下,ABRWDA、DRWA和TCP Vegas在解决缓存膨胀问题和提升用户使用体验方面的性能差异。
1) 缓存膨胀问题的解决。图 4是ABRWDA、DRWA和Vegas在发生了缓存膨胀问题的网络中的性能情况。从图 4a中ABRWDA的带宽和吞吐量的变化曲线来看,在实际的网络环境中,ABRWDA的吞吐量随网络带宽的动态变化而变化,展示了良好的适应网络状态变化的能力。而DRWA的吞吐量没有紧跟链路带宽的动态变化,吞吐量的抖动时有发生。TCP Vegas的吞吐量则最小。
|
| 图 4 ABRWDA、DRWA和Vegas的吞吐量、队列长度和往返时延的性能对比,仿真时间为60 s |
在解决缓存膨胀问题时,需要既能维持网络的吞吐量不变,又要降低网络的传输延时。在数据传输时,缓存中保持适当的队列长度既可以保证网络有较好的吞吐量,又可以将延时控制在一定范围之内。图 4b显示的是仿真实验中队列长度的变化情况。通过分析曲线的变化趋势可以发现,ABRWDA始终维持着一个较小的队列,从而保证了网络的吞吐量。而从图 4c可以看到,ABRWDA的RTT也较小,即ABRWDA较好地解决了缓存膨胀问题。
DRWA对发送窗口的调节基于传输层的数据信息,大缓存的存在使它在网络状态发生变化时不能及时做出响应,网络延时相应增加。从图 4b和图 4c来看,DRWA的队列长度总体较大,而且剧烈振荡,RTT的变化也较大。而TCP Vegas的队列长度和RTT虽然都比较小,但这些都是以吞吐量的降低为代价。因此综合来看,DRWA和Vegas都没有很好地解决缓存膨胀问题。
2) 用户使用体验的提升。当前各种移动应用程序(如网页浏览、文件下载和移动视频等)日益普及,不同的应用程序传输的数据量不同,因而需要不同级别的网络服务。一个典型的移动应用场景就是浏览网页的同时进行文件的下载,即网络中同时存在短流(网页浏览)和长流(文件下载)。短流对应于延时敏感型的应用,而长流则对应吞吐量敏感型的应用。缓存膨胀问题的存在会让延时敏感型应用的响应速度减缓,例如浏览网页时页面的长时间停滞。因此在这样的环境下,短流的完成时间就成为评价用户体验的一个重要指标。本文通过比较短流的平均流完成时间(averaged flow completion times, AFCT)来评价ABRWDA、DRWA、Newreno和Vegas在发生缓存膨胀问题时的网络响应性即用户的使用体验。每组实验都建立100条TCP流,除一条为长流外,其他都为短流。实验开始时启动长流,而其他的短流则在一定的时间间隔后依次启动。为避免不同短流间的相互影响,这些短流在时间尺度上没有重叠。实验结果如图 5所示。
|
| 图 5 不同网络环境下ABRWDA、DRWA、Newreno和Vegas的AFCT比较 |
通过比较3个子图可以发现,Vegas在短流大小为一个分组时AFCT最小。但是当流大小增加时,它的优势逐渐减弱。DRWA和ABRWDA都是基于接收端的算法,当流大小为1或30个分组时,它们的性能都比较好而且差别不大,然而当流大小增加到200个分组时,DRWA的性能急剧下降,在某些情况下它的性能甚至比Newreno还差。在这4种算法中,只有ABRWDA在任何场景下都能保持较好的性能。ABRWDA的AFCT比Newreno的减少了25%~78%,比DRWA的减少了50%左右。当流大小为200个分组时,ABRWDA的AFCT比Vegas的减少了61%~91%。而且随着网络环境的变化,ABRWDA的AFCT增长最为平稳,进一步说明了ABRWDA具有良好的网络状态适应性。
4 结论本文提出一种基于无线信道状态信息的接收窗口调节方案ABRWDA来解决蜂窝网络中的缓存膨胀问题。该方案利用无线链路的状态信息来计算网络的可用带宽,并使发送窗口的调节与可用带宽的动态变化相适应。仿真实验结果表明:ABRWDA可以很好地适应网络状态的动态变化,在不减少吞吐量的情况下能显著地降低网络的传输延时,有效地解决了缓存膨胀问题。
| [1] | GETTYS J, NICHOLS K. Bufferbloat:Dark buffers in the internet[J]. Queue, 2011, 9(11): 40. DOI:10.1145/2063166 |
| [2] | JIANG H, WANG Y, LEE K, et al. Tackling bufferbloat in 3G/4G networks[C]//Proceedings of the 2012 ACM Conference on Internet Measurement Conference. Boston, MA, USA: ACM, 2012: 329-342. |
| [3] | CHAN S C F, CHAN K M, LIU K, et al. On queue length and link buffer size estimation in 3G/4G mobile data networks[J]. IEEE Transactions on Mobile Computing, 2014, 13(6): 1298–1311. DOI:10.1109/TMC.2013.127 |
| [4] | WINSTEIN K, SIVARAMAN A, BALAKRISHAN H. Stochastic forecasts achieve high throughput and low delay over cellular networks[C]//10th USENIX Symposium on Networked Systems Design and Implementation. Lombard, IL, USA: USENIX, 2013: 459-471. |
| [5] | HUANG J, XU Q, TIWANA B, et al. Anatomizing application performance differences on smartphones[C]//Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services. San Francisco, CA, USA: ACM, 2010: 165-178. |
| [6] | LEONG W K, XU Y, LEONG B, et al. Mitigating egregious ACK delays in cellular data networks by eliminating TCP ACK clocking[C]//201321st IEEE International Conference on Network Protocols (ICNP). Göttingen, Germany: IEEE, 2013: 1-10. |
| [7] | 3GPP TS 25. 211. Physical Channels and Mapping of Transport Channels onto Physical Channels (FDD)[S]. Valbonne, France: 3GPP, 2017. |
| [8] | 3GPP TS 25. 221. Physical Channels and Mapping of Transport Channels onto Physical Channels (TDD)[S]. Valbonne, France: 3GPP, 2017. |
| [9] | 3GPP TS 36. 213. Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Layer Procedures[S]. Valbonne, France: 3GPP, 2017. |
| [10] | CHEN X, JIN R, SUH K, et al. Network performance of smart mobile handhelds in a university campus WiFi network[C]//Proceedings of the 2012 ACM Conference on Internet Measurement Conference. Boston, MA, USA: ACM, 2012: 315-328. |
| [11] | LU F, DU H, JAIN A, et al. CQIC: Revisiting cross-layer congestion control for cellular networks[C]//Proceedings of the 16th International Workshop on Mobile Computing Systems and Applications. Santa Fe, NM, USA: ACM, 2015: 45-50. |
| [12] | XIE X, ZHANG X, KUMAR S, et al. piStream: Physical layer informed adaptive video streaming over LTE[C]//The 21st Annual International Conference on Mobile Computing and Networking. Paris, France: ACM, 2015: 413-425. |
| [13] | LI Y, PENG C, YUAN Z, et al. Mobile insight: Extracting and analyzing cellular network information on smartphones[C]//The 22nd Annual International Conference on Mobile Computing and Networking. New York, NY, USA: ACM, 2016: 202-215. |
| [14] |
HAYKIN S. 自适应滤波器原理: 4版[M]. 郑宝玉, 等译. 北京: 电子工业出版社, 2010. HAYKIN S. Adapative filter theory: 4th ed[M]. ZHENG B Y, et al., trans. 4th ed. Beijing: Publishing House of Electronics Industry, 2010. (in Chinese) |
| [15] |
秦永元, 张洪钺, 汪叔华.卡尔曼滤波与组合导航原理[M].西安:西北工业大学出版社, 1998. QING Y Y, ZHANG H Y, WANG S H. Theory of Kalman filter and integrated navigation[M]. Xi'an:Northwestern Polytechnical University Press. (in Chinese) |
| [16] | JACOBSON V, BRADEN R, BORMAN D. TCP extensions for high performance. [2016-11-10]. https://www.ietf.org/rfc/rfc1323.txt. |
| [17] | GURTOV A, FLOYD S. Modeling wireless links for transport protocols[J]. ACM SIGCOMM Computer Communication Review, 2004, 34(2): 85–96. DOI:10.1145/997150 |
| [18] | RIISER H, VIGMOSTAD P, GRIWODZ C, et al. Commute path bandwidth traces from 3G networks: Analysis and applications[C]//Proceedings of the 4th ACM Multimedia Systems Conference. Oslo, Norway: ACM, 2013: 114-118. |
| [19] | BRAKMOr L S, PETERSON L L. TCP vegas:End to end congestion avoidance on a global Internet[J]. IEEE Journal on Selected Areas in Communications, 1995, 13(8): 1465–1480. DOI:10.1109/49.464716 |

