CN103561445B - 一种基于网络编码的无线传感网多路径路由方法 - Google Patents
一种基于网络编码的无线传感网多路径路由方法 Download PDFInfo
- Publication number
- CN103561445B CN103561445B CN201310560078.4A CN201310560078A CN103561445B CN 103561445 B CN103561445 B CN 103561445B CN 201310560078 A CN201310560078 A CN 201310560078A CN 103561445 B CN103561445 B CN 103561445B
- Authority
- CN
- China
- Prior art keywords
- node
- packet
- path
- hop
- address
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种基于网络编码的无线传感网多路径路由方法属无线传感网络通信领域,其特征在于,按基于编码优势节点的路径优势值对网中任意的源节点到目的节点之间的路径按路径优势的大小从大到小排序,提供优先选择的路径,源节点发送的由K个原始数据包所形成的I(I≥K)个编码数据包对应于优先选择路径一一对应的发送。首先由源节点编码的数据在数据传输过程中,编码优势节点是一种多路径交叉点要对输入的编码数据进行再次随机编码再把路由表中标明本节点为接收节点的编码数取出后,再把标有下层其他中间节点或目的节点地址的再次编码数据中编码系数解码后下行输出,以此类推直到目的节点为止。本发明把网络编码与多路径选择相结合提供较优的多路径路由方法。
Description
技术领域
本发明属于传感器网络安全通信领域。
背景技术
无线传感器网络(Wireless Sensor Network,WSN)是微机电系统、片上系统和无线通信技术高度据称而孕育出的一种新型信息获取和处理模式。在网络中节点既是信息的采集和发出者,也充当信息的路由者,采集的数据通过多跳达到网关。无线传感器网络在环境、健康、家庭和其他商业领域有着广阔的应用前景,在军事、空间探索和灾难拯救等特殊领域有着得天独厚的技术优势,已经引起了世界发达国家的学术界、军事部门和工业界的极大关注。
无线传感器网络虽然也是无线通信的网络,但是跟传统的无线网络也存在很大的差别,主要表现在以下几点:
1)传感器节点电源能量、计算、通信范围和储存能力有限。
2)大规模网络。为了获取精确信息,在监测区域内通常部署大量的传感器节点,节点数量通常是上千上万,甚至更多。
3)动态网络。无线传感器网络的拓扑结构可能因为下列因素而改变:①环境因素或电能耗尽造成的传感器节点出现故障或失效;②环境条件变化可能造成无线通信链路变化,甚至时断时通;③网络中的传感器节点、感知对象和观测者这三要素都可能具有移动性;④新节点的加入。
4)以数据为中心。通常用户只关心某个地区的观测值,而不是某个节点的数据,所以节点不必有全球唯一标识。
5)多跳通信。由于节点的通信范围有限,所以为了达到WSN的大覆盖区域的目的,WSN网络采用多跳通信机制。
6)应用相关的网络。传感器网络用来感知客观物理世界,获取物理世界的信息。
7)自组织网络。通常情况下,传感器节点被放置在没有基础结构的地方。
正是由于无线传感器网络与传统网络相比具有上述不同的特点,应用于无线传感器网络上的典型的路由协议一般都要满足能量高效性、可靠性、收敛性、安全性、扩展性、实时性、鲁棒性、数据融合等。依据路径数量的不同,无线传感网中的路由协议可划分为单路径路由和多路径路由两类。
单路径路由算法简单,数据通信量少,有利于节省节点能量和节约节点存储空间,但是其容错性和健壮性差。当由于自然或人为原因,某个节点或某个区域中的节点失效导致链路断开时,单路径路由协议需要重新发现新的路由,这将对网络的传输延时、节点能耗以及数据传输的可靠性造成较大影响。
与单路径路由相比,多路径路由协议通过在源节点与目的节点之间建立多条路径,要求更多的节点来承担路由任务。它通过选用多条好的路径取代单条最好的路径来传输数据,从而可以提高传输可靠性、实现负载均衡和提高网络的容错能力。多路径路由可发展出不同的多路径协议,以满足环境的需求,如平衡网络负载,延长网络寿命,缩短网络延时等。
现阶段对无线传感器网络的多路径路由协议的研究还不是很多,目前比较被认可的多路径路由协议如下表所示:
发明内容
基于上述分析,本发明提供了一种基于网络编码的多路径路由算法。一方面,该方法可以解决单路径路由协议的一个不足,即路径断开就需要发起新的路由发现。这个路由恢复过程会导致开销和时延的增大,从而大大降低无线传感王的网络性能。另一方面,该算法可以将编码优势融入到路径选择的过程中,综合考虑网络编码优势和其他路径选择指标选择多条最优路径作为传输路径。本发明将网络编码与多路径技术相结合,提供一种基于编码机会判断的多路径路由选择方法。
本发明的特征在于
所述网络编码是指所述无线传感网中的各中间节点层中的任何一个中间节点对自己从N条输入路段上的N个上一跳节点同时输入的N个原始数据包进行统一编码,并一次性的通过各自相对应的输出路段向总共N个下一跳节点输出经过编码的内含有N个原始数据包的编码数据包,依次按以下步骤实现路由优化传输:
步骤(1),无线传感网初始化:
任意选择至少一个简称为节点的无线传感器定义为源节点S,把所述无线传感器组成的无线传感器网简称为网络,再任意选择至少一个简称为节点的至少另一个无线传感点定义为目的节点D,并对所有节点给予节点号;
步骤(2),系统定义:
编码优势节点是指有编码优势的中间节点,所述编码优势是指对于一个中间节点X而言所能减少的向下一中间节点层中任何一个节点发送编码数据包的次数的绝对值,对于单输入单输出节点,编码优势为零,对于双输入双输出节点,编码优势为1,对于N输入N输出节点,编码优势为N-1,N为有限正整数;
路径优势值f(hop,advan),hop是跳数,advan是编码优势,其中:
对于源节点S到中间节点X而言,hop是指从源节点S到所述中间节点X的总跳数,在数值上等于从源节点S到中间节点X这一路径段上包括源节点S在内的总节点数减1,advan是指所述这一路径段上的路径的编码优势值,在数值上等于所述这一路径段上不包括源节点S在内的所有中间节点X的编码优势之和;
对于源节点S到目的节点D而言,hop是从源节点S到目的节点D的总跳数,在数值上等于从源节点S到目的节点D这一路径段上包括源节点S在内的总结点数减1,advan是指所述这一条全路径上的全路径的编码优势值,在数值上等于所述这一条全路径上不包括源节点S、目的节点D在内的所有中间节点X的编码优势之和;
f(hop,advan)=-m×hop+(1-m)×advan,
0<m<1,
其中,对于中间节点X而言,f(hop,advan)是指路径段优势值;
对于目的节点D而言,f(hop,advan)是指全路径优势值;
m是对应于跳数的权重,为设定值,反映了在所述无线传感器网络中对传输速率或降低能耗的倾向性;
路由请求包,来自源节点S并由本节点向下一跳发送,包括:下一跳节点的广播地址、源节点地址、目的节点地址、路径域:指数据包从源节点到本节点所经过的所有中间节点的地址,按路径顺序排列、跳数:指源节点S到本节点所经过的总跳数、路径段的编码优势值,所述路径段是指从源节点S到前一跳中间节点这一段路径;
反向路由表,储存在各中间节点,包括:源节点地址、上一跳节点地址、总跳数及路径段优势值;
路由回复包,是反向路由回复包,指从任何一个中间节点X或目的节点D出发,反向上传到下一跳节点或源节点时的一种反向路由回复包,包括:下一跳节点地址、经过的路径域、源节点地址、目的节点地址、跳数以及路段优势值;
编码数据包,包括:下一跳节点地址列表、目的节点地址列表、编码系数和数据部分;
步骤(3),依次按以下步骤探索由源节点S到目的节点D的L条较优路径,L为一个有限正整数:
步骤(3.1),源节点S基于自身传输半径向各下行输出的路段上的下一跳节点层内的节点广播所述路由请求包;
步骤(3.2),步骤(3.1)中各所述下一跳节点接收到所述路由请求包后,执行以下步骤:
步骤(3.2.1),计算各自的路径段优势值f(hop,advan),其中跳数加1,advan在数值上基于该请求包所经过的路径段上的路径的编码优势,把自己添加到路径域之中形成一个更新的路由请求包,同时将源节点地址、数据包的上一跳节点地址、跳数、路径优势值的信息存入节点的反向路由表中,更新的路由请求包一次性的下行发向下一跳节点层中的每一个节点,初始时,源节点的跳数和路径段编码优势值为零;
步骤(3.2.2),重复步骤(3.2.1)直至到达目的节点为止,路径优势值等于全路径段编码优势值,经过的路径域为路由请求包中经过的路径域,下一跳节点地址为经过的路径域中的最后一个节点地址,源节点地址为路由请求包中的的目的地址,目的地址为路由请求包中的源节点地址,跳数为初始跳数即为零,使上述得到的下一跳节点地址、经过的路径域、源节点地址、目的节点地址、跳数、路径优势构成一个路由回复包,反向上传到路由请求包中的源节点S;
步骤(3.3),中间节点收到路由回复包则更新跳数值,即跳数加1,将路由回复包的包括上一跳节点地址、跳数、路径优势在内的信息存入节点路由表中,根据路由回复包中的经过的路径域,将倒数第二个地址写入下一跳地址,并将路径域中自己的地址删去;
步骤(3.4),重复步骤(3.3)直至到达路由请求包的源节点S为止,将路由回复包中的包括上一跳节点地址、跳数、路径优势在内的信息存入节点路由表中;
步骤(3.5),所述源节点S在收到下一跳中间节点层中各中间节点反向上传的路由回复包后,对所有从相同目的节点D上传的所述路由回复包中的全路径段优势值按从大到小的顺序排成序列,选取前L条全路径作为其优先选取的从所述源节点S到目的节点的全路径,存入源节点S的优势路径段记录,其中,L是任选的有限正整数,剩下的非优势路径段废弃不用;
步骤(4),在所述无线传感网中依次按以下步骤传输数据:
步骤(4.1),令a=(a1,a2,…,aK)T表示源节点S要向下一跳单播的随机网络数据包称为原始数据包,k是所述原始数据包的序号,k=1,2,…,K,K也是所述原始数据包的总数;
步骤(4.2),按下式对步骤(4.1)中的所述原始数据包的数据部分进行随机网络编码:
αi=Pi·a,i=1,2,…,I,I≥K
Pi是编码系数向量,Pi=(p1,p2,…,pK),编码系数向量Pi从一个有限正整数域中选取,共有I个且I≥K;
αi是由K个原始数据经过随机编码后生成的编码数据向量;
步骤(4.3),使步骤(3.5)中所述的L条优势路径在数值上等于所述编码数据包的总数I,L=I,在每条路径只传输一个编码数据向量αi,称为经过随机编码的数据部分,编码数据包表示为{Pi,αi},于是在L条路径上传输I个编码数据包;
步骤(4.4),对于网络中只有一个源节点和一个目的节点,多个源节点和一个目的节点,一个源节点和多个目的节点的或者多个源节点和多个目的节点的情况,当发送数据包时,对缓冲队列队头的数据包进行如下处理:
第一种情况:若当该数据包准备发送时,节点缓存队列中还存在另外一个路径S→D上的多个编码包,这些编码数据包和待发送编码数据包拥有同一个源节点和目的节点,则这些数据包出列并把这些数据包单独进行如下处理:
当前编码优势节点接收到的编码包中的编码系数向量和编码数据集合为{Pi,αi},当前节点A按本节点设定的再次随机编码系数向量Q中的各个分量qq对输入的各个所述源节点S的编码数据进行再次随机网络编码,其中下标q=i,获得新的编码数据新的编码系数向量向路由表中记录的下一跳节点发送包含新的编码数据和编码系数向量的再次编码数据包;
第二种情况:若该数据包准备发送时,节点的缓存中存在另一个目的节点的数据包,使得这两个数据包传输的两条路径在当前节点具有一种编码机会,则对这两个数据包的数据部分进行再次编码,不妨设这两个数据包的编码数据包的数据部分αm=Pmα和βn=Qnβ以及相应的编码系数Pm和Qn,进行随机网络编码获得编码数据部分γ=pαm+qβn,将编码后的数据部分γ=pαm+qβn存在数据包的数据部分,将编码系数(p,pPm,q,qQn)存在数据包的编码系数向量部分,并将两条不同路径的下一跳节点地址都放到数据包的接收节点的地址位置,将两条不同路径的目的节点地址都放到数据包的目的节点的地址位置,将编码数据包发送出去;
第三种情况:当该数据包准备发送时,若以上两种情况都不满足,则直接向下一跳节点发送该数据包;
步骤(4.5),当接收数据包时,若该数据包的下一跳节点只包含当前节点且当前节点不为目标节点时,则更新数据包下一跳节点信息且放入缓冲队列等待发送;若到达当前节点的数据包包含不止一个下一跳节点,则首先判断数据包为步骤(4.4)中所述的第二种情况下产生的再次随机编码包,即如果中间节点发现数据包的下一跳节点地址列表除了自己在外还有其他节点,则认为该数据包是步骤(4.4)所述的编码数据包,按以下步骤进行解码:
查找目的节点地址列表存在除去本节点要接收的数据包的目的节点D之外的另一个数据包的目的节点D',随后在混杂数据存储区查找该目的节点D'对应的数据包数据部分βn=Qnβ,利用数据包中的编码系数(p,pPm,q,qQn)将两者的数据部分γ=pαm+qβn和βn=Qnβ进行随机网络解码,解码过程如下:
pαm=γ-q·βn
这样中间节点获得本节点所要传输的编码数据pαm以及相应的编码系数pPm,若目的地址为当前节点则接收信息,否则解出来的编码数据包及其编码系数打包放入缓存队列等待传送;
步骤(4.7),重复步骤(4.4)-步骤(4.6)直至缓存队列数据包全部传送成功;
步骤(4.8),所述目的节点D收到多个编码数据包,从中任意取出K个编码系数线性无关的编码数据包,并获得编码数据和系数用所述的编码数据和系数按下式解码出原始数据包序列a=(a1,a2,…,aK)T:
a=PD -1αD。
基于上述分析,本发明提供了一种基于网络编码的多路径路由算法。一方面,该方法可以解决单路径路由协议的一个不足,即路径断开就需要发起新的路由发现。这个路由恢复过程会导致开销和时延的增大,从而大大降低无线传感王的网络性能。另一方面,该算法可以将编码优势融入到路径选择的过程中,综合考虑网络编码优势和其他路径选择指标选择多条最优路径作为传输路径。网络编码是一种融合编码和路由的信息交换技术,它允许网络中间节点在转发信息前对于来自不同链路的数据包进行编码组合后在发送,同时大大提高网络的吞吐量。但是,如果使用传统的路由算法,中间节点以及目的节点大部分依据数据包的新鲜度、跳数等指标确定最佳路径,部分跳数略大但具有非常显著的编码机会的路径在此过程中即被丢弃,中间节点在传输时将无法具备编码条件进而损失可能的编码优势。多路径协议在多条路径上同时发送数据包,可能会因为冗余带来大量的能量浪费,网络中的吞吐量减少。而网络编码则会充分的考虑这些编码机会,从而在改进网络吞吐量方面起到重要的作用。
基于上述原因考虑,本发明将网络编码与多路径技术相结合,提供一种基于编码机会判断的多路径路由选择方法。
附图说明
图1-图4网络编码拓扑示意图,
图5基于网络编码的多路径算法流程图,
图6原始网络节点分布图,
图7-图10路由请求过程示意图,
图11第一条路由请求路径1,
图12第二条路由请求路径2,
图13第三条路由请求路径3,
图14第四条路由请求路径4,
图15第五条路由请求路径5,
图16第六条路由请求路径6,
图17路由回复1,
图18路由回复2,
图19数据发送,
具体实施方式
基于上述分析,本发明提供了一种基于网络编码的多路径路由算法。一方面,该方法可以解决单路径路由协议的一个不足,即路径断开就需要发起新的路由发现。这个路由恢复过程会导致开销和时延的增大,从而大大降低无线传感王的网络性能。另一方面,该算法可以将编码优势融入到路径选择的过程中,综合考虑网络编码优势和其他路径选择指标选择多条最优路径作为传输路径。本发明将网络编码与多路径技术相结合,提供一种基于编码机会判断的多路径路由选择方法。
网络初始化
根据网络的拓扑结构和规模,无线传感器网络中基站节点为每个节点配置一个地址。本发明中为了便于标志节点,暂时用大写英文字母以及阿拉伯数字代表节点。网络中每个节点都处于等同的地位,每个节点都有可能是源节点或者目的节点,如果网络中节点S需要向网络中节点D发送数据包,此时节点S就是源节点,节点D就是目的节点。每个节点内部都设置有一个路由表,当节点S需要传递数据包到节点D时,节点S将查询自己的路由表中有没有到节点D的路径:如果有,就向其中记录的下一跳单播数据包;如果没有,则寻找到节点B的过程。本发明重点在于改进寻找路径的过程。
网络中的节点在物理层收到数据包后,会检查数据包中设置的接收节点:如果接收节点地址为广播地址或者为自己时,节点将接收该节点并将该数据包上传到上层处理;否则,如果节点被设置为混杂模式,节点仍将目的节点非自身的数据包上传给链路层处理,并按照接收节点地址将数据包的数据内容存储在混杂数据存储区。在本发明中,我们将所有的节点均设置为混杂模式。由于无线通信具有广播特性,因此节点能在很大概率上获得其邻居的所有数据包并存储在混杂数据存储区。
路由寻找过程
如果源节点S没有在路由表中存储到目的节点D的路径,则开启路由寻找过程,路由寻找过程包括路由请求和路由回复:
●路由请求是指源节点发送路由请求包,开始寻找到目标节点的路径,此时两个节点间无建立好的路径相连。源节点广播路由请求包,中间节点接收到路由请求包后会进行是否接收并转发的判断,如果需要接收,则将相关信息填入反向路由表,更新请求信息并再次广播出去。
●路由回复是指目的节点收到了由中间节点转发来的路由请求包,并沿着路由回复表中的路径单播发送路由回复包直至发送到源节点。源节点收到了多个路由回复数据包,在多个路由回复路径中根据某种路由评判标准选择多条较优路径作为最后的待选数据传输路径,并将这些路径根据评判排名依次添加到源节点路由表中。之后,源节点将根据评判排名沿着最佳的前6条路径与目的节点进行通信。
其中在路由请求和路由确定的过程中都涉及到路径的优先度排名。在路由请求过程中,中间节点可能收到多个节点转发的来自同一个源节点的路由请求数据包。此时,中间节点需要对多个路由请求进行判断,确定是否需要转发,如果不是过时请求包的话,根据优先度排名并依次记录到反向路由表中。在路由确定的过程中,源节点需要对收到的所有路由回复进行优先度排名并作路径选择。
详细的过程描述如下
路由请求
(1)请求节点广播路由请求包。路由请求包格式如表1。
表1 路由请求包格式
下一跳节点地址 | 经过的路径域 | 源节点地址 | 目的节点地址 | 跳数 | 编码优势值 |
●下一跳节点地址:应当接收该数据包的节点地址,在路由请求包中,该地址设为广播地址;
●经过的路径域:该数据包经过的所有节点的地址,按顺序排列,源节点地址处于第一个,上一跳节点地址位于最后一个;
●源节点地址:发送数据包的源节点地址;
●目的节点地址:路由请求包的目的节点地址;
●跳数:经过的节点个数;
●编码优势值:代表该路径的编码优势。初始值为0,表示初始时无编码机会。
(2)中间节点接收到广播路由请求包
每个节点保存一个反向路由表。中间结点接收到路由请求包后,接收数据包并继续如下操作。
表2 反向路由表格式
源节点地址 | 上一跳节点地址 | 跳数 | 路径优势值 |
1)更新编码优势值
中间节点更新编码优势值,编码优势值的更新规则如下:
中间结点X有网络编码机会,当且仅当经过X的传输路径和满足如下某一个条件:
a)路径中X的下一跳是路径中X的上一跳,且路径中X的下一跳是路径中X的上一跳.如图1;
b)路径中X的上一跳是路径的传输路径中X的下一跳,且路径中X的上一跳是路径中X的下一跳的邻居。如图2,此时路径的接收节点节点2’有很大的概率能嗅探到路径发送节点节点2发送的数据包。图3同理;
c)路径中X的下一跳是路径中X的上一跳的邻居,且路径的下一跳是路径中X的上一跳的邻居。此时,路径的接收节点节点1’和路径的接收节点节点2’有很大的概率能分别监听到路径的发送节点节点1和路径发送节点节点2发送的b和a数据包,如图4;
当节点X存在满足如上某个条件的两条路径时,我们认为在节点X处存在关于路径和的编码机会(因为节点X如果想要在路径和上分别发送a和b两个数据包时,只需要发送一次a+b即可。此时,路径的接收节点会收到a+b,同时利用通过无线信道已经嗅探到并存储在混杂数据存储区的b数据包,即可利用随机网络编码方法解码获得信息a。因此此时编码是可以少传输一次数据包,具有编码优势)。
本发明将所少发送的数据包数目作为节点增加的编码优势值。此时节点X处可以少发一次数据包,因此在节点X处将编码优势值加1。
2)更新反向路由表
更新跳数,即将路由请求包中的跳数值加1。利用函数f(跳数,编码优势值)计算这条路的路径优势值,其中跳数,编码优势值为更新后的值。
其中hop表示跳数,advan代表的是编码优势值。m是hop对应的权重,在不同的应用中可以有不同的权重。如果网络更加重视传输效率,提高m值;如果网络更加重视网络能耗,降低m值。
3)修改请求包信息并继续转发
更新路由请求包中的值:下一跳节点地址、源节点地址以及目的节点地址不变,将自己的地址添加到经过的路径域,跳数和编码优势值改为更新后的值。将更新的路由请求包广播出去。
路由回复
(1)请求目的节点接收到路由请求,则发送路由回复包
向上一跳单播路由回复。路由回复包格式如。
表3 路由回复包
下一跳节点地址 | 经过的路径域 | 源节点地址 | 目的节点地址 | 跳数 | 路径优势值 |
其中:
●下一跳节点地址:应当接收该路由回复包的节点地址,根据反向路由表决定;
●经过的路径域:和路由请求表中的经过的路径域相同,逆序排列,路由请求包的源节点地址处于第一个,路由请求包的上一跳节点地址位于最后一个;
●源节点地址:路由请求包的目的节点地址;
●目的节点地址:路由请求包的源节点地址;
●跳数:经过的节点个数;
●路径优势值:代表该路径的编码优势值。该值为目的节点更新后的编码优势值。
(2)中间节点接收到路由回复包,执行如下操作:
更新跳数值,即将跳数加1。将路由请求包的源节点地址、路由回复包的上一跳节点地址、跳数、路径优势值等信息存入节点的路由表中。
根据路由回复包中的经过的路径域,将下一跳节点地址写入下一跳节点地址域,并且将经过的路径域中自己的地址删去。向上一跳单播更新后的路由回复包。直到路由回复包到达路由请求源节点。
路由请求源节点接收到路由回复包,在路由表中查找与请求目的节点地址和发送路由回复包的上一跳节点地址相符的记录:如果不存在相应的记录,或者相应的所有记录条数少于6条,将被请求节点地址、发送路由回复包的上一跳节点地址、跳数以及路径优势等信息写入路由表中;如果记录条数恰为6条,比较记录与路由回复包的路径优势,如果存在某条记录的路径优势值比路由回复包的路径优势小,删除现有的记录中路径优势值最小的那条记录,并将路由回复包中的被请求节点地址、发送路由回复包的上一跳节点地址以及路径优势等信息写入路由表中。
一段时间后,被请求节点收到多条不同的节点发送的路由回复,请求节点就有到被请求节点的多条路径了。
数据传输
现在节点S有到节点D的多条传输路径了,节点S开始向下一跳单播随机网络数据包。假设节点S想要发送数据包a1,a2,…,aK,令a=(a1,a2,…,aK)T代表原始数据包,按照随机网络编码的编码算法,节点S发送数据部分为αi=Pia,i=1,2,..,I,I>K,其中Pi是编码系数向量,放在数据包中与数据部分αi一起传输,即。每个数据包只传输一个编码数据和对应的编码系数{Pi,αi}。在I条路径上一共传输了I个编码数据包。
当可以发送数据包时,对缓冲队列队头的数据包进行如下处理:
1)若当该数据包准备发送时,节点缓存队列中还存在路径S→D上的多个编码包,则这些数据包出列并进行如下处理:
编码包中的编码系数和编码数据集合为{Pi,αi},节点A对数据再次进行随机网络编码,获得新的编码数据编码系数向路由表中记录的下一跳节点发送包含新的编码数据和编码系数的数据包。
2)若该数据包准备发送时,节点的缓存中存在另一个数据包,使得这两个数据包传输的两条路径在当前节点具有四种编码机会之中的一种编码机会,则:现设这两个数据包的传输路径分别为路径S→D和路径,这两个编码数据包的数据部分αm=Pmα和βn=Qnβ以及相应的编码系数Pm和Qn,进行随机网络编码获得编码数据部分γ=pαm+qβn,将编码后的数据部分γ=pαm+qβn存在数据包的数据部分,将编码系数(p,pPm,q,qQn)存在数据包的编码系数部分,并将S→D和路径的下一跳节点地址都放到数据包的接收节点的地址位置,将S→D和路径的目的节点地址都放到数据包的目的节点的地址位置。将编码数据包发送出去。
表4 编码数据包
下一跳节点地址列表 | 目的节点地址列表 | 编码系数部分 | 数据部分 |
3)当该数据包准备发送时,若以上两种情况都不满足,则直接向下一跳节点发送该数据包。
当接收数据包时,对数据包进行如下处理:
1)当前节点不是目的节点且若该数据包只包含当前节点这一个下一跳节点,则更新数据包下一跳节点信息且放入缓冲队列等待发送。
2)若该数据包包含不止一个下一跳节点,则首先判断数据包为上述2)中所述的情况下产生的再次随机编码包,即如果中间节点发现数据包的下一跳节点地址列表除了自己在外还有其他节点,则按以下步骤进行解码:
查找目的节点地址列表外除去本节点要接收的数据包的目的节点D之外的另一个数据包的目的节点,随后在混杂数据存储区查找该的目的节点对应的数据包数据部分βn=Qnβ,利用数据包中的编码系数(p,pPm,q,qQn)将两者的数据部分γ=pαm+qβn和βn=Qnβ进行随机网络解码,解码过程如下:
pαm=γ-q·βn
这样中间节点可以获得本节点所要传输的编码数据pαm以及相应的编码系数pPm,若当前节点为目的节点则接收数据包,否则解出来的编码数据包及其编码系数放入缓存队列等待传播;
3)如果目的节点D收到多个编码数据包,从中任意取出K个编码系数线性无关的编码数据包,并获得编码数据和系数有:
α=PD -1αD
因此可以进行随机网络解码获得原始数据α=(a1,a2,…,aK)。
总体而言,整体网络过程如图5所示:
基于上述分析,本发明提供了一种基于网络编码的多路径路由算法。一方面,该方法可以解决单路径路由协议的一个不足,即路径断开就需要发起新的路由发现。这个路由恢复过程会导致开销和时延的增大,从而大大降低无线传感王的网络性能。另一方面,该算法可以将编码优势融入到路径选择的过程中,综合考虑网络编码优势和其他路径选择指标选择多条最优路径作为传输路径。网络编码是一种融合编码和路由的信息交换技术,它允许网络中间节点在转发信息前对于来自不同链路的数据包进行编码组合后在发送,同时大大提高网络的吞吐量。但是,如果使用传统的路由算法,中间节点以及目的节点大部分依据数据包的新鲜度、跳数等指标确定最佳路径,部分跳数略大但具有非常显著的编码机会的路径在此过程中即被丢弃,中间节点在传输时将无法具备编码条件进而损失可能的编码优势。多路径协议在多条路径上同时发送数据包,可能会因为冗余带来大量的能量浪费,网络中的吞吐量减少。而网络编码则会充分的考虑这些编码机会,从而在改进网络吞吐量方面起到重要的作用。
基于上述原因考虑,本发明将网络编码与多路径技术相结合,提供一种基于编码机会判断的多路径路由选择方法。
如图6所示的网络,其中路径3→2→A之间有一条链路在通信,节点S要寻找到D的路径。
(1)路由请求
节点S广播路由请求。节点1~9会陆陆续续收到节点S广播的路由请求包。
a)其邻居节点1,4,5都能收到路由请求,并再次广播。如图7:
b)节点A和节点2收到节点1广播的路由请求。节点6和节点7收到节点4广播的路由请求。节点6和节点9收到节点5广播的路由请求,如图8实线所示。所有收到路由请求的节点再次广播。
c)节点2收到节点A广播的路由请求。节点3收到节点2广播的路由请求。节点8收到节点6广播的路由请求。节点D收到节点7和节点9广播的路由请求。如图9实线所示。节点2和节点6处具有编码可能,将编码优势值增加2。所有收到路由请求的节点再次广播。
d)节点D收到节点3广播的路由请求。节点3收到节点2再次广播的路由请求。节点7和节点9收到节点8广播的路由请求,且节点7和节点9广播从节点8收到的路由请求至节点D处。如图10实线所示。
最终,节点D收到6条路由请求包。如图11~16。
(2)路由回复
节点D收到节点3,7,9发送的路由请求包,并按反向路由发送路由回复包。中间节点按反向路由转发路由回复包
最后节点S总共获得6条到节点D的路径。如图17和图18所示。
(3)数据发送
假设节点S需要发送数据a,b,c到节点D,节点3需要发送数据d到节点A。对数据进行随机网络编码。假设编码后结果为xa,yb,zc,wd(x,y,z,w为编码系数,随数据部分一起发送),xa,yb,zc分别发送给节点1,4,和5,wd发送给节点2。中间节点再次进行编码。注意,中间节点6收到yb和zc,再次编码后获得y’b+z’c并进行广播,y’和z’为编码系数;中间节点2收到xa和wd再次编码后获得x’a+w’d并进行广播,节点3可以监听到wd,因此通过x’a+w’d可以解码出xa,同理目的节点A可以解码出wd,可以恢复出原始数据d。最后目的节点D收到数据包xa,yb,zc以及y’b+z’c,一定可以恢复出原始数据a,b,c。如图19。
如果路径S→5→9→D和路径1→A→2失败,目的节点仍能获得数据包xa,yb以及y’b+z’c,一样可以恢复出原始数据a,b,c。可见基于网络编码的多路径算法具有更好的吞吐量和容错能力。
Claims (1)
1.一种基于网络节点编码的无线传感网多路径路由方法,其特征在于:所述网络编码是指所述无线传感网中的各中间节点层中的任何一个中间节点对自己从N条输入路段上的N个上一跳节点同时输入的N个原始数据包进行统一编码,并一次性的通过各自相对应的输出路段向总共N个下一跳节点输出经过编码的内含有N个原始数据包的编码数据包,依次按以下步骤实现路由优化传输:
步骤(1),无线传感网初始化:
任意选择至少一个简称为节点的无线传感器定义为源节点S,把所述无线传感器组成的无线传感器网简称为网络,再任意选择至少一个简称为节点的至少另一个无线传感点定义为目的节点D,并对所有节点给予节点号;
步骤(2),系统定义:
编码优势节点是指有编码优势的中间节点,所述编码优势是指对于一个中间节点X而言所能减少的向下一中间节点层中任何一个节点发送编码数据包的次数的绝对值,对于单输入单输出节点,编码优势为零,对于双输入双输出节点,编码优势为1,对于N输入N输出节点,编码优势为N-1,N为有限正整数;
路径优势值f(hop,advan),hop是跳数,advan是编码优势,其中:
对于源节点S到中间节点X而言,hop是指从源节点S到所述中间节点X的总跳数,在数值上等于从源节点S到中间节点X这一路径段上包括源节点S在内的总节点数减1,advan是指所述这一路径段上的路径的编码优势值,在数值上等于所述这一路径段上不包括源节点S在内的所有中间节点X的编码优势之和;
对于源节点S到目的节点D而言,hop是从源节点S到目的节点D的总跳数,在数值上等于从源节点S到目的节点D这一路径段上包括源节点S在内的总结点数减1,advan是指所述这一条全路径上的全路径的编码优势值,在数值上等于所述这一条全路径上不包括源节点S、目的节点D在内的所有中间节点X的编码优势之和;
f(hop,advan)=-m×hop+(1-m)×advan,
0<m<1,
其中,对于中间节点X而言,f(hop,advan)是指路径段优势值;
对于目的节点D而言,f(hop,advan)是指全路径优势值;
m是对应于跳数的权重,为设定值,反映了在所述无线传感器网络中对传输速率或降低能耗的倾向性;
路由请求包,来自源节点S并由本节点向下一跳发送,包括:下一跳节点的广播地址、源节点地址、目的节点地址、路径域:指数据包从源节点到本节点所经过的所有中间节点的地址,按路径顺序排列、跳数:指源节点S到本节点所经过的总跳数、路径段的编码优势值,所述路径段是指从源节点S到前一跳中间节点这一段路径;
反向路由表,储存在各中间节点,包括:源节点地址、上一跳节点地址、总跳数及路径段优势值;
路由回复包,是反向路由回复包,指从任何一个中间节点X或目的节点D出发,反向上传到下一跳节点或源节点时的一种反向路由回复包,包括:下一跳节点地址、经过的路径域、源节点地址、目的节点地址、跳数以及路段优势值;
编码数据包,包括:下一跳节点地址列表、目的节点地址列表、编码系数和数据部分;
步骤(3),依次按以下步骤探索由源节点S到目的节点D的L条较优路径,L为一个有限正整数:
步骤(3.1),源节点S基于自身传输半径向各下行输出的路段上的下一跳节点层内的节点广播所述路由请求包;
步骤(3.2),步骤(3.1)中各所述下一跳节点接收到所述路由请求包后,执行以下步骤:
步骤(3.2.1),计算各自的路径段优势值f(hop,advan),其中跳数加1,advan在数值上基于该请求包所经过的路径段上的路径的编码优势,把自己添加到路径域之中形成一个更新的路由请求包,同时将源节点地址、数据包的上一跳节点地址、跳数、路径优势值的信息存入节点的反向路由表中,更新的路由请求包一次性的下行发向下一跳节点层中的每一个节点,初始时,源节点的跳数和路径段编码优势值为零;
步骤(3.2.2),重复步骤(3.2.1)直至到达目的节点为止,路径优势值等于全路径段编码优势值,经过的路径域为路由请求包中经过的路径域,下一跳节点地址为经过的路径域中的最后一个节点地址,源节点地址为路由请求包中的目的地址,目的地址为路由请求包中的源节点地址,跳数为初始跳数即为零,使上述得到的下一跳节点地址、经过的路径域、源节点地址、目的节点地址、跳数、路径优势构成一个路由回复包,反向上传到路由请求包中的源节点S;
步骤(3.3),中间节点收到路由回复包则更新跳数值,即跳数加1,将路由回复包的包括上一跳节点地址、跳数、路径优势在内的信息存入节点路由表中,根据路由回复包中 的经过的路径域,将倒数第二个地址写入下一跳地址,并将路径域中自己的地址删去;
步骤(3.4),重复步骤(3.3)直至到达路由请求包的源节点S为止,将路由回复包中的包括上一跳节点地址、跳数、路径优势在内的信息存入节点路由表中;
步骤(3.5),所述源节点S在收到下一跳中间节点层中各中间节点反向上传的路由回复包后,对所有从相同目的节点D上传的所述路由回复包中的全路径段优势值按从大到小的顺序排成序列,选取前L条全路径作为其优先选取的从所述源节点S到目的节点的全路径,存入源节点S的优势路径段记录,其中,L是任选的有限正整数,剩下的非优势路径段废弃不用;
步骤(4),在所述无线传感网中依次按以下步骤传输数据:
步骤(4.1),令a=(a1,a2,...,aK)T表示源节点S要向下一跳单播的随机网络数据包称为原始数据包,k是所述原始数据包的序号,k=1,2,...,K,K也是所述原始数据包的总数;
步骤(4.2),按下式对步骤(4.1)中的所述原始数据包的数据部分进行随机网络编码:
αi=Pi·a,i=1,2,...,I,I≥K
Pi是编码系数向量,Pi=(p1,p2,...,pK),编码系数向量Pi从一个有限正整数域中选取,共有I个且I≥K;
αi是由K个原始数据经过随机编码后生成的编码数据向量;
步骤(4.3),使步骤(3.5)中所述的L条优势路径在数值上等于所述编码数据包的总数I,L=I,在每条路径只传输一个编码数据向量αi,称为经过随机编码的数据部分,编码数据包表示为{Pi,αi},于是在L条路径上传输I个编码数据包;
步骤(4.4),对于网络中只有一个源节点和一个目的节点,多个源节点和一个目的节点,一个源节点和多个目的节点的或者多个源节点和多个目的节点的情况,当发送数据包时,对缓冲队列队头的数据包进行如下处理:
第一种情况:若当该数据包准备发送时,节点缓存队列中还存在另外一个路径S→D上的多个编码包,这些编码数据包和待发送编码数据包拥有同一个源节点和目的节点,则这些数据包出列并把这些数据包单独进行如下处理:
当前编码优势节点接收到的编码包中的编码系数向量和编码数据集合为{Pi,αi},当前节点A按本节点设定的再次随机编码系数向量Q中的各个分量qq对输入的各个所述源节点S的编码数据进行再次编码对数据再次进行随机网络编码,其中下标q=i,获得新的编码数据新的编码系数向量向路由表中记录的下一跳节点发送包含新的编码数据和编码系数向量的再次编码数据包;
第二种情况:若该数据包准备发送时,节点的缓存中存在另一个目的节点的数据包,使得这两个数据包传输的两条路径在当前节点具有一种编码机会,则对这两个数据包的数据部分进行再次编码,不妨设这两个数据包的编码数据包的数据部分αm=Pmα和βn=Qnβ以及相应的编码系数Pm和Qn,进行随机网络编码获得编码数据部分γ=pαm+qβn,将编码后的数据部分γ=pαm+qβn存在数据包的数据部分,将编码系数(p,pPm,q,qQn)存在数据包的编码系数向量部分,并将两条不同路径的下一跳节点地址都放到数据包的接收节点的地址位置,将两条不同路径的目的节点地址都放到数据包的目的节点的地址位置,将编码数据包发送出去;
第三种情况:当该数据包准备发送时,若以上两种情况都不满足,则直接向下一跳节点发送该数据包;
步骤(4.5),当接收数据包时,若该数据包的下一跳节点只包含当前节点且当前节点不为目标节点时,则更新数据包下一跳节点信息且放入缓冲队列等待发送;若到达当前节点的数据包包含不止一个下一跳节点,则首先判断数据包为步骤(4.4)中所述的第二种情况下产生的再次随机编码包,即如果中间节点发现数据包的下一跳节点地址列表除了自己在外还有其他节点,则认为该数据包是步骤(4.4)所述的编码数据包,按以下步骤进行解码:
查找目的节点地址列表存在除去本节点要接收的数据包的目的节点D之外的另一个数据包的目的节点D',随后在混杂数据存储区查找该目的节点D'对应的数据包数据部分βn=Qnβ,利用数据包中的编码系数(p,pPm,q,qQn)将两者的数据部分γ=pαm+qβn和βn=Qnβ进行随机网络解码,解码过程如下:
pαm=γ-q·βn
这样中间节点获得本节点所要传输的编码数据pαm以及相应的编码系数pPm,若目的地址为当前节点则接收信息,否则解出来的编码数据包及其编码系数打包放入缓存队列等待传送;
步骤(4.7),重复步骤(4.4)-步骤(4.6)直至缓存队列数据包全部传送成功;
步骤(4.8),所述目的节点D收到多个编码数据包,从中任意取出K个编码系数线性无关的编码数据包,并获得编码数据和系数用所述的编码数据和系数按下式解码出原始数据包序列a=(a1,a2,...,aK)T:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310560078.4A CN103561445B (zh) | 2013-11-12 | 2013-11-12 | 一种基于网络编码的无线传感网多路径路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310560078.4A CN103561445B (zh) | 2013-11-12 | 2013-11-12 | 一种基于网络编码的无线传感网多路径路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103561445A CN103561445A (zh) | 2014-02-05 |
CN103561445B true CN103561445B (zh) | 2016-08-17 |
Family
ID=50015553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310560078.4A Expired - Fee Related CN103561445B (zh) | 2013-11-12 | 2013-11-12 | 一种基于网络编码的无线传感网多路径路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103561445B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103840917B (zh) * | 2014-03-28 | 2017-04-26 | 北京邮电大学 | 一种基于网络编码的多路并行传输方案 |
US9936052B2 (en) * | 2015-11-04 | 2018-04-03 | Motorola Mobility Llc | Wireless ad hoc network assembly using network coding |
CN105515983A (zh) * | 2015-11-24 | 2016-04-20 | 南京邮电大学 | 一种基于网络编码改进的泛洪协议的实现方法 |
WO2017214801A1 (zh) * | 2016-06-13 | 2017-12-21 | 深圳天珑无线科技有限公司 | 分布式网络的消息处理方法及节点 |
CN106572525A (zh) * | 2016-10-28 | 2017-04-19 | 浙江大学 | 一种传感网中基于前缀包编码的低功耗数据收集方法 |
CN107295505B (zh) * | 2017-06-14 | 2019-07-12 | 东南大学 | 无线传感器网络多路径安全传输方法 |
ES2950133T3 (es) * | 2018-05-16 | 2023-10-05 | Code On Tech Inc | Aparato de codificación multitrayecto y técnicas relacionadas |
CN109239291A (zh) * | 2018-09-27 | 2019-01-18 | 东莞青柳新材料有限公司 | 湖泊水质智能监测系统 |
CN109032225B (zh) * | 2018-09-27 | 2020-07-14 | 长治市佳垚农业开发有限公司 | 温室智能控制系统 |
EP4099637A4 (en) * | 2020-02-27 | 2023-04-12 | Huawei Technologies Co., Ltd. | PCIE BASED COMMUNICATION METHOD AND DEVICE |
CN111343668B (zh) * | 2020-03-03 | 2022-05-03 | 重庆邮电大学 | 基于背压策略的编码感知路由方法 |
CN111327707B (zh) * | 2020-03-05 | 2022-04-05 | 重庆邮电大学 | 一种无线网络中基于网络编码的缓存替换方法 |
CN114268577B (zh) * | 2020-09-16 | 2023-07-21 | 中国移动通信有限公司研究院 | 网络连接的建立方法、装置、设备及存储介质 |
CN112887203B (zh) * | 2021-01-12 | 2021-10-08 | 中国人民解放军31007部队 | 一种基于网络编码的tdma无线网络多路径数据传输方法 |
CN112910778A (zh) * | 2021-02-03 | 2021-06-04 | 北京明未科技有限公司 | 网络安全路由方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7912003B2 (en) * | 2007-06-27 | 2011-03-22 | Microsoft Corporation | Multipath forwarding algorithms using network coding |
CN101325556B (zh) * | 2008-06-23 | 2011-04-13 | 南京大学 | 一种无线网络中基于网络编码的多路径路由方法 |
CN102547856B (zh) * | 2011-12-02 | 2015-07-08 | 湖北经济学院 | 一种Ad Hoc网络中基于网络编码的多路径路由方法 |
-
2013
- 2013-11-12 CN CN201310560078.4A patent/CN103561445B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103561445A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103561445B (zh) | 一种基于网络编码的无线传感网多路径路由方法 | |
Lee | Classification of node degree based on deep learning and routing method applied for virtual route assignment | |
Daly et al. | Social network analysis for routing in disconnected delay-tolerant manets | |
Lindgren et al. | Probabilistic routing in intermittently connected networks | |
Verma et al. | Integrated routing protocol for opportunistic networks | |
Daly et al. | Social network analysis for information flow in disconnected delay-tolerant MANETs | |
CN100556000C (zh) | 一种单向链路环境下建立路由的方法 | |
CN103957163A (zh) | 一种基于胖树形高拓展性超立方体的网络拓扑结构 | |
CN104579964A (zh) | 一种量子密码网络动态路由架构系统 | |
CN102769885B (zh) | 一种在传感器网络中实现路由的方法和传感器网络 | |
JP2012217164A5 (zh) | ||
Xu et al. | Monitoring quality optimization in wireless sensor networks with a mobile sink | |
CN101309217B (zh) | 一种基于双向路由重建的ad hoc的网络多径路由方法 | |
Daflapurkar et al. | Tree based distributed clustering routing scheme for energy efficiency in wireless sensor networks | |
Verma et al. | Routing protocols in opportunistic networks | |
Rana et al. | A review of various routing protocols in VANET | |
KR100915555B1 (ko) | 지그비 네트워크에서 질의 기반의 경로 탐색을 수행하는지그비 메쉬 라우팅 방법 | |
CN107995114A (zh) | 基于密度聚类的容迟网络路由方法 | |
Shende et al. | Performance improvement in ZigBee cluster tree network | |
Alnajjar et al. | Performance analysis of routing protocols in delay/disruption tolerant mobile ad hoc networks | |
CN104703242A (zh) | 基于位置信息和票据的多路径编码感知无线网络路由方法 | |
Wu et al. | Energy-aware routing for wireless sensor networks by AHP | |
Singh et al. | A study on energy efficient routing protocols in MANETs with effect on selfish behaviour | |
Boyd et al. | A collaborative wireless sensor network routing scheme for reducing energy wastage | |
CN110324875A (zh) | 一种基于节点中心性的无线传感器网络能耗均衡路由方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160817 Termination date: 20161112 |
|
CF01 | Termination of patent right due to non-payment of annual fee |