一种有线/无线混合网络中融合三种信息的拥塞控制方法
技术领域
本发明涉及一种有线/无线混合网络中融合三种信息的拥塞控制方法,所述的三种信息为丢包信息、RTT信息和显式拥塞通告信息。
背景技术
TCP是目前Internet中广泛应用的传输控制协议,为各主机之间提供可靠按序的传输服务,TCP拥塞控制是其成功应用于Internet的重要因素。TCP拥塞控制的前提是网络拥塞成为数据丢失的唯一原因,即只要终端检测出有数据丢失,均认为是网络拥塞所致,于是调用拥塞控制机制,这对于链路质量较好的有线环境是适宜的。
然而将传统的应用于有线网络的TCP协议直接应用在无线网络环境中效果并不理想,甚至出现了很多问题,主要表现在以下几个方面。
1.TCP协议中缺乏有效的丢包区分机制。在有线网络环境中,数据的传输成功率较高,此时的数据丢失主要是由于网络拥塞引起的,TCP根据丢包就可以判定网络中发生了拥塞。而在无线网络中,大量的数据会因为信道切换、能量衰落、干扰等原因而被丢弃,这些由于无线环境造成的丢包TCP也同样认为是拥塞丢包从而减小窗口,造成不必要的数据发送速率的降低,导致带宽利用率下降、系统时延加大、吞吐量降低。针对上述问题,目前已经有关于无线网络中TCP协议性能改进的多种方案,如TCP-Probing、I-TCP、M-TCP、Snoop、WTCP、ARQ、FEC等,但还是存在跨层通信、冗余数据过多、数据传输成功率低等问题。
2.不能及时地根据网络情况调整带宽。无线环境变化比较频繁,同时移动主机可用带宽一般都比较低,使得TCP端节点发送速率受到限制,拥塞窗口较小。在这种情况下,一旦有数据包丢失,端节点就不能收到足够多的重复确认包来触发快速重传,因此只能通过超时机制恢复,降低了可用带宽的使用效率并且增加了延迟。目前,针对此问题也提出了很多新的方法,比如TCP Westwood,TCP Westwood+等等,它们从拥塞窗口的调整策略、RTT与可用带宽的关系、带宽分配的公平性等多个方面深入细致地对现有TCP协议进行了分析,提出了新的替代方法,并取得了良好的效果。但是这些方法实现往往比较复杂,在实际部署的时候需要更新用户传输层协议,有些还需要更改中间路由器方法,因此在推广的过程中遇到了较大的阻力。
3.TCP在无线环境下的能量使用效率不高。例如,当无线链路上发生了随机短暂错误时,TCP端节点便降低其拥塞窗口,然后比较保守地逐步增加拥塞窗口大小。在拥塞窗口增长的过程中,没有发生链路错误的传输机会便被浪费了。若错误持续时间比较长,端节点尽管降低了拥塞窗口大小,但是仍然会尝试发送数据,这样就会造成更多数据包的丢失。尽管吞吐量可能会有所增加,但是却消耗了更多的能量,降低了能量使用的效率。
由上述总结可以看出,TCP在无线网络中存在较多的问题,其根本原因就是TCP不能将无线环境引起的丢包和拥塞丢包区分开,缺乏全面的错误控制能力。因此,如何区分无线丢包和拥塞丢包成为改善无线环境下TCP性能的关键。
另一方面,显式拥塞通告ECN机制是在现有的拥塞控制策略的基础上,通过在报文头部定义警告位,由路由器判断网络情况,经过接收端间接地告知发送端网络拥塞的发生。因此ECN使得端节点较早地采取拥塞控制,有效地防止了报文的丢失,避免了不必要的数据重传,从而提高了网络的传输效率。
有线网络中的ECN机制中,路由器一般采用缓存队列长度作为拥塞判断的依据。虽然队列长度在有线网络中能够较好地反应网络拥塞程度,但不适合直接在无线网络中进行测度,原因有以下两点:首先,当在无线节点上的队列长度变长时,无线信道已经发生了严重的竞争拥塞,此时再采取拥塞控制就已经过时了;其次,无线信道的干扰因素较多,导致无线信道上的状态变化复杂,仅依据队列长度很难准确地描述网络的实时状态。因此在混合网络中,有线网络可以沿用传统的使用队列长度判断网络状态,而在无线网络中的ECN机制,需要考虑到无线信道的状态进行反馈。
发明内容
本发明提出一种有线/无线混合网络中融合三种信息的拥塞控制方法,能有效地区分无线丢包和拥塞丢包,对于瓶颈为无线链路的有线/无线混合网络,能提高网络的利用率和吞吐量,以及改善网络的整体性能。。
本发明的技术解决方案如下:
一种有线/无线混合网络中融合三种信息的拥塞控制方法,包括以下步骤:
步骤1:发送端接收到ACK包时读取εce值,若εce为1,认为此时拥塞严重,跳转至步骤4,否则转入步骤2;所述的εce值是指ACK确认包中IP分组头部的CE位值;
步骤2:发送端查看连续收到具有相同确认号的重复ACK包数量dupack,若dupack<3增加拥塞窗口,否则读取D值,若D≤0,转入步骤3,否则跳转至步骤4;
步骤3:发送端拥塞窗口保持不变,重传丢失的分组,返回到步骤1;
步骤4:发送端将慢启动阈值设置为当前拥塞窗口的一半,重传丢失的分组,并设置拥塞窗口为慢启动阈值,返回到步骤1。
D值的计算如下:
其中,
是指数据包平滑往返时延,τ
new是指发送端在收到三个重复ACK之后,接收到的第一个非重复ACK及其所确认的数据包在网络中经历的时间。
的计算方法为:
其中,0≤α≤1,k为计算的步数,k>=1,
和τ(k)分别表示第k步估计的平滑往返时延和第k步测得的样本往返时间。
的初值
设为0。
具体步骤为:
1)发送端接收到ACK包时读取εce值。若εce为1,判断拥塞等级CL为2,跳转至4),否则转入2)。
2)发送端统计连续收到的重复ACK包数量dupack,若dupack<3则隔每一个往返延时将拥塞窗口增加1,否则读取D值。若D≤0,转入3),否则判断拥塞等级CL为2跳转至4)。
3)发送端判断拥塞等级CL为1,拥塞窗口保持不变,重传丢失的分组。
4)发送端判断拥塞等级CL为2,将将慢启动阈值设置为当前拥塞窗口的一半,重传丢失的分组,并设置拥塞窗口为慢启动阈值。
上述的一种有线/无线混合网络中融合三种信息的拥塞控制方法中步骤1)所述εce值是指ACK确认包中IP分组头部的CE位值,它由无线网络中支持跨层ECN机制的无线节点根据MAC层RTS重传次数和有线网络中支持ECN机制的路由器根据队列长度判断网络状态直接填充到分组头的CE位。
上述的一种有线/无线混合网络中融合三种信息的拥塞控制方法中步骤2)所述延时变化值D的计算如下:
上式中
是指数据包平滑往返时延,τ
new是指发送端在收到三个具有相同确认号的重复ACK包之后,接收到具有不同确认号的第一个非重复ACK及其所确认的数据包在网络中经历的时间。
有益效果:
本发明公开了一种有线/无线混合网络中融合三种信息(丢包信息、RTT信息和显式拥塞通告信息)的拥塞控制方法,包括以下步骤:无线节点根据MAC层RTS重传次数对IP分组中的CE位进行标记、有线路由器通过队列长度对IP分组中的CE位进行标记,接收端处理收到的数据包,通过ACK确认包的携带功能告知发送端网络拥塞状态,然后发送端综合考虑丢包信息、RTT信息和显式拥塞通告信息进行拥塞预测,并根据预测结果调整拥塞控制机制。
本发明的技术效果在于:本发明通过结合标识丢包情况的重复ACK包数量信息dupack、RTT变化信息D和有线路由器以及无线节点的ECN反馈信息εce将网络状态划分为两种不同的拥塞等级,更能有效的反映出网络的真实状态。将三种拥塞信息机制融合起来,可以尽量避免单一拥塞检测模式在某些环境下产生的误判信息,如延时噪声所带来的RTT抖动情况等等,降低了单方面信息错误对方法可靠性的直接影响。即使某一种检测产生了误判,但由于有另一种信息在制约着它,使其错误不会对方法的性能产生较大幅度的影响。本发明实施中只需要修改发送方的拥塞窗口调节代码,本发明方法能够适应于有线/无线混合网络中异构链路的传输特性,以保证网络获得更高的吞吐量和链路利用率。
本发明通过融合三种信息进行拥塞判断,有效地区分了无线丢包和拥塞丢包,对于瓶颈为无线链路的有线/无线混合网络,提高了网络的利用率和吞吐量,改善了网络的整体性能。
实施例部分的实验数据进一步证实了上述结论。
附图说明
图1为本发明方法的流程图。
图2为本发明方法的Linux实验床测试环境。
图3为本发明方法和Westwood协议的吞吐量比较。
图3(a)显示了无线链路为瓶颈且有线链路支持ECN机制时,Westwood和本发明方法的瞬时吞吐量比较;图3(b)显示了有线路由器不支持ECN机制时,Westwood和本发明方法的瞬时吞吐量比较;图3(c)显示了无线链路为瓶颈的实验场景中,加入UDP背景流之后Westwood和本发明方法的瞬时吞吐量比较。
具体实施方式
本发明的具体实现方法是:当发送节点收到ACK时,首先判断CE位值,若CE位为1,则判断网络拥塞,直接减小拥塞窗口;否则CE位为0,若没有收到三个重复ACK,则增加拥塞窗口;当收到三个重复ACK时,查看接下来的一个RTT内是否收到非重复ACK,若收到,则判断此时的丢包为无线网络错误引起的丢包,只进行快速重传和快速恢复,而不降低窗口值;若没有收到,则判断丢包是由网络拥塞引起,减小拥塞窗口值。
参见图1,图1为本发明的流程图。首先,定义网络中数据包往返时延为τ,平滑往返时延为
使用错误!未找到引用源。可以求出
公式(11)
其中,0≤α≤1,建议值为0.8~0.9,实际使用0.875,k为计算的步数,
和τ(k)分别表示第k步估计的平滑往返时延和第k步测得的样本往返时间。
发送端接收到3个重复ACK之后,接收到第一个非重复ACK的时间点为tnew,第一个非重复ACK所对应的数据包的发送时间点为tsend,则第一个非重复ACK及其所确认的数据包在网络中所经历的时间τnew与tnew、tsend可以用 公式(22)表示。
τnew=tnew-tsend 公式(22)
D表示发送端从tsend开始到收到非重复的ACK所经历的时间与上一个数据包平滑往返时间之间的差值。 公式(33)表示D。
公式(33)
εce表示拥塞通告位,εce值是指ACK确认包中IP分组头部的拥塞发生标志位值CE(Congestion Experienced),εce为1表明路由器或者无线节点判定网络发生拥塞,反之判定网络没有拥塞。首先根据D划分拥塞通告位εce为0的情况下的拥塞状态等级:
公式(44)
公式(44)中D大于等于0则表明发送端在收到3个重复的ACK之后的一个RTT内并没有收到非重复的ACK,此时判断所出现的丢包是因为拥塞而产生的丢包,设置拥塞等级为2,根据拥塞避免规则进行调节窗口;否则就表明是因为无线网络错误产生的丢包或者产生的拥塞已经基本恢复到轻度拥塞、无拥塞的状态,这个时候不用减小窗口,只需重传丢失的分组即可。
如果εce为1,也认为网络拥塞严重。加入εce之后,拥塞等级的判断规则如表1所示。dupack表示发送端收到的重复ACK数目。
表1:拥塞等级的划分
发送端融合丢包信息、RTT信息和显式拥塞反馈信息划分不同的拥塞登等级,然后根据拥塞等级调节发送窗口:若拥塞等级小于2,则只重传丢失的包,不调节拥塞窗口;若拥塞等级等于2,则按照TCP-Reno中的拥塞避免方法调整慢启动阈值ssthresh和拥塞窗口cwnd,然后再重传丢失的包。
实施例1:
实验中,在Linux操作系统中实现了本方法,并在Linux实验床上对其性能进行了测试。与以往的NS2模拟仿真环境相比,实验床能够提供一个可控的物理网络实验环境,在真实的网络中运行真实的业务流,与实际网络环境更为接近,因此实验结果更有说服力。作为对比,选择了TCP-Reno、TCP Westwood与WM-TCP(Wireless MAC-TCP,本发明方法)进行了比较,方法参数设置均是Linux默认设置。
具体采用图2所示的拓扑结构测试本方法的性能。使用iperf工具产生TCP流,TCP流从服务器端发往无线客户端。其中Reno with CrossLayer ECN表示TCP Reno下,无线网络采用CrossLayer ECN进行反馈,WW with CrossLayer ECN表示TCP Westwood下,无线网络采用CrossLayer ECN进行反馈,WM-TCP with CrossLayer ECN表示WM-TCP下,无线网络采用CrossLayer ECN进行反馈。
首先验证瓶颈在有线链路处时的TCP吞吐量,利用图2所示的最后一跳为无线链路的有线/无线混合网络实验床,其中有线链路1和3的带宽为100Mbps,链路2的带宽为5Mbps,无线链路带宽为54Mbps,此时的瓶颈链路为链路2,每次测试时间均为600s。结果如表2和表3所示。
表2:有线链路为瓶颈且有线路由器支持ECN机制情况下TCP性能分析
表3:有线链路为瓶颈且有线路由器不支持ECN机制情况下TCP性能分析
表2表示在有线路由器支持ECN机制时,三种情况对应的TCP性能。由表2可以看出,并行流的数目从2增加到10时,三种情况对应的TCP总吞吐量都有一定的下降,这主要是因为随着流数目的增加,MAC层竞争加剧,使得信道状态变差,从而数据传输速率降低。并行流数目增加的过程中,TCP-Reno的总吞吐量从4.92Mbps到4.46Mbps,下降了9.35%,而Westwood和WM-TCP分别下降了8.53%、5.28%,其中并行流数目为2、5、8时,后两者吞吐量持平。
表3表示的是有线路由器不支持ECN机制时,三种情况下对应的TCP性能。与表2相比,对应情况下总吞吐量有所下降,这是因为有线出现拥塞时,没有ECN机制的情况下,发送端不能够根据标记来提前知道网络拥塞情况,从而不能够及时地调节发送窗口,使得网络负载加重,减少了整个网络的吞吐量。
表2和表3中数据显示,与TCP-Reno相比,WM-TCP加快了数据传输速率,提高了混合网络的总吞吐量,原因在于WM-TCP将丢包信息、RTT信息以及显式拥塞反馈信息综合考虑进行拥塞控制,这样在有线路由器支持ECN机制情况下,瓶颈链路在判断将要发生拥塞时就会对排队的数据包随机标记CE位,使得发送端及时地接收到标记信息,将发送速率降低到一定的范围内,减少链路负载,避免了严重拥塞的发生。另外,WM-TCP是针对存在无线网络的有线/无线混合网络设计的一种拥塞控制方法,一般这种混合网络中,有线链路成为瓶颈的可能性比较小,所以在有线链路为瓶颈时,相对于Westwood,WM-TCP并没有多少提高,但是后者性能基本与Westwood持平。
接下来,验证无线链路为瓶颈时的TCP吞吐量。利用图2所示的最后一跳为无线链路的有线/无线混合网络实验床,所有有线链路带宽为100Mbps,无线链路带宽为54Mbps,所以可以假设网络拥塞仅仅体现在无线练链路的信道竞争中,每次测试时间均为600s。结果如表4、图3(a)和表5、图3(b)以及图3(c)所示。
表4:无线链路为瓶颈且有线路由器支持ECN机制情况下TCP性能分析
表4表示的是无线链路为瓶颈有线路由器支持ECN时TCP性能比较。并行流数目相同的情况下,WM-TCP的总吞吐量都超过了Reno和Westwood,这是因为WM-TCP充分考虑到了无线网络的特征,在收到三个重复ACK之后会判断一个RTT内是否收到了非重复的ACK,如果收到了则判断是因为无线链路而非拥塞引起的丢包,从而充分利用了并不宽裕的无线带宽,提高了整个有线/无线混合网络的总吞吐量。图3(a)所示的是无线链路为瓶颈且有线链路支持ECN机制时Westwood和WM-TCP瞬时吞吐量比较图。由图3(a)可以看出,Westwood出现多次降速,而WM-TCP一直维持比较均匀的发送速率,使得平均吞吐量高于Westwood。
表5无线链路为瓶颈且有线路由器不支持ECN机制情况下TCP性能分析
表5中所示的是有线路由器不支持ECN机制时TCP性能分析,图3(b)所示的是对应情况下Westwood和WM-TCP瞬时吞吐量比较图。由数据可以看出,这种情况下,WM-TCP总吞吐量也是高于Reno和Westwood,并且图3(b)的瞬时吞吐量图中也没有出现明显的降速,一直维持较为平滑的发送速率。
接着,在无线链路为瓶颈的实验场景中,加入UDP背景流之后,对TCP性能进行了分析。如图3(c)所示。测试时间也是600s,UDP是全程加入,即从0s-600s都有UDP背景流。由图3(c)示,UDP的加入占用了并不富余的无线带宽,TCP发送端就得根据所剩余的带宽来调节合适的发送速率。WM-TCP能够较准确地区分拥塞丢包和无线丢包,从而更能充分地利用剩余带宽,提高了整体的吞吐量。
最后,选取了拥塞在无线链路处、有线不支持ECN的情况,对采用WM-TCP拥塞控制方法传输大数据块的场景进行了分析。如表6所示。
表6:有线链路不支持ECN时100M文件传输结果
算法 |
平均速度(Mbps) |
传输时间(s) |
Reno with CrossLayer ECN |
6.31 |
114.613 |
WW with CrossLayer ECN |
7.358 |
108.725 |
WM-TCP with CrossLayer ECN |
8.018 |
99.775 |
采用FTP传输100M文件时,WM-TCP协议对应的平均速度是8.018Mbps,传输时间为99.775s,与Reno和Westwood相比,速度提高了27.01%和8.97%。