美章网 资料文库 网络协议论文:无线网中协定的算法优化透析范文

网络协议论文:无线网中协定的算法优化透析范文

本站小编为你精心准备了网络协议论文:无线网中协定的算法优化透析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

网络协议论文:无线网中协定的算法优化透析

作者:陈海丽单位:广东省高级技工学校

旧的数据包

这情现象相对来说少一些,发生类似这种情况的主要是由于TCP发送端出现了超时计数器出现了超时,这时就会重新传输超时的数据包,这种基站会收到序号小于基站缓存中缓存的最大序号的数据包信息。这种情况是由于TCP在发送端超时而重传的数据包也会被转发到相应的TCP接收终端。

ack算法流程

下面是Snoop对接收到的确认数据包时所处理流程,图1表示了ack()算法流程图:Snoop是属于接收到的ACK,ACK分为三种情况:第一种是新的ACK、第二种是旧的且是不重复的ACK、第三种是旧的且重复的ACK。Snoop在时对他们进行不同的情况进行处理。

(1)新ACK

这是属于正常的情况,Snoop对于ACK已经所确认的数据包会从缓存中删除掉,而且又要重新开始计算无线网络端到端的传输时延值。此时的ACK会被传送给TCP的发送终端。

(2)旧的ACK而且不是重复的ACK

类似这种情况相对来说会少一些。Snoop会丢弃这个ACK。

(3)旧的ACK并且是重复的ACK

这种情况是代表了TCP在接收端并且没有收到这个ACK时所确认的下一个需要的数据包。假如这个ACK所确认的下一个数据包是没有直接被data()标记为拥塞的数据包时,那么就会知道这个数据包是在无线网络的传输中被丢失的。当不断重复地确认数据包数大于或等于3时,Snoop就会马上重新传输这个数据包。假如被标记为拥塞数据包时则会发送到相应的接收端。

现有Snoop协义算法的缺点

虽然现有Snoop算法可以提高系统的吞吐量,但是有许多缺点,具体缺点如下:

(1)TCP的发送端存在拥塞控制不及时

由于Snoop存在过滤一些重复的确认数据包功能,因此,使得TCP发送端不能通过接收到三个重复的确认数据包进行拥塞控制。这样TCP的发送端只允许通过超时计数器的超时行为方可以作相应的拥塞控制处理,这样就会使得TCP在发送端出现网络拥塞时无法进行及时的拥塞控制,从而导致网络性能出现更差的现象。

(2)TCP存在交叉层问题

因为无线链路出现了错误从而导致了相应数据包丢失的现象,此时Snoop就会在本地重新传输已经丢失掉的数据包。通常在这种情况下,TCP在发送端的超时计数器出现超时之前,部分重传数据还没有完成,TCP的发送端就会认为网络已经出现了拥塞现象,此时就会进行相应的拥塞控制处理,将开始慢慢启动阈值并将其设置为拥塞时的一半,将相应的发送窗口设置为1,使得相关的发送进入慢启动的阶段。TCP盲目地降低了网络数据传输速度,这样就导致了链路的利用率出现降低状况,从而使得整个系统的吞吐量出现了下降,此时丢失的数据包在传输层以及链路层将会同时被重传,这样就会浪费了有限的带宽资源。

Snoop协议中算法的改进措施

鉴于Snoop拥塞控制机制存在一些缺点,下面我们根据实际情况提出了针对Snoop算法的优化方案Snoop_BE,这个优化方案可以使其在TCP发送端增加带宽估计算法。与旧的Snoop算法相比可以体现了TCP在发送端增加带宽估计算法可以很好地动态设置发送窗口以及慢启动的阈值,可以使相关的发送端避免盲目地减少拥塞窗口,并且更好地优化了Snoop算法,也可以对网络的拥塞情况做出更快的反应。

本文中所使用的带宽估计算法是属于TCPWestwood算法。TCPWestwood算法所采用的带宽估计算法可以为发送端通过观察接收端来返回相应的确认数据包时间的间隔来估算到终端链路上的能够使用的带宽。通过确认ACK的时间间隔和其相对应的数据包大小来估算瓶颈链路时能够使用的带宽。发送端在kt时刻所接收到接收端的确认数据包,就会清楚已确认数据包所确认后的数据是否已经被接收端成功地接收,k1t是属于上一个确认数据包接收端的时间,kd是属于所确认的数据量,所以这样可以简单的通过公式(2-1)来算出相应的网络带宽kB:由于网络拥塞是发生在整个网络中的数据包流量出现了超过链路的容量的时候,因此我们可以使用最简单的公式得到的是一个在较短时间内的带宽值,同时如果当接收端出现延迟确认数据包时,对估算后的平均值可能影响较大,因此带宽估算法的选择上需要十分慎重。TCPWestwood所使用的带宽估算法的公式如(2-2)所示:与一般的拥塞控制算法相比,TCPWestwood最基本的拥塞窗口动态调整算法在慢慢启动阶段以及拥塞避免阶段都没有完全改变。这个算法思想是这样的:当网络发生拥塞时,也就是接收到三个重复的ACK或者是计数器存在超时现象时,TCPWestwood将会试图选择一个慢启动阈值或者拥塞窗口来有效地利用网络带宽。TCPWestwood可以避免将发送端的无线信道因偶然的错误而出现丢包而误以为是网络拥塞出现征兆,从而减少一些不必要的窗口,也使得其在整个无线网络中更加有效。

Snoop的优化算法Snoop_BE其具体改进方法是这样的:在Snoop模块里面取消重复ACK过滤功能,将已经接收到重复的ACK发送到接收方这一端。而作Snoop模块依然需要保留对ACK的重复计数功能,当Snoop模块收到三个重复的ACK时就需要进行本地数据包的重复传输,其它相关功能保持不变。在发送端,当接收到三个重复的ACK或者是超时计数器超时,就需要进行改进的拥塞控制;如果接收到三个重复的ACK时,那么发送端就需要根据当时的带宽估计值来进行设置相应的慢启动阈值以及拥塞窗口的处理,但是不会重新传输已经丢失掉的数据包;接到三个重复ACK时,此时就需要设置当前可用带宽值为BWE,端到端的最小时延为RTTmin,数据包值的大小为seg_size,慢启动阈值为ssthresh,拥塞窗口为cwin,那么发送端的动态窗口就可以调整算法如下:下面对Snoop的优化算法Snoop_BE在接收到ACK时的操作进行相关的说明。当发送端接收到接收端发送的ACK时,就会根据ACK的状态执行相应的操作。那么当发送端出现正常的情况下接收到新的ACK时,就可以知道数据包已被正常接收,此时就会取消该数据包的超时计数器的工作;假如当接收到重复的ACK时,并且这个重复ACK数量是小于3时,那么就会将这个数据包的重复ACK计数累加1;如果当接收到重复的ACK,并且其重复的ACK数量是大于或等于3时,所发送端就会依照估算得到的可用带宽动态来调整拥塞窗口以及慢启动阈值,图2为发送端控制算法流程图。

当接收端出现超时计数器超时时,那么发送端就会根据当时的带宽估算值来进行相应的动态设置慢启动阈值以及拥塞窗口来处理。将慢启动阈值设为(BWE*RTTmin)/seg_size,当(BWE*RTTmin)/seg_size小于2,慢启动阈值设为2,拥塞窗口设为1。并且重新传输已丢失掉的数据包。发送端的具体控制流程图如图3所示。

改进后的Snoop协议的仿真结果及分析

在无线网络运行环境下,无线链路的误码率是直接影响着整个网络传输性能的主要原因之一,当无线链路误码率越来越高时,整个系统的性能就会越来越差。因此模拟在不同的链路环境错误的情况下,需要改进的Snoop协议与其他相关协议的比较,在整个试验中,TCP的平均吞吐量如图4所示。从上面的实验结果来看,改进后的算法可以使得无线链路误码率变得较低以及有效的减少丢包率,其实TCP的在不同版本中吞吐量大致相同。可是如果当误码率不断增高的时候,他们的吞吐量就会随之而下降。其中TCPReno的下降速度是最快的,这是由于在整个无线链路中RTT出现的变化较大,而TCPReno是通过RTT的值来改变拥塞窗口的,因此在无线链路误码率较高时候,它就无法适应。由于TCPSack是采用了选择性进行重复传输的技术,因此在一定的程度上有效地降低了无线链路错误造成的不良影响。与Snoop算法相比较可以知道改进后的Snoop算法在整体性能上优于传统的Snoop算法,这是由于当链路错误而造成的相关数据包丢失,而且链路层也没有成功的进行局部重复传输时,TCP的发送端就会盲目地启动相关的拥塞控制,从而减少了拥塞窗口,有效地降低了无线链路的利用率,从而改进Snoop的算法,是依照估算的可用带宽来动态地改变拥塞控制窗口。

而且如果当用于网络拥塞产生丢包的现象是Snoop算法就无法按照接收到重复的ACK来进行相应的拥塞控制处理,唯有当发生计数器存在超时时才可以行动。如此一来就无形中增加了网络的拥塞,而改进后Snoop算法则可以很好地对网络拥塞现象做出快速的反应。

网络的时延是影响整个无线网络性能的较为关键因素之一,图5是Snoop改进算法后与其它TCP拥塞控制算法在不同的链路时延下的系统性能下降的情况比较。

从图5可以看出,当网络时延增加时,整个系统的性能就会变差,当在时延很小时完全可以忽略不计,那么此时的吞吐量基本上是一样的,而如果当网络的时延在不断地增加时,Snoop算法的吞吐量就会明显小于改进后的算法。这是由于网络上时延的增多时TCP接收端发生超时计数器超时,使得相关的接收端误以为网络发生了拥塞而出现错误的减少拥塞窗口,而当Snoop改进算法在检测到发生网络超时不是盲目地减少拥塞窗口值,而是按照接收端估算后得到的可用带宽值动态的设定拥塞窗口值,这样就可以在出现网络时延较大时,对于无线网络性能的影响较小。

总结

综上所述,本文介绍了现行Snoop算法存在的不足以及算法的改进措施。在Snoop算法的基础上增加了带宽估计算法来动态的调整拥塞控制窗口的大小。根据模拟结果对改进算法进行分析,通过试验分析可以得出误码率较高和时延较大的情况下,改进的Snoop算法可以有效提高无线网络的吞吐率。