基于多路径路由协议实现自组网拥塞控制的方法技术

技术编号:15655349 阅读:151 留言:0更新日期:2017-06-17 13:43
本发明专利技术公开了一种基于多路径路由协议实现自组网拥塞控制的方法,主要解决现有技术缺乏拥塞控制机制,进而发生拥塞后导致网络吞吐量急剧下降和节点丢包率高的问题。其实现方案是:1.网络中每个节点周期性的统计数据,并判断本节点是否拥塞;2.拥塞节点分析拥塞原因是使用了低速链路还是拥塞节点总流量过大所致;3.对于使用了低速链路所引起的拥塞,拥塞节点通过抑制低速链路的手段缓解拥塞;4.对于拥塞节点总流量过大所引起的拥塞,拥塞节点通过流量调度或随机丢包的手段缓解拥塞。本发明专利技术相比传统拥塞控制方法,根据不同的拥塞原因采取具有针对性的缓解手段,进一步提高了网络吞吐量,可用于Ad Hoc网络。

【技术实现步骤摘要】
基于多路径路由协议实现自组网拥塞控制的方法
本专利技术属于无线通信
,特别涉及一种实现自组网拥塞控制的方法,可用于AdHoc网络。
技术介绍
AdHoc网络是一种由若干无线数据传输设备临时组成的、不需要固定通信设施支持的无中心网络。网络节点既是通信终端,又可以作为路由器为其他节点转发数据。近年来,各国学者围绕AdHoc网络中的拥塞控制开展了积极的研究,提出了若干种方法。最常见的方法是TCP协议中的拥塞控制方法,它的拥塞控制主要依赖于拥塞窗口cwd,窗口值的大小代表能够一次性发送出去的字节数,显然窗口越大,数据发送的速度也就越快,但是也有可能使得网络出现拥塞,所以TCP中采用了慢启动、拥塞避免、加速递减和快速重传等技术来动态调整拥塞窗口的大小。然而TCP协议在AdHoc网络中的性能远不如它在传统的有线网络中的性能,这主要是由于AdHoc网络和有线网络的特性差异。例如,在AdHoc网络中,传输媒介是局部共享的。另外,TCP协议判断网络拥塞的依据是报文丢失,而在AdHoc网络中报文的丢失原因不仅仅是网络拥塞,还有链路中断、路由频繁变化等原因。主动队列管理AQM也是一种常见的拥塞控制方法,它是一种预见式的队列管理方法,该方法对网络的状态进行评价,从而预测是否将要出现拥塞的状况。当预测到路由器将要发生拥塞时,在路由器的队列还没有充满时就按照一定的规则丢弃数据包并向发送端通告拥塞情况,以降低发送端的传输速率。但是,在目前的AQM机制中为了简化设计通常忽略了系统中的延迟环节,在延迟比较小的情况下,忽略延迟对系统性能的影响较小;然而在延迟比较大的情况下,忽略延迟往往会导致系统不稳定。经过大量仿真实验结果表明,几种典型的AQM算法在延迟较大的情况下存在以下缺点,首先是队列大幅震荡,增加了端到端的延时抖动,其次是链路利用率低,网络吞吐量大幅降低,最后是队列长度不能收敛,节点出现大量丢包的情况。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提出了一种基于多路径路由协议实现自组网拥塞控制的方法,以提高网络吞吐量,降低节点丢包率。实现本专利技术目的的技术方案是:通过对节点拥塞情况的检测,根据不同的拥塞原因采取不同的缓解手段,其具体步骤包括如下:(1)网络中的每个节点将它的邻居节点记为ni,i=1,2,3,.....K,其中K表示邻居节点的个数,并等待一个拥塞周期T,统计该周期内本节点发送给每个邻居节点ni的数据分组数和本节点从每个邻居节点ni接收的数据分组数(2)网络中的每个节点根据本节点缓存队列的长度,判断是否拥塞,若是,将本节点记为“拥塞节点”,执行步骤(4),否则,将本节点记为“非拥塞节点”,执行步骤(3);(3)非拥塞节点关闭缓存队列随机丢包机制,返回步骤(1);(4)拥塞节点判断是否已经开启了缓存队列随机丢包机制,若是,则返回步骤(1),否则,执行步骤(5);(5)分析拥塞节点的拥塞原因:(5a)令初始参数i=1;(5b)判断拥塞节点到它的邻居节点ni的链路是否是一条低速链路,若是,则执行步骤(5c),否则,执行步骤(5f);(5c)假设网络中的数据分组大小为D比特,且每个分组大小一致,计算拥塞节点到邻居节点ni的平均传输时延和拥塞节点到它的其它邻居节点nj的平均传输时延其中为拥塞节点到它的邻居节点ni这条链路的传输速率,j不等于i,为拥塞节点到它的邻居节点nj这条链路的传输速率,为拥塞节点发送给它的邻居节点nj的数据分组数;(5d)计算拥塞节点的假设队列长度qa:qa=q-EN其中q为拥塞节点当前缓存队列的实际长度,EN为在该周期内拥塞节点额外多传输的数据分组数,为拥塞节点发送给它的邻居节点ni的数据分组数,N为和这两个平均传输时延的比值,(5e)假设拥塞节点缓存队列长度为qa,判断拥塞节点是否不再拥塞,若是,则拥塞的原因是使用了拥塞节点到邻居节点ni这条低速链路所致,执行步骤(6),否则,执行步骤(5f);(5f)判断初始参数i是否大于邻居节点的个数K,若是,则拥塞的原因是由于拥塞节点的总流量过大所致,执行步骤(7),否则,令i=i+1,返回步骤(5b);(6)拥塞节点将步骤(5e)中的邻居节点ni记为低速节点,通过抑制低速链路的手段缓解由拥塞节点到低速节点这条链路引起的拥塞,返回步骤(1);(7)拥塞节点通过流量调度或随机丢包的手段缓解由拥塞节点总流量过大引起的拥塞。本专利技术与现有技术相比较具有如下优点:1.相较于基于路由器支持的主动队列管理AQM,本专利技术通过分析拥塞发生的原因,采用了抑制低速链路的手段缓解由拥塞节点到低速节点这条链路引起的拥塞,避免了传统路由协议的盲目性,提高了自组网路由协议的效率。2.本专利技术通过分析拥塞发生的原因,采用了流量调度或随机丢包的手段缓解由拥塞节点总流量过大引起的拥塞,避免了AQM方法的单纯丢包和在系统时延较大情况下的弊端,使拥塞的缓解更具针对性和高效性。附图说明图1是本专利技术的实现总流程图;图2是本专利技术中拥塞节点通过抑制低速链路缓解链路引起的拥塞的子流程图;图3是本专利技术中拥塞节点通过流量调度或随机丢包缓解流量过大引起的拥塞的子流程图;图4是本专利技术中分流节点寻找有效替换路由的子流程图;图5是本专利技术的使用场景示意图;具体实施方式下面结合附图和实施例对本
技术实现思路
做详细叙述,本实施例以本专利技术技术方案为前提下进行实施,给出了详细实施方式和操作过程,但本专利技术的保护范围不限于下面的实施例。参照图5,本专利技术使用的网络场景为AdHoc自组织网络。节点的网络层采用多路径表驱动协议,MAC层采用TDMA协议,拥塞节点是根据本节点缓存队列长度判断为拥塞状态的节点,分流节点是拥塞节点选出来进行流量调度的节点,接入节点是分流节点主路由上的第三跳节点,分流族节点是主路由经过分流节点到拥塞节点这条链路的节点。参照附图1,本专利技术的实现步骤如下:步骤1、网络中每个节点周期性的统计数据。网络中的每个节点将它的邻居节点记为ni,i=1,2,3,.....K,其中K表示邻居节点的个数,并等待一个拥塞周期T,统计该周期内本节点发送给每个邻居节点ni的数据分组数和本节点从每个邻居节点ni接收的数据分组数。步骤2、网络中的每个节点根据本节点缓存队列的长度,判断是否拥塞。(2a)计算缓存队列中缓存的数据包数q和缓存大小Q的比值:再根据r值大小,分为以下三种情况判断:当r≤η1时,本节点正常,判定为非拥塞状态,执行步骤3;当η1<r≤η2时,本节点可能会发生拥塞,需要进一步判断,执行步骤(2b);当η2<r时,本节点缓存的分组已经过多,判定为拥塞状态,执行步骤4;(2b)节点计算分组的输入速率λ和分组的输出速率μ:其中为本节点从每个邻居节点ni接收的数据分组数,K为本节点邻居节点个数,T为拥塞周期,Ts为分组的平均服务时间,分组的服务时间指从分组处于缓存队列头部开始到分组被发送为止的时间;(2c)计算分组的输入速率λ与分组的输出速率μ之比:再根据ρ值大小,分为以下两种情况判断:当ρ≤1时,本节点正常,判定为非拥塞状态,执行步骤3;当ρ>1时,本节点的分组会进一步增多,判定为拥塞状态,执行步骤4。步骤3、非拥塞节点关闭缓存队列随机丢包机制。缓存队列随机丢包机制开启后,就以某概率P随机丢弃要输入缓存队列本文档来自技高网
...
基于多路径路由协议实现自组网拥塞控制的方法

【技术保护点】
一种基于多路径路由协议实现自组网拥塞控制的方法,包括:(1)网络中的每个节点将它的邻居节点记为n

【技术特征摘要】
1.一种基于多路径路由协议实现自组网拥塞控制的方法,包括:(1)网络中的每个节点将它的邻居节点记为ni,i=1,2,3,.....K,其中K表示邻居节点的个数,并等待一个拥塞周期T,统计该周期内本节点发送给每个邻居节点ni的数据分组数和本节点从每个邻居节点ni接收的数据分组数(2)网络中的每个节点根据本节点缓存队列的长度,判断是否拥塞,若是,将本节点记为“拥塞节点”,执行步骤(4),否则,将本节点记为“非拥塞节点”,执行步骤(3);(3)非拥塞节点关闭缓存队列随机丢包机制,返回步骤(1);(4)拥塞节点判断是否已经开启了缓存队列随机丢包机制,若是,则返回步骤(1),否则,执行步骤(5);(5)分析拥塞节点的拥塞原因:(5a)令初始参数i=1;(5b)判断拥塞节点到它的邻居节点ni的链路是否是一条低速链路,若是,则执行步骤(5c),否则,执行步骤(5f);(5c)假设网络中的数据分组大小为D比特,且每个分组大小一致,计算拥塞节点到邻居节点ni的平均传输时延和拥塞节点到它的其它邻居节点nj的平均传输时延其中为拥塞节点到它的邻居节点ni这条链路的传输速率,j不等于i,为拥塞节点到它的邻居节点nj这条链路的传输速率,为拥塞节点发送给它的邻居节点nj的数据分组数;(5d)计算拥塞节点的假设队列长度qa:qa=q-EN其中q为拥塞节点当前缓存队列的实际长度,EN为在该周期内拥塞节点额外多传输的数据分组数,为拥塞节点发送给它的邻居节点ni的数据分组数,N为和这两个平均传输时延的比值,(5e)假设拥塞节点缓存队列长度为qa,判断拥塞节点是否不再拥塞,若是,则拥塞的原因是使用了拥塞节点到邻居节点ni这条低速链路所致,执行步骤(6),否则,执行步骤(5f);(5f)判断初始参数i是否大于邻居节点的个数K,若是,则拥塞的原因是由于拥塞节点的总流量过大所致,执行步骤(7),否则,令i=i+1,返回步骤(5b);(6)拥塞节点将步骤(5e)中的邻居节点ni记为低速节点,通过抑制低速链路的手段缓解由拥塞节点到低速节点这条链路引起的拥塞,返回步骤(1);(7)拥塞节点通过流量调度或随机丢包的手段缓解由拥塞节点总流量过大引起的拥塞。2.根据权利要求书1所述的方法,其中步骤(2)、步骤(5e)、步骤(6k)和步骤(7h)中节点根据缓存队列长度判断是否拥塞,按如下步骤进行:(2a)计算缓存队列中缓存的数据包数q和缓存大小Q的比值:再根据r值大小,分为以下三种情况判断:当r≤η1时,本节点正常,判定为非拥塞状态;当η1<r≤η2时,本节点可能会发生拥塞,需要进一步判断,执行步骤(2b);当η2<r时,本节点缓存的分组已经过多,判定为拥塞状态;(2b)节点计算分组的输入速率λ和分组的输出速率μ:其中为本节点从每个邻居节点ni接收的数据分组数,K为本节点邻居节点个数,T为拥塞周期,Ts为分组的平均服务时间,分组的服务时间指从分组处于缓存队列头部开始到分组被发送为止的时间;(2c)计算分组的输入速率λ与分组的输出速率μ之比:再根据ρ值大小,分为以下两种情况判断:当ρ≤1时,本节点正常,判定为非拥塞状态;当ρ>1时,本节点的分组会进一步增多,判定为拥塞状态。3.根据权利要求书1所述的方法,其中步骤(6)中拥塞节点通过抑制低速链路的手段缓解由拥塞节点到低速节点这条链路引起的拥塞,按如下步骤进行:(6a)令初始参数i=1,M等于拥塞节点路由表中路由项目条数;(6b)检查拥塞节点的第i条路由项目的主路由,判断该主路由的下一跳节点是否为低速节点,若是,则执行步骤(6c),否则,执行步骤(6i);(6c)在第i条路由项目上,记录该低速节点;(6d)判断第i条路由项目的次路由是否存在,若是,则执行步骤(6e),否则,执行步骤(6h);(6e)判断上述次路由中,拥塞节点到下一跳节点的链路是否是一条低速链路,若是,则执行步骤(6f),否则,执行步骤(6g);(6f)将步骤(6e)中的下一跳节点也记为低速节点,记录在第i条路由项目上,执行步骤(6h);(6g)用第i条路由项目的次路由覆盖主路由,执行步骤(6i);(6h)清空第i条路由项目,待下次有数据分组查看该路由项时,直接丢弃数据分组,执行步骤(6i);(6i)判断初始参数i是否大于等于拥塞节点路由表中路由项目条数M,若是,则执行步骤(6j),否则,令i=i+1,返回步骤(6b);(6j)拥塞节点再等待下一个拥塞周期T,并统计本节点发送给每个邻居节点ni的数据分组数和本节点从每个邻居节点ni接收的数据分组数且在该拥塞周期T内,不使用低速节点发送的路由消息更新本节点路由表中记录了低速节点的路由项目;(6k)根据拥塞节点缓存队列的长度,判断是否拥塞,若是,则执行步骤(6l),否则,执行步骤(6m);(6l)拥塞节点开启队列随机丢包机制,执行步骤(6n);(6m)判断拥塞节点到低速节点的链路是否仍是一条低速链路,若是,则返回步骤(6j),否...

【专利技术属性】
技术研发人员:史琰尹翔盛敏李建东刘俊宇仲伟慧
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1