一种无线网络的二层拥塞控制方法

文档序号:7964102阅读:301来源:国知局
专利名称:一种无线网络的二层拥塞控制方法
技术领域
本发明涉及无线网络的数据传输技术,特别涉及一种无线网络的二层拥塞控制方法。

背景技术
在经典的计算机网络中,通常在网络高层实行端到端的流量控制,例如采用TCP拥塞控制机制,进行端到端的流量控制机制。这种端到端的流量控制机制不能很好地解决无线网络的本地拥塞问题。
具体来说,无线网状(Mesh)网络的相邻跳共享媒介资源,所以在无线网状网络中如何调度这些邻居链路使网络吞吐量最大化是至关重要的。在有线网络中数据包的丢失是由网络拥塞而引起的;而在无线网络中,由于传输信道的干扰,网络传输的误码率较高,往往存在随机数据包丢失的情况。因此如果直接将现有的单纯依据数据包丢失作为拥塞指示的TCP拥塞控制算法应用在无线网络中,必然导致无线网络性能的下降。另外,有公开的资料也表明TCP拥塞控制机制在多跳无线网络中性能会恶化。所以在无线网络中简单的依赖于TCP来解决本地拥塞问题不是特别有效的办法。
目前,802.11 MAC及其增强版本(11e,11i,11k)都是基于单跳无线网络的。无线网状网络与之关键性区别是多跳数据转发特性。802.11 DCF和802.11e EDCF是基于非端到端的考虑或一跳范围之内的协调。无线网状网络的网状接入点(Mesh Point,MP)公平共享信道接入,它是基于点到点的,并且这些节点间是相互独立的。它们独立竞争信道,不需考虑其上游网络节点以及下游网络节点的任何信息。这样发送者会将大量的业务数据包迅速接入网络,从而导致下游节点发生拥塞。本地拥塞定义为一个中间MP接收到的数据包比在该节点先前定义的时间窗口所能发送的数据包要多时,就发生本地拥塞。本地拥塞的结果是本地缓冲区迅速被填满,导致数据包从缓冲区丢失。
由于无线媒介最大的特点是资源共享,对于多跳无线网状网络来说,最典型的是多个MP使用相同的信道与网络连接。当一个节点正在传输时,它的邻居节点必须延迟发送。如果一个上游发送者盲目的使用它的信道接入时隙分额将数据包注入网络,同时下游中间MP节点不能有效的将数据包转发至目的节点,这样该发送者所使用的时隙不仅被浪费,而且减少了下游节点的信道接入时隙,甚至严重影响端到端吞吐量。
所以在无线网状网络中需要解决的热点问题之一就是邻居的一条链路消耗的带宽会严重影响另外链路可利用的带宽资源。由于邻居节点根据各个节点的位置所得到的竞争级别不同将会导致不公平性。所以无线网状网络即使在接入等级上已经采取了允许接入控制,拥塞仍然可能发生。
针对上述情况,为了减小和感知无线通信网络的拥塞,出现了一种基于无线网状网络的拥塞控制系统与方法,该系统与方法提出了一种改进的媒体接入控制(MAC)层协议。该协议在帧对帧的基础上允许通过信道切换来实现无线网络的数据传输。该协议用于无线通信网络两个节点通信信道切换的时间被减少到电子速率级。所以,虽然额外的带宽被占用,但是拥塞被有效的减少。另外,系统的吞吐量得到提升,并且通过在握手过程中把发送请求(RTS)的能量级别减小到能够达到接收节点的最小能量,使电池作为动力的节点寿命增长。相应的发送清除(CTS)信息随后将通过接收节点发送,通知网络中其他的节点接收是不可用的,以至于网络中其他节点仍然可以自由的相互通信。另外,一个节点发送RTS到每个节点的最小能量级别应该维持在该节点的本地路由表中或者其他的数据存储域中。
这种系统与方法,是基于IEEE802.11 MAC的一种改进协议。它是通过基于“帧对帧”的信道切换来实现拥塞控制,因为要保存节点RTS到各个节点的最小能量级别,必然会增大系统的开销。
实际上,针对无线网状网络二层的拥塞控制只是在802.11s协议提案中有相关的简单策略框架,提出可以对本地拥塞进行监测,再根据本地拥塞的情况进行相应的拥塞控制的思想。但是,该协议提案中没有给出如何根据本地拥塞的情况进行相应的拥塞控制,使得该拥塞控制的思想无法应用到实际网络中进行拥塞控制。


发明内容
有鉴于此,本发明的主要目的在于提供一种无线网络的二层拥塞控制方法,该方法能够直接应用到实际网络中进行拥塞控制。
为达到上述目的,本发明的技术方案具体是这样实现的 一种无线网络的二层拥塞控制方法,该方法包括以下步骤 A、当前网络节点监测自身拥塞情况,并在自身发生拥塞时,执行步骤B; B、当前拥塞网络节点向与自身相连的上游网络节点或邻居网络节点发送包含自身拥塞情况的拥塞控制信息; C、接收到拥塞控制信息的网络节点根据包含的拥塞情况,调整本地节点传输速率。
其中,所述步骤A中,当前网络节点监测自身拥塞情况的方法可以为定时执行以下步骤 A1、当前网络节点计算出短期有效接收速率STRR和短期有效发送速率STTR的差值,获得该速率差值的模糊状态;并获得当前传输队列长度的模糊状态; A2、当速率差值的模糊状态为高,且当前传输队列长度的模糊状态也为高时;或速率差值的模糊状态为中,且当前传输队列长度的模糊状态为高时;或速率差值的模糊状态为高,且当前传输队列长度的模糊状态为低时;确定自身发生拥塞。
所述计算短期有效接收速率和短期有效发送速率的差值的方法可以为 在定时时间T内,统计发送的数据包数Nt,并统计接收的数据包数Nr,P是平均数据包大小; 则,短期有效接收速率和短期有效发送速率的差值ΔSTR=STRR-STTR。
所述获得该速率差值的模糊状态的方法可以为 采用正态分布的隶属度函数对该速率差值进行模糊化,获得该速率差值的模糊状态为高、中或低; 所述获得当前传输队列长度的模糊状态的方法为 采用正态分布的隶属度函数对当前传输队列长度进行模糊化,获得当前传输队列长度的模糊状态为高或低。
所述步骤A1可以为当前网络节点计算出每个优先级队列的短期有效接收速率和短期有效发送速率的差值,获得该速率差值的模糊状态;并获得每个优先级队列长度的模糊状态; 所述步骤A2为当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态也为高时,或一个优先级队列的速率差值的模糊状态为中,且该优先级队列长度的模糊状态为高时,确定由该优先级队列引起了高业务负荷拥塞;当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态为低时;确定由该优先级队列引起了信道拥塞。
若确定发生了高业务负荷拥塞,则步骤B可以为当前网络节点向自身各个邻居网络节点发送包含该优先级队列拥塞级别的拥塞控制公告信息; 所述步骤C为接收到拥塞控制公告信息的邻居网络节点根据其中包含的该优先级队列拥塞级别,调整本地节点对应优先级队列的传输速率。
所述根据拥塞级别调整本地节点对应优先级队列的传输速率的方法可以为 对每个优先级队列预定一个调节的常量,该优先级队列调整后的传输速率为原传输速率与对应预定常量的2n之积,n为拥塞级别。
若发生了信道拥塞,则步骤B可以为当前网络节点向自身的上游网络节点发送包含该优先级队列目标速率的拥塞控制请求信息; 所述步骤C为接收到拥塞控制请求信息的上游网络节点先向当前网络节点返回拥塞控制应答;再根据目标速率调整本地节点对应优先级队列的传输速率。
所述拥塞控制应答中可以包含各个优先级队列已提供业务负荷信息,所述当前网络节点进一步根据已提供业务负荷信息计算用于发送下一次拥塞控制请求的该优先级队列目标速率。
所述当前网络节点计算用于发送下一次拥塞控制请求的该优先级队列目标速率的方法可以为 根据拥塞控制应答中的各个优先级队列的业务负荷信息,设各个优先级队列的业务分别为NBK,NBG,NVI,NVO,求得提供的业务总和为N=NBK+NBG+NVI+NVO。
设STTR_ACi-1为对应优先级队列上一次的发送速率估计值,设STTR_ACim为对应优先级队列本次实际测得的发送速率,则ERR_AC=STTR_ACim-STTR_ACi-1,根据递归误差估计算法,得到下一次发送速率估计值为STTR_ACi=STTR_ACi-1+gERR_AC,其中各个优先级队列对应的g按照为 将各个g分别带入STTRi=STTRi-1+gERR,求得各个优先级队列的下一次估计发送速率,确定各个优先级队列的目标速率TRACi分别与各个优先级队列的估计发送速率相等 所述根据目标速率调整本地节点对应优先级队列的传输速率的方法可以为 调整本地节点对应优先级队列的专有帧间间隔AIFS[AC],AIFS[AC]=短帧间间隔+AIFSN[AC]×时隙长度。
所述根据目标速率调整本地节点对应优先级队列的传输速率的方法可以为 测量其上游网络节点对应优先级队列的短期有效发送速率,并与拥塞控制请求消息的目标速率联合计算,得到 所述步骤A2可以进一步包括当一个优先级队列速率差值的模糊状态为低,且该优先级队列长度的模糊状态也为低时;确定由该优先级队列引起自身信道资源利用不足; 在确定自身信道资源利用不足后,当前网络节点计算该优先级队列目标速率,并向自身的上游网络节点发送包含该优先级队列目标速率的拥塞控制请求;接收到拥塞控制请求的上游网络节点先向当前网络节点返回拥塞控制应答;再根据目标速率调整本地节点对应优先级队列的传输速率。
所述当前网络节点计算目标速率的方法可以为 先计算目标增长率n; 再根据上游节点提供的“拥塞控制应答”中的各个优先级队列的业务负荷信息,则各个优先级队列对应的目标速率TR为 T为测量窗口大小 在每个测量窗口信道的平均剩余时间为t单位; C表示平均信道容量; P表示平均包大小; Toh表示在时间单元每个包的平均时间花费; N表示上游网络节点提供的总业务负荷。
定时时间的确定方法可以为 定时时间T内,设如果不进行拥塞控制,队列的长度会增加则持续时间将这个持续时间确定为定时时间。
由上述的技术方案可见,本发明的这种无线网络的二层拥塞控制方法,明确了当前网络节点在监测到自身发生拥塞时,向与自身相连的上游网络节点或邻居网络节点发送包含自身拥塞情况的拥塞控制信息。这样,接收到拥塞控制信息的网络节点就能够根据其中包含的拥塞情况,调整本地节点传输速率,从而实现了拥塞控制。因此,本发明方法能够直接应用到实际网络中进行拥塞控制。
另外,应用本发明的二层拥塞控制方法,不仅在拥塞发生时,能够通过控制上游节点的发送速率来减轻本地拥塞,而且可以在拥塞发生之前就采取一定的措施,从而能够减少拥塞发生的概率,具有预警的作用。
再有,本发明的二层拥塞控制方法,还可以在资源利用不足的情况之下,通知其上游节点或邻居接点增大其发送速率,使系统资源利用率能够最大化。



图1为本发明拥塞控制方法的第一较佳实施例的处理流程图; 图2为图1所示实施例中ΔSTR的隶属度函数曲线图; 图3为图1所示实施例中队列长度L的隶属度函数曲线图; 图4为本发明拥塞控制方法的第二较佳实施例的处理流程图; 图5为EDCF接入方式定时图; 图6为图4所示实施例中拥塞控制示意图; 图7一种仿真网络拓扑图; 图8为图7网络中的网络节点使用本发明拥塞控制方法和不使用本发明拥塞控制方法的丢包率对比曲线图; 图9为图7网络使用本发明拥塞控制方法和不使用本发明拥塞控制方法的吞吐量对比曲线图; 图10为图7网络中不使用本发明拥塞控制方法的当前节点和下游节点的吞吐量曲线图; 图11为图7网络中使用本发明拥塞控制方法的当前节点和下游节点的吞吐量曲线图。

具体实施例方式 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明的这种无线网络的二层拥塞控制方法,当前网络节点在监测到自身发生拥塞时,向与自身相连的网络节点发送包含自身拥塞情况的拥塞控制信息。这样,接收到拥塞控制信息的网络节点就能够根据其中包含的拥塞情况,调整本地节点传输速率,从而实现了拥塞控制。
本发明的这种无线网络的拥塞控制方法,能够直接应用到实际网络中,如无线多跳网包括无线网状网、移动Ad hoc网络和无线传感器网络等,从而降低本地拥塞。
由于频繁进行拥塞控制,可能带来系统不稳定的隐患,因此通常进行定时拥塞控制,以下举两个定时拥塞控制的较佳实施例对本发明进行详细说明。
第一较佳实施例 参见图1,图1为本发明拥塞控制方法的第一较佳实施例的处理流程图。该流程是定时执行的,具体包括以下步骤 步骤101,当前网络节点对自身拥塞情况进行监测。
通常各网络节点采用多个优先级队列(AC)来分别处理不同的业务,这样,实际应用中可以采用以下2个步骤来对不同的优先级队列进行监测 A1、当前网络节点计算出每个优先级队列的短期有效接收速率和短期有效发送速率的差值,获得该速率差值的模糊状态;并获得每个优先级队列长度的模糊状态。
其中,短期有效发送速率(STTR)的获得方法为在测量周期时间,也就是定时时间T内,统计其发送的数据包数Nt,那么P是平均数据包大小。
短期有效接收速率(STRR)的获得方法为在测量周期时间T内,统计其接收的数据包数Nr,那么P是平均数据包大小。
短期有效接收速率和短期有效发送速率的差值ΔSTR=STRR-STTR。
每个优先级队列长度(L)就是缓冲区大小。
本发明实施例中,采用STTR、STRR、L这些度量值来监测网络节点的拥塞情况,能够准确的判断出网络状态,能够正确区分和处理不同的网络状态,从而采用正确的拥塞控制操作,能够提高网络性能。
本实施例中采用了对ΔSTR和L进行模糊化,来获得ΔSTR和L的模糊状态。
通过模糊化将这两个精确值变换为模糊值。在此,为了方便计算且能很好反映度量值的变化,通常选用正态分布的隶属度函数进行模糊化,例如采用函数其中k和a的选择可以根据测试结果或经验值来确定。
隶属度函数的确定遵从原则输入变量ΔSTR包含3个模糊状态,表示为E1={低(Low),中(medium),高(high)}={-1,0,1},输入变量L包含两个模糊状态,表示为E2={low,high}={0,1}。分别如图2、图3所示。
图2中,曲线1表明ΔSTR的模糊状态为低,曲线2表明ΔSTR的模糊状态为中,曲线3表明ΔSTR的模糊状态为高;图3中,曲线1表明L的模糊状态为低,曲线2表明L的模糊状态为高。
A2、当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态也为高时,或一个优先级队列的速率差值的模糊状态为中,且该优先级队列长度的模糊状态为高时,确定由该优先级队列引起了高业务负荷拥塞;当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态为低时;确定由该优先级队列引起了信道拥塞。
步骤102,判断是否需要进行拥塞控制,如果是则执行步骤103,否则返回步骤101。
本实施例中,本步骤就是判断是否有由优先级队列引起的高业务负荷拥塞,或判断是否有由优先级队列引起了信道拥塞,如果有其中一种,则需要进行拥塞控制。
步骤103,判断是否发送拥塞控制请求,如果是,则执行步骤104,否则执行步骤108。
本实施例中,本步骤就是判断是否是由优先级队列引起信道拥塞,如果是,则要发送拥塞控制请求。
步骤104,当前网络节点向上游网络节点发送包含发生拥塞的优先级队列目标速率的拥塞控制请求。
步骤105,上游网络节点接收拥塞控制请求。
拥塞控制请求的帧结构如表1所示 表1 其中,目标速率元素包含了AC_BK、AC_BE、AC_VI、AC_VO这4个优先级队列的目标速率具体如表2所示 表2 由表2可见,在“目标速率元素”中可持续时间字段只有一个。但是每个AC拥塞程度可能不一样。也就是拥塞控制持续时间可能是不一样的。因此,可以为每个AC均设置一个持续时间字段。那么拥塞控制请求帧的长度就变为了28字节。因此“目标速率元素”字段的形式修改如表3。
表3 步骤106,上游网络节点向当前网络节点返回拥塞控制应答。
“拥塞控制应答”帧是对“拥塞控制请求”帧的回复。其具体的帧结构如表4所示。q 表4 其中已提供业务负荷元素包含了4个优先级队列的业务负荷情况,具体如表5所示。
表5 表5中的“已提供业务负荷元素(Offered Traffic Load)”可用于转发节点计算下一次拥塞控制用的各个AC的目标速率。
步骤107,上游网络节点启动本地节点速率控制机制,根据拥塞控制请求中的目标速率,调整本地节点对应优先级队列的发送速率,完成一次拥塞控制。
步骤108,当前网络节点向邻居节点发送包含发送拥塞的优先级队列的拥塞级别的拥塞控制公告信息。
“拥塞控制公告信息”是一种广播帧。“拥塞控制公告信息”帧形式如表6所示。
表6 其中邻居拥塞元素包含了拥塞级别(Congestion level),具体如表7所示。
表7 步骤109,各邻居节点根据拥塞控制公告信息中的拥塞级别,调整本地节点对应优先级队列的发送速率,完成一次拥塞控制。
本实施例中,定时时间T可以通过以下方式获得 在下一个统计时间也就是定时时间T内,如果不进行拥塞控制,队列的长度会增加为了减小拥塞,那么目前AC队列长度LACi加上ΔLACi在拥塞控制之后应该小于队列长度的最大值LACmax。所以持续时间可以将这个持续时间确定为定时时间。
第二较佳实施例 本实施例也是定时进行拥塞控制,定时时间的确定方法与第一较佳实施例完全相同,这里不再重复。参见图4,图4为本发明拥塞控制方法的第二较佳实施例的处理流程图。该流程包括以下步骤 步骤401,当前网络节点对自身拥塞情况进行监测。
本步骤与图1所示实施例步骤101完全相同,这里不再重复说明。
步骤402,判断是否需要进行拥塞控制,如果是则执行步骤403,否则返回步骤401。
本步骤就是判断是否有优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态也为高,或有优先级队列的速率差值的模糊状态为中,且该优先级队列长度的模糊状态为高,如果有上述一种情况,则确定由该优先级队列引起高业务负荷拥塞,需要进行拥塞控制。
或判断是否有优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态为低,如果有,则确定由该优先级队列引起了信道拥塞,需要进行拥塞控制。
或判断是否有优先级队列的速率差值的模糊状态为低,且该优先级队列长度的模糊状态也为低,如果有,则确定由该优先级队列引起了信道资源利用不足,也需要进行拥塞控制。
步骤403,判断是否发送拥塞控制请求,如果是,则执行步骤404,否则执行步骤411。
本步骤除了判断是否发生信道拥塞,还判断是否发生信道资源利用不足;如果有上述两种情况之一,则确定发送拥塞控制请求。
步骤404,判断是发生了信道拥塞还是信道资源利用不足,如果是信道资源利用不足,则执行步骤405,如果是信道拥塞,则执行步骤406。
步骤405,采用第二目标速率算法计算目标速率,执行步骤407。
具体的算法为 当节点发现信道利用不足时,它需要通知上游节点它还有可以提供的资源。这样可以充分利用网络资源。但是,要防止速率增加过大导致再次发生拥塞。
在信道资源利用不足的情况下,目标速率的计算需要额外的信息,(1)包括信道利用率,可以通过测量信道闲置时间得到、(2)冲突概率,在多个节点竞争一个信道时计算,和(3)上游节点的提供的业务量,这样可以保证资源的合理分配。此外,对每个节点的目标速率的精确计算只有在足够的信息可以提供时进行,这些信息涉及到信道的质量也就是可以提供的传输率,平均数据包大小,和MAC策略,比如为了计算每个数据包的MAC头考虑是否运用了RTS/CTS,。
具体的计算方法如下 假设一个网络持续一跳的业务流并且信道利用不足,设置 测量窗口大小为T; 在每个测量窗口信道的平均剩余时间为t单位; C表示平均信道容量; P表示平均包大小; Toh表示在时间单元每个包的平均时间花费; N表示上游节点提供的总业务负荷; n表示目标增长率(每个测量窗口的包数); 根据上游节点提供的“拥塞控制应答”帧提供的AC业务量。则各个AC对应的目标速率TR为 注意在这种情况之下,存在着多个节点同时竞争信道,所以这个上界目标速率可以根据实际情况进行调整。
步骤406,采用第一目标速率算法计算目标速率。
具体的算法为 当本地节点监测到发生拥塞,可以通过统计得到此时的短期有效发送速率(STTR),并且把它当作允许输入到该节点的最大速率。再计算每一个上游节点占此发送速率的份额。在计算目的速率时可以考虑其他的信息,比如上游节点在上次拥塞控制时返回的“已提供业务负荷元素”或者系统的公平策略。以最简单的情况为例,即没有另外的信息提供时每个上游节点占的份额小于或者等于总的速率除以节点的数目。这里,建议拥塞节点采用较保守的方法来计算目标速率,因为这样可以保证有额外的资源来允许新的业务流的初始化。
根据前面的分析已经知道在信道发生拥塞时,目标速率的计算应该采用一种较为保守的基于递归误差估计办法进行计算。
利用“拥塞控制应答”帧所提供的AC“已提供业务负荷元素”,定义提供的业务分别为NBK,NBG,NVI,NVO,求得提供的业务总和为N=NBK+NBG+NVI+NVO。
定义STTR_ACi-1为对应AC上一次的发送速率估计值,定义STTR_ACim为对应AC本次实际测得的发送速率,ERR_AC=STTR_ACim-STTR_ACi-1,于是根据递归误差估计算法可以得到下一次发送速率估计值为STTR_ACi=STTR_ACi-1+gERR_AC。其中,g根据网络状况决定,一般取值0.1~0.2。
对于延迟敏感的流,比如语音流,为了保证起QoS并且能够达到消除拥塞的目的,确定g按照如下方式 将各个g分别带入STTRi=STTRi-1+gERR,可以求得各个AC的下一次估计发送速率,那么各个AC的目标速率TRACi就分别与各个AC的估计发送速率相等。即 步骤407,将各个队列的目标速率加入拥塞控制请求发送给上游网络节点。
步骤408,上游网络节点接收拥塞控制请求。
步骤409,上游网络节点向当前网络节点返回拥塞控制应答。
步骤410,上游网络节点启动本地节点速率控制机制,根据拥塞控制请求中的目标速率,调整本地节点对应优先级队列的发送速率,完成一次拥塞控制。
本实施例中,调整传输速率并不是调整物理层实际射频传输速率,典型的方法是通过内部调度算法适当地延迟特定AC中的数据包的传送速率来影响传输速率。尽管有许多执行本地速率控制的方法,共同的目的都应该是保持区分不同的业务和保证邻居的公平性。也就是说,要保证调整后各个优先级业务的传输速率,仍然保持原优先级业务速率的大小关系,不出现优先级低的业务速率大于优先级低的业务速率。
以下介绍两种本地速率控制机制。
方法一基于动态调整EDCA参数实现。根据节点和/或邻居的拥塞情况进行调整。调整的参数可以是专有帧间间隔数(AIFSN)或竞争窗口(CWmin)参数。利用这个机制在拥塞是由于关联到MAP上的STA造成的情况下,将更加有效。
方法二基于一个包含业务标尺(Traffic Meter)的。这是对“拥塞控制请求”的响应。这个标尺测量接收速率控制的AC业务的暂时速率,并与“拥塞控制请求”消息的目标速率比较。如果数据包速率大于目标速率,则计时器将不给它提供传输机会(TXOP),也就是不传输该优先级队列的数据,否则,计时器为它提供传输机会。
本实施例中,采用上述方法一中调整AIFSN参数,来实现本地速率控制。简单的说,就是延迟一个特定AC到一个特定邻居的数据包发送。
802.11s MAC协议继承了802.11e的特征。所以在此处选择调整参数AIFSN[AC]。具体如下 802.11中如果一个站点要开始一个数据帧的发送过程,必须在分布式协调功能帧间间隔(DIFS)内信道应该保持空闲。在增强分布式协调功能(EDCF)中,DIFS被专有帧间间隔(AIFS[AC])代替,一般AIFS[AC]≥DIFS。其中AIFS[AC]计算公式如下 AIFS[AC]=短帧间间隔(SIFS)+AIFSN[AC]×时隙长度(aSlotTime) 其中AIFSN[AC]是一个正整数,aSlotTime是和物理层相关的时隙长度,通过物理层可以直接获得其值。
EDCF帧的发送顺序定时参见图5,图5为EDCF接入方式定时图。如图5所示,如果一个使用EDCF的站点在准备发送的时候发现信道忙,则开始推迟发送,直到信道空闲。推迟结束后,再等待AIFS[AC]时间,然后启动一个退避过程。退避间隔是
]内的一个随机数。CW[AC]的计算如下 CW[AC]=min((原CW[AC]+1)×2-1,CWmax[AC]) 通常,语音业务的帧长为128字节,视频业务的帧长为1280字节,数据业务的帧长为1500字节。
根据上面的公式可求得需要调整的AIFSN[AC]的大小 TR表示各个AC的目标速率,V表示各个AC的初始速率,aSlotTime表示时隙,与物理层有关。
这里,因为考虑到在计算目标速率的时候要求采用较为保守的方法进行计算,那么在此处加1的目的是为了用保守的策略实现目标速率所提出的要求。
步骤411,当前网络节点确定优先级队列的拥塞级别。
步骤412,当前网络节点将各个优先级队列的拥塞级别加入拥塞控制公告信息发送给邻居网络节点。
步骤413,各邻居网络节点根据拥塞控制公告信息中的拥塞级别,调整本地节点对应优先级队列的发送速率,完成一次拥塞控制。
如果拥塞是由于高业务负荷引起的,那么就发送“拥塞控制公告信息”帧。不仅其上游节点要进行拥塞控制,所有的邻居节点都要进行拥塞控制。从前面的“拥塞控制公告信息”帧结构可知,这里就不需要向其邻居节点传送目标速率,只需要确定“拥塞控制等级”。
由于邻居节点不一定要向该拥塞节点发送业务。因为是单信道,邻居节点如果有大量业务发送,将会较长时间占用信道,从而导致该节点不能及时的将各个AC队列中的业务发送出去,导致拥塞。
具体的“拥塞控制等级”策略如下 首先在“拥塞控制公告信息”帧中的拥塞控制等级都为最低“1”。这时,收到拥塞控制公告信息的网络节点,例如上游网络节点就将各个优先级队列的AIFSN[ACi]均乘一个对应预定的常量a[ACi]。如果在接下来的一段时间之后,仍然没有减少拥塞,那么在“拥塞控制公告信息”帧中的拥塞等级就升高一级“2”,则该上游网络节点的AIFSN[ACi]均按预定常量的指数增加,如ΔAIFSN=a[ACi]×2n。其他依此类推。只得注意的是,在拥塞控制的同时应保证高优先级的QoS。因此各个优先级队列的预定常量应满足a[AC_VO]>a[AC_VI]>a[AC_BK]=a[AC_BG] 本实施例中,上述步骤中发送可以确定是拥塞控制请求,还是发送邻居拥塞控制公告信息,可以采用模糊控制。具体来说,在步骤401中对ΔSTR和L分别进行了模糊化,则模糊控制机制的输入是度量值ΔSTR以及队列长度L的度量值,也就是E1={Low,medium,high}={-1,0,1},和E2={low,high}={0,1}。
模糊控制的输出为状态的判定发送拥塞控制请求,与发送邻居拥塞控制公告信息。模糊输出变量的论域包括两个独点集,输出变量C的论域包括两个值0,1,分别对应上述三种情况。表示为C={发送拥塞控制请求,发送邻居拥塞控制公告信息}={0,1}。
模糊控制的方法为当ΔSTR的状态为低“Low”,以及L的状态也为“Low”时,当前状态为发送拥塞控制请求。此时确定系统信道资源利用不足,可以请求上游节点启动速率控制机制,增大发送速率;当ΔSTR的状态为“medium”,并且L的状态为“High”时,当前状态为发送邻居拥塞控制公告信息;当ΔSTR的状态为“High”,并且L的状态为“Low”时,当前状态为发送拥塞控制请求;当ΔSTR的状态为“High”,并且L的状态为“High”时,当前状态为发送邻居拥塞控制公告信息。所有的模糊规则如表8所示。
表8 按照上表的模糊控制方法,模糊控制的数学表达如下 E1IfE1=-1 and E2=0,thenC=0 R2IfE1=0 and E2=1,thenC=1 R3IfE1=1 and E2=0,thenC=0 R4IfE1=1 and E2=1,thenC=1 可见,本实施例中,不仅可以在发生拥塞的情况下,控制上游网络节点降低发送速率,来降低当前网络节点的拥塞。还可以在资源利用不足情况下,控制上游网络节点提高发送速率,来提高系统资源的利用率。
参见图6,图6为图4所示实施例中拥塞控制示意图。其中,转发节点就是当前网络节点。
如图6左半部分所示,当中间转发节点监测到发现拥塞,如果该拥塞不是由于高业务负荷引起的。那么就只需要通知其上游节点也就是源节点进行拥塞控制。那么该转发节点就向其上游节点发送“拥塞控制请求”信号。上游节点在接收到控制信号后,要向其回送“拥塞控制应答”信号。并且从“拥塞控制请求”信号中获得各个AC的目标速率,以及对应于各个AC拥塞控制持续时间。然后在接下来的一段时间内,减小AIFS[ACi],从而实现本地速率控制,减小拥塞。
如图6右半部分所示,这种情况是高业务负荷造成的拥塞。需要通知该节点所有的邻居节点都进行本地拥塞控制。此时发送“拥塞控制公告信息”广播帧。如图所示,AC1和AC2发生拥塞,那么其所有邻居节点的这两种AC在发送时都需按相应的拥塞控制策略进行本地速率控制,从而缓解拥塞。
在资源利用不足的情况之下,转发节点也只通知其上游节点进行本地速率控制,提高资源利用率,与图6左半部分所示相同,只是增加AIFS[ACi]。
最后,通过仿真测试结果对本发明第二较佳实施例的有益效果进行详细说明。参见图7,图7为一种仿真网络拓扑图。该网络仿真拓扑图由5个网络节点(0、1、2、3、4、5)组成。在仿真中设定单跳通信范围为250m。各节点之间的距离见表9。节点4向节点3发送业务流,他们之间在一条范围之内的;节点1通过节点2向节点0发送业务流。节点0在节点3的一跳范围之内,节点2不在节点3的一跳范围之内。仿真时间为100s,在整个仿真过程中,节点4、3之间,以及节点1、0之间都有业务流。并且均饱和,即是在高负荷环境之下进行仿真。
表9 假设图7网络中的网络节点2发生了拥塞。以下将采用本发明拥塞控制方法和不采用拥塞控制情况下,节点的丢包率和吞吐量进行对比。
参见图8,图8为图7网络中的网络节点使用本发明拥塞控制方法和不使用本发明拥塞控制方法的丢包率对比曲线图,横坐标为时间,单位是秒;纵坐标为丢包率,单位是个/秒。
其中,曲线1表示在不使用拥塞控制方法情况下,节点2的丢包率。其丢包率大致在55个/秒左右。曲线2表示在使用上述拥塞控制情况下,节点2的丢包率。其丢包率大致在45个/秒左右。由以上结果可知,在使用拥塞控制方法的情况下,其网络节点2的丢包率较不使用拥塞控制方法,降低了21.83%左右。从而极大的提高了网络业务传输的可靠性,提高了QoS保证。
参见图9,图9为图7网络使用本发明拥塞控制方法和不使用本发明拥塞控制方法的吞吐量对比曲线图,横坐标为时间,单位是秒;纵坐标为吞吐率,单位kbps。
由于在整个仿真过程中,两个业务流都是饱和的,那个整个网络的吞吐量达到饱和。如图9所示,曲线1表示不使用拥塞策略时的全网吞吐量,曲线2表示使用本发明拥塞控制方法时的全网吞吐量。在使用本发明拥塞控制方法的前后,整个网络的吞吐量曲线2较曲线1稍高。因此保证了全网吞吐量。
参见图10,图10为图7网络中不使用本发明拥塞控制方法的当前节点和下游节点的吞吐量曲线图。曲线1表示节点0的吞吐量,曲线2表示节点2的吞吐量。由于节点2的吞吐量相当于是业务流第一跳的吞吐量,节点0的吞吐量相当于是业务流第二跳的吞吐量。如图10所示,节点2的吞吐量在绝大部分时间大于节点0的吞吐量,根据图10的仿真结果,可以计算出节点2的平均吞吐量为309.74kbps,节点0的平均吞吐量为247.75kbps。可见第一跳的吞吐量大于第二跳的吞吐量,这样肯定发生了严重的拥塞。
参见图11,图11为图7网络中使用本发明拥塞控制方法的当前节点和下游节点的吞吐量曲线图。曲线2表示节点2的吞吐量,曲线1表示节点0的吞吐量。如图所示,节点2的吞吐量基本等于节点0的吞吐量,根据图11的仿真结果,可以计算出节点2的平均吞吐量为272.51kbps,节点0的平均吞吐量为262.66kbps。可见第一跳和第二跳的吞吐量基本相等,所以较好的解决了本地拥塞,上诉拥塞控制机制发挥了良好的作用。
由上述的实施例和仿真结果可见,本发明的这种无线网络的二层拥塞控制方法,明确了拥塞的监测、信息发送以及拥塞控制的整个过程,从而能够直接应用到实际网络中,降低本地拥塞,进一步可以保证整个网络的吞吐量。由于本发明还可以在资源利用不足的情况下,要告知其上游网络节点增大发送速率,从而提高了系统资源的利用率。
权利要求
1、一种无线网络的二层拥塞控制方法,其特征在于,包括以下步骤
A、当前网络节点监测自身拥塞情况,并在自身发生拥塞时,执行步骤B;
B、当前拥塞网络节点向与自身相连的上游网络节点或邻居网络节点发送包含自身拥塞情况的拥塞控制信息;
C、接收到拥塞控制信息的网络节点根据包含的拥塞情况,调整本地节点传输速率。
2、如权利要求1所述的拥塞控制方法,其特征在于,所述步骤A中,当前网络节点监测自身拥塞情况的方法为定时执行以下步骤
A1、当前网络节点计算出短期有效接收速率STRR和短期有效发送速率STTR的差值,获得该速率差值的模糊状态;并获得当前传输队列长度的模糊状态;
A2、当速率差值的模糊状态为高,且当前传输队列长度的模糊状态也为高时;或速率差值的模糊状态为中,且当前传输队列长度的模糊状态为高时;或速率差值的模糊状态为高,且当前传输队列长度的模糊状态为低时;确定自身发生拥塞。
3、如权利要求2所述的拥塞控制方法,其特征在于,所述计算短期有效接收速率和短期有效发送速率的差值的方法为
在定时时间T内,统计发送的数据包数Nt,并统计接收的数据包数Nr,P是平均数据包大小;
则,短期有效接收速率和短期有效发送速率的差值ΔSTR=STRR-STTR。
4、如权利要求3所述的拥塞控制方法,其特征在于,所述获得该速率差值的模糊状态的方法为
采用正态分布的隶属度函数对该速率差值进行模糊化,获得该速率差值的模糊状态为高、中或低;
所述获得当前传输队列长度的模糊状态的方法为
采用正态分布的隶属度函数对当前传输队列长度进行模糊化,获得当前传输队列长度的模糊状态为高或低。
5、如权利要求2所述的拥塞控制方法,其特征在于,
所述步骤A1为当前网络节点计算出每个优先级队列的短期有效接收速率和短期有效发送速率的差值,获得该速率差值的模糊状态;并获得每个优先级队列长度的模糊状态;
所述步骤A2为当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态也为高时,或一个优先级队列的速率差值的模糊状态为中,且该优先级队列长度的模糊状态为高时,确定由该优先级队列引起了高业务负荷拥塞;当一个优先级队列的速率差值的模糊状态为高,且该优先级队列长度的模糊状态为低时;确定由该优先级队列引起了信道拥塞。
6、如权利要求5所述的拥塞控制方法,其特征在于,
若确定发生了高业务负荷拥塞,则步骤B为当前网络节点向自身各个邻居网络节点发送包含该优先级队列拥塞级别的拥塞控制公告信息;
所述步骤C为接收到拥塞控制公告信息的邻居网络节点根据其中包含的该优先级队列拥塞级别,调整本地节点对应优先级队列的传输速率。
7、如权利要求6所述的拥塞控制方法,其特征在于,所述根据拥塞级别调整本地节点对应优先级队列的传输速率的方法为
对每个优先级队列预定一个调节的常量,该优先级队列调整后的传输速率为原传输速率与对应预定常量的2n之积,n为拥塞级别。
8、如权利要求5所述的拥塞控制方法,其特征在于,
若发生了信道拥塞,则步骤B为当前网络节点向自身的上游网络节点发送包含该优先级队列目标速率的拥塞控制请求信息;
所述步骤C为接收到拥塞控制请求信息的上游网络节点先向当前网络节点返回拥塞控制应答;再根据目标速率调整本地节点对应优先级队列的传输速率。
9、如权利要求8所述的拥塞控制方法,其特征在于,所述拥塞控制应答中包含各个优先级队列已提供业务负荷信息,所述当前网络节点进一步根据已提供业务负荷信息计算用于发送下一次拥塞控制请求的该优先级队列目标速率。
10、如权利要求9所述的拥塞控制方法,其特征在于,所述当前网络节点计算用于发送下一次拥塞控制请求的该优先级队列目标速率的方法为
根据拥塞控制应答中的各个优先级队列的业务负荷信息,设各个优先级队列的业务分别为NBK,NBG,NVI,NVO,求得提供的业务总和为N=NBK+NBG+NVI+NVO。
设STTR_ACi-1为对应优先级队列上一次的发送速率估计值,设STTR_ACim为对应优先级队列本次实际测得的发送速率,则ERR_AC=STTR_ACim-STTR_ACi-1,根据递归误差估计算法,得到下一次发送速率估计值为STTR_ACi=STTR_ACi-1+gERR_AC,其中各个优先级队列对应的g按照为
将各个g分别带入STTRi=STTRi-1+gERR,求得各个优先级队列的下一次估计发送速率,确定各个优先级队列的目标速率TRACi分别与各个优先级队列的估计发送速率相等
11、如权利要求8所述的拥塞控制方法,其特征在于,所述根据目标速率调整本地节点对应优先级队列的传输速率的方法为
调整本地节点对应优先级队列的专有帧间间隔AIFS[AC],AIFS[AC]=短帧间间隔+AIFSN[AC]×时隙长度。
12、如权利要求8所述的拥塞控制方法,其特征在于,所述根据目标速率调整本地节点对应优先级队列的传输速率的方法为
测量其上游网络节点对应优先级队列的短期有效发送速率,并与拥塞控制请求消息的目标速率联合计算,得到
13、如权利要求5所述的拥塞控制方法,其特征在于,所述步骤A2进一步包括当一个优先级队列速率差值的模糊状态为低,且该优先级队列长度的模糊状态也为低时;确定由该优先级队列引起自身信道资源利用不足;
在确定自身信道资源利用不足后,当前网络节点计算该优先级队列目标速率,并向自身的上游网络节点发送包含该优先级队列目标速率的拥塞控制请求;接收到拥塞控制请求的上游网络节点先向当前网络节点返回拥塞控制应答;再根据目标速率调整本地节点对应优先级队列的传输速率。
14、如权利要求13所述的拥塞控制方法,其特征在于,所述当前网络节点计算目标速率的方法为
先计算目标增长率n;
再根据上游节点提供的“拥塞控制应答”中的各个优先级队列的业务负荷信息,则各个优先级队列对应的目标速率TR为
T为测量窗口大小;
在每个测量窗口信道的平均剩余时间为t单位;
C表示平均信道容量;
P表示平均包大小;
Toh表示在时间单元每个包的平均花费时间;
N表示上游网络节点提供的总业务负荷。
15、如权利要求2所述的拥塞控制方法,其特征在于,定时时间的确定方法为
定时时间T内,设如果不进行拥塞控制, 队列的长度会增加ΔLACi,=T×(STRRACi-STTRACi),则持续时间将
这个持续时间确定为定时时间。
全文摘要
本发明公开了一种无线网络的二层拥塞控制方法,包括以下步骤A、当前网络节点监测自身拥塞情况,并在自身发生拥塞时,执行步骤B;B、当前网络拥塞节点向与自身相连的上游网络节点或邻居网络节点发送包含自身拥塞情况的拥塞控制信息;C、接收到拥塞控制信息的网络节点根据其中包含的拥塞情况,调整本地节点传输速率。本发明明确了拥塞的监测、信息发送以及拥塞控制的整个过程,能够直接应用到实际网络中,如无线多跳网包括无线网状网、移动Ad hoc网络和无线传感器网络等,从而降低本地拥塞。
文档编号H04Q7/38GK101098301SQ20061009858
公开日2008年1月2日 申请日期2006年7月12日 优先权日2006年6月27日
发明者方旭明, 朱晓东, 姚忠辉, 张军平 申请人:华为技术有限公司, 西南交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1