本发明属于无线通信
技术领域:
,具体涉及一种移动自组织网络中基于邻居广播系数的合作广播方法。
背景技术:
:移动自组织网络是由一组带有无线通信收发装置的移动节点所组成的多跳的、临时性的和能迅速组网的自治系统,又被称为自组织网络或多跳路由网络等。网络中的节点兼具主机和路由器的功能,节点相互独立且无中心控制。移动自组织网络中主要从抑制广播风暴、提供可靠广播和延长网络生存时间的角度研究广播技术。目前,抑制广播风暴的方案大多是基于概率的,主要分为两大类,一类是固定概率广播方案,另一类是自适应广播方案;提升广播可靠性的方法有采用应答响应、构造生成树和分时广播等;降低能耗的方法主要有最小能耗广播方案、最长生命周期广播方案以及能量均衡广播方案等。以上三个方面不同的方案分别针对移动自组织网络中广播风暴、广播可靠性和能耗,但大多数只是针对移动自组织网络中某一方面的问题提出解决办法。综合考虑抑制广播风暴、延长网络生存时间和提供一定的广播可靠性,提出了本发明所述的方法。技术实现要素:本发明的发明目的是为了在移动自组织网络中提供一种基于邻居广播系数的合作广播方法,能够有效抑制广播风暴,均衡节点能耗,延长网络生存时间,能适应动态网络拓扑并且提供一定的可靠性,具体来说就是移动自组织网络中基于邻居节点成功广播率和剩余能量的合作广播方法(bsrren,thebroadcastingalgorithmbasedonthesuccessfulbroadcastingratioandresidualenergyofneighbornodes)。为了实现上述目的,本发明采用以下技术方案:本发明采用基于邻居广播系数的方式,从源节点i开始发送广播分组;网络中作为非源节点的任一节点k接收到广播分组后,根据广播分组头部的转发节点地址列表,决定是否转发,若需要转发,则根据邻居节点的广播系数选择4个下一跳转发节点,不足4个以地址(254.255.255.255)补充,将这些转发节点的地址填入广播分组头部,然后发送广播分组;其中邻居节点的广播系数是根据邻居节点的成功广播率和剩余能量来计算的;并在任意两个节点相互通信过程中实时更新邻居信息表,网络中所有节点采用上述方式进行广播通信,直至所有节点不需要再转发广播分组,或者出现第一个节点能量耗尽。本发明将网络中的每个节点均设置邻居信息表、广播收发记录表、广播分组缓存区、已发送广播分组数ni和已成功发送广播分组数sk,其中广播收发记录表含有广播分组已接收记录、广播分组已广播记录和广播分组已成功广播记录。方法具体包括以下几个方面:(1)源节点发送广播分组:以移动自组织网络中任一节点i作为产生广播分组的源节点,然后:a、判断源节点i的邻居信息表中是否存在邻居节点:若否,则用4个相同的特殊地址(254.255.255.255)作为转发节点地址;若是,则进一步判断源节点i的邻居信息表中邻居节点个数是否大于4:若是,则计算广播系数bij,首先剔除广播系数为0的节点,在广播系数不为0的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)作为转发节点的地址填补到4个转发节点为止;若否,则首先剔除广播系数为0的邻居节点,将邻居信息表中剩余的邻居节点作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)作为转发节点的地址填补到4个转发节点为止;b、判断源节点i的剩余能量ei是否大于剩余能量门限eth:若是,则计算源节点i自身的广播系数bi;若否,则将源节点i的广播系数置为0;c、源节点i发送广播分组;d、源节点i采取广播分组丢失重发机制;(2)任一节点k接收到广播分组后采用以下方式处理转发:若节点k从邻居节点j接收到一个广播分组后,依次判断是否第一次从节点j收到广播分组、是否是第一次收到该广播分组、是否是接收节点自身已发送的广播分组、是否是已成功发送的广播分组,然后做出对应处理:或者建立或更新邻居信息表中发送该广播分组的邻居节点j对应的条目;或者按概率或根据广播分组头部中的转发节点地址进行转发,在转发前根据邻居信息表中的广播系数大小选出最多4个下一跳转发节点,将转发节点的地址和自身的广播系数写入需要发送的广播分组头部;或者将已成功发送广播分组数sk加1;或者因已成功发送过该广播分组而丢弃该广播分组;(3)任一节点的邻居信息表中每个邻居节点的条目均设置有超时时间tkj,针对节点k和节点j任意两个节点相互通信过程中采用以下方式删除节点k的邻居信息表中节点j的条目,其中节点j为节点k的邻居节点:若节点k的邻居信息表中邻居节点j条目下对应的超时时间tkj计时到,说明该时间内邻居信息表中节点j的信息没有被刷新,邻居节点j已经长期没有广播分组发过来了,已经不是节点k的邻居了,则将节点k的邻居信息表中对应节点j的条目删除。(4)网络中所有节点反复交替执行步骤(1)至(3),直至所有节点不需要再转发广播分组,或者出现第一个节点能量耗尽。本发明选择广播系数最大(也即成功广播率高、剩余能量充足)的最多4个邻居节点作为转发节点,有效抑制广播风暴,能均衡网络能量,延长网络寿命,适应动态变化的网络拓扑,同时还能提供一定的广播可靠性。所述(1)中源节点i发送广播分组具体是:将源节点i的ip地址、广播分组序列号、广播ip地址、当前节点的ip地址、广播系数bi以及选出的转发节点地址写入广播分组头部,发送广播分组,然后更新源节点i的剩余能量ei,将源节点i的已发送广播分组数ni加1,ni初始值为零,将刚才发送的广播分组在广播收发记录表中建立条目,并在条目中添加该广播分组的已广播记录,同时将刚发送的广播分组存储到广播分组缓存区。所述(1)中源节点i发送广播分组的丢失重发机制具体是:源节点i每次发送完自己产生的一个广播分组后,设置应答时间tiack,应答时间tiack允许设置为两个节点之间通信时间的8倍,然后:(1-1)若源节点i在应答时间tiack内从邻居节点接收到自身发送的该广播分组,说明该广播分组广播成功,则应答时间tiack停止计时,并在节点i的广播分组缓存区中删除该广播分组的缓存记录,同时更新节点i已成功发送广播分组数si,并在节点i的广播收发记录表中添加节点i已成功广播的记录;(1-2)若源节点i在应答时间tiack内未从邻居节点接收到自身发送的该广播分组,则在应答时间tiack到达后重新发送一次该广播分组,并重新将应答时间tiack设置为初始值,继续监测能否从转发节点接收到自身发送的广播分组,重播次数达到一次后,不再重发该广播分组。所述(2)任一节点k接收到广播分组后处理具体为:当任一节点k从邻居节点j收到一个广播分组后,先更新自身的剩余能量,然后:(2-1)首先判断节点k是否第一次从邻居节点j收到广播分组:若是,则从接收到的广播分组头部中提取出邻居节点j的ip地址和广播系数bkj,在节点k的邻居信息表中建立邻居节点j的条目,将邻居节点j的ip地址以及广播系数写入到该条目中,并写入邻居节点j对应的超时时间tkj进行计时,tkj的初始值为30s,转向(2-2);若否,则判断节点k的邻居信息表中邻居节点j的条目所记录的广播系数bkj与广播分组头部中邻居节点j的广播系数bkj是否一致:若否,则更新节点k的邻居信息表中邻居节点j条目中的广播系数bkj,并重新设置超时时间tkj,再转向(2-2);若是,则重新设置超时时间tkj,转向(2-2);(2-2)根据收到的广播分组中的源节点ip地址和广播分组序列号判断节点k的广播收发记录表中是否有该广播分组已接收的记录:若是,表示节点k不是第一次收到该广播分组,则转向(2-3);若否,表示节点k第一次收到该广播分组,则在节点k的广播收发记录表中添加该广播分组已接收的记录,然后判断收到的广播分组头部的4个转发节点地址是否全部是特殊地址(254.255.255.255):若是,则节点k以概率0.7转发该广播分组;若否,则判断节点k的地址是否在该广播分组头部的转发节点地址列表中:若是,则节点k转发该广播分组,转向(2-4);若否,则丢弃该广播分组(该广播分组所有数据均丢弃),转向(2-4);(2-3)判断在节点k的广播收发记录表中是否有该广播分组的已广播记录:若否,则说明该广播分组已被接收过但没有被转发,这次一样不转发,直接丢弃该广播分组(该广播分组所有数据均丢弃),转向(2-4);若是,则判断在节点k的广播收发记录表中是否有该广播分组的已成功广播记录:若否,则在广播收发记录表中添加该广播分组的已成功广播记录,并将已成功发送广播分组数sk加1,丢弃该广播分组(该广播分组所有数据均丢弃),转向(2-4);若是,则丢弃该广播分组(该广播分组所有数据均丢弃),转向(2-4);(2-4)结束。所述(2)中作为非源节点的节点k转发广播分组具体为:转发前判断节点k的邻居信息表中的邻居节点个数是否为1:若是,则节点k直接丢弃该广播分组(该广播分组所有数据均丢弃);若否,则判断节点k的邻居信息表中的邻居节点个数是否小于等于5:若是,则剔除广播系数为0的邻居节点和上一跳邻居节点,将节点k的邻居信息表中剩余的邻居节点全部作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;若否,则判断广播系数bkj,首先剔除广播系数为0的邻居节点和上一跳邻居节点,在剩余的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;然后节点k根据自身的成功广播率和剩余能量计算节点k的广播系数bk,将源节点ip地址、广播分组序列号、广播ip地址、当前节点的ip地址、当前节点k的ip地址、节点k的广播系数bk以及选择的转发节点地址写入待发送的广播分组头部,接着节点k随机延时t(t可取τ、2τ、3τ或4τ,其中τ为发送广播分组和接收广播分组所需的总时间)后发送该广播分组,更新节点k的剩余能量,在广播收发记录表中添加该广播分组的已广播记录,节点k的已发送广播分组数nk加1。所述节点更新剩余能量采用以下方式计算:假设网络中电池在节点k所能提供的最大能量为emax,采用以下公式计算节点k的剩余能量ek:ek=emax-ekconsume其中,ekconsume表示节点k所消耗的总能量:ekconsume采用以下公式计算:ekconsume=mksendeksend+mkrecvekrecv=(mksendps+mkrecvpr)tp其中,ps为节点发射机的发射功率,pr为节点接收机的接收功率,tp为节点接收或发送一个广播分组所需时间,mksend为节点k发送的广播分组数,mkrecv为节点k接收的广播分组数,eksend表示节点k发送一个广播分组所消耗的能量,ekrecv表示节点k接收一个广播分组所消耗的能量;eksend和ekrecv采用以下公式计算:eksend=pstp=isvtpekrecv=prtp=irvtp其中,is表示发送电流,ir为接收电流,v为电压。具体来说若节点k发送一个广播分组所消耗能量为eksend=pstp=isvtp,则使ek减少eksend;若节点k接收一个广播分组所消耗能量为ekrecv=prtp=irvtp,则使ek减少ekrecv。因此,利用公式ekconsume=mksendeksend+mkrecvekrecv=(mksendps+mkrecvpr)tp计算节点k所消耗的总能量ekconsume。所述节点的广播系数均采用以下公式计算:对于节点k,广播系数bk计算公式为:其中,rk是节点k的成功广播率,0<rk的初始值≤1,nk为节点k的已发送广播分组数,sk为节点k的已成功发送广播分组数;eth表示剩余能量门限值,eth=0.1emax;ek是节点k的剩余能量;α是加权系数,0≤α≤1。所述节点以0.7的概率转发广播分组具体为:节点k利用随机函数产生一个在0-1范围内均匀分布的随机数p,若p>0.7,则直接丢弃该广播分组;否则节点k转发该广播分组。本发明方法设计的网络要求为:网络中的节点全部采用全向天线模式;网络中的节点均处于同一平面上,且各节点地位平等;网络中的节点采用分布式的结构;网络中的节点在彼此的通信范围内时,各节点均采用双向通信链路;网络中的各个节点发射功率和接收功率均相同,发射消息所覆盖的范围是半径为r的圆。所述广播分组包括源节点ip地址、广播分组序列号、广播ip地址、当前节点ip地址、当前节点的广播系数、转发节点的ip地址以及数据区。所述节点的邻居信息表包括当前节点的ip地址、邻居节点的ip地址、邻居节点的广播系数以及邻居节点的超时时间。本发明具有如下有益效果:(1)本发明能够有效地抑制广播风暴。本发明根据每个节点的成功广播率和剩余能量计算广播系数,每个节点依据邻居节点广播系数的大小,筛选出最多4个邻居节点作为转发节点,利用等待延时机制进一步降低信道争抢和消息碰撞的概率,邻居节点根据接收到的广播分组头部中的转发地址来判断自己是否需要转发。由于仅仅选择了最多4个邻居节点作为转发节点,因此可以大大降低转发节点数目,有效抑制了广播风暴。(2)本发明的网络生存时间较长。本发明方法设置最多选取4个邻居节点作为下一跳的转发节点,未选中的节点不参与转发,有效降低了网络中节点的转发次数,减少节点因转发而损耗的能量;此外,本发明中下一跳转发节点是选择剩余能量大、成功广播率高的邻居节点,不仅能够避免因大量发送广播分组造成的信道争抢和信息碰撞,还能均衡能量损耗,延长整体网络生存时间。附图说明图1是本发明的一种广播流程图;图2为本发明的源节点发送广播分组的一种流程图;图3为本发明的任意节点接收与转发广播分组的一种流程图;图4为本发明的删除邻居信息表中节点条目的一种流程图。具体实施方式下面结合附图和具体实施方式对本发明做进一步的描述。如图1所示,本发明的一种广播流程图具体包括如下步骤:步骤100,源节点发送广播分组:节点i为网络中任一产生广播分组的源节点,首先判断源节点i的邻居信息表中是否存在邻居节点,若否,则用4个相同的特殊地址(254.255.255.255)作为转发节点地址;若是,则进一步判断源节点i的邻居信息表中邻居节点个数是否大于4,若是,则判断广播系数bij,首先剔除广播系数为0的邻居节点,在剩余的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;若否,则首先剔除广播系数为0的邻居节点,将邻居信息表中剩余的邻居节点作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;然后判断源节点i的剩余能量ei是否大于剩余能量门限eth,若是,则计算源节点i自身的广播系数bi;若否,则将源节点i的广播系数置为0;然后将源节点i的ip地址、广播分组序列号、广播ip地址、当前节点i的ip地址、广播系数bi以及选出的转发节点地址写入广播分组头部,发送广播分组,然后更新源节点i的剩余能量ei,将源节点i的已发送广播分组数ni加1,ni初始为零,将刚才发送的广播分组在广播收发记录表中建立条目,并在条目中添加该广播分组的已广播记录,同时将已广播的广播分组存储到广播分组缓存区;步骤101,源节点i采取广播分组丢失重发机制:源节点i每次发送完自己产生的一个广播分组后,设置应答时间tiack,应答时间tiack允许设置为两个节点之间通信时间的8倍,然后判断源节点i能否在应答时间tiack内从邻居节点接收到自身发送的该广播分组,若是,则说明该广播分组广播成功,则应答时间tiack停止计时,并在节点i的广播分组缓存区中删除该广播分组的缓存记录,同时更新节点i已成功发送广播分组数si,并在节点i的广播收发记录表中添加节点i已成功广播的记录;若否,则在应答时间tiack到达后重新发送一次该广播分组,并重新将应答时间tiack设置为初始值,继续监测能否从转发节点接收到自身发送的广播分组,重播次数达到一次后,不再重发该广播分组;步骤200,网络中任一节点k接收与转发广播分组:当任一节点k从邻居节点j收到一个广播分组后,先更新自身的剩余能量ek,然后依次判断是否第一次从节点j收到广播分组、是否是第一次收到该广播分组、是否是接收节点自身已发送的广播分组、是否是已成功发送的广播分组,然后做出对应处理;步骤201,首先判断节点k是否第一次从邻居节点j收到广播分组,若是,则从接收到的广播分组头部中提取出邻居节点j的ip地址和广播系数bkj,在节点k的邻居信息表中建立邻居节点j的条目,将邻居节点j的ip地址以及广播系数写入到该条目中,并写入邻居节点j对应的超时时间tkj,tkj的初始值为30s,转向步骤202;若否,则判断节点k的邻居信息表中邻居节点j的条目所记录的广播系数bkj与广播分组头部中邻居节点j的广播系数bkj是否一致,若否,则更新节点k的邻居信息表中邻居节点j条目中的广播系数bkj,并重新设置超时时间tkj,再转向步骤202;若是,则重新设置超时时间tkj,转向步骤202;步骤202,根据收到的广播分组中的源节点ip地址和广播分组序列号判断节点k的广播收发记录表中是否有该广播分组已接收的记录,若是,表明不是第一次收到该广播分组,则转向步骤203;若否,表明是第一次收到该广播分组,则在节点k的广播收发记录表中添加该广播分组已接收的记录,然后判断收到的广播分组头部的4个转发节点地址是否全部是特殊地址(254.255.255.255),若是,则节点k以概率0.7转发该广播分组;若否,则判断节点k的地址是否在该广播分组头部的转发节点地址列表中,若是,则节点k转发该广播分组,转向步骤400;若否,则丢弃该广播分组(该广播分组所有数据均丢弃),转向步骤400;转发前判断节点k的邻居信息表中的邻居节点个数是否为1,若是,则节点k直接丢弃该广播分组(该广播分组所有数据均丢弃);若否,则判断节点k的邻居信息表中的邻居节点个数是否小于等于5,若是,则剔除广播系数为0的邻居节点和上一跳邻居节点,将节点k的邻居信息表中剩余的邻居节点全部作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;若否,则判断广播系数bkj,首先剔除广播系数为0的邻居节点和上一跳邻居节点,在剩余的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;然后节点k根据自己的成功广播率和剩余能量计算节点k的广播系数bk,将源节点ip地址、广播分组序列号、广播ip地址、当前节点k的ip地址、节点k的广播系数bk以及选择的转发节点地址写入待发送的广播分组头部,接着节点k随机延时t(t可取τ、2τ、3τ或4τ,其中τ为发送广播分组和接收广播分组所需的总时间)后发送广播分组,更新节点k的剩余能量,在广播收发记录表中添加该广播分组的已广播记录,节点k的已发送广播分组数nk加1。步骤203,判断在节点k的广播收发记录表中是否有该广播分组的已广播记录,若否,则说明该广播分组已被接收过但没有被转发,这次一样不转发,直接丢弃该广播分组(该广播分组所有数据均丢弃),转向步骤400;若是,则判断在节点k的广播收发记录表中是否有该广播分组的已成功广播记录,若否,则在广播收发记录表中添加该广播分组的已成功广播记录,并将已成功发送广播分组数sk加1,丢弃该广播分组(该广播分组所有数据均丢弃),转向步骤400;若是,则丢弃该广播分组(该广播分组所有数据均丢弃),转向步骤400;步骤300,若节点k的邻居信息表中邻居节点j条目下对应的超时时间tkj计时到,说明该时间内邻居信息表中节点j的信息没有被刷新,邻居节点j已经长期没有广播分组发过来了,已经不是节点k的邻居了,则将节点k的邻居信息表中对应节点j的条目删除;步骤400,网络中所有节点反复交替执行步骤100至300,直至所有节点不需要再转发广播分组,或者出现第一个节点能量耗尽。如图2所示,本发明的源节点发送广播分组的方法,包括如下步骤:①节点i为网络中任一产生广播分组的源节点,判断节点i是否存在邻居信息表,若否,则在该广播分组的转发地址列表中写入4个相同的特殊地址(254.255.255.255),转向②;若是,则进一步判断源节点i的邻居信息表中的邻居节点个数是否大于4,若是,则判断广播系数bij,首先剔除广播系数为0的邻居节点,在广播系数不为0的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止,转向②;若否,则首先剔除广播系数为0的邻居节点,将邻居信息表中剩余的邻居节点作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;②判断节点i的剩余能量ei是否大于剩余能量门限eth,若是,则根据节点i剩余能量ei以及成功广播率ri计算节点i的广播系数bi,转向③;若否,则将节点i的广播系数置为0;③将源节点i的ip地址、广播分组序列号、广播ip地址、当前节点i的ip地址、广播系数bi以及选出的转发节点地址写入广播分组头部;④发送广播分组,更新源节点i的剩余能量ei,将源节点i已发送广播分组数ni的值加1,ni初始值为零,将刚才发送的广播分组在广播收发记录表中建立条目,并在条目中添加该广播分组的已广播记录,同时将已广播的广播分组存储到广播分组缓存区,设置应答时间tiack,应答时间tiack允许设置为两个节点之间通信时间的8倍;⑤若源节点i在应答时间tiack内从邻居节点接收到自身发送的该广播分组,说明该广播分组广播成功,则应答时间tiack停止计时,并在节点i的广播分组缓存区中删除该广播分组的缓存记录,同时更新节点i已成功发送广播分组数si,并在节点i的广播收发记录表中添加节点i已成功广播的记录,转向⑦;⑥若源节点i在应答时间tiack内未从邻居节点接收到自身发送的该广播分组,则在应答时间tiack到达后,判断重发次数是否已经达到1次,若是,转向⑦;若否,重发该广播分组,更新源节点i的剩余能量ei,将源节点i已发送广播分组数ni的值加1;⑦结束。如图3所示,本发明的任意节点接收与转发广播分组的方法,包括如下步骤:①节点k在接收到上一跳邻居节点j转发来的广播分组后,更新节点k的剩余能量ek;②判断节点k是否第一次从邻居节点j接收广播分组,若是,则从接收到的广播分组头部中提取出邻居节点j的ip地址和广播系数bkj,在节点k的邻居信息表中建立邻居节点j的条目,将邻居节点j的ip地址以及广播系数写入到该条目中,并写入邻居节点j对应的超时时间tkj,tkj的初始值为30s,转向④;若否,则判断节点k的邻居信息表中邻居节点j的条目所记录的广播系数bkj与广播分组头部中邻居节点j的广播系数bkj是否一致,若否,则更新节点k的邻居信息表中邻居节点j条目中的广播系数bkj,并重新设置超时时间tkj,转向④;若是,则重新设置超时时间tkj,转向④。④根据收到的广播分组中的源节点ip地址和广播分组序列号判断节点k的广播收发记录表中是否有该广播分组已接收的记录,若是,表明节点k不是第一次收到该广播分组,转向⑦;若否,表明节点k第一次收到该广播分组,则在节点k的广播收发记录表中添加该广播分组已接收的记录,然后判断收到的广播分组头部的4个转发节点地址是否全部是特殊地址(254.255.255.255),若是,则节点k以概率0.7转发该广播分组,具体步骤为:节点k利用随机函数产生一个在0-1范围内均匀分布的随机数p,若p>0.7,直接丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;否则,节点k需要转发该广播分组,转向⑥;⑤若节点k接收到的广播分组头部的4个转发节点地址不全部是特殊地址,则判断节点k的地址是否在该广播分组头部的转发节点地址列表中,若是,则节点k转发该广播分组,转向⑥;若否,则节点k丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;⑥转发前判断节点k的邻居信息表中的邻居节点个数是否为1,若是,则直接丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;若否,则判断节点k的邻居信息表中的邻居节点个数是否小于等于5,若是,则剔除广播系数为0的邻居节点和上一跳邻居节点,将节点k的邻居信息表中剩余的邻居节点全部作为转发节点,若转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;若否,则判断广播系数bkj,首先剔除广播系数为0的邻居节点和上一跳邻居节点,在剩余的邻居节点中选取广播系数最大的4个邻居节点作为转发节点,若剔除后转发节点数不足4个,则用特殊地址(254.255.255.255)填补到4个地址为止;然后节点k根据自己的成功广播率和剩余能量计算节点k的广播系数bk,将源节点ip地址、广播分组序列号、广播ip地址、当前节点k的ip地址、节点k的广播系数bk以及选择的转发节点地址写入待发送的广播分组头部,接着节点k随机延时t(t可取τ、2τ、3τ或4τ,其中τ为发送广播分组和接收广播分组所需的总时间)后发送该广播分组,更新节点k的剩余能量,在广播收发记录表中添加该广播分组的已广播记录,节点k的已发送广播分组数nk加1,转向⑨;⑦判断在节点k的广播收发记录表中是否有该广播分组的已广播记录。若否,则说明该广播分组已被接收过但没有被转发,这次一样不转发,直接丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;若是,则转向⑧;⑧判断在节点k的广播收发记录表中是否有该广播分组的已成功广播记录。若否,则在广播收发记录表中添加该广播分组的已成功广播记录,并将已成功发送广播分组数sk加1,丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;若是,则丢弃该广播分组(该广播分组所有数据均丢弃),转向⑨;⑨结束。如图4所示,本发明的删除邻居信息表中节点条目的方法,包括如下步骤:若节点k的邻居信息表中节点j条目中的超时时间tkj计时到,则将节点k的邻居信息表中节点j对应的条目删除;结束。如表1所示,为本发明中的邻居信息表实例格式,具体包括:①ipaddress(node:k):当前节点k的ip地址;②k的第j号邻居节点的信息,其中j=1,2,…,n,包括:ipaddress(neighborj:):k的第j号邻居节点的ip地址;bkj:节点k的第j号邻居节点的广播系数;tkj:节点k的第j号邻居节点的超时时间。ipaddress(node:k)ipaddress(neighbor1:)bk1tk1……ipaddress(neighborj:)bkjtkj……ipaddress(neighborn:)bkntkn表1若超时时间tkj计时到,节点k的邻居信息表中邻居节点j的条目未被刷新,则认为该邻居节点已经不是当前节点k的邻居节点,将该邻居节点j的条目从当前节点k的邻居信息表中删除。每次记录和刷新后将超时时间tkj设置为初始值。如表2所示,为本发明中的广播收发记录表实例格式,具体包括:①ipaddress(currentnode:k):当前节点k的ip地址;②源节点i发出的广播分组序列号为x的分组情况,具体为:ipaddress(sourcenode:i):源节点i的ip地址;packetsequencenumberx(fromsourcenodei):从源节点i发出序列号为x的广播分组;bereceived(yesorno):该广播分组是否已接收,yes表示已接收,no表示未接收;bebroadcasted(yesorno):该广播分组是否已广播,yes表示已广播,no表示未广播;besuccessfulbroadcasted(yesorno):该广播分组是否已成功广播,yes表示已成功广播,no表示未成功广播。ipaddress(currentnode:k)ipaddress(sourcenode:i)packetsequencenumberx(fromsourcenodei)bereceived(yesorno)bebroadcasted(yesorno)besuccessfulbroadcasted(yesorno)ipaddress(sourcenode:m)packetsequencenumbery(fromsourcenodem)bereceived(yesorno)bebroadcasted(yesorno)besuccessfulbroadcasted(yesorno)……表2③源节点m发出的广播分组序列号为y的分组情况,具体为:ipaddress(sourcenode:m):源节点m的ip地址;packetsequencenumbery(fromsourcenodem):从源节点m发出序列号为y的广播分组;bereceived(yesorno):该广播分组是否已接收,yes表示已接收,no表示未接收;bebroadcasted(yesorno):该广播分组是否已广播,yes表示已广播,no表示未广播;besuccessfulbroadcasted(yesorno):该广播分组是否已成功广播,yes表示已成功广播,no表示未成功广播。依次类推。根据本实施方式的流程就可以撰写出本发明协议方法的程序代码,代码编译成功之后就可以应用于网络的广播中。为了更好的体现本发明协议方法的性能提高,用网络仿真模拟软件对本发明协议方法进行仿真。本发明方法主要从四个性能指标进行分析:(1)转发节点比例(retransmittedratio):在仿真过程中,参加转发广播分组的节点个数占网络中节点总数的比例。(2)网络生存时间(networklife-time):从网络仿真开始到第一个能源耗尽的节点出现为止的网络持续时间。(3)平均端到端延时(averageend-to-enddelay):从源节点发出广播分组开始到该广播分组被全部目的节点收到所产生的延时的平均值。(4)到达率(reachability):所有目的节点实际接收的广播分组数目与全数节点本应收到的广播分组数目的比值。为了能更好的看出本发明协议方法的优势所在,将本发明的方法bsrren与bsrn、bsreb和dp三种协议方法进行对比。其中,bsrn协议法根据邻居节点成功广播率实时调节当前节点的转发概率。bsreb协议结合节点成功广播率与剩余能量来计算节点转发概率,无需依赖邻居信息。dp协议根据周围邻居节点密度的大小来适时调节节点广播概率的大小。对于网络中节点移动、节点个数不同的情况进行了仿真。(1)本发明中的bsrren方法的转发节点比例远小于bsrn和bsreb协议,同时也小于dp协议。(2)本发明中的bsrren方法的网络生存时间明显大于bsrn和bsreb协议,略大于dp协议。(3)本发明中的bsrren方法的平均端到端延时明显大于bsrn、bsreb和dp协议的平均端到端延时。(4)本发明中的bsrren方法的到达率相比其他3种最低。根据仿真结果分析,本发明在转发节点比例和网络生存时间上具有优势,能较好地抑制广播风暴、均衡节点能耗和延长网络生存时间,能适应节点移动的场景。应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。当前第1页12