一种传感器网络拥塞控制方法

文档序号:7655942阅读:180来源:国知局
专利名称:一种传感器网络拥塞控制方法
技术领域
本发明涉及无线传感器网络拥塞控制领域,提出 一种无线传感器网络 中的拥塞控制方法。
背景技术
无线传感器网络(WSN)是指由部署在监测区域内的大量无线传感器 节点和无线路由节点所组成的网络系统。图1是一个无线传感器网络系统 的结构示意图,从图中可以看出,无线传感器网络系统主要由无线传感器 节点、无线路由节点和无线基站组成,其中的无线传感器节点和无线路由 节点可统称为网络节点。无线传感器节点通过各类集成化的微型传感器实时地采集被监测区 域内的相关信息,将这些信息组装到数据报文中,然后通过无线方式直接 向无线基站发送,或者借助于其它网络节点通过无线中继方式间接地向无 线基站发送。无线路由节点只有报文转发功能,而没有数据采集功能。 无线基站负责对收集到的数据报文作深入分析,提取出WSN用户所 感兴趣的内容。环境监测是WSN的一种典型应用。在用于环境监测的无线传感器网络中, 无线传感器节点周期性地采集环境数据,并将传感器所采集到的数据通过无 线网络发送到无线基站中。无线传感器网络中的网络流量主要来自于周期性 的数据流,因此以下情况可能会导致网络拥塞现象的发生1、 当被监测环境发生重大变化时,大量无线传感器节点将加快数据采 样频率,从而产生大量的数据报文,进而导致网络拥塞现象的出现;2、 无线传感器节点的通信模块所支持的带宽通常较窄,相邻节点之间 需要通过竟争共享无线信道,因此,当无线网络的M^莫增大到一定程度时, 容易出现网络拥塞现象。在发生上述情况时,进行拥塞控制,降低网络丢包率,对于增强WSN的 实用性至关重要。
与Internet网络和无线adhoc网络相比,WSN具有节点电池容量有限、 无线信道带宽有限、节点内存有限的特点。 一般的WSN应用中,所有网络节 点形成一个无线局域网,节点间互相协作来釆集无线传感器数据和传输数据 报文。WSN的上述特点决定了实用的拥塞控制方案应该满足如下要求(1) 为了减少了无效传输所浪费的通信能量和信道带宽,需要将中途 丟包率控制得很低;(2) 为了节省通信能量和带宽资源,需要限制控制报文的使用量;(3 )因为基站综合分析来自各个数据流的数据才能随时掌握所观测地 理区域的情况,所以需要公平地为各数据流分配信道带宽,让每个数据流都 有一定比例的数据报文成功到达基站;(4)为了能运行于WSN中各网络节点上,算法所需要的节点内存开销 要很小。Internet上基于区分服务思想的拥塞控制机制工作原理是:根据网络带 宽需求的不同将各数据流划分到不同的优先等级中,每个数据报文都有个优 先级字段来标记自己所属数据流的优先等级,同一个数据流中M艮文的优先 目同;如果出现网络拥塞,各个路由节点将只转发优先级高的数据报文, 而丟弃掉优先级低的数据报文。基于区分服务的拥塞控制机制优点是,网络 节点上内存开销比较小,控制报文开销也比较少。区分服务机制的缺点是, 发生网络拥塞时路由节点仅以丢弃数据报文作为流量调节手段,导致中途丟 报率较高,并且不能保证每个数据流都有 一定比例的数据报文成功传输到基 站。因此,Internet上基于区分服务思想的拥塞控制机制不能满足WSN上进 行拥塞控制所要求的低丟包率和公平性的要求。开放源代码的传感器网络操作系统TinyOS中附带有一个分布式应用程 序Surge,该程序中数据流源节点通过检查发送队列是否溢出和队列等待时 间是否过长来判定是否出现了网^^塞,如果出现了网络拥塞,源节点就丢 弃掉一个刚产生的数据报文。但是,该程序中只有数据流源节点才能比较队列等待时间,而一般的路由节点只能通过队列溢出来推断网络拥塞情况。该 程序中,各网络节点各自独立地进行拥塞监测和拥塞抑制操作,难以保证每 个数据流都有一定比例的数据报文成功传输到基站。发明内容本发明的目的是克服现有的网络拥塞控制方法丢包率较高,公平性不
足的缺陷,从而提供一种丟包率低,且公平可靠的传感器网络拥塞控制方 法。为了实现上述目的,本发明提供了一种传感器网络拥塞控制方法,应用于无线传感器网络中的网络节点,包括步骤1)、网络节点对本节点的节点门限值和报文周期数的值做初始化;步骤2)、网络节点开始一个报文周期,生成一个新的本地数据报文, 并根据所述数据报文的序列号得到它的报文优先级;步骤3)、对新生成的本地数据报文做网络拥塞判断,在发生网络拥塞 的前提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送 队列,并向邻居节点广播新的门限值;步骤4)、对网络节点是否收到其他网络节点所发送的数据报文进行判 断,如果收到数据报文,执行下一步,否则,执行步骤6);步骤5)、对所收到的数据报文做网络拥塞判断,在发生网络拥塞的前 提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送队列, 并向邻居节点广播新的门限值;步骤6)、判断是否收到了邻居节点所发送的广播消息,若收到了广播 消息且广播消息中所包含的节点门限值高于本节点的门限值,则按照广播 消息中的节点门限值调高本节点的门限值,调整发送队列,将本节点的报 文周期数清零,并广播新的节点门限值;步骤7 )、判断本轮报文周期的终止时刻是否已经到达,如果已经到达, 则执行下一步,否则重新执行步骤4);步骤8)、判断本节点的报文周期数是否低于一个规定值,如果低于则 将增加报文周期数后,重新执行步骤2),否则将报文周期数清零后,减少 节点门限值,然后重新执行步骤2 )。上述技术方案中,所述网络节点为无线传感器节点或无线路由节点。所述网络节点为无线路由节点时,在所述步骤2)中生成的数据报文 为虚拟数据报文,虚拟数据报文的特征是报文中传感器数据字段为空值, 且当虛拟报文到达发送队列头部时,仅仅被从发送队列中删除掉,而无需 被无线路由节点发送到实际网络中。上述技术方案中,所述的根据数据报文序列号得到它的报文优先级是指 将所述数据报文的序列号用二进制法表示,然后将用二进制表示的序列号从最低有效位开始依次检查第0位至第7位的数值,将第一次出现数 值1的位数作为所述数据报文的优先级。上述技术方案中,在所述的步骤3)中,对新生成的本地数据报文做 网络拥塞判断是指根据所述新生成的本地数据报文的优先级与所述网络节点的门限值 的比较结果,本地数据报文滞留数目与数据流带宽权值的比较结果,以及 网络节点发送队列的空满情况,判断所述网络节点是否发生了网络拥塞。上述技术方案中,所述的对新生成的本地数据报文做网络拥塞判断包 括以下步骤步骤3-l )、将所述新生成的本地数据报文的优先级与所述网络节点的 当前门限值进行比较,如果所述数据报文优先级小于门限值,则执行下一 步,否则,执行步骤3-3);步骤3-2)、丟弃新生成的数据报文后,执行步骤3-6);步骤3-3 )、将本节点发送队列中数据报文的滞留数目与节点的数据流 带宽权值进行比较,如果数据报文的滞留数目大于或等于数据流的带宽权 值,则执行步骤3-7),否则,执行下一步;步骤3-4)、判断本节点的发送队列是否已满,如果已满,则执行步骤 3-7),否则,执行下一步;步骤3-5 )、将新生成的数据报文排入发送队列中;步骤3-6)、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤4);步骤3-7)、丢弃新生成的数据报文;步骤3-8)、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检测。上述技术方案中,所述数据流的带宽权值表示了数据流发送数据报文 能力的大小,带宽权值越高,则数据流发送数据报文的速度越快。 上述技术方案中,所述数据流的带宽权值可动态调整。 上述技术方案中,在所述的步骤5)中,对所收到的数据报文做网络 拥塞判断是指根据所述所收到的数据报文的优先级与所述网络节点的门限值的比 较结果,以及网络节点发送队列的空满情况,判断所述网络节点是否发生
了网络拥塞。上述技术方案中,所述的对所收到的数据报文做网络拥塞判断包括以下步骤步骤5-1 )、将所收到的数据报文的优先级与所述网络节点的门限值进 行比较,如果所述数据报文优先级小于门限值,则执行下一步,否则,执 行步骤5-3 );步骤5-2)、丟弃所收到的数据报文,执行步骤5-5);步骤5-3)、判断本节点的发送队列是否已满,如果已满,执行步骤 5-6),否则,执行下一步;步骤5-4 )、将所收到的数据报文送入发送队列中;步骤5-5)、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤6);步骤5-6)、丟弃所收到的数据报文;步骤5-7)、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检测。上述技术方案中,在所述的步骤3)、步骤5)、步骤6)中,所述的调 整发送队列是指删除发送队列中报文优先级小于当前最新节点门限值的 数据纟艮文。本发明具有以下优点1、 在现有技术中,只有数据源节点才能通过比较队列等待时间和报 文周期的大小来进行网络拥塞判断,而本发明的传感器网络拥塞控制方法 引入了虚拟数据流概念,使得路由节点和数据源节点都能够比较队列等待 时间和报文周期的大小,与现有技术相比,本发明能够更有效地对全网拥 塞状况进行检测。2、 在Internet上区分服务中,当发现网络拥塞时路由节点只是被动丢 弃一些优先级低的报文,这样导致网络的中途丢报率很高,浪费了节点通 信能量、缩短了网络寿命。而在本发明中,当某个网络节点率先发现网络 拥塞后,将会通过广播通知所有节点同步提高报文过滤标准(节点门限 值),这样就使得源节点流量准入控制和路由节点报文丟包两种措施相配 合,从而既能控制网络流量总负载,又能降低中途丢报率。3、 本发明中,全网节点同步地调整门限值, 一个报文仅当其优先级 高于节点门限值时才能被发送(或被转发)到网络中。本发明中提出一种
指数型的报文优先级标定方法,使用这种标定方法, 一个数据流中各种优先级的报文都占有适当的比例;每当节点门限值提高一个等级, 一个节点 所产生的报文流中能够通过门限值过滤的报文数量则会减少一半。采用这 种报文优先级标定与节点门限值使用方法,无论网络是否发生过拥塞,每 个数据流都有 一定比例的报文被传输到基站,从而保证了节点间的公平 性。Internet上TCP等网络流量控制方法中,对网络流量采取细粒度调节 策略,但是控制报文的使用量非常大。在本发明中,借助于指数型优先级 标定算法和节点门限值过滤报文机制,本发明对数据流量实现了粗粒度、 阶梯式调节,即使在拥塞程度变化较大的场景中对控制消息的使用量也很 少。4、在传统的区分服务机制中, 一个数据流中所有报文被赋予相同的 优先级,当发生网络拥塞时,路由节点上只转发优先级高的数据流而不转 发优先级低的数据流,在照顾高优先级数据流的同时却不能让低优先级数 据流获得一个较低的带宽保证。现有技术在比较报文周期和队列等待时间 的方法中,每个节点都是使用本节点所产生数据流的报文周期,当消除了 网络拥塞后所有源节点向网络注入报文的速度相近,其带宽分配结果不能 体现出各数据流重要度的差异性。本发明中,定义带宽权值为l数据流的 报文周期作为一个标准周期, 一个标准周期内带宽权值为W的数据流将 产生W个数据报文,各节点比较标准周期(而不是自己实际的报文周期) 与发送队列等待时间来判断拥塞情况。釆用这种新方法,可以保证所有节 点的队列等待时间具有相同的约束范围;可以给各数据流按照带宽权值分 配相应比例的网络带宽,保证数据流的带宽权值越高,则该数据流向网络 发送数据报文的速度就越快。


以下,结合附图来详细说明本发明的实施例,其中图1为无线传感器网络系统的结构示意图;图2为报文序列号和优先级的对应关系图;图3为本发明中节点所执行的报文优先级标定方法的示意图;图4为对新产生的本地数据报文进行网络拥塞判断的流程图;图5为对要转发的数据报文进行网络拥塞判断的流程图6为网络节点进行网络拥塞控制的示意图。
具体实施方式
下面结合附图和具体实施方式
对本发明的传感器网络拥塞控制方法 进行说明。本发明的传感器网络拥塞控制方法是一种可应用于无线传感器网络 上的各个网络节点的分布式算法,各网络节点动态监测网络拥塞状况,并 相互协作地调节网络流量从而达到拥塞控制的目的。本发明方法分为两个方面, 一是拥塞检测操作,二是拥塞控制操作。拥塞检测操作的基本思想是通过判断发送队列是否溢出,或者队列等 待时间是否过长,来决定是否发生了网络拥塞现象。在背景技术中曾经提 到,在现有技术中,只有数据流源节点才能比较队列等待时间,而一般的 路由节点只能通过队列溢出来推断网络拥塞情况。但在无线网络中,物理信 道是共享的,因此发生拥塞时往往是一片区域内节点之间的逻辑链路出现超 载现象,而路由节点的发送队列本身不一定快速增长或立即溢出,因此,单 独使用队列溢出标志可能无法及时发现网络拥塞情况。与^目比,对于周期 性的数据流,釆用比较队列等待时间进行拥塞检测的方法中,每当节点产生 一个新的本地报文时,如果前一个周期排入发送队列的报文(包括本地报文 和转;^i艮文)仍滞留在发送队列中,没有^皮发送到网络,则说明此时网络月l 务延迟过大、超过了报文周期,认为发生了网络拥塞。通过比较队列等待时 间的方法可以在一个报文周期内迅速发现拥塞情况。鉴于比较队列等待时间进行拥塞检测的方法所具有的优点,在本发明的 拥塞检测操作中,在路由节点中采用了虚拟数据流的概念,从而使得路由节 点也能够通过比较队列等待时间进行拥塞检测操作。在拥塞检测时,路由节 点会产生一个虚拟的数据流,并通过比较自己的发送队列等待时间与虚拟数 据流的报文产生周期来实现拥塞检测。虚拟数据流的特点是虛拟报文首先 被排入发送队列队尾,当虚拟报文被移动到队头时,不会^^送到实际网络 中,而是被丟弃(发送到虚拟网络)。虛拟数据流只是用于检查网络拥塞情 况,而不占用实际网络带宽。对虚拟数据流在拥塞4全测时所要完成的具体操 作将在后续的介绍中做详细说明。拥塞控制的基本思想是采用报文优先级和节点门限值相结合的方法来 过滤才艮文、抑制网络流量,并同步调整全网节点的门限值,以实现对网络流 量总负载的控制。鉴于报文优先级和节点门P艮值是拥塞控制过程中的关键技 术特征,下面首先对报文优先级和节点门限值进行详细说明。报文优先级是一个用于表示数据报文传输优先等级的数值,数据报文 在生成时获得一个优先级,该数据报文在无线传感器网络中传输时,它的优先级大小保持不变。图3对本发明中的报文优先级标定方法做了说明, 在每个网络节点中都独立维护一个SeqNo (报文序列号)状态值,SeqNo 的初始值为0。每当节点产生一个报文时,SeqNo的值力口 1,并根据SeqNo 的当前值为新产生的报文标定优先级。针对SeqNo的二进制表示法,从最 低有效位开始依次;险查第0位至第7位的数值,假设第一次出现数值1的 是第i位,则将i做为数据报文的优先级;如果各位上都是数值O,则数据 报文的优先级定为8。如图3所示,在SeqNo的二进制表示法中,以"1" 结尾的报文的优先级为"0",以"10"结尾的报文的优先级为T,以"100" 结尾的报文的优先级为"2",以"1000"结尾的报文的优先级为"3",以 "10000"结尾的报文的优先级为"4",以"100000"结尾的报文的优先 级为"5",以"1000000"结尾的报文的优先级为"6", SeqNo为"10000000" 的报文的优先级为"7", SeqNo为"00000000"的报文的优先级为"8"。 通过上述方法,就可以为每个数据报文确定优先级大小。图2给出了根据 上述优先级标定方法计算出的部分报文序列号和优先级间的对应关系。从 图中可以看出,使用这种优先级标定方法, 一个数据流中各种优先级的报 文都占有适当的比例,并且时间间隔均匀。如果用优先级作为过滤报文的 门檻,每当门搵提高一个等级, 一个节点所产生的报文流中能够通过门搵 的报文数量则会减少 一半。节点门限值是一个用于与报文优先级进行比较的值,因此,节点门限 值的取值范围与报文优先级的取值范围相同。网络节点在初始化时将自身 的门限值标定为0;在以后的运行过程中,每当网络节点发现网络拥塞, 就把自己的门限值增加1。当一个网络节点新产生一个报文或者收到转发 报文时,如果报文优先级低于节点门限值,则该报文将不允许被发送到网 络中;如果报文优先级高于或者等于节点门限值,才允许该报文排到发送 队列中。节点门限值的维护方法为当发现网络拥塞时,逐渐增加各节点 的门限值,节点门限值增加l,网络流量则减少一半,由于门限值的过滤, 节点发送报文的数量将逐渐减少,从而使网络拥塞得到緩解,直至网络拥 塞完全解除,节点的门限值才得以稳定。当无线信道的利用率大幅度下降
时,全网节点可以同步地降低门限值(最低降到0),节点门限值每减少1,
网络流量则增加一倍,从而使无线信道的利用率恢复到较高的水平。每当
发现拥塞时,节点的门限值能够快速增加,直到拥塞消失为止;当没有拥 塞时,经过较长的一段时间,节点才尝试将门限值减1。如果减少门限值 后没有引发拥塞,则节点就稳定在新门限值上;如果减少门限值后网络出 现拥塞,则会通过拥塞控制方法很快地恢复到节点原来的门限值。按照上 述报文优先级标定法与节点门限值维护方法,无论网络是否发生拥塞,每 个数据流都有一定比例的报文被传输到基站,从而保证了节点间的公平 性。
在网络节点的拥塞控制过程中,网络节点上的数据流都有一个带宽权 值,它代表了数据流发送数据报文能力的大小,在无线传感器网络中,数 据流的带宽权值越高,则其发送数据报文的速度就越快。带宽权值的取值 范围为区间[l, 128]中的整数,它的缺省值为1。若M^定带宽权值为1的 数据流产生报文的周期为一个标准报文周期,则在一个标准报文周期内, 带宽权值为W的数据流将产生W个数据报文,相应的,带宽权值为W的 数据流所产生的数据报文的实际报文周期为1/W个标准报文周期。在本发 明中,节点通过比较标准报文周期(而不是自己的实际报文周期)与发送 队列等待时间来判断拥塞情况。如果一个节点产生的数据流的带宽权值为 W,则该节点允许发送队列所积压的最大本地报文数量为W;每当节点产 生一个新的本地报文时,将检查发送队列,如果发送队列中积压的报文数 量达到了允许的最大值W,说明队列等待时间超过了标准周期,则认为发 生了拥塞,并丢弃新产生的报文。采用上述判定方法,可以保证所有节点 的队列等待时间具有相同的约束范围;同时可以保证数据流的带宽权值越 高,则该数据流向网络发送数据报文的速度就越快。
本发明为应用层程序提供了一个配置接口 ,允许根据具体应用的特 点,动态调整数据流的带宽权值。例如,在森林防火应用中,温度低于20°C 的地理区域内产生的数据流带宽权值为1,温度超过70。C,产生火警预报 的地理区域内产生的数据流带宽权值则为5。当一个地理区域内的温度由 70。C逐渐转为正常时,该区域内数据流的带宽权值相应地由5逐渐降为1。 环境监测网络运行一段时间后,位置相邻的节点的门限值将趋于一致,带 宽权值相同的数据流向网络注入报文的速度也趋于一致,带宽权值分别为 W与1的数据流向网络注入数据报文的速度相差约W倍。
通过上述报文优先级、节点门限值以及数据流带宽权值三者的综合应 用,本发明可实现对无线传感器网络的拥塞控制。
下面以图1中的无线传感器网络为例,对本发明的方法进行详细说明。 在本实施例中,主要对无线传感器节点的完整工作流程进行说明,对于路 由节点中所要完成的操作只对与无线传感器节点中不同之处进行说明。
对于无线传感器网络中的一个无线传感器节点,假设无线传感器节点
上的数据流带宽权值为3,则该节点的实际报文周期相当于1/3标准报文 周期。它在一个实际报文周期内不仅要完成采集数据并生成数据报文的操 作,还有可能要转发其它网络节点所发送的数据报文。对于无线传感器节 点, 一个实际报文周期内只产生一个本地报文,可以转发O个或者多个报 文。例如,图1中最左边的三个传感器节点就不转发报文,而图1中三个 路由节点在一个实际报文周期内均要转发多个数据报文。如图6所示,传 感器节点的具体工作流程如下
步骤601、无线传感器节点在开始工作时,分别将节点门限值和报文 周期数的值初始化为0。在本步骤中,所涉及到的报文周期数表示了从上 次调整节点门限值以来所经历的时间。在前面的描述中已经提到,报文周 期可分为标准报文周期和实际报文周期(标准报文周期/数据流带宽权值), 本步骤中所描述的报文周期数为节点所经历的实际报文周期的数目。
步骤602、开始一个报文周期,无线传感器节点釆集到数据后,生成 一个新的本地数据报文。在前面的描述中已经提到,生成一个新的数据报 文的同时将得到该数据报文的报文优先级,报文优先级的获取在前文中已 经有详细说明,在本步骤中不再做详细说明。在本步骤以及后续步骤中所 提到的报文周期是与节点的数据流带宽权值相关的实际报文周期,而不是 标准报文周期。
步骤603、对所生成的新的本地数据报文进行网络拥塞判断,若发生 网络拥塞,则执行下一步,否则执行步骤605;
参考图4,对新产生的本地数据报文进行网络拥塞判断的具体实现过 程进行说明。
步骤401、将新生成的本地数据报文的优先级与无线传感器节点的当 前门限值进行比较,如果优先级小于门限值,则执行下一步,否则,执行 步骤403;
步骤402、丢弃新生成的数据报文后,执行步骤406;
步骤403、将本节点发送队列中本地所产生数据报文(非转发报文) 的滞留数目与该节点的数据流带宽权值进行比较,如果数据报文的滞留数 目大于或等于数据流的带宽权值,则说明队列等待时间过长、超过了标准 报文周期,所以执行步骤407,否则,执行下一步;
由于在本实施例中,数据流的带宽权值为3,则只要无线传感器节点 中所滞留的数据报文数超过或等于3,就要丟弃新生成的报文。
步骤404、判断本节点的发送队列是否已满,如果已满,则执行步骤 407,否则,执行下一步;
步骤405、将新生成的数据报文排入发送队列中;
步骤406、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤605;
步骤407、丟弃新生成的数据报文;
步骤408、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检 测,执行步骤604。
步骤604、将本节点的门限值加1,调整发送队列,然后向周围节点 广播本节点的门限值,并将报文周期数的值清零。
在本步骤中,所述的调整发送队列是指删除队列中报文优先级小于当 前最新节点门限值的数据报文。这是由于,每当发生了网络拥塞现象就要 提高节点门限值,提高节点门限值后,那些报文优先级小于新节点门限值 的数据报文将被阻止进入网络,因此,需要将那些报文提前从发送队列中 删除。
在无线网络中,节点间共享无线信道, 一个节点如果过快地发送报文 将会导致其邻近节点都感觉到信道拥塞, 一种保障公平性的方法是让相互 邻近节点间的门限值接近、占用信道的程度接近。因此,在本步骤中,各 节点每次调整自己的门限值时,都会使用广播消息报文将自己的最新门限 值向所有邻居节点广播。每节点收到一个相邻节点发来的消息报文后,将 相应调整自己的门限值,向邻居节点的最高门限值对齐。节点门限值的取 值空间越大,为了让所有节点同步到同一个门限值所需要的控制消息量就 越多。因此,本发明为了减少节点间控制消息报文的使用次数,对流量进 行的是粗粒度阶梯式调节,并将门限值取值范围限制得很小,在前述的操 作中已经对门限值的取值范围进行了说明,缺省情况下定义为0 8的整数。
步骤605、判断无线传感器节点是否有接收到其它网络节点所发送的
数据报文,如果收到,则执行下一步,否则执行步骤608。
步骤606、对所要转发的数据报文进行网络拥塞检测,若存在网络拥
塞,则执行下一步,否则执行步骤608。
在本步骤中,参考图5,对转发数据报文的网络拥塞检测进行具体说

步骤501、将所要转发的数据报文的优先级与无线传感器节点的门限 值进行比较,如果报文优先级小于门限值,则执行下一步,否则,执行步 骤503;
步骤502、丟弃所要转发的数据报文,执行步骤505; 步骤503、判断本节点的发送队列是否已满,如果已满,执行步骤506, 否则,执行下一步;
步骤504、将所要转发的报文送入发送队列中;
步骤505、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤608;
步骤506、丟弃所要转发的报文;
步骤507、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检 测,执行步骤607。
步骤607、将本节点的门限值加1,调整发送队列,然后向周围节点 广播本节点的门限值,并将报文周期数的值清零。
步骤608、判断是否收到了邻居节点所发送的广播消息,并且广播报 文中邻居节点的门限值比本节点的门限值高。若收到这样的广播消息,执 行下一步,否则,执行步骤610;
步骤609、同步节点的门限值,将节点门限值调整为与邻居节点的门 限值同样高,调整发送队列,将新的节点门限值以广播的方式告知其它节 点,并将本地节点的报文周期数清零。
步骤610、判断本轮报文周期的终止时刻是否已经到达,如果已经到 达,则执行下一步,否则重新执行步骤605;
步骤611、无线传感器节点判断报文周期数是否低于一个规定值,如 果是,则执行下一步,否则执行步骤613;
在本步骤中,所述的规定值可根据节点数据流的带宽权值以及实际需 求而决定,在本实施例中,缺省值为100x本地数据流带宽权值,在其他 实施例中,规定值也可以有其它的实现方式。本步骤中所采用的规定值的
目的是为了使无线传感器网络中的所有节点以相同的时间间隔来调低I、 1
限值。由于在本实施例中,本地数据流带宽权值为3,所以本实施例中所 得到的报文周期数为300,同时,从前文可以知道,本实施例中的实际报 文周期相当于1/3个标准报文周期,所以该缺省值所表示的时间间隔就是 100个标准报文周期所表示的时间间隔。对于无线传感器网络上的其它网 络节点,由于数据流带宽权值与实际报文周期间的反比关系,所以所有的 节点以相同的时间间隔来调4氐门限值。
步骤612、无线传感器节点将报文周期数加1后,重新执行步骤602;
步骤613、节点将报文周期数清零,将节点门限值减1 (但不允许减 成负数),然后转入步骤602。
上述操作过程说明了无线传感器节点的 一 个工作流程,下面对路由节 点的工作流程进行说明。路由节点的拥塞控制工作流程可参照图6所示的 流程图,对拥塞检测的工作流程可参照图4和图5所示的流程图。鉴于路 由节点的工作流程与无线传感器节点的工作流程大致上相同,下面只对两 者间的不同点进行详细说明。
在前文中已经提到,路由节点只具有转发数据报文的功能,而不具有 采集数据并生成数据"^艮文的功能。为了使得路由节点也能够通过比较队列 等待时间进行拥塞检测,本发明在路由节点中采用了虚拟数据流的概念,让 路由节点在每个标准报文周期中产生一个虚拟报文。和真正的数据报文相 比,虚拟报文中传感器数据字段为空值。当一个传感器数据报文排到发送 队列头部时,将被从队列中删除,并被发送到实际网络中。而当一个虚拟 报文排到队列头部时,也会被从队列中删除,但是不会被发送到实际网络 中。
步骤601、无线路由节点在开始工作时,分别将节点门限值和报文周 期数的值初始化为0。对于路由节点,本步骤中所描述的报文周期数为节 点所经历的虚拟数据流报文周期的数目。
步骤602、开始一个报文周期,无线路由节点生成一个新的虚拟数据 报文,同时使用虚拟数据流的报文序列号计算出该虚拟报文的报文优先 级,对虚拟报文的报文优先级计算与前述的报文优先级计算方法相同,在 图3中已有相应的说明。在本步骤以及后续步骤中所提到的报文周期,指 与虚拟数据流相关的虚拟报文周期,与标准报文周期大小相等。
步骤603、对所生成的新的虛拟报文进行网络拥塞判断,若发生网络
拥塞,则执行步骤604,否则执行步骤605。
路由节点对新产生的虚拟报文进行网络拥塞判断的具体过程亦如图4 所示,对路由节点而言,图4中的新报文指的就是刚产生的虚拟报文;发 送队列中滞留的本地报文指的就是滞留在发送队列的虚拟报文。如图4步 骤405所示,在当前没发现网络拥塞的情况下,新产生的虚拟报文就会被 排入发送队列中。
除了上述几点差别,路由节点中工作流程的其它步骤,可以参见前面 对无线传感器节点工作流程的描述,此处就不再进行详细说明。
权利要求
1、一种传感器网络拥塞控制方法,应用于无线传感器网络中的网络节点,包括步骤1)、网络节点对本节点的节点门限值和报文周期数的值做初始化;步骤2)、网络节点开始一个报文周期,生成一个新的本地数据报文,并得到它的报文优先级;步骤3)、对新生成的本地数据报文做网络拥塞判断,在发生网络拥塞的前提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送队列,并向邻居节点广播新的门限值;步骤4)、对网络节点是否收到其他网络节点所发送的数据报文进行判断,如果收到数据报文,执行下一步,否则,执行步骤6);步骤5)、对所收到的数据报文做网络拥塞判断,在发生网络拥塞的前提下,将本节点的报文周期数清零,增加本节点的门限值,调整发送队列,并向邻居节点广播新的门限值;步骤6)、判断是否收到了邻居节点所发送的广播消息,若收到了广播消息且广播消息中所包含的节点门限值高于本节点的门限值,则按照广播消息中的节点门限值调高本节点的门限值,调整发送队列,然后将本节点的报文周期数清零,并广播新的节点门限值;步骤7)、判断本轮报文周期的终止时刻是否已经到达,如果已经到达,则执行下一步,否则重新执行步骤4);步骤8)、判断本节点的报文周期数是否低于一个规定值,如果低于则增加报文周期数后,重新执行步骤2),否则将报文周期数清零后,降低节点门限值,然后重新执行步骤2)。
2、 根据权利要求1所述的传感器网络拥塞控制方法,其特征在于, 所述网络节点为无线传感器节点或无线路由节点。
3、 根据权利要求2所述的传感器网络拥塞控制方法,其特征在于, 所述网络节点为无线路由节点时,在所述步骤2)中生成的数据报文为虚 拟数据报文,虚拟数据报文的特征是报文中传感器数据字段为空值,且 当虚拟报文到达发送队列头部时,仅从发送队列中删除,而无需被无线路 由节点发送到实际网络中。
4、 根据权利要求1所述的传感器网络拥塞控制方法,其特征在于, 所述的根据数据报文序列号得到它的报文优先级是指将所述数据报文的序列号用二进制法表示,然后将用二进制表示的序 列号从最低有效位开始依次检查第0位至第7位的数值,将第一次出现数 值1的位数作为所述数据报文的优先级。
5、 根据权利要求1所述的传感器网络拥塞控制方法,其特征在于, 在所述的步骤3)中,对新生成的本地数据报文做网络拥塞判断是指根据所述新生成的本地数据报文的优先级与所述网络节点的门限值 的比较结果,本地数据报文滞留数目与数据流带宽权值的比较结果,以及 网络节点发送队列的空满情况,判断所述网络节点是否发生了网络拥塞。
6、 根据权利要求5所述的传感器网络拥塞控制方法,其特征在于, 所述的对新生成的本地数据报文做网络拥塞判断包括以下步骤步骤3-1 )、将所述新生成的本地数据报文的优先级与所述网络节点的 当前门限值进行比较,如果所述数据报文优先级小于门限值,则执行下一 步,否则,执行步骤3-3);步骤3-2)、丟弃新生成的数据报文后,执行步骤3-6);步骤3-3 )、将本节点发送队列中数据报文的滞留数目与节点的数据流 带宽权值进行比较,如果数据报文的滞留数目大于或等于数据流的带宽权 值,则执行步骤3-7),否则,执行下一步;步骤3-4)、判断本节点的发送队列是否已满,如果已满,则执行步骤 3-7),否则,执行下一步;步骤3-5 )、将新生成的数据报文排入发送队列中;步骤3-6)、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤4);步骤3-7)、丢弃新生成的数据报文;步骤3-8)、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检测。
7、 根据权利要求6所述的传感器网络拥塞控制方法,其特征在于, 所述数据流的带宽权值表示了数据流发送数据报文能力的大小,带宽权值 越高,则数据流发送数据报文的速度越快。
8、 根据权利要求7所述的传感器网络拥塞控制方法,其特征在于, 所述数据流的带宽权值可动态调整。
9、 根据权利要求1所述的传感器网络拥塞控制方法,其特征在于, 在所述的步骤5)中,对所收到的数据报文做网络拥塞判断是指根据所述所收到的数据报文的优先级与所述网络节点的门限值的比 较结果,以及网络节点发送队列的空满情况,判断所述网络节点是否发生 了网络拥塞。
10、 根据权利要求9所述的传感器网络拥塞控制方法,其特征在于, 所述的对所收到的数据报文做网络拥塞判断包括以下步骤步骤5-1 )、将所收到的数据报文的优先级与所述网络节点的门限值进 行比较,如果所述数据报文优先级小于门限值,则执行下一步,否则,执 行步骤5-3 );步骤5-2)、丟弃所收到的数据报文,执行步骤5-5);步骤5-3)、判断本节点的发送队列是否已满,如果已满,执行步骤 5-6),否则,执行下一步;步骤5-4 )、将所收到的数据报文送入发送队列中;步骤5-5)、没有发生网络拥塞现象,将这一结果返回后结束网络拥塞 检测,执行步骤6);步骤5-6)、丟弃所收到的数据报文;步骤5-7)、发生了网络拥塞现象,将这一结果返回后结束网络拥塞检测。
11、 根据权利要求1所述的传感器网络拥塞控制方法,其特征在于, 在所述的步骤3)、步骤5)、步骤6)中,所述的调整发送队列是指删除发 送队列中报文优先级小于当前最新节点门限值的数据报文。
全文摘要
本发明提供一种传感器网络拥塞控制方法,包括初始化节点门限值和报文周期数的值;开始新的报文周期,生成一个新的数据报文,并根据序列号得到优先级;对新生成的数据报文做网络拥塞判断,拥塞时清零报文周期数,增加门限值并广播;然后判断是否收到要转发的数据报文,若收到,做网络拥塞判断,接着判断是否收到广播消息,若收到广播消息,则调整门限值;最后判断本轮报文周期是否终止,若未终止则继续接收转发报文,否则对节点中的报文周期数进行判断,根据判断结果重新开始一个报文周期或清零报文周期数、降低节点门限值后,再重新开始报文周期。本发明更有效地对全网拥塞状况进行检测;能降低中途丢报率。
文档编号H04L12/28GK101119281SQ20071012075
公开日2008年2月6日 申请日期2007年8月24日 优先权日2007年8月24日
发明者回春立, 莉 崔, 鞠海玲 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1