一种传输层源端速率控制方法与流程

文档序号:12613533阅读:252来源:国知局
一种传输层源端速率控制方法与流程

本发明涉及无线网络拥塞控制技术领域,具体涉及一种传输层源端速率控制方法。



背景技术:

现有研究已经表明,传输控制协议(TCP)在多跳无线网络中表现出严重的性能恶化。造成这种现象的主要原因是传输层经常性地误判网络的拥塞状况。一个数据包的丢失被认为是网络拥塞的一种标志。然而,无线网络中存在多种其它的可能导致丢包的因素。例如,无线信道的高误码率,开放共享信道的冲突,以及由终端的移动造成的路由失效。频繁的丢包抑制了传输层发送窗口的增大,从而降低了吞吐量。

以上三种导致丢包的原因分别发生在物理层、链路层和网络层。已有的研究已经指出,发生在链路层的开放共享信道冲突导致的丢包是无线网络丢包的主要因素,而物理层的信道误码以及网络层的路由失效重建影响相对较小。因此,为了有效地提高TCP在无线网络中的传输性能,将注意力主要集中在缓解链路层的信道冲突上。

TCP采用发送窗口来进行网络拥塞控制。发送窗口增大,则在一个RTT内,可以发送的数据包增大,TCP的吞吐量也就增大,反之亦然。然而,TCP并未指出发送窗口内可以发送的数据包将以怎样的方式发送,因此大部分TCP版本采用尽力发送的方式一次性向下发送,也就是不管节点缓存能不能够容纳,都会将所有能够发送的数据包发送下去。这种行为在有线网络中不会造成太大的问题,但是在无线网络中,由于无线网络所特有的4跳干扰范围的问题,导致源端附近的信道竞争过于剧烈,最终浪费了信道资源,降低了网络传输效率。

与TCP类似,当UDP的发送速率过大时,也就出现了类似于TCP数据包突发的情况,也会因为无线信道的剧烈竞争而导致浪费网络资源,最终导致网络性能下降。

综上所述,传输层需要一个源端的速率控制机制来缓解无线网络中的拥塞。TCP有拥塞控制、流量控制和可靠性控制功能,但是缺少微观层面的源端速率控制功能。有线网络中下层链路间接实现了速率控制功能,但是在无线网络中却没有实现。因此,传输层速率控制功能很有必要。UDP亦是如此。速率控制被视作用来进行拥塞控制的一种很有用的工具。



技术实现要素:

本发明的目的是为了解决现有技术中的上述缺陷,提供一种传输层源端速率控制方法,该方法根据源节点自身链路层上RTS次数和MAC发送时间参数的值,来确定一个发送速率使得RTS次数处在最大值和最小值之间的一个预设区间上,以达到减缓源节点附近激烈的信道竞争和严重的网络拥塞的目的,可以有效地提高吞吐量和降低时延,提高传输层的性能。

本发明的目的可以通过采取如下技术方案达到:

一种传输层源端速率控制方法,所述方法包括:

激进发送步骤:只要链路层队列为空就向传输层请求数据包,然后将请求到的数据包发送出去,同时测量出此时发送每个数据包所需的RTS次数和MAC发送时间,记为最大RTS次数和最长MAC发送时间;当发送完一定数量的数据包后,将最大RTS次数和最长MAC发送时间的测量值上传到传输层,进入慢启动步骤;

慢启动步骤:将所述激进发送步骤测量到的最长MAC发送时间的倒数记为初始发送速率,同时也是搜索下界速率,在传输层以初始发送速率向下发送数据包,发送完一定数量的数据包后测出当前RTS次数,若当前RTS次数小于最大RTS次数的一半,则倍增发送速率,然后以新的发送速率发送数据包;若当前RTS次数大于最大RTS次数的一半,记当前发送速率为搜索上界速率,进入二分搜索步骤;

二分搜索步骤:记从搜索下界速率到搜索上界速率为初始速率搜索区间,在此区间上以二分搜索的方式搜索出一个速率,使得以此发送速率发送数据包时,测量到的RTS次数在1和最大RTS次数之间的一个预设区间内,搜索成功则进入稳定步骤,搜索失败则重新进入激进发送步骤;

稳定步骤:以二分搜索步骤搜索出的发送速率发送数据包,并同时监测当前RTS次数与上次RTS次数之间的相对变化,若当前RTS次数大于上次RTS次数的一定倍数或者小于上次RTS次数的一定倍数,则重新进入激进发送步骤,否则,保持发送速率不变。

进一步地,所述RTS次数和所述MAC发送时间均采用滑动窗口平均方式测量得到,具体为发送一定数量数据包之后计算出来的滑动窗口平均值。

进一步地,所述激进发送步骤持续发送数据包,当传输层有数据包可以发送时,链路层队列即向上拉取数据包,然后尝试发送;所述慢启动步骤、所述二分搜索步骤和所述稳定步骤中链路层队列不会主动拉取数据包。

进一步地,所述慢启动步骤、所述二分搜索步骤和所述稳定步骤中使用一个发送定时器进行控制发送速率,所述发送定时器的超时时间设置为发送速率的倒数;当所述发送定时器超时后,传输层向下发送一个数据包,然后重新启动定时器,每次重新启动发送定时器都需要根据当前速率计算新的超时时间。

进一步地,所述二分搜索步骤具体为:

首先设置发送速率为速率搜索区间的中间值,以此发送速率发送数据包,然后根据在该发送速率下测出的当前RTS次数来调整发送速率,包括以下三种情况:

(1)若当前RTS次数大于RTS次数预设区间的最大值,则将搜索速率上界设置为当前速率,然后将当前速率设置为搜索速率区间的中间值;

(2)若当前RTS次数小于RTS次数预设区间的最小值,则将搜索速率下界设置为当前速率,然后将当前速率设置为搜索速率区间的中间值;

(3)若当前RTS次数在RTS次数预设区间内,则停止速率的搜索过程,进入所述稳定步骤。

进一步地,所述RTS次数预设区间是指一个在RTS次数最小值到RTS次数最大值之间人为设定的范围,所述RTS次数预设区间设定为0.3到0.5倍的最小RTS次数到最大RTS次数之间的区间。

进一步地,在所述稳定步骤中,若RTS次数变化较大,说明网络状况改变,需要重新进行新一轮的速率控制过程,其中转换条件设置为RTS次数大于上一个RTS次数的1.2倍或者小于0.8倍。

进一步地,所述若当前RTS次数在RTS次数预设区间内,则停止速率的搜索过程中,停止搜索的上下界距离为初始上下界距离的5%。

本发明相对于现有技术具有如下的优点及效果:

1、本发明具有简单易行的优点。在传输层协议基础上进行改进,只在源节点根据本节点的信道信息调整发送速率,对源节点的传输层的更改也很少,不更改相邻节点间的交互过程。

2、本发明具有广泛适用性的优点。RTS次数是反应网络拥塞状况的很准确的指标,而且在不同的信道带宽下都是如此。将RTS次数控制在最大值和最小值之间,能够显著降低网络拥塞,同时也不会损失网络资源利用率。

3、本发明具有反应迅速的优点。用于调整速率的依据RTS次数只在源节点测量,节点内传递,所以信息准确、及时。搜索速率使用二分搜索算法,能够以最快的收敛速度达到要求。

附图说明

图1是本发明公开的一种传输层源端速率控制方法的传输层状态转移图;

图2是本发明公开的一种传输层源端速率控制方法的RTS次数测量的流程图;

图3是本发明公开的一种传输层源端速率控制方法的二分搜索的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例

本发明为避免传输层源端数据突发造成的严重信道碰撞和网络拥塞,在源端根据RTS次数进行发送速率控制。通过二分搜索的方式,找到一个发送速率,使得在这个发送速率下,RTS次数处在最大RTS次数和最小RTS次数之间的一个预设区间内。当网络状况有明显变化时,该方法能够探测到这一变化并重新进行新的发送速率控制过程。

基于上述原理,本发明的具体方案如下:

激进发送步骤:只要链路层队列为空就向传输层请求数据包,然后将请求到的数据包发送出去,同时测量出此时发送每个数据包所需的RTS次数和MAC发送时间,记为最大RTS次数和最长MAC发送时间。当发送完一定数量的数据包后,将最大RTS次数和最长MAC发送时间的测量值上传到传输层,进入慢启动步骤。

慢启动步骤:将激进发送步骤测量到的最长MAC发送时间的倒数记为初始发送速率,同时也是搜索下界速率。在传输层以初始发送速率向下发送数据包。发送完一定数量的数据包后测出当前RTS次数。若当前RTS次数小于最大RTS次数的一半,则倍增发送速率,然后以新的发送速率发送数据包;若当前RTS次数大于最大RTS次数的一半,记当前发送速率为搜索上界速率,进入二分搜索步骤。

二分搜索步骤:记从搜索下界速率到搜索上界速率为初始速率搜索区间。在此区间上以二分搜索的方式搜索出一个速率,使得以此发送速率发送数据包时,测量到的RTS次数在1和最大RTS次数之间的一个预设区间内。搜索成功则进入稳定步骤,搜索失败则重新进入激进发送步骤。搜索失败是指,速率搜索区间小于初始速率搜索区间的一定比例时,当前RTS次数还没进入到RTS次数的预设区间内。

稳定步骤:以二分搜索步骤搜索出的发送速率发送数据包,并同时监测当前RTS次数与上次RTS次数之间的相对变化。若当前RTS次数大于上次RTS次数的一定倍数或者小于上次RTS次数的一定倍数,则重新进入激进发送步骤。否则,保持发送速率不变。

以上四个步骤分别对应传输层中的四个状态,分别为激进发送状态、慢启动状态、二分搜索状态和稳定状态。这四个状态在特定条件下可以相互转换,具体的转换过程见图1。

基于上述方案形成的一种传输层源端速率控制方法,其具体实施过程如下:

1、链路层在两个阶段之间转换。激进发送步骤与慢启动步骤、二分搜索步骤、稳定步骤不同之处在于,激进发送步骤持续发送数据包,当传输层有数据包可以发送时,链路层队列即向上拉取数据包,然后尝试发送。而慢启动步骤、二分搜索步骤和稳定步骤中,链路层队列不会主动拉取数据包。所以在链路层有两个不同的阶段,在这里分别设置为激进发送阶段和速率控制阶段,分别对应激进发送步骤和慢启动步骤、二分搜索步骤、稳定步骤。在不同步骤之间转换时,需要同步更改链路层的阶段。

为了减少网络状况的波动带来的误差,所有步骤中测量的RTS次数和MAC发送时间值都是采用发送一定数量数据包之后计算出来的滑动窗口平均值。

具体应用中,RTS次数和MAC发送时间采用滑动窗口平均方式测量得到。每当测量到当前RTS次数和MAC发送时间后,将当前值与之前一定数量测量值进行平均。链路层在发送完一定数量的数据包后才将RTS次数和MAC发送时间上传到传输层,这样可以减轻之前网络状况对当前测量值的影响。

链路层不同的状态的区别只在于是否在队列有空间时向上请求数据包,而对RTS次数和MAC发送时间的测量没有影响。在此实例中,发送的数据包数量设置为10。具体过程如图2所示。

2、在激进发送步骤中测量出最大RTS次数和最大MAC发送时间后,将链路层转换为速率控制阶段,将最大RTS次数和最大MAC发送时间上传给传输层。传输层根据最大MAC发送时间的倒数设置发送定时器,进入慢启动步骤。链路层每发送完10个数据包之后,上传新统计的RTS次数,并通知传输层更新速率。如果RTS次数大于最大RTS次数的一半,这说明当前发送速率已经足够高,以这个速率作为搜索上界,慢启动过程停止,进入二分搜索步骤。如果RTS次数小于最大RTS次数的一半,则倍增当前发送速率,继续发送数据。

3、为了能自主控制发送速率,设置了一个发送定时器。发送定时器有两个状态,停止状态和运行状态。激进发送步骤时定时器处于停止状态,其他步骤时处于运行状态。发送定时器超时后,如果传输层缓存有数据包,立即发送一个数据包。

慢启动步骤、二分搜索步骤、稳定步骤中控制发送速率使用一个发送定时器进行控制。发送定时器的超时时间设置为发送速率的倒数。当发送定时器超时后,传输层向下发送一个数据包,然后重新启动定时器。每次重新启动定时器都需要根据当前速率计算新的超时时间。

4、在经过激进发送步骤和慢启动步骤之后,确定了速率的搜索区间。要搜索出来一个合适的速率,可以用其它方法。例如,线性搜索。但是发送速率与RTS次数之间是存在线性关系的,因此可以使用二分搜索来寻找,这是最快的一种方法。同样,可以搜索出一个能使得RTS次数处于固定点的速率,但是为了提高搜索收敛的速率,当RTS次数处在一个RTS次数预设区间上时,即可停止搜索过程。这个RTS次数预设区间是一个经验数据,不同的网络下该数值不同。

RTS次数预设区间是指一个在RTS次数最小值到RTS次数最大值之间人为设定的范围。RTS次数最小值为1。RTS次数最大值在数据包按照激进发送步骤发送时测量得到。当RTS次数在两个极值之间的某一个位置时,网络资源利用率达到最大。为了加快收敛速率,将该点设置为一个区间。该区间是经验值,因不同的网络状况而不同。

在本实例中,区间设置为0.3到0.5倍的最小RTS次数到最大RTS次数区间。发送速率的改变与实际发送数据包是相对独立的。改变发送速率不影响当前已经在计时的发送定时器。而发送定时器发送完数据后要等实际发送了10个数据包之后,等链路层上传了最新的RTS次数才会对发送速率进行调整。

参考图3,对二分搜索的具体流程分析如下:

(1)若RTS次数在预设区间之上,说明当前速率太大了,将当前速率设置为搜索上界,并将当前速率设置为搜索上界与搜索下界之间的中间值;

(2)若RTS次数在预设区间之下,说明当前速率太小了,将当前速率设置为搜索下界,并将当前速率设置为搜索下界与搜索上界之间的中间值;

(3)若RTS次数在预设区间之内,说明该速率是合适的速率,则停止搜索过程,将传输层状态设置为稳定状态。

考虑到满足条件的发送速率在一个范围内,所以如果在二分搜索过程中搜索上下界之间的距离很近时,仍然没有达到停止搜索的条件,说明本次搜索过程可能有误判,或者网络状况发生了突变,因此需要重新探测网络状况,传输层进入激进发送步骤,同时也需要将链路层的状态从速率控制阶段转换为激进发送阶段。在本实例中停止搜索的上下界距离为初始上下界距离的5%。

5、速率需要适应网络状况变化的情况,这时会导致RTS次数的变化。当处在稳定状况时,若RTS次数变化较大,说明网络状况改变,需要重新进行新一轮的速率控制过程。本实例中将转换条件设置为RTS次数大于上一个RTS次数的1.2倍或者小于0.8倍。

6、传输层需要做相应的改变:

(1)若传输层协议为UDP,则在传输层设置一个队列用于缓存UDP发送下来的数据包。此队列采用尾部丢弃方式处理溢出数据。队列长度不要设置太小,这样可以更好得平滑UDP数据包突发造成的影响。在本实例中设置为50个数据包的长度。

(2)若传输层协议为TCP,则去掉发送窗口对数据包发送的限制,同时取消TCP主动发送数据包的功能。TCP是否能发数据包取决于发送定时器是否超时以及激进发送步骤中链路层队列是否为空。保留TCP其它功能不变。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1