本发明属于无线通信技术领域,涉及一种节点编码感知的机会转发路由协议设计方法。
背景技术:
在2000年,R.Ahlswede等人首次提出了网络编码的理论。网络编码是一种新型数据传输方式,打破了在传统路由中节点只能对数据进行存储转发的限制,允许中间节点对数据进行编码后转发,增加了单次转发的信息量。相比于传统的传输方式可以减少信息的传输次数,提高网络吞吐量,实现理论上的最大传输容量。
随着对无线网络中网络编码路由协议研究的不断深入,发现现有的路由协议中编码机会得不到充分的利用,并没有让网络编码的性能得到最大限度的发挥。编码感知是指在路由建立过程中把网络中的编码机会考虑进去,通过主动探索、创造并利用网络中潜在的编码机会,使网络的吞吐量得到进一步的提高。
在无线通信网络中,由于无线节点的移动性以及无线信道的时变特性,导致网络中链路质量的不稳定,按照之前特定的路由度量确定的从源节点到目的节点的固定路由很容易发生失效。机会转发是指在数据包转发过程中并不是按照一条固定的路径传输,而是为该数据包选取多个节点作为潜在的下一跳转发节点,由这些节点组成转发节点集。根据转发节点集合内各节点的度量值(Metric)来确定它们优先级,选择优先级最高的那个节点再次转发数据包给另外的节点集,如此重复直到目的节点成功接收此数据包。
为充分利用无线网络的资源,在数据转发过程中,将编码感知与机会转发策略相结合已成为现在研究的重点。在转发节点集内选择最佳转发节点时,根据转发节点集内各个节点的编码机会数量的大小,动态地选择具有编码机会较多的节点进行数据包编码转发,这样可以减少中间节点的转发次数,提高网络吞吐量。
现有的相关研究虽然能够发现网络中潜在的编码机会,使网络吞吐量得到提高,但也存在着一些问题。当节点在判断编码机会时,没有考虑实际的无线网络链路存在不稳定性,可能造成编码机会的误判,使到达的编码包不能成功解码,导致网络资源的严重浪费,网络吞吐量也会随之下降;另外,在转发节点集内选择最佳转发节点时,转发节点集内的各个节点需要周期性的转发各自拥有的数据包信息和侦听缓存的数据包信息来计算其他节点的编码机会,此过程会造成节点较大的网络开销和处理时延。
技术实现要素:
本发明的目的在于克服上述已有的不足,提供一种节点编码感知的机会转发路由协议设计方法,该方法在判断编码机会时考虑了无线链路的质量,有效的提高了编码包在目的节点的解码成功率,以及在转发节点集内选择最优编码节点时,降低了网络开销和端到端时延。
为达到上述目的,本发明提供如下技术方案:
一种节点编码感知的机会转发路由协议设计方法,包括以下步骤:
S1:当网络中的节点有数据包要发送时,利用基于侦听概率的附加ID信息添加机制首先将该发送节点的ID和符合要求的邻居节点ID添加在即将发送的数据包的头部,用于编码机会的判断;
S2:为步骤S1中得到的带有附加ID信息的数据包确定下一跳转发节点集,集合内的节点是为该数据包预先选取的多个潜在下一跳转发节点;
S3:将带有附加ID信息的数据包组播到转发节点集,集合内的各个节点接收到此数据包后根据数据包头部附加的ID信息进行编码机会判断,计算各自的编码机会次数count。
S4:在转发节点集内选择出最佳节点将数据包编码发送,集合内的其他节点侦听到该数据包被成功发送后,则将该数据包从发送队列中删除。
进一步,在步骤S1中,所述的基于侦听概率的附加ID信息添加机制具体方法为:
首先,依次计算发送节点S与其各个一跳邻居节点ni的侦听概率P(s,ni):
P(s,ni)=1-Pf(s,ni) (1)
其中,P(s,ni)表示邻居节点ni成功侦听到节点S发送数据包的概率,ni表示发送节点S的第i个邻居节点,Pf(s,ni)表示节点S到其邻居节点ni的链路正向丢包率;
其次,判断每个邻居节点的侦听概率P(s,ni)与阈值Pth的大小。如果某一邻居节点的P(s,ni)比阈值Pth大时,说明S到该邻居节点ni的链路状况良好,则将此邻居节点的ID附加到待发数据包p的头部,否则不将此节点ID进行添加。
进一步,在步骤S2中,所述的为数据包确定下一跳转发节点集,其中利用机会转发的思想,为步骤S1中添加的ID信息的数据包确定下一跳转发节点集,集合内的各节点即数据包潜在的下一跳转发节点,转发节点集内的节点选取的具体方法为:
①该节点必须是发送节点的下一跳邻居节点;
②为了避免数据包的转发远离目的节点,该节点必须距离目的节点更近。本方法使用ETX度量值来衡量,即转发节点集内节点的ETX度量值要小于发送节点的ETX度量值;
③在转发节点集内的节点必须能以一定概率相互侦听;
④转发节点集选取节点的个数不应超过5个。
进一步,在步骤S3中,所述的计算转发节点集内每个节点的编码机会次数count的具体方法为:
首先,多个数据包能够在一起编码的前提是目的节点已缓存了能用于解码的数据包,保证编码包在目的节点能成功解码。本方法利用附加ID信息来判断数据包在编码前目的节点是否已缓存了能用于解码的数据包,假设中间节点收到来自不同数据流的两个数据包p、q,若同时满足式(2)和式(3)成立,则数据包p、q可进行编码发送。
Dest_p∈Setq (2)
Dest_q∈Setp (3)
其中,Dest_p、Dest_q分别表示数据包p、q的目的节点的ID,Setp、Setq分别表示数据包p、q附加信息的节点ID集合。式(2)表示在数据包p的目的节点内缓存了用于解码的数据包q,当收到编码包p⊕q时,通过(p⊕q)⊕q得到数据包p。同理,式(3)表示了数据包q的目的节点可通过(p⊕q)⊕p得到数据包q。
其次,转发节点集内的节点各自计算编码机会次数count,即各节点的发送队列中能与收到的数据包一起编码的数据包个数。以节点x为例,具体计算过程如下所示:
进一步,由于每执行一次网络编码可融合的数据分组数量越多,网络中的吞吐量就越大,所以在步骤S4中选择count值最大的节点作为最佳转发节点,将数据包编码发送。具体选择方法为:
首先,修改ACK数据包格式,添加count字段,即步骤S3计算出的节点count值附加在ACK上。由于转发节点集内的各节点可相互侦听,当集合内的节点成功接收数据并计算出count值后,向上一跳节点反馈修改的ACK数据包,集合内的其他节点可侦听到此ACK,并得到此节点的编码机会次数count。
其次,转发节点集内的节点通过与其他节点的count值比较,如果发现自己的count值最大,则选为最佳转发节点进行数据包的编码发送。若发现本节点的count值小于其他节点,则进入等待状态,当侦听到其他节点发送此数据包后,将此数据包从节点的发送队列中删除。如果存在节点的count值相同,则比较节点内ETX度量值,选择距离目的节点较近的节点进行转发。
本发明的有益效果在于:提供了一种节点编码感知的机会转发路由协议设计方法,该方法通过采用基于侦听概率的附加ID信息添加机制解决了在无线链路不稳定的情况下节点在计算编码机会时可能存在误判的问题,有效的提高了网络的有效吞吐量和解码成功率;同时该方法在最优转发节点选择时利用ACK携带编码机会次数count,此过程减少了节点间大量的数据包信息交换,有效减小了平均端到端时延和网络开销。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
图1为具有编码感知的路由对网络性能影响的示意图;
图2为节点编码感知的机会转发路由协议设计方法的基本思想示意图;
图3为基于侦听概率的附加ID信息添加示意图;
图4为节点编码感知的机会转发路由协议设计方法流程示意图。
具体实施方式
为了使本技术领域人员能更好地理解本发明的目的、技术方案和有益效果,下面结合具体实施例和说明附图来进行完整的描述。
图1为具有编码感知的路由对网络性能影响的示意图;
编码感知是指在路由建立过程中把编码机会考虑进去,通过主动探索、创造并利用网络中潜在的编码机会,使网络的吞吐量得到进一步的提高。如图1所示,假设图中已存在一条路径为C→B→A的数据流f1,若此时节点D有数据流f2要发送到目的节点F。图(a)中,若数据流f2沿着路径D→E→F传输,由于两条数据流f1、f2没有相交,则不存在任何编码的机会,网络吞吐量也不会提高;在图(b)中,若数据流f2在路由发现的时候考虑到网络中的编码机会,从而选择路径D→B→F进行传输,由于两条数据流相交于节点B,则在节点B处可能存在编码机会,对两条数据流f1、f2的端到端的吞吐量都能得到有效的提高。
图2为节点编码感知的机会转发路由协议设计方法的基本思想示意图;
节点编码感知的机会转发路由协议设计方法的基本思想是将网络编码和机会转发机制相结合,在数据包转发过程中不预先指定转发节点,而是根据转发节点集内各个节点的编码机会,动态地选择具有编码机会较多的节点进行数据包的编码转发。这样可以减少中间节点的转发次数,提高网络吞吐量。
在以图2为例的网络模型中,假设源节点S1沿路径S1→R1→D1发送数据包p到目的节点D1,源节点S2沿路径S2→R2→D2发送数据包q到目的节点D2,完成数据包p、q的成功投递总共需要4次传输。但是在节点编码感知的机会转发路由协议设计的方法中利用无线网络中节点的机会侦听,当源节点S1、S2分别发送数据包p、q后,中间节点接收并缓存的数据包情况是:R1中缓存了数据包p,R2中同时缓存了数据包p和q,R3中缓存了数据包q。根据节点的接收缓存情况,选择节点R2将数据包p、q进行异或编码后转发编码包p⊕q。目的节点D1接收到p⊕q后与其侦听到的q进行(p⊕q)⊕q的解码操作,得到所需数据包p。同理,目的节点D2亦可通过(p⊕q)⊕p解码得到数据包q。所以,完成数据包p、q的成功投递总共只需要3次传输即可完成,数据包的传输效率提高了33.3%。
图3为基于侦听概率的附加ID信息添加示意图;
基于侦听概率的附加ID信息添加是在节点要转发数据包时,将该节点的ID和其一跳邻居节点的ID添加在即将发送的数据包头部。为保证编码包的解码成功率,在添加附加ID信息时需要将发送节点与其邻居节点的链路情况考虑进来。基于侦听概率的附加ID信息添加的具体步骤如下:
第一步:计算,依次计算发送节点S与其各个一跳邻居节点ni的侦听概率P(s,ni):
P(s,ni)=1-Pf(s,ni) (4)
其中,P(s,ni)表示邻居节点ni成功侦听到节点S发送数据包的概率,ni表示发送节点S的第i个邻居节点,Pf(s,ni)表示节点S到其邻居节点ni的链路正向丢包率;
第二步:判断,依次判断每个邻居节点的侦听概率P(s,ni)与阈值Pth的大小;
第三步:添加,如果某一邻居节点的P(s,ni)比阈值Pth大时,说明S到该邻居节点ni的链路状况良好,则将此邻居节点的ID附加到待发数据包p的头部,否则不将此节点ID进行添加。
由图2,当节点S1在发送数据包p前,使用基于侦听概率的附加ID信息添加机制将符合要求的节点ID信息添加到数据包p的头部,假设S1的邻居节点R1、R2、D2的侦听概率均大于阈值Pth,则数据包p的附加ID信息的添加情况如图3所示,其中,packet holders是节点的ID信息集合,相对于数据包的信息量很小。当添加packet holders信息的数据包发送后,ID在packet holders里的节点都能以较高的概率侦听并缓存该数据包p。所以,在数据包相遇时,可由packet holders信息知道哪些节点已经缓存了该数据包的备份。
图4为节点编码感知的机会转发路由协议设计方法流程示意图;
节点编码感知的机会转发路由协议设计方法主要包括基于侦听概率的附加ID信息的添加、转发节点集的选择、最优转发节点的选择三个阶段。当节点有数据包要发送时,首先把侦听概率P(s,ni)大于Pth的邻居节点ID添加到待发送的数据包头部,然后为该数据包选取下一跳转发节点集,将数据包发送到转发节点集后,集合内的各个节点分别计算各自的发送队列中能与此数据包一起编码发送的数据包个数count。在转发节点集内选择count值最大的节点将此数据包编码发送,直到目的节点成功接收并解码出此数据包。另外,集合内的其他节点在侦听到该数据包发送后,将此数据包从自己的发送队列中删除。