CN110167071B - 一种基于竞争的mac层逐跳双向拥塞控制方法 - Google Patents
一种基于竞争的mac层逐跳双向拥塞控制方法 Download PDFInfo
- Publication number
- CN110167071B CN110167071B CN201910489319.8A CN201910489319A CN110167071B CN 110167071 B CN110167071 B CN 110167071B CN 201910489319 A CN201910489319 A CN 201910489319A CN 110167071 B CN110167071 B CN 110167071B
- Authority
- CN
- China
- Prior art keywords
- node
- congestion
- hop
- queue
- congested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于竞争的MAC层逐跳双向拥塞控制方法,克服现存无线传感器网络拥塞控制方法的时效性、公平性和效率性问题,包括以下步骤:1)拥塞检测;2)拥塞状况的传递:接收节点接收完数据包后,将发送一个ACK确认帧给发送节点,此时接收节点将自身的拥塞状况通过ACK传输到发送节点;3)拥塞状况分类:发送节点接收到下一跳节点的拥塞状况后,结合本身的拥塞状况将拥塞分为0‑0,0‑1,1‑0,1‑1;“0”表示未发生拥塞,“1表示发生拥塞”;4)拥塞控制过程:根据分类后的拥塞状况自适应调整竞争窗口以改变节点传输数据优先级,做出相应的控制处理;本发明使用点到点的拥塞控制方法,使得拥塞发生时能更加快速的启动拥塞缓解方法,缓解拥塞。
Description
技术领域
本发明属于无线传感器网络拥塞控制领域,具体涉及一种基于竞争的MAC(MediaAccess Control,媒体访问控制)层逐跳双向拥塞控制方法。
背景技术
无线传感器网络(Wireless Sensor Networks,WSN)是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。分布在检测区域的传感器节点通过中间节点将接收到的数据发送到汇聚节点。随着物联网的迅速发展,无线传感器网络的应用越来越广泛,将会有越来越多的传感器接入到网络中传输数据,数据的大量聚集必然会导致网络的拥塞,而网络拥塞将会带来数据包的丢失,网络延时的增加,吞吐量的降低,以及能量的过度消耗等多种网络问题。拥塞控制作为WSN的核心技术,主要实现网络传输过程节点拥塞的判断和对产生的拥塞进行缓解处理,因此如何设计有效的拥塞控制协议来调整数据的传输,对缓解网络拥塞具有重要意义。
目前针对拥塞控制协议已经有很多成熟的研究成果,根据网络中的设备关系可以将拥塞控制协议分为端到端的拥塞控制和点到点的拥塞控制。端到端的拥塞控制方法思想为:当目的节点检测到发生拥塞时,通过调整发送端的发送速率来控制网络的负荷量,CODA(Congestion Detection and Avoidance)协议就是端到端的拥塞控制协议。点到点的拥塞控制方法思想是:当节点检测到发生拥塞时,对上一跳或本地节点的数据发送速率进行调整,控制当前节点的负荷量,CHCC(Cross-layer Hop-by-hop Congestion Control)协议和CCDC(Congestion Control technique for Duty Cycling)等。由于无线传感器网络的分布性涌现了很多点到点的拥塞控制协议。根据拥塞控制的调整方式可以将点到点的拥塞控制协议分为基于发送端的拥塞控制和基于接收节点的拥塞控制。但是这些拥塞控制协议也存在一些不足,列举如下:
(1)端到端拥塞控制方法的时效性问题,当拥塞发生时,拥塞的信息反馈给发送端,发送端做出相应的处理,这会花费一定的时间,必然导致响应时间慢,对往返时间依赖性强的问题,不可避免地导致数据包丢失。
(2)单向拥塞控制方法的公平性问题,在点到点的拥塞控制协议中,全都是单向处理的,当一个节点发生拥塞后,通过提高本地节点的数据发送速率来加快排空缓存队列,达到缓解拥塞的目的,但是此时并不考虑下一跳节点的拥塞状况和网络中的重要程度,很可能因为缓解本地路径的拥塞,造成下一跳节点拥塞,进而导致将下一跳节点作为转发节点的多条路径崩溃,这种情况下是得不偿失的。
(3)单向控制方法的效率性问题,当拥塞发生后,需要尽可能快的缓解拥塞,而单向的拥塞处理,很有可能因为一个节点的问题而无法做出控制反应,而且相较于双向的拥塞处理速度是比较慢的。
发明内容
本发明所要解决的技术问题是为了克服现有技术存在拥塞控制方法不是最优和拥塞处理的公平性、时效性和效率性问题,而提供了一种基于竞争的MAC层逐跳双向拥塞控制方法(Hop-by-hop Bidirectional Congestion control,HBCC),该方法针对现有拥塞控制协议的不足,综合考虑了拥塞控制方法的优化和拥塞处理的公平性、效率性等因素,从而达到降低网络丢包率、提高网络吞吐量的目的,在保证网络传输延时基本不变的情况下大大降低了网络拥塞的发生。
为达到上述目的,本发明提供如下技术方案:
一种基于竞争的MAC层逐跳双向拥塞控制方法,在该拥塞控制方法中,通过对节点缓存队列的检测判断节点是否发生拥塞,然后在拥塞传输阶段,接收节点接收完数据包后,将发送一个ACK(Acknowledgement)确认帧给发送节点,此时接收节点将自身的拥塞状况通过ACK传输到发送节点。根据相邻一跳两个节点的拥塞状况,将拥塞分为0-0,0-1,1-0,1-1四种情况(0代表未发生拥塞,1代表发生拥塞)。在发送节点接收到ACK的拥塞信息后,根据上述这四种拥塞状况,设置相应的拥塞处理方法,具体包括如下步骤:
1拥塞检测过程:
使用基于队列长度的拥塞检测方法,设置拥塞阈值为最大队列长度的75%,当节点队列长度大于设定的阈值时,判断节点发生了拥塞;
2拥塞标志传递过程:
接收节点接收完数据包后,将发送一个ACK确认帧给发送节点,此时接收节点将自身的拥塞状况通过ACK传输到发送节点,发送节点将从接收到的ACK中提取下一跳节点的拥塞信息,然后存储到下一跳拥塞标志A_CI中;
3拥塞分类过程:
节点接收到下一跳节点的拥塞状况后,结合本身的拥塞状况将拥塞分类为:当前节点和下一跳节点均未发生拥塞(0-0),当前节点未发生拥塞下一跳节点发生拥塞(0-1),当前节点发生拥塞下一跳节点未发生拥塞(1-0),当前节点和下一跳节点均发生拥塞(1-1);
4拥塞处理过程:
当判断当前的拥塞状况为拥塞分类中的0-0时,由于一跳的两个节点均未发生拥塞,所以此时采用IEEE802.11(802.11无线网络标准)协议中的DCF(DistributedCoordination Function,分布式协调功能)进行初始化处理;
当判断当前的拥塞状况为0-1时,由于下一跳节点发生拥塞,而当前节点未发生拥塞,所以需要降低本地节点的数据发送速率,本发明采用调整竞争窗口的方式降低本地节点接入信道的优先级,从而使得本地的数据发送速率降低,达到缓解下一跳节点拥塞的目的;
当判断当前拥塞状况为1-0时,由于本地节点发生拥塞,而下一跳节点未发生拥塞,所以需要提高本地节点的数据发送速率,本发明采用调整竞争窗口的方式提高本地节点接入信道的优先级,从而使得本地缓存队列的数据包迅速排空,缓解拥塞;
当判断当前拥塞状况为1-1时,由于本地节点和下一跳节点均发生了拥塞,考虑到下一跳节点拥有较高的拥塞处理优先级,结合当前的拥塞状况和下一跳拥塞优先级自适应调整竞争窗口,改变节点接入信道优先级,从而缓解拥塞。
一种基于竞争的MAC层逐跳双向拥塞控制方法,其特征在于,所述的一种基于竞争的MAC层逐跳双向拥塞控制方法包括步骤如下:
1)拥塞检测过程:
使用基于队列长度的拥塞检测方法,设置拥塞阈值为最大队列长度的75%,当节点队列长度大于设定的阈值时,判断节点发生了拥塞;
2)拥塞标志传递过程:
接收节点接收完数据包后,将发送一个ACK确认帧给发送节点,此时接收节点将自身的拥塞状况通过ACK传输到发送节点,发送节点将从接受到的ACK中提取下一跳节点的拥塞信息;
3)拥塞分类过程:
节点接收到下一跳节点的拥塞状况后,结合本身的拥塞状况将拥塞状况分类;当前节点和下一跳节点均未发生拥塞0-0,当前节点未发生拥塞下一跳节点发生拥塞0-1,当前节点发生拥塞下一跳节点未发生拥塞1-0,当前节点和下一跳节点均发生拥塞1-1;
4)拥塞处理过程。
技术方案中所述拥塞处理过程是指:
根据分类中得到的拥塞状况做出相应的控制处理,通过修改竞争窗口的方式,改变节点接入信道的优先级,达到控制网络的负荷量,使拥塞得到缓解,拥塞的处理过程,就是以节点队里长度为参数,改变节点的竞争窗口;
1)拥塞状况为0-0时,在网络没有发生拥塞时不改变协议的工作原理;
2)拥塞状况为0-1时,通过改变竞争窗口大小,使本地节点接入信道的优先级降低,减少本地节点向拥塞节点数据发送速率,使发生拥塞的下一跳节点尽快排空缓存队列,达到缓解拥塞的目的;
3)拥塞状况为1-0时,通过改变竞争窗口大小,使节点获得更高的接入信道的优先级,增加拥塞节点的数据发送速率,降低节点缓存队列长度,使拥塞得到缓解;
4)拥塞状况为1-1时,根据节点的拥塞状况,和节点位于网络拓扑的位置,改变竞争窗口的大小,使节点在缓解拥塞的同时考虑节点的在网络中位置的作用,使得在尽可能缓解拥塞的情况下不影响整体网络的性能。
技术方案中所述的拥塞状态为0-1时,竞争窗口调节实现的过程如下:
基于接收节点的拥塞控制方法(Hop-by-hop Receiving-based CongestionControl,HRCC),通过增大本地节点竞争窗口CW的方式,降低本地节点接入信道的优先级,降低了下一跳节点的数据接收速率,使下一跳节点的拥塞得到缓解;由DCF方法可知,当随机数选取的值越大则节点发送数据前的退避时间越久,等待发送的时间越长,降低了拥塞节点的接收速率;根据下一跳节点的拥塞情况自适应地调整竞争窗口的大小,达到拥塞缓解的目的;CW的调整方式为:
CW=(CWmin+1)*2n-1
CW为调整后的初始竞争窗口,CWmin为竞争窗口最小值31,n为拥塞程度窗口调节参数,n计算方式为:
式中,qnext为下一跳节点的当前队列长度,k为设置的队列长度阈值,Qmax节点缓存最大队列长度,CWmax最大竞争窗口值1023,CWmin最小竞争窗口值31;根据上述两个公式,节点竞争窗口的调节范围在CWmin与CWmax之间;
当下一跳节点队列长度为阈值k时,参数n的值为0,根据CW的计算公式计算CW的值为CWmin,随着节点队列的增加,竞争窗口值也会随之增加,节点接入信道的优先级不断降低;当下一跳节点队列长度达到满队列,即qnext=Qmax时,此时n的值为:
将n代入到CW的计算公式中,得到CW的值为CWmax,此时节点获得最低的接入信道的优先级,节点等待接入信道的时间最长,下一跳节点将有足够时间将缓存的数据包发送出去。
技术方案中所述的拥塞状况为0-1时,竞争窗口调节实现的过程如下:
基于发送节点的拥塞控制方法(Hop-by-hop Sending-based CongestionControl,HSCC),节点检测本地的缓存队列长度,当检测到本地拥塞标志Temp_CI的值为1时,本地节点发生拥塞,通过减小竞争窗口的方式提高拥塞节点接入信道的优先级,使缓存队列中的数据包尽快发送出去,使拥塞得到缓解;CW的自适应调整方式使用如下公式:
CW=(CWmin+1)*2m-1
qtemp为当前节点的当前队列长度,k为队列阈值,Qmax为最大队列长度;当qtemp=k时,m=0,通过CW计算公式得到CW为CWmin,随着当前节点队列qtemp的增加,m的值不断减小,CW的值随之降低,节点获得信道的优先级不断提高,当节点队列达到满队列,即qtemp=Qmax时,m=-1,CW=0.5*CWmin,此时节点获得接入信道的最高优先级,节点能更加快速的将缓存队列的数据包发送出去,使拥塞得到缓解。
技术方案中所述的拥塞状况为1-1时,竞争窗口调节实现的过程如下:
基于优先级的拥塞控制方法(Hop-by-hop Priority Congestion Control,HPCC),HPCC的CW调整方式为:
CWnext为下一跳节点的拥塞竞争窗口大小,CWmin为最小初始竞争窗口,qtemp为当前节点缓存队列长度,qnext为下一跳节点缓存队列长度;当一跳的两个节点均发生拥塞时,如果qtemp≥qnext,算法将本地节点的竞争窗口大小设置为下一跳节点的竞争窗口大小,本地节点有更大程度的拥塞,但下一跳节点有更高的拥塞处理优先级,因此设置相同的拥塞处理等级;如果qtemp<qnext,将本地节点的竞争窗口大小设置为CWmin,因为本地的拥塞程度不高而且下一跳具有更高的拥塞处理优先级;保证了缓解本地的拥塞,保证下一跳节点具有更高的拥塞处理优先级。
本发明与现有技术相比具有如下优点:
1.对比于端到端的拥塞控制技术,本发明所述的一种基于竞争的MAC层逐跳双向拥塞控制方法,使用点到点的拥塞控制方法,使得拥塞发生时能更加快速的启动拥塞缓解方法,缓解拥塞。
2.对比于单向的点到点拥塞控制技术,本发明所述的一种基于竞争的MAC层逐跳双向拥塞控制方法,使用双向拥塞控制,当拥塞发生时,从两个方向进行处理,能更加快速、更大程度地缓解拥塞。
3.对比于单向的点到点的拥塞控制技术,本发明所述的一种基于竞争的MAC层逐跳双向拥塞控制方法,当两个节点均发生拥塞时,考虑到无线传感器网络的节点的分布特性,下一跳节点在树状网络中起着更重要的作用,可以使网络最大可能的缓解拥塞而不影响整个网络的运行。
附图说明
下面结合附图对本发明作进一步的说明:
图1为本发明所述的一种基于竞争的MAC层逐跳双向拥塞控制方法的功能流程示意框图;
图2为拥塞检测流程图;
图3为数据发送整体流程图;
图4为节点接入信道后的发包流程图;
图5为拥塞传输流程图;
图6为拥塞状况分类流程图;
图7为拥塞处理流程图;
图8为本发明实例中的网络拓扑图;
图9为本发明实例中HBCC与无拥塞控制的DCF、采用单向拥塞控制的HRCC和HSCC方法在不同负载下的吞吐量对比图;
图10为本发明实例中HBCC与无拥塞控制的DCF、采用单向拥塞控制的HRCC和HSCC方法在不同负载下的丢包率对比图;
图11为本发明实例中HBCC与无拥塞控制的DCF、采用单向拥塞控制的HRCC和HSCC方法在不同负载下的端到端平均延时对比图;
图12为本发明实例中负载为30packet/s时HBCC和DCF方法下节点0的队列长度分布对比图;
图13为本发明实例中负载为30packet/s时HBCC和DCF方法下节点1的队列长度分布对比图;
图14为本发明实例中负载为30packet/s时HBCC和DCF方法下节点2的队列长度分布对比图;
图15为本发明实例中负载为30packet/s时HBCC和DCF方法下节点3的队列长度分布对比图;
图16为本发明实例中负载为30packet/s时HBCC和DCF方法下节点4的队列长度分布对比图;
图17为本发明实例中负载为35packet/s时HBCC和DCF方法下节点0的队列长度分布对比图;
图18为本发明实例中负载为35packet/s时HBCC和DCF方法下节点1的队列长度分布对比图;
图19为本发明实例中负载为35packet/s时HBCC和DCF方法下节点2的队列长度分布对比图;
图20为本发明实例中负载为35packet/s时HBCC和DCF方法下节点3的队列长度分布对比图;
图21为本发明实例中负载为35packet/s时HBCC和DCF方法下节点4的队列长度分布对比图。
具体实施方式
下面结合附图对本发明作详细的描述:
参阅图1,本发明提供了一种基于竞争的MAC层逐跳双向拥塞控制方法,该方法通过检测队列长度判断拥塞,并利用ACK传输拥塞标志,将拥塞状况分为四类,根据拥塞状况自适应调整竞争窗口以改变节点传输数据优先级,综合考虑了节点缓存队列长度、相邻一跳两个节点的拥塞状况和节点在网络中的重要程度,该方法依次含有如下步骤:
1.拥塞检测过程
参阅图2,设置一个缓存队列阈值,当目前的缓存队列长度大于阈值时,则判定节点发生了拥塞,否则认为没有发生拥塞,设置一个存储本地拥塞状况的变量Temp_CI。本发明提出的HBCC拥塞控制方法中,将当前队列长度q与设定的阈值k进行比较,当q大于k时,判断网络发生了拥塞,设置拥塞标志Temp_CI=1;当q小于k时,判断没有发生拥塞,设置拥塞标志Temp_CI=0。这里阈值k取经验值0.75*Qmax,Qmax为节点最大队列长度。
2.拥塞标志传输过程:
1)参阅图3,是无线传感器网络中数据传输的整个流程图,由图3可知,当数据包发送完毕后,节点将进行初始化竞争窗口,本发明提出的一种基于竞争的MAC层逐跳双向拥塞控制方法,是通过调整竞争窗口来改变节点接入信道的优先级,进而达到控制网络负荷,缓解拥塞的目的。因此应在此处加入缓存队列长度的判断。
2)参阅图4,是无线传感器网络中节点接入信道后数据包传输的过程,由图可知,当接收节点接收完一个数据包后,向发送节点发送一个ACK确认帧,本发明提出的一种基于竞争的MAC层逐跳双向拥塞控制方法,是在接收到ACK后调整竞争窗口的,因此将接收节点的拥塞状况通过ACK传递给发送节点。于是本发明在ACK中设置拥塞标志位来传递拥塞信息。
3)参阅图5,是拥塞传输的具体流程,当接收节点接收到数据后,检测本地的拥塞状况,如果发生拥塞设置拥塞标志Temp_CI=1,否则设置Temp_CI=0。节点根据本地的拥塞状况,设置ACK中的拥塞标志位CI,即将Temp_CI的值传递给CI,发送节点接收到ACK后提取接收节点的拥塞标志位CI,即将CI的值传递给发送节点存储接收节点拥塞状况的变量A_CI,
3.拥塞分类过程:
参阅图6,是本发明提出的拥塞状况分类图,提取根据拥塞检测得到的本地拥塞标志Temp_CI与从ACK中得到的接收节点的拥塞标志A_CI。根据Temp_CI和A_CI两个拥塞标志数值将拥塞状况分为4类:0-0,0-1,1-0,1-1(前一个数字表示本地的拥塞状况,后一个数字表示下一跳的拥塞状况);
当前节点和下一跳节点均未发生拥塞0-0,当前节点未发生拥塞下一跳节点发生拥塞0-1,当前节点发生拥塞下一跳节点未发生拥塞1-0,当前节点和下一跳节点均发生拥塞1-1;
“0”表示未发生拥塞,“1表示发生拥塞”;
4.拥塞处理过程:
参阅图7,是本发明提出的拥塞处理流程图,根据分类中得到的四种拥塞状况做出相应的控制处理,本发明通过修改竞争窗口的方式,改变节点接入信道的优先级,从而达到控制网络的负荷量,进而使拥塞得到缓解,拥塞的处理过程,就是以节点队里长度为参数,改变节点的竞争窗口,具体实施方法如下:
1)拥塞状况为0-0时:使用协议中的原方法DCF,在802.11协议的MAC层中采用的是基于CSMA/CA的数据发送机制。节点通过载波侦听机制监听周围媒介的忙闲情况。如果监听到信道状态为忙状态,发送节点将延迟发送数据;如果监听到的信道状态处于空闲状态,为了避免节点之间产生冲突和碰撞,节点在发送RTS/CTS控制帧之前,进入随机退避状态,退避时间的生成方式为:
BackoffTime=Random()*SlotTime
这里Random()为(0,CW)之间的一个随机数,SlotTime为时隙时间。竞争窗口CW的值设置为CWmin最小竞争窗口值。
2)拥塞状况为0-1时:使用本发明提出的基于接收节点的拥塞控制方法HRCC(Hop-by-hop Receiving Congestion Control),通过增大竞争窗口CW的方式,降低本地节点接入信道的优先级,即降低了拥塞节点的数据接收速率,从而使下一跳节点的拥塞得到缓解。由1)可知,当随机数选取的值越大则节点发送数据前的退避时间越久,等待发送的时间越长,也就降低了拥塞节点的接收速率。所以本算法根据下一跳节点的拥塞情况自适应地调整竞争窗口的大小,从而达到拥塞缓解的目的。CW的调整方式为,
CW=(CWmin+1)*2n-1
这里的CW为调整后的初始竞争窗口,CWmin为竞争窗口最小值31,n为拥塞程度窗口调节参数,其计算方式为
式中,qnext为下一跳节点的当前队列长度,k为设置的队列长度阈值,Qmax节点缓存最大队列长度,CWmax最大竞争窗口值1023,CWmin最小竞争窗口值31。根据上述两个公式,节点竞争窗口的调节范围在CWmin与CWmax之间。当下一跳节点队列长度为阈值k时,参数n的值为0,根据CW的计算公式计算CW的值为CWmin,随着节点队列的增加,竞争窗口值也会随之增加,节点接入信道的优先级不断降低。当下一跳节点队列长度达到满队列,即qnext=Qmax时,此时n的值为,
将n代入到CW的计算公式中,得到CW的值为CWmax,此时节点获得最低的接入信道的优先级,节点等待接入信道的时间最长,下一跳节点将有足够时间将缓存的数据包发送出去。
3)拥塞状况为1-0时:使用本发明提出的基于发送节点的拥塞控制方法HSCC,节点检测本地的缓存队列长度,当检测到本地拥塞标志位Temp_CI的值为1时,即本地节点发生拥塞,则通过减小竞争窗口的方式提高拥塞节点接入信道的优先级,使缓存队列中的数据包尽快发送出去,使拥塞得到缓解。CW的自适应调整方式使用如下公式
CW=(CWmin+1)*2m-1
其中m为,
这里的qtemp为当前节点的当前队列长度,k为队列阈值,Qmax为最大队列长度。有公式中可以看出,当qtemp=k时,m=0,通过CW计算公式得到CW为CWmin,随着当前节点队列qtemp的增加,m的值不断减小,CW的值随之降低,节点获得信道的优先级不断提高,当节点队列达到满队列(即qtemp=Qmax)时,m=-1,CW=0.5*CWmin,此时节点获得接入信道的最高优先级,节点能更加快速的将缓存队列的数据包发送出去,使拥塞得到缓解。
4)参阅图8,是本发明实例仿真拓扑图,从图中可已看出如果节点3发生了拥塞,节点4未发生拥塞,我们采取HSCC算法进行拥塞控制,使用HSCC中CW的计算公式对节点3的竞争窗口进行调节,使其获得较高的优先级,但是节点4的优先级并未提高,只是将节点3缓存队列转移到节点4,虽然能减少节点3处的丢包率,但是也只是转移了数据包可能会带来一定的接收延迟。为了解决这一问题,我们加入了一个自适应数据发送速率调整机制,当拥塞节点接入信道传输数据时,给予更高的数据包发送速率datarate,以减少其优先级使用时间,即将缓存队列降低到阈值k以下所用时间。datarate调整方式如下:
由式中可以看出,当本地节点缓存队列长度大于与下一跳节点的队列长度之差大于0.25*Qmax时,设置较高的发送速率,因为此时下一跳节点的缓存队列较短,可以存入较多的数据包,如果下一跳的缓存队列较长,可接收的数据包就相对较少因此采用较低的发送速率。这个机制解决了HSCC算法带来的延迟增加的缺点,是HSCC的一个优化。
5)拥塞状况为1-1:为了保证下一跳节点在网络中拥有更高的拥塞处理优先级,使用本发明提出的基于优先级的拥塞控制方法HPCC(Hop-by-hop Priority CongestionControl),HPCC的CW调整方式为:
这里的CWnext为下一跳节点的拥塞竞争窗口大小,CWmin为最小初始竞争窗口,qtemp为当前节点缓存队列长度,qnext为下一跳节点缓存队列长度。从公式可以看出,当一跳的两个节点均发生拥塞时,如果qtemp≥qnext,算法将本地节点的竞争窗口大小设置为下一跳节点的竞争窗口大小,本地节点有更大程度的拥塞,但下一跳节点有更高的拥塞处理优先级,因此设置相同的拥塞处理等级;如果qtemp<qnext,算法将本地节点的竞争窗口大小设置为CWmin,这是因为本地的拥塞程度不高而且下一跳具有更高的拥塞处理优先级。算法既保证了缓解本地的拥塞,也能保证下一跳节点具有更高的拥塞处理优先级。
实施例
仿真条件如下:
为了检验本发明所述的HBCC拥塞控制方法的性能,把本发明所述的HBCC拥塞控制方法加载到NS-2仿真平台上,仿真使用2.35版本的NS-2平台,操作系统为Ubuntu10.04LTS。设置队列管理方式为Droptail,路由协议选择AODV,节点传输半径为250m,数据包类型为CBR,数据包大小1024B,最大缓存队列长度为50,仿真时间为250s.
参照图8,是本发明实例所用仿真拓扑图,仿真时间开始10秒后,节点0、1、2开始产生CBR数据包,经过节点3、4转发,传输到节点0。节点1和节点2产生数据包的速率为固定速率10packet/s,逐渐改变节点0的数据包发送速率(10,15,20,30,35,40,45,50,55,60,65,70,75,80,85,90packet/s)使网络从不拥塞到逐渐发生拥塞。在DCF、HBCC、HSCC、HRCC三种拥塞控制算法下分别测试网络性能指标。
仿真结果比较分析如下:
本发明实施例仿真实验性能指标包括平均饱和吞吐量、缓存溢出丢包率、端到端平均时延、缓存队列长度变化曲线。
平均饱和吞吐量:目的节点在单位时间内接收数据包的数量,单位packet/s。
缓存溢出丢包率:由于缓存队列溢出丢包的数量占数据包发送总数量的百分比。
平均端到端传输时延:平均每个数据包从发送端到接收端所用的时间,单位s。
缓存队列长度变化曲线:在给定的负载下,每个节点的缓存队列长度随时间变化的曲线。
图9为本发明实例中分别采用DCF、HBCC、HSCC和HRCC方法的节点0的平均饱和吞吐量随负载变化的曲线。从图9中可以看到,当网络负载较小时,四个方法下的吞吐量随着输入负载的增加基本是线性增长的。随着网络负载的继续增大,网络逐渐出现拥塞,(DCF方法在节点发送负载为25packet/s处)、(HRCC方法在节点发送负载15packet/s处)、(HSCC方法在节点发送负载为35packet/s处)、(HBCC方法在节点发送负载为40packet/s处)的吞吐量依次停止增长。DCF、HRCC、HSCC和HBCC方法的饱和吞吐量分别约为29packet/s、34packet/s、49packet/s和55packet/s。从图9的仿真结果可以看出,采用本发明提出的逐跳双向拥塞控制HBCC和基于发送节点拥塞控制的HSCC的吞吐量性能优于基于接收节点拥塞控制的HRCC和无拥塞控制的DCF方法。HBCC饱和吞吐量比HSCC方法高出约12%,比HRCC方法高出约62%,相比于DCF方法高出约90%。因为HBCC采用了双向的拥塞控制,当一个节点发生拥塞时,既能自适应地调整上一跳节点的竞争窗口,使其获得较低的接入信道的优先级,抑制其数据发送速率;也能自适应的调整本地节点的竞争窗口,得到较高的接入信道的优先级,提高本地节点的发送速率,这样使得使发生拥塞的节点能够更加快速的减低缓存队列长度,缓解该节点的拥塞,避免其缓存队列溢出丢包,提高了吞吐量。
图10为本发明实例中分别采用DCF、HBCC、HSCC和HRCC方法的缓存溢出丢包率随网络负载变化曲线。从图10中可以看到,四个方法的缓存溢出丢包率随着网络负载递增均呈上升趋势。从图中可以看出HRCC方法在节点0的发送速率为10packet/s时,HSCC算法在25pakcet/s时,HBCC算法在30packet/s时开始出现拥塞。随着网络的负载增加,HBCC方法的缓存溢出丢包率均低于其他三个方法。从图10的仿真结果可以看出,采用本文提出的逐跳双向拥塞控制的HBCC和基于发送节点拥塞控制的HSCC的缓存溢出丢包率性能优于基于接收节点拥塞控制的HRCC和无拥塞控制的DCF。HBCC缓存溢出丢包率(在CBR为40packet/s)比HSCC方法低约44%,比HRCC方法低约79%,相比于DCF方法低约80%。因为HBCC采用了双向的拥塞控制,当一个节点发生拥塞时,既能自适应地调整上一跳节点的竞争窗口,使其获得较低的接入信道的优先级,抑制其数据发送速率;也能自适应的调整本地节点的竞争窗口,得到较高的接入信道的优先级,提高本地节点的发送速率,这样使得使发生拥塞的节点能够更加快速的减低缓存队列长度,缓解该节点的拥塞,避免其缓存队列溢出丢包,降低了缓存溢出丢包率。
图11为本发明实例中分别采用DCF、HBCC、HSCC和HRCC方法的端到端平均时延随网络负载变化曲线。从图11中可以看到,四个方法的端到端平均时延随着网络负载递增均呈上升趋势。从图中可以看出四个方法的平均端到端时延由高到低分别为:HRCC,DCF、HBCC、HSCC。由于HRCC的思想是:通过增加上一跳节点等待接入信道的时间来换取拥塞的缓解,这样,必然会导致一定的时延增加,但是换来的是较低的丢包率和较高的吞吐量,这对于整个网络来说是值得的,因为数据包的丢失是网络最严重的问题。而HSCC的平均端到端时延是最低的,这是因为当节点发生拥塞时,HSCC通过提高拥塞节点接入信道的优先级,减少了节点等待接入信道的时间,数据报在缓存队列的时间较短,因此端到端延迟较低。而HBCC综合了HRCC和HSCC,因此平均端到端时延曲线位于两个方法之间。
图12-16为本发明实例中,在节点0产生数据包的速率为30packet/s时,节点0-4队列长度分布对比图。从图中可以看出,DCF算法下节点0出现大量满队列情况,节点3的拥塞程度很高。而在HBCC方法下,节点1和节点3的缓存队列长度均下降到满队列以下。此时,图10可以看出网络中仍然没有产生丢包,与此时的队列长度相对应。这是因为,HBCC通过对竞争窗口的调整,使节点1,2,4缓存数据包,节点0,3提高数据传输速率。节点1,2和节点4的缓存队列增加,使节点0和节点3的缓存队列降低,拥塞得到明显的缓解。
图17-21为本发明实例中,在节点0数据包产生速率达到35packet/s时,节点0-4的队列长度分布对比图。从图中可以看出,DCF下,节点0和节点3的拥塞程度持续增加,丢包率持续上升。在HBCC方法下,由于节点0的数据量太大,已经出现满队列情况,使得数据包开始丢失,而且由于节点0的拥塞产生拥塞,节点3处也出现一定的丢包。但是相比于DCF拥塞得到了很大程度的缓解,这是因为在HBCC调用了竞争窗口自适应算法,使节点1,2,4缓存数据包以降低拥塞节点的丢包率。根据图18,19,20与图13,14,16相比,节点1,2,4的缓存队列长度明显增加,使得网络的拥塞得到了缓解。
通过以上四个网络性能指标的分析,我们可以知道HBCC方法可以在几乎不改变平均端到端延迟的情况下,对网络的平均饱和吞吐量有了较大的提高,并且很大程度上降低了网络的缓存溢出丢包率。这对整个网络来说是值得的,因为网络的丢包是网络问题中最严重的问题,从缓存队列长度的变化曲线可以看出,HBCC方法可以很好地降低队列长度,防止缓存溢出丢包,缓解了网络拥塞。
Claims (3)
1.一种基于竞争的MAC层逐跳双向拥塞控制方法,其特征在于,所述的一种基于竞争的MAC层逐跳双向拥塞控制方法包括步骤如下:
1)拥塞检测过程:
使用基于队列长度的拥塞检测方法,设置拥塞阈值为最大队列长度的75%,当节点队列长度大于设定的阈值时,判断节点发生了拥塞;
2)拥塞标志传递过程:
接收节点接收完数据包后,将发送一个ACK确认帧给发送节点,此时接收节点将自身的拥塞状况通过ACK传输到发送节点,发送节点将从接受到的ACK中提取下一跳节点的拥塞信息;
3)拥塞分类过程:
节点接收到下一跳节点的拥塞状况后,结合本身的拥塞状况将拥塞状况分类;当前节点和下一跳节点均未发生拥塞0-0,当前节点未发生拥塞下一跳节点发生拥塞0-1,当前节点发生拥塞下一跳节点未发生拥塞1-0,当前节点和下一跳节点均发生拥塞1-1;
4)拥塞处理过程;
所述拥塞处理过程是指:
根据分类中得到的拥塞状况做出相应的控制处理,通过修改竞争窗口的方式,改变节点接入信道的优先级,达到控制网络的负荷量,使拥塞得到缓解,拥塞的处理过程,就是以节点队里长度为参数,改变节点的竞争窗口;
1)拥塞状况为0-0时,在网络没有发生拥塞时不改变协议的工作原理;
2)拥塞状况为0-1时,通过改变竞争窗口大小,使本地节点接入信道的优先级降低,减少本地节点向拥塞节点数据发送速率,使发生拥塞的下一跳节点尽快排空缓存队列,达到缓解拥塞的目的;
3)拥塞状况为1-0时,通过改变竞争窗口大小,使节点获得更高的接入信道的优先级,增加拥塞节点的数据发送速率,降低节点缓存队列长度,使拥塞得到缓解;
4)拥塞状况为1-1时,根据节点的拥塞状况,和节点位于网络拓扑的位置,改变竞争窗口的大小,使节点在缓解拥塞的同时考虑节点的在网络中位置的作用,使得在尽可能缓解拥塞的情况下不影响整体网络的性能;
所述的拥塞状态为0-1时,竞争窗口调节实现的过程如下:
基于接收节点的拥塞控制方法HRCC,通过增大本地节点竞争窗口CW的方式,降低本地节点接入信道的优先级,降低了下一跳节点的数据接收速率,使下一跳节点的拥塞得到缓解;由DCF方法可知,当随机数选取的值越大则节点发送数据前的退避时间越久,等待发送的时间越长,降低了拥塞节点的接收速率;根据下一跳节点的拥塞情况自适应地调整竞争窗口的大小,达到拥塞缓解的目的;CW的调整方式为:
CW=(CWmin+1)*2n-1
CW为调整后的初始竞争窗口,CWmin为竞争窗口最小值31,n为拥塞程度窗口调节参数,n计算方式为:
式中,qnext为下一跳节点的当前队列长度,k为设置的队列长度阈值,Qmax节点缓存最大队列长度,CWmax最大竞争窗口值1023,CWmin最小竞争窗口值31;根据上述两个公式,节点竞争窗口的调节范围在CWmin与CWmax之间;
当下一跳节点队列长度为阈值k时,参数n的值为0,根据CW的计算公式计算CW的值为CWmin,随着节点队列的增加,竞争窗口值也会随之增加,节点接入信道的优先级不断降低;当下一跳节点队列长度达到满队列,即qnext=Qmax时,此时n的值为:
将n代入到CW的计算公式中,得到CW的值为CWmax,此时节点获得最低的接入信道的优先级,节点等待接入信道的时间最长,下一跳节点将有足够时间将缓存的数据包发送出去。
2.按照权利要求1所述的一种基于竞争的MAC层逐跳双向拥塞控制方法,其特征在于,所述的拥塞状况为0-1时,竞争窗口调节实现的过程如下:
基于发送节点的拥塞控制方法HSCC,节点检测本地的缓存队列长度,当检测到本地拥塞标志Temp_CI的值为1时,本地节点发生拥塞,通过减小竞争窗口的方式提高拥塞节点接入信道的优先级,使缓存队列中的数据包尽快发送出去,使拥塞得到缓解;CW的自适应调整方式使用如下公式:
CW=(CWmin+1)*2m-1
qtemp为当前节点的当前队列长度,k为队列阈值,Qmax为最大队列长度;当qtemp=k时,m=0,通过CW计算公式得到CW为CWmin,随着当前节点队列qtemp的增加,m的值不断减小,CW的值随之降低,节点获得信道的优先级不断提高,当节点队列达到满队列,即qtemp=Qmax时,m=-1,CW=0.5*CWmin,此时节点获得接入信道的最高优先级,节点能更加快速的将缓存队列的数据包发送出去,使拥塞得到缓解。
3.按照权利要求1所述的一种基于竞争的MAC层逐跳双向拥塞控制方法,其特征在于,所述的拥塞状况为1-1时,竞争窗口调节实现的过程如下:
基于优先级的拥塞控制方法HPCC,HPCC的CW调整方式为:
CWnext为下一跳节点的拥塞竞争窗口大小,CWmin为最小初始竞争窗口,qtemp为当前节点缓存队列长度,qnext为下一跳节点缓存队列长度;当一跳的两个节点均发生拥塞时,如果qtemp≥qnext,算法将本地节点的竞争窗口大小设置为下一跳节点的竞争窗口大小,本地节点有更大程度的拥塞,但下一跳节点有更高的拥塞处理优先级,因此设置相同的拥塞处理等级;如果qtemp<qnext,将本地节点的竞争窗口大小设置为CWmin,因为本地的拥塞程度不高而且下一跳具有更高的拥塞处理优先级;保证了缓解本地的拥塞,保证下一跳节点具有更高的拥塞处理优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489319.8A CN110167071B (zh) | 2019-06-06 | 2019-06-06 | 一种基于竞争的mac层逐跳双向拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489319.8A CN110167071B (zh) | 2019-06-06 | 2019-06-06 | 一种基于竞争的mac层逐跳双向拥塞控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110167071A CN110167071A (zh) | 2019-08-23 |
CN110167071B true CN110167071B (zh) | 2021-06-04 |
Family
ID=67627883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910489319.8A Expired - Fee Related CN110167071B (zh) | 2019-06-06 | 2019-06-06 | 一种基于竞争的mac层逐跳双向拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110167071B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112020030B (zh) * | 2020-09-04 | 2021-06-22 | 吉林大学 | 基于模糊控制单神经元pid控制器的无线传感器网络的拥塞控制方法 |
CN112788665B (zh) * | 2020-12-26 | 2022-05-10 | 重庆邮电大学 | 战术互联网中一种自适应mac方法 |
CN113141590B (zh) * | 2021-03-24 | 2023-09-19 | 中国科学院沈阳计算技术研究所有限公司 | 一种面向工业物联网的无线通信调度方法及装置 |
CN114760252B (zh) * | 2022-03-24 | 2024-06-07 | 北京邮电大学 | 数据中心网络拥塞控制方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902776A (zh) * | 2010-07-08 | 2010-12-01 | 华南理工大学 | 一种改进的基于rts/cts的多跳无线网络拥塞控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9992128B2 (en) * | 2015-07-07 | 2018-06-05 | Speedy Packets, Inc. | Error correction optimization |
-
2019
- 2019-06-06 CN CN201910489319.8A patent/CN110167071B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902776A (zh) * | 2010-07-08 | 2010-12-01 | 华南理工大学 | 一种改进的基于rts/cts的多跳无线网络拥塞控制方法 |
Non-Patent Citations (1)
Title |
---|
基于被动侦听与数据帧调度的拥塞控制方法;夏洁;《现代计算机》;20180731;3-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110167071A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110167071B (zh) | 一种基于竞争的mac层逐跳双向拥塞控制方法 | |
Wang et al. | Priority-based congestion control in wireless sensor networks | |
US8761012B2 (en) | Packet relay apparatus and method of relaying packet | |
CN104994036B (zh) | 一种多路径传输协议中的动态数据调度方法 | |
CN107070802B (zh) | 基于pid控制器的无线传感器网络拥塞控制方法 | |
CN112702274B (zh) | 战术瞄准网络技术中基于路由稳定性的跨层拥塞控制方法 | |
Flora et al. | A survey on congestion control techniques in wireless sensor networks | |
CN106851727B (zh) | 基于多路径路由协议实现自组网拥塞控制的方法 | |
CN114938350A (zh) | 数据中心无损网络中基于拥塞反馈的数据流传输控制方法 | |
CN115412497B (zh) | 一种bbr拥塞控制算法的性能优化方法 | |
CN110881173B (zh) | 一种基于物联网的环境监测系统 | |
Alipio et al. | RT-CaCC: A reliable transport with cache-aware congestion control protocol in wireless sensor networks | |
Wu et al. | A hop-by-hop cross-layer congestion control scheme for wireless sensor networks | |
CN105007586B (zh) | 无线传感网smac协议的双因子自适应竞争窗口调整方法 | |
CN114785743B (zh) | 一种增强red稳定性的主动式队列管理算法 | |
CN101969432A (zh) | 基于随机回退的tcp拥塞窗口的控制方法 | |
Deshpande et al. | Congestion control in wireless sensor networks by using differed reporting rate | |
CN112822720A (zh) | 无人机组网技术中基于mac层链路质量的跨层拥塞控制方法 | |
Chandulal | A Survey On Red Queue Mechanism For Reduce Congestion In Wireless Network | |
CN105873126B (zh) | 一种基于被动侦听和数据帧调度的无线多跳网络拥塞控制方法 | |
CN109347756A (zh) | 改善公平性的主动队列管理方法和设备 | |
CN114916050B (zh) | 一种基于接收方发起和自适应竞争窗口的mac协议方法 | |
CN114222375B (zh) | 一种区块链无线网络的随机接入动态控制方法 | |
Chughtai et al. | A node/link level congestion detection approach in low power and limited broadcast range wireless ad hoc networks | |
Hindawi et al. | A proposed method for TCP congestion control using AIMD approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210604 |