CN101841455B - 编码路由方法、系统以及编码路由节点 - Google Patents

编码路由方法、系统以及编码路由节点 Download PDF

Info

Publication number
CN101841455B
CN101841455B CN2009101195970A CN200910119597A CN101841455B CN 101841455 B CN101841455 B CN 101841455B CN 2009101195970 A CN2009101195970 A CN 2009101195970A CN 200910119597 A CN200910119597 A CN 200910119597A CN 101841455 B CN101841455 B CN 101841455B
Authority
CN
China
Prior art keywords
stream
encoded packets
node
data packet
coded data
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
Application number
CN2009101195970A
Other languages
English (en)
Other versions
CN101841455A (zh
Inventor
周元
刘超
石柯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2009101195970A priority Critical patent/CN101841455B/zh
Publication of CN101841455A publication Critical patent/CN101841455A/zh
Application granted granted Critical
Publication of CN101841455B publication Critical patent/CN101841455B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了一种编码路由方法、系统以及编码路由节点,涉及网络编码技术领域,为提高无线网状网络的吞吐量而发明。所述编码路由方法,包括:接收编码数据包;当所述编码数据包为流间编码包时,向下一跳节点发送所述流间编码包;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。本发明实施例主要应用于无线网状网络中。

Description

编码路由方法、系统以及编码路由节点
技术领域
本发明涉及网络编码技术,尤其涉及一种无线网状网络的编码路由方法、系统,以及一种编码路由节点。
背景技术
网络编码技术作为一种新的技术在宽带无线自组织网络中有着很好的应用,它使得原先分立于物理层和网络层的两个核心概念-编码和路由邮寄的同为一体。通过网络编码,中间节点可以将接收信息进行编码并发送出去,提高了网络的吞吐量和健壮性。无线传感器网络、无线网状网络(Mesh)等无线自组织网络都可以使用网络编码技术,以提高多跳链路的传输性能。
在无线网状网络中,至少存在以下两种编码方法:由Katti提出的基于传统路由协议的机会性编码的网络编码方法COPE协议以及由MIT提出的独立于MAC(Media Access Control,媒体接入控制)层的机会路由和编码协议MORE(MAC-independent Opportunistic Routing&Encoding)。
其中,在COPE协议中,主要包括三个部分:机会性监听、机会性编码、学习邻居节点的状态。也即,每个节点对传输媒体进行侦听,获得它的邻居节点的状态信息,以决定进行编码的机会,并在本地的FIFO缓存结构内进行编码。最后进行基于机会性的路由。由此可以看出,COPE协议引入了显示的邻居间报文缓存信息的交互。
从网络配置过程看,MORE协议是通过对链路质量进行实时的测量,选择参与机会性路由的节点,并定义这些节点到目的节点之间的距离以确定上、下游节点。从数据传输过程看,首先由源节点将文件进行分组,每组K个包。当准备好发送时,源节点将当前分组的K个本地包产生一个随机线性组合,然后将产生的编码包广播发送。中间节点会监听所有的传输,当监听到一个包时,它首先确定自身是否位于包的转发列表中。若不在,则丢弃该包;若在,则对该包进行一定的处理后继续广播发送该包。目的节点在收到每个编码包后,首先要检查该编码包是否包含新的信息,若不包含则丢弃该编码包。当所述目的节点收到K个包含有新的信息的编码包时,它就能解码出整个分组,并向发送者发送确认包,以使该发送者发送下一个分组的文件。
由上可以看出,MORE协议利用网络编码所带来的报文多样性的特点,有效地实现了机会性的路由。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
由于COPE协议基于传统路由,因此它不能良好的处理死点,即在路径某个时刻质量较差的时候,无法选用其他可能的中继进行传输,影响了系统的吞吐量。而在MORE协议中没有利用邻居节点间的缓存信息进行编码。也就是说,MORE协议在进行编码路由的时候并未利用可能的内容相关性,从而影响了系统的吞吐量。
发明内容
本发明实施例提供一种编码路由方法、系统,以提高无线网状网络的吞吐量。
本发明实施例采用如下技术方案:
一种编码路由方法,包括:
接收编码数据包;
当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;
当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
当所述编码数据包为流内编码包时,确定需要对所述流内编码包进行流间编码,包括:
查找交互流表,当所述交互流表中有与当前流的源地址和目的地址相反的流的信息时,则确定需要对所述流内编码包进行流间编码;或者
查找交互流表,当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,则在流信息表中查找各后备流;若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;
当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由包括:
获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;
根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;
构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点。
一种编码路由节点,包括:
接收单元,用于接收编码数据包;
流间编码包处理单元,用于当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;
流内编码包处理单元,用于当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
所述流内编码包处理单元包括:
第一查找模块,用于查找交互流表;
第一确定模块,用于当所述交互流表中存储有与当前流的源地址和目的地址相反的流的信息,则确定需要对所述流内编码包进行流间编码;
编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;或者,
所述流内编码包处理单元包括:
第二查找模块,用于查找交互流表,并当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,在流信息表中查找各后备流;
第二确定模块,用于若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;
编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
所述编码操作模块包括:
编码向量构造子模块,用于获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;
地址获取子模块,用于根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;
转发列表构造子模块,用于构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点;
数据包发送子模块,用于将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
一种编码路由系统,包括:源节点,至少一个中间节点和目的节点;其中,
所述源节点,用于向所述中间节点发送编码数据包;
所述中间节点,用于接收由所述源节点发送的编码数据包;当所述编码数据包为流间编码包时,将所述流间编码包发送给目的节点;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给目的节点;其中,当所述编码数据包为流内编码包时,确定需要对所述流内编码包进行流间编码,包括:查找交互流表,当所述交互流表中有与当前流的源地址和目的地址相反的流的信息时,则确定需要对所述流内编码包进行流间编码;或者,查找交互流表,当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,则在流信息表中查找各后备流;若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由包括:获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点;
所述目的节点,用于接收由所述中间节点发送的编码数据包,并判断所述接收到的编码数据包的类型,当所述编码数据包为流间编码包时,解码所述流间编码包;当所述编码数据包不是流间编码包且满足解码条件时,解码所述编码数据包。
由本发明实施例的技术方案可以看出,当中间节点接收到的编码数据包为流间编码包时,所述中间节点将对所述编码数据包进行转发处理;而当接收到的编码数据包为流内编码包时,所述中间节点将根据具体情况将所述流内编码包进行流间编码操作。对不同类型的编码数据包采用不同的方式进行处理,从而,利用本发明实施例的技术方案不仅能够利用内容关联性所带来的增益,而且能够利用协同转发带来的增益,提高了系统的吞吐量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一编码路由方法的流程图;
图2为本发明实施例二编码路由方法的流程图;
图3为本发明实施例二编码路由方法中对流间编码包进行处理的流程图;
图4为本发明实施例二编码路由方法中确定是否需要启动流间编码判决的流程图;
图5为本发明实施例三编码路由节点的示意图;
图6为本发明实施例三编码路由节点的结构图;
图7为本发明实施例四编码路由系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高Mesh网络的系统吞吐量,如图1所示,本发明实施例一提供了一种编码路由方法,包括如下步骤:
步骤11、接收由上一跳节点发送的编码数据包。
需要说明的是,所述上一跳节点是个相对的概念。当中间节点为转发报文的第一个中间节点时,所述上一跳节点为源节点。当所述上一跳节点为源节点时,该编码数据包为流内编码包。也就是说,在源节点时,直接将所述编码数据包进行流内编码,然后广播发送给下一跳节点,即各中间节点。而当所述中间节点不是转发报文的第一个中间节点时,所述上一跳节点可以为上一个转发报文的中间节点。此时,所述编码数据包可能为流内编码包,也可能为流间编码包,或者为其他类型的编码数据包。
在所述源节点对编码数据包进行流内编码时,可采用MORE协议进行编码,只对新的编码数据包进行编码,即每次编码时,对新接收到的编码数据包和之前缓存的相应流相应分组的数据包重新构造编码向量,然后广播发送。
在中间节点接收由所述上一跳节点发送的编码数据包的过程中,所述中间节点可首先判断所述编码数据包的发送方式是单播发送还是广播发送;若是单播发送且接收地址为本地射频地址,当所述编码数据包与既有缓存包矩阵线性无关时,所述中间节点缓存所述编码数据包,否则丢弃所述编码数据包;若是广播发送,所述中间节点接收所述编码数据包,并进行后续本发明实施例的后续步骤处理。
步骤12、当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
由本发明实施例一的技术方案可以看出,当中间节点接收到的编码数据包为流间编码包时,所述中间节点将对所述编码数据包进行转发处理;而当接收到的编码数据包为流内编码包时,所述中间节点将根据具体情况将所述流内编码包进行流间编码操作。从而,利用本发明实施例的技术方案不仅能够利用内容关联性所带来的增益,而且能够利用协同转发带来的增益,从而提高了系统的吞吐量。
以下,如图2所示,结合实施例二详细描述一下本发明编码路由方法的实现过程。
步骤21、接收由上一跳节点发送的编码数据包。此过程与实施例一中步骤11中所描述的相同。
步骤22、确定接收到的编码数据包的类型。
在本发明实施例中,在802.11MAC层和IP层之间增加了MCR(Mesh Coding andRouting,网状编码和路由)层,该层用于编码方式的选择、路由方式的选择、数据包编解码操作等。因此,在本发明实施例中,所述编码数据包可包括:MAC头,MCR头,IP头,编码数据和MAC尾。本发明实施例中,编码数据包的MCR头包含有交互流的信息,至少包含以下字段:
Type(包类型):包括非编码包,流内编码包,流间编码包。
Src Addr(源地址):源Mesh设备标识。
Dest Addr(目的地址):目的Mesh设备标识。
Flow_ID(流编号):数据包归属的流标识。Mesh源节点为每一个本地发起的流分配一个唯一标识。其中,流的标识有:<Mesh源地址,Mesh目的地址>,<源IP地址,目的IP地址>等。
Batch_ID(分组号):源节点将数据包划分为多个分组。分组号为当前数据包所在的分组编号。
Code_Vector(编码系数):本分组内每个数据包对应的编码系数。其中,某个包的系数可以为0。
Interflow_ID(交互流编号):数据包类型为流间编码包时,一起编码的流ID。否则,字段不存在。
Inter_Batch_ID(交互分组号):数据包类型为流间编码包时,一起编码的流分组。否则,字段不存在。
Inter_Code_Vector(交互编码系数):数据包类型为流间编码包时,编码系数。否则,字段不存在。
转发节点列表:包括转发节点个数s(Num_Forwarder)和各个转发节点信息。转发节点信息包括:转发节点ID号(Forwarder_ID),转发节点机会值(Forwarder_Opp)。对于流间编码而言,第一个转发者用于向与流编号Flow_ID对应的目的节点转发数据包,第二个转发者用以向与交互流编号Inter_Flow_ID对应的目的节点转发数据包。
因此,通过读取所述编码数据包MCR头中的Type字段,所述中间节点即可确定所述编码数据包的类型。
步骤23、对于上述三种类型的编码数据包,可对所述编码数据包进行如下处理:
(1)当所述编码数据包为非编码包时,所述中间节点缓存所述非编码包。
(2)当所述编码数据包为流间编码包时,所述中间节点将所述流间编码包发送给下一跳节点。
在对所述流间编码包进行转发处理的过程中,参照图3,可包括如下步骤:
(2a)、所述中间节点首先确定所述流间编码包的发送方式;
(2b)、当发送所述流间编码包的方式为广播发送时,若本节点即所述中间节点在接收列表中且为所述接收列表的第一项,修改所述MCR头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。即根据目的地址查找路由表,填写单播接收地址。当发送所述流间编码包的方式为广播发送时,若本节点即所述中间节点不在接收列表中,则丢弃所述数据包。
(2c)、当发送所述流间编码包的方式为广播发送时,若本节点即所述中间节点在接收列表中但不为所述接收列表的第一项,则所述中间节点将修改所述MCR头中的源地址和目的地址字段以及所述MCR头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。即根据目的地址查找路由表,填写单播接收地址。
(2d)、当所述流间编码包的发送方式为单播发送时,所述中间节点将根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。即根据目的地址查找路由表,填写单播接收地址。
(3)当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
在这种情况下,为了获得由内容关联性所带来的增益,需确定是否需要对所述流内编码包进行流间编码,即判断是否需要启动流间编码判决。如图4所示,确定是否需要启动流间编码判决的过程可包括如下步骤:
(3a)、中间节点查找存储的交互流表,当所述交互流表中存储有与当前流的源地址和目的地址相反的流的信息(交互流的信息)时,则确定需要对所述流内编码包进行流间编码。同时,修改MCR头中的Type为流间编码包,并根据查询结果填写MCR头中的交互流信息。
(3b)、当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,在流信息表中查找各后备流;若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,即将当前流的流编号和当前后备流的流编号填写到交互流表中,并更新分组号。同时,修改MCR头中的Type为流间编码包,并根据查询结果填写MCR头中的交互流信息,确定需要对所述流内编码包进行流间编码。
当确定需要启动流间编码时,所述中间节点可获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量。然后,根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址。在此过程中,通过所述当前流的目的地址查找路由表,可获得当前流的下一跳的地址。而所述当前流的源地址查找路由表,可获得交互流的下一跳的地址。最后再构造转发列表,将MCR头中的转发节点个数修改为2,并将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点,并广播发送流间编码后的编码数据包。
在进行随机编码的过程中,其原理如下。网络中的编码数据包都被视作大小为p的n次方幂的Galois域中的向量x,中间节点转发这些数据包的线性组合y,而非数据包本身。其中,
y = &Sigma; i = 1 n g i x i ,
其中,n是参与编码的数据包的个数,gi是在GF(2m)域中随机选择的编码系数。可以取m=8,使编码系数的选择和运算结果均在28=256比特存储大小内。g=(g1,…,gn)称为编码向量Code Vector,y称为编码数据。
源节点和中间节点将编码向量和编码数据封装在同一编码数据包中传输。编码操作可以迭代,即可以对已编码的数据包进行新的线性组合,当中间节点有机会进行转发时,该节点对其已有的r个组合(g1,y1),…,(gr,yr)(包括收到的组合和节点自身产生的组合)进行编码,产生新的组合
y &prime; = &Sigma; j = 1 r h j y j ,
其中,hj为该节点在Galois域中随机选择的编码系数。h=(h1,…,hr)是对已有组合的编码向量,对应于原始数据包的编码向量应为
g i &prime; = &Sigma; j = 1 r h j g i j , 该节点将此组合(g′,y′)转发给其他节点。
(3c)、当所述当前后备流与当前流的源地址和目的地址相同时,更新流信息表,确定不需要对所述流内编码包进行流间编码。
在此过程中,可首先判断当前后备流的源地址、目的地址和流编号是否与当前流相同,若是,则更新当前流中的组编号,不启动流间编码;若否,则在查找完所有的后备流后,在流信息表中添加一个新的流记录,更新流编号和分组号,不启动流间编码。
当确定不需要启动流间编码时,当本节点是当前流的转发者并确定所述流内编码包和既有缓存包矩阵线性无关时,对所述流内编码包进行流内编码,并机会性发送;否则丢弃所述流内编码包。
其中,在进行机会性发送的过程中,将各节点的机会值定义为Oppi,计算方法如下:
用i<j表示节点i距目的节点比节点j近,或者说节点i的ETX(期望发送次数)小于节点j。Tij表示从源节点s传输一个包到目的节点d的过程中,节点i机会性传输的总次数,∑i>j Ti(1-pij)表示节点j从上游节点接收到的包的总数。对于每个节点j从节点i接收到的包,只有在没有任何一个节点j的下一跳节点接收到该包的时候才需要转发它。这种可能性为∏k<j pik。1-∏k<j pjk表示j发送一个包,至少有一个下一跳节点收到的可能性。Cj表示节点j机会性发送的包数,则:
C j = &Sigma; i > j ( T j ( 1 - p ij ) &Pi; k < j p jk ) ,
T j = C j 1 - &Pi; k < j p jk ,
Opp j = T j &Sigma; i > j T i ( 1 - p ij ) ,
其中,对源节点,C=1,对于目的节点,C=0。Ci和Ti可以通过迭代算法在O(n2)时间内完成,进而求得Oppi
由本发明实施例一的技术方案可以看出,当中间节点接收到的编码数据包为流间编码包时,所述中间节点将对所述编码数据包进行转发处理;而当接收到的编码数据包为流内编码包时,所述中间节点将根据具体情况将所述流内编码包进行流间编码操作。从而,利用本发明实施例的技术方案不仅能够利用内容关联性所带来的增益,而且能够利用协同转发带来的增益,从而提高了系统的吞吐量。
而当目的节点接收编码数据包后,当所述编码数据包为流间编码包时,所述目的节点解码所述流间编码包;当所述编码数据包不是流间编码包且满足解码条件时,解码所述编码数据包。其中,所述解码条件包括:所述编码数据包和既有缓存包矩阵线性无关且满足解码必要条件。
在目的节点进行解码操作的时候,可参照如下原理进行。
解码过程就是目的节点根据收到的m个线性组合(g1,y1),…,(gm,ym)求出相应的(x1,…,xn),这是一个线性方程组求解的问题(即(g1,…,gm)构成的编码矩阵的求逆)。要实现该线性方程组的求解,目的节点收到的线性组合的个数m不仅要大于等于原始数据包的个数n,还必须线性无关。
把目的节点收到的线性无关的组合的数目看成分组的秩,记为k,当k与n相等时,目的节点就能够将n个数据包全部解码。具体的线性方程组求解采用高斯消元法,节点每收到一个新的线性无关的组合,k加1,同时进行高斯消元,使线性方程组对角化。该方法的好处是不用等到k等于n就可以得到部分原始数据包。采用高斯消元法在没有舍入误差影响的条件下经过有限步的四则运算求得线性代数方程的精确解。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
如图5所示,本发明实施例三提供了一种编码路由节点,包括:接收单元51,流间编码包处理单元53以及流内编码包处理单元54。
其中,所述接收单元51,用于接收编码数据包;所述流间编码包处理单元53,用于缓存或根据缓存的所述编码数据包,当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;所述流内编码包处理单元54,用于缓存或根据缓存的所述编码数据包,当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
此外,如图6所示,本发明实施例三所述编码路由节点还可包括:编码包类型判断单元52,用于判断所述接收到的编码数据包的类型。
其中,所述接收单元51可包括:发送方式判断模块,用于判断所述编码数据包的发送方式是本地发送还是广播发送;编码数据包处理模块,用于在所述发送方式判断模块判断得出所述编码数据包的发送方式是本地发送时,若所述编码数据包与既有缓存包矩阵线性无关时,缓存所述编码数据包,否则丢弃所述编码数据包;接收模块,用于在所述发送方式判断模块判断得出所述编码数据包的发送方式是广播发送时,接收所述编码数据包。
所述流间编码包处理单元53可包括:
第一判断模块,用于判断所述编码包的发送方式;
第二判断模块,用于判断所述本节点在接收类表中的位置;
第一处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为广播发送、第二判断模块判断本节点在接收列表中且为所述接收列表的第一项时,修改所述流间编码包的MCR头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
第二处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为广播发送、第二判断模块判断本节点在接收列表中但不为所述接收列表的第一项时,修改所述流间编码包的MCR头中的源地址和目的地址字段以及所述流间编码包的MCR头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
第三处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为单播发送时,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。
所述流内编码包处理单元54可包括:第一查找模块,用于查找交互流表;第一确定模块,用于当所述交互流表中存储有与当前流的源地址和目的地址相反的流的信息,则确定需要对所述流内编码包进行流间编码;编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
或者所述流内编码包处理单元54还可包括:第二查找模块,用于查找交互流表,并当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,在流信息表中查找各后备流;第二确定模块,用于若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
其中,所述编码操作模块包括:
编码向量构造子模块,用于获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;
地址获取子模块,用于根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;
转发列表构造子模块,用于构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点;
数据包发送子模块,用于将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
由上述技术方案可以看出,利用本发明实施例的技术方案不仅能够利用内容关联性所带来的增益,而且能够利用协同转发带来的增益,从而提高了系统的吞吐量。
如图7所示,本发明实施例四编码路由系统,包括:源节点61,至少一个中间节点62和目的节点63。其中,
所述源节点61,用于向所述中间节点发送编码数据包。所述中间节点62,用于接收由所述源节点发送的编码数据包;当所述编码数据包为流间编码包时,将所述流间编码包发送给目的节点;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给目的节点。所述目的节点63,用于接收由所述中点节点发送的编码数据包,并判断所述接收到的编码数据包的类型,当所述编码数据包为流间编码包时,解码所述流间编码包;当所述编码数据包不是流间编码包且满足解码条件时,解码所述编码数据包。
综上所述,由本发明实施例的技术方案可以看出,当中间节点接收到的编码数据包为流间编码包时,所述中间节点将对所述编码数据包进行转发处理;而当接收到的编码数据包为流内编码包时,所述中间节点将根据具体情况将所述流内编码包进行流间编码操作。从而,利用本发明实施例的技术方案不仅能够利用内容关联性所带来的增益,而且能够利用协同转发带来的增益,从而提高了系统的吞吐量。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (11)

1.一种编码路由方法,其特征在于,包括:
接收编码数据包;
当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;
当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
当所述编码数据包为流内编码包时,确定需要对所述流内编码包进行流间编码,包括:
查找交互流表,当所述交互流表中有与当前流的源地址和目的地址相反的流的信息时,则确定需要对所述流内编码包进行流间编码;或者
查找交互流表,当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,则在流信息表中查找各后备流;若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;
当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由包括:
获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;
根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;
构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点。
2.根据权利要求1所述的方法,其特征在于,所述编码数据包包括:媒体接入控制层头,网状编码和路由层头,IP头,编码数据和媒体接入控制层尾;
在所述接收编码数据包后,所述方法还包括:
根据所述编码数据包的网状编码和路由层头,确定所述编码数据包的类型。
3.根据权利要求1所述的方法,其特征在于,当所述编码数据包是由源节点发送的时,所述编码数据包为流内编码包。
4.根据权利要求1所述的方法,其特征在于,所述接收编码数据包包括:
判断所述编码数据包的发送方式是单播发送还是广播发送;
若是单播发送且接收地址为本地射频地址,当所述编码数据包与既有缓存包矩阵线性无关时,接收并缓存所述编码数据包,否则丢弃所述编码数据包;
若是广播发送,则接收所述编码数据包。
5.根据权利要求2所述的方法,其特征在于,
所述网状编码和路由层头包括:包类型字段,源地址字段,流编号字段,分组号字段,编码系数字段,转发节点列表字段。
6.根据权利要求5所述的方法,其特征在于,当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点包括:
当所述流间编码包的发送方式为广播发送时,若本节点在接收列表中且为所述接收列表的第一项,修改所述网状编码和路由层头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
当所述流间编码包的发送方式为广播发送时,若本节点在接收列表中但不为所述接收列表的第一项,修改所述网状编码和路由层头中的源地址和目的地址字段以及所述网状编码和路由层头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
当所述流间编码包的发送方式为单播发送时,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。
7.一种编码路由节点,其特征在于,包括:
接收单元,用于接收编码数据包;
流间编码包处理单元,用于当所述编码数据包为流间编码包时,将所述流间编码包发送给下一跳节点;
流内编码包处理单元,用于当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
所述流内编码包处理单元包括:
第一查找模块,用于查找交互流表;
第一确定模块,用于当所述交互流表中存储有与当前流的源地址和目的地址相反的流的信息,则确定需要对所述流内编码包进行流间编码;
编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;或者,
所述流内编码包处理单元包括:
第二查找模块,用于查找交互流表,并当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,在流信息表中查找各后备流;
第二确定模块,用于若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;
编码操作模块,用于对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给下一跳节点;
所述编码操作模块包括:
编码向量构造子模块,用于获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;
地址获取子模块,用于根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;
转发列表构造子模块,用于构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点;
数据包发送子模块,用于将经流间编码路由后的流间编码数据包广播发送给下一跳节点。
8.根据权利要求7所述的编码路由节点,其特征在于,还包括:
编码包类型判断单元,用于判断所述接收到的编码数据包的类型。
9.根据权利要求7所述的编码路由节点,其特征在于,所述接收单元包括:
发送方式判断模块,用于判断所述编码数据包的发送方式是单播发送还是广播发送;
编码数据包处理模块,用于在所述发送方式判断模块判断得出所述编码数据包的发送方式是单播发送且接收地址为本地射频地址时,若所述编码数据包与既有缓存包矩阵线性无关时,缓存所述编码数据包,否则丢弃所述编码数据包;
接收模块,用于在所述发送方式判断模块判断得出所述编码数据包的发送方式是广播发送时,接收所述编码数据包。
10.根据权利要求7所述的编码路由节点,其特征在于,所述流间编码包处理单元包括:
第一判断模块,用于判断所述流间编码包的发送方式;
第二判断模块,用于判断本节点在接收列表中的位置;
第一处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为广播发送、第二判断模块判断本节点在接收列表中且为所述接收列表的第一项时,修改所述流间编码包的网状编码和路由层头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
第二处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为广播发送、第二判断模块判断本节点在接收列表中但不为所述接收列表的第一项时,修改所述流间编码包的网状编码和路由层头中的源地址和目的地址字段以及所述流间编码包的网状编码和路由层头中的转发节点列表字段,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点;
第三处理模块,用于当所述第一判断模块判断所述流间编码包的发送方式为单播发送时,根据目的节点的地址获取接收所述流间编码包的下一跳节点的地址,并将所述流间编码包单播发送给所述下一跳节点。
11.一种编码路由系统,其特征在于,包括:源节点,至少一个中间节点和目的节点;其中,
所述源节点,用于向所述中间节点发送编码数据包;
所述中间节点,用于接收由所述源节点发送的编码数据包;当所述编码数据包为流间编码包时,将所述流间编码包发送给目的节点;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由,并将经流间编码路由后的流间编码数据包广播发送给目的节点;其中,当所述编码数据包为流内编码包时,确定需要对所述流内编码包进行流间编码,包括:查找交互流表,当所述交互流表中有与当前流的源地址和目的地址相反的流的信息时,则确定需要对所述流内编码包进行流间编码;或者,查找交互流表,当所述交互流表中没有与当前流的源地址和目的地址相反的流的信息时,则在流信息表中查找各后备流;若当前后备流与当前流的源地址和目的地址相反时,更新所述交互流表,并确定需要对所述流内编码包进行流间编码;当所述编码数据包为流内编码包且确定需要对所述流内编码包进行流间编码时,对所述流内编码包进行流间编码路由包括:获取当前流和交互流的第一个包,并对所述第一个包进行随机编码,构造编码向量;根据所述当前流目的地址和源地址,分别获得所述当前流和交互流的下一跳节点的地址;构造转发列表,将所述当前流的下一跳节点作为第一个转发节点,将所述交互流的下一跳节点作为第二个转发节点;
所述目的节点,用于接收由所述中间节点发送的编码数据包,并判断所述接收到的编码数据包的类型,当所述编码数据包为流间编码包时,解码所述流间编码包;当所述编码数据包不是流间编码包且满足解码条件时,解码所述编码数据包。
CN2009101195970A 2009-03-17 2009-03-17 编码路由方法、系统以及编码路由节点 Expired - Fee Related CN101841455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101195970A CN101841455B (zh) 2009-03-17 2009-03-17 编码路由方法、系统以及编码路由节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101195970A CN101841455B (zh) 2009-03-17 2009-03-17 编码路由方法、系统以及编码路由节点

Publications (2)

Publication Number Publication Date
CN101841455A CN101841455A (zh) 2010-09-22
CN101841455B true CN101841455B (zh) 2012-08-08

Family

ID=42744592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101195970A Expired - Fee Related CN101841455B (zh) 2009-03-17 2009-03-17 编码路由方法、系统以及编码路由节点

Country Status (1)

Country Link
CN (1) CN101841455B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102487306B (zh) * 2010-12-06 2014-07-16 南京邮电大学 一种无线mesh网络编码方法
CN102970235B (zh) * 2012-12-06 2015-04-08 南京邮电大学 无线网状网络中基于流内和流间网络编码的多播路由方法
CN107094113B (zh) * 2017-04-24 2020-10-30 江苏中科羿链通信技术有限公司 一种无线多跳拓扑网络下的标准移动终端数据转发系统及方法
CN114125937B (zh) * 2022-01-25 2022-06-17 深圳市水务工程检测有限公司 基于无线mesh自组网的输水隧洞病害检测数据实时传输系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068203A (zh) * 2007-06-11 2007-11-07 北京交通大学 一种分群自组路由方法与装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068203A (zh) * 2007-06-11 2007-11-07 北京交通大学 一种分群自组路由方法与装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2008-103896A 2008.05.01

Also Published As

Publication number Publication date
CN101841455A (zh) 2010-09-22

Similar Documents

Publication Publication Date Title
Ahmed et al. VANETCODE: network coding to enhance cooperative downloading in vehicular ad-hoc networks
Ho et al. Network coding: an introduction
KR101446805B1 (ko) 이동 애드 혹 네트워크에서의 그룹 통신 시스템 및 방법
CN101651599B (zh) 多路径无线路由方法及装置
MX2009002505A (es) Transporte de trafico de administracion a traves de una red en malla de salto multiple.
CN101841455B (zh) 编码路由方法、系统以及编码路由节点
CN101754319A (zh) 路由方法、装置及系统
Madhumathy et al. Enabling energy efficient sensory data collection using multiple mobile sink
CN105515728B (zh) 一种基于滑动窗口的网络编码方法
Isufi et al. Advanced flooding-based routing protocols for underwater sensor networks
Rezende et al. The selective use of redundancy for video streaming over Vehicular Ad Hoc Networks
Chen et al. Distributed greedy coding-aware deterministic routing for multi-flow in wireless networks
More et al. Optimization driven Multipath Routing for the video transmission in the VANET
Sagduyu et al. On network coding for stable multicast communication
Sprintson Network coding and its applications in communication networks
Rivera et al. Performance dynamic coding RLNC LoRa on smart cities
Wu et al. A practical network coding and routing scheme based on maximum flow combination
Kumar et al. DDDRC: Decentralised data dissemination in VANET using raptor codes
Vingelmann et al. All-to-all data dissemination with network coding in dynamic MANETs
Mosaarab et al. An enhanced heuristic XoR network coding-based method for high quality video streaming over VANETs
Li et al. Networked distributed source coding
Cui et al. Optimal packet size analysis for intra-flow network coding enabled one hop wireless multicast
Kumar et al. Energy optimization for cooperative multipath routing in MANETs using network coding
Su et al. XOR network coding for data mule delay tolerant networks
Al Agha Network Coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20120808

Termination date: 20150317

EXPY Termination of patent right or utility model