一种无线mesh网络编码方法

文档序号:7767651阅读:422来源:国知局
专利名称:一种无线mesh网络编码方法
技术领域
本发明涉及一种无线mesh网络编码方法,属于网络信息及网络编码技术领域。
背景技术
在传统的网络中,作为中继的节点只能对接收到的信号进行复制、放大和转发,这对于网络资源有时候是一种浪费。2000年Ahlswede提出网络编码概念,即网络节点对接收的信息比特流进行特定操作,如模2和、有限域上的运算等,再发送出去,而不是仅仅复制转发。他们从信息论的角度出发,严格证明了网络编码可以帮助我们达到通信网络的最大容量,从而最大限度地利用网络的现有资源。网络编码的提出从本质上打破了通信网络中传统的信息处理方式,已成为通信网络研究领域中的一个新的研究热点。无线链路的不可靠性和物理层广播特性非常适合使用编码的方法,网络编码在无线网络中的应用可以提高网络的吞吐量,尤其是组播吞吐量,可以减少数据包的传播次数, 降低无线发送能耗。Katti等提出的基于机会的网络编码(COPE)首次研究了网络编码在无线环境中的协议层面上具体实现的问题。COPE协议使用机会监听以及接收报告来获取邻居节点所存储的报文信息。在得到所有邻居节点所存储的报文信息后,每个节点独立的利用本地信息决定哪些数据包需要进行编码以及如何进行编码,以最大化一次传输中所能够发送的报文数量。同时,每一个节点维护一个数据包池,用于存储一段时间T内该节点发送或接收到的数据包。当节点接收到一个由η个原始数据包编码而成的数据包时,该节点就会在数据池中搜寻存储的η-1个原始数据包ID,如果能搜索到,节点就会将这个编码数据包和搜索到的η-1个数据包通过相与运算进行解码,得到所需的数据包;如果搜索不到也就是不能解码时,节点将数据包简单存入数据包池不会送到输出队列中,这一特性决定了 COPE编码算法在一些网络拓扑结构中达不到最大的网络吞吐量。

发明内容
本发明针对现有技术之不足,对COPE编码方法进行改进,提出了一种无线mesh网络编码方法,其技术方案如下一种无线mesh网络编码方法,其特征在于将链路分为与中继节点相连的链路和与目的节点相连的链路两大类,接收侧仅需要在进入中继节点的链路进行解码,进入目标节点的链路路由选择,在判断目的节点的切割等于要交互的节点总数的前提下,构建一个虚拟的组播网络,执行本编码方法在发送侧,每个节点都有一个输出队列,用于存储要前传的数据包,当无线信道有效时,节点从输出队列中取出头原始数据包,并检查头原始数据包能否与队列中的其他原始数据包进行编码,如果没有编码机会,节点就会直接广播该原始数据包而不会等待可匹配的原始数据包到来;如果有编码机会,则将这些原始数据包与后形成编码数据包广播到各邻居节点;节点在广播编码数据包之前,要在每一个数据包插入一个可变长的数据包头, 该数据包头对COPE协议的数据包头进行了改进,对于参与异或的原始数据包,包头中除使用ΝΕΧΤΗ0ΡΕ标识该原始数据包的下一跳之外,还增加DESN标识该个原始数据包的目的节点;当一个节点的MAC指示有发送机会时,该节点从其输出队列的头部中取出数据包,能编码情况下则进行编码,然后向数据包头中增加接收报告和ACK后,进行发送;在接收侧,当一个节点接收到一个邻居节点发来的数据包时,提取该邻居节点所有的ACK,接着提取所有的接收报告并将更新存储邻居节点拥有的数据包的库,根据接收数据包头的DESN标识判断下一跳链路属于“中继节点相连的链路”还是“与目的节点相连的链路”,对进入中继节点的链路进行解码,对进入目标节点的链路进行路由选择,如果本节点不是目标节点,则判断本节点的其他邻居节点是不是该数据包的目的地节点,如果是则直接路由给邻居节点;如果本节点是目标节点,检查这个数据包是否是编码数据包,如果是编码数据包,则本节点就从数据包池中找出相应的参与编码的原始数据包来解码,解码成功后将ACK反馈上一跳节点,并将解码所得的数据包存储;然后本节点检查自己是否是解码所得数据包的最终目的地,如果是,则将数据包存储在网络栈的高层,否则将数据包放在输出队列,以进行下一次的传输,如果本节点不能解码,同样判断本节点的其他邻居节点是不是该数据包的目的地节点,如果是则直接路由给邻居节点。所说每一个编码数据包插入一个可变长的数据包头的方法是如果路由协议有自己的头文件,数据包头就在MAC头和路由头之间,否则就在MAC和IP头之间;数据包头由原始数据包ID、接收报告和异步确认ACK三部分组成,其中原始数据包ID部分用于标识参加编码的原始数据包,接收报告部分用于标识已收到的原始数据包的接收报告,ACK部分用于节点正确接收原始数据包的确认,在数据包头的原始数据包ID部分,使用DESN标识每个原始数据包的目的节点,接收侧通过DESN标识判断自己或者邻居是否是目的节点。本发明的优点及其显著效果在COPE协议中,每个节点对传输媒体进行侦听,获得它的邻居节点的状态信息,决定进行编码的机会,并在本地的FIFO缓存结构内进行编码,然后进行基于机会的路由选择。COPE编码算法易于实现但是存在不足,本发明提出的编码方法对COPE编码算法进行了改进,优化了 COPE网络编码的数据转发机制,能够减少原始数据包传输的次数,有效提高网络编码增益和网络吞吐量,具有很好的实用价值,为网络编码的研究和设计提供了一条新的途径。可广泛应用于各种通信网络中,例如无线mesh网络、Ad hoc网、WLAN等等,


图1为传统路由工作方式示意图;图2为COPE工作方式的拓扑结构图;图3为本发明源节点S广播数据包A到B的编码路由方式示意图;图4为本发明的网络编码方法工作方式示意图;图5为本发明发送侧的执行过程流程图;图6为本发明的数据包头结构图;图7为本发明接收侧的执行过程流程图;图8为3种方式下所需要的平均传输次数比较图;图9为2种编码方式下的编码增益比较图。
具体实施例方式下面结合附图对本发明的技术方案进行详细说明。传统路由工作方式如图1所示,节点1,2各自传输数据包A,B至节点5,4,传统路由方式下传输次数为6。根据COPE编码算法,节点收到编码数据包后,若不能解码,则将数据包简单存入数据包池不会送到输出队列中;若能解码,则直接解码后进行下一步传输。 COPE编码算法工作方式如图2所示,共需要传输次数为5次,编码增益是1. 2,有一定改善, 但是由于忽略了节点3的作用,形成了浪费。本发明针对这个问题对COPE编码算法进行了改进,优化COPE网络编码的数据转发机制。根据无线mesh网络的拓扑结构易知节点4,5的切割为2,考虑节点0编码后,数据经节点3路由选择的条件下,有效利用节点3,可以将其等效为构造的一个虚拟源节点S, 如图3所示,S负责广播数据包A,B至节点4,5的组播编码路由选择方式。本发明的编码工作方式如图4所示,编码次数为4次,从而与COPE算法相比,进一步有效地降低了传输次数,编码增益为1.5。本发明在发送侧,当无线信道有效时,节点就会从输出队列中取出头原始数据包, 并检查头原始数据包能否与队列中的其他原始数据包进行编码。如果能,则将这些原始数据包相与后广播到各邻居节点。如果没有编码机会,节点就会直接广播该原始数据包而不会等待可匹配的原始数据包到来。发送侧的执行过程流程图如图5所示,当一个节点的MAC 指示有发送机会时,该节点从其输出队列的头部中取出数据包,能编码情况下则进行编码, 然后向数据包头中增加接收报告和ACK后,进行发送。此外,为了确保下一跳节点集能够正确解码还原所需的原始数据包,中继节点需要知道其邻居节点已经存储了哪些原始数据包。如果中继节点没有收到邻居节点发来的接收报告,那么在缺乏确定信息的情况下,该节点就会使用路由协议来计算下一跳节点间链路的投递率,并依据投递率来估计下一跳节点存储某原始数据包的可能性,并据此决定是否进行网络编码,以提高下一跳节点集的正确解码概率。假设,某中继节点一次将η个数据包进行相与的编码,并假设第η个数据包的下一跳接收节点监听到其他某一个数据包i的概率为Pi,那么该接收节点能正确解码的概率Pd 等于这节点能监听参与编码的其他n-1个原始数据包的概率Pd = P1XP2X. . . Plrft5现在考虑编码的中间过程,怎样搜索可编码的数据包的问题。假设现在已经将n-1个原始数据包编码在一起,并考虑编码相与第η个原始数据包。这时编码算法就会判断这η个原始数据包的下一跳节点集可解码的概率Pd是否满足大于一个门限值G(—般默认G = 0.8)。如果满足上述的门限值,就意味着下一跳节点集可以正确解码的概率至少是G,从而进行这样的网络编码就可能有较大的网络增益。节点在广播数据包之前,要在每一个数据包插入一个可变长的数据包头,如图 6所示,数据包头(Added Header)就是图中的阴影部分。如果路由协议有自己的头文件,数据包头就在MAC头和路由头之间,否则就在MAC和IP头之间。数据包头由原始数据包的 ID (Packets X0R_ed together),接收报告(Reception Reports)和异步确认 (Acknowledge, ACK)三部分组成。1)原始数据包的 ID (Packets X0R_ed together)第一块主要用于标识参加编码的原始数据包。它的第一部分是ENC0DED_N-UM,用于标识参与编码的原始数据包的数量。接下来就依次列出参与编码的原始数据包的 ID(PKT_ID)和该数据包的下一跳节点(ΝΕΧΤΗ0Ρ)。当某节点接收到一个编码包时,节点就会检查自己是否属于ΝΕΧΤΗ0Ρ列表内,如果属于就会选择解码,得到所需的数据包。2)接收 艮告(Reception Reports)第二块是由接收报告组成。它的第一部分是REP0RT_NUM,用于表示已收到的原始数据包的接收报告的数量。紧接着是SRC_IP,用于表示每一个接收报告的源地址。最后是 LAST_PKT和BIT MAP,分别表示从对应SRC_IP这个源地址收到的最后一个数据包的IP序列号,以及之前收到的数据包。3)异步确认(Acknowledge,ACK)接收节点正确接收后需要通过ACK进行确认。为了确保ACK能以低消耗方式传输,通常使用累积ACK。一个节点对邻居节点维系一个16bit的计数器,这个计数器叫做 Neighborjeqnc^Counter。当该节点向某个邻居节点发送一个数据包时,对应的计数器就会计数,并将计数后的值赋给该数据包作为本地序列号,Local_PKT_SEQ_NUM。一对邻居节点使用该序列号来区分不同的数据包。在这个基础上使用累积ACK,每一个编码数据包都包含一个ACK头。ACK块的第一部分是ACK条目的数目,接下来就是数据包的本地序列号。 每一个ACK条目的第一部分是一个邻居节点的MAC地址,接下来是一个指针告诉邻居节点累积ACK在哪里停止以及一个指示之前收到和丢失的数据包的表。本发明接收侧的执行过程流程图如图7所示,当一个节点接收到一个邻居节点发来的数据包时,首先提取该邻居节点所有的ACK,接着提取所有的接收报告并将更新存储邻居节点拥有的数据包的库。接下来的处理就要取决于本节点是否是目标节点,根据接收数据包头的DESN标识判断如果本节点不是目标节点,则判断本节点的其他邻居节点是不是该数据包的目的地节点,如果是则直接路由给邻居节点;如果本节点是目标节点,就会检查这个数据包是否是编码数据包,如果是编码数据包,则本节点就会试图从数据包池中找出相应的参与编码的原始数据包来解码,解码成功后将ACK反馈上一跳节点,并将解码所得的数据包存储。接下来本节点就会检查自己是否是解码所得数据包的最终目的地。如果是,则将数据包存储在网络栈的高层,否则的话将数据包放在输出队列,以进行下一次的传输。如果本节点不能解码,同样判断本节点的其他邻居节点是不是该数据包的目的地节点, 如果是则直接路由给邻居节点。三种方式平均传输一个数据所需的传输次数性能比较如图8所示,图中曲线a为 COPE编码方式;b为本发明提出的编码方式;(为直接路由方式,显然本发明(曲线b)传输数据的效率最高。图9给出了方案的编码增益性能,c/b表示直接路由选择所需要的平均传输次数与采用方案的编码方式后所需要的平均传输次数之比,即本发明的网络编码新方式的编码增益。同理c/a表示采用COPE编码方式下的编码增益。结果表明,本发明在编码增益指标上有明显改善,提高了网络吞吐量。本发明的本质是将链路分为与中继节点相连的链路和与目的节点相连的链路两大类,接收侧仅需要在进入中继节点的链路进行解码,进入目标节点的链路路由选择。在接收侧,对接收数据包进行分析,如果数据包的目的节点是接收节点的邻居,直接路由传给目的节点,通过这种机制可以有效提高网络编码的性能。
权利要求
1.一种无线mesh网络编码方法,其特征在于将链路分为与中继节点相连的链路和与目的节点相连的链路两大类,接收侧仅需要在进入中继节点的链路进行解码,进入目标节点的链路路由选择,在判断目的节点的切割等于要交互的节点总数的前提下,构建一个虚拟的组播网络,执行本编码方法在发送侧,每个节点都有一个输出队列,用于存储要前传的数据包,当无线信道有效时,节点从输出队列中取出头原始数据包,并检查头原始数据包能否与队列中的其他原始数据包进行编码,如果没有编码机会,节点就会直接广播该原始数据包而不会等待可匹配的原始数据包到来;如果有编码机会,则将这些原始数据包与后形成编码数据包广播到各邻居节点;节点在广播编码数据包之前,要在每一个数据包插入一个可变长的数据包头,该数据包头对COPE协议的数据包头进行了改进,对于参与异或的原始数据包,包头中除使用 ΝΕΧΤΗ0ΡΕ标识该原始数据包的下一跳之外,还增加DESN标识该个原始数据包的目的节点; 当一个节点的MAC指示有发送机会时,该节点从其输出队列的头部中取出数据包,能编码情况下则进行编码,然后向数据包头中增加接收报告和ACK后,进行发送;在接收侧,当一个节点接收到一个邻居节点发来的数据包时,提取该邻居节点所有的 ACK,接着提取所有的接收报告并将更新存储邻居节点拥有的数据包的库,根据接收数据包头的DESN标识判断下一跳链路属于“中继节点相连的链路”还是“与目的节点相连的链路”,对进入中继节点的链路进行解码,对进入目标节点的链路进行路由选择,如果本节点不是目标节点,则判断本节点的其他邻居节点是不是该数据包的目的地节点,如果是则直接路由给邻居节点;如果本节点是目标节点,检查这个数据包是否是编码数据包,如果是编码数据包,则本节点就从数据包池中找出相应的参与编码的原始数据包来解码,解码成功后将ACK反馈上一跳节点,并将解码所得的数据包存储;然后本节点检查自己是否是解码所得数据包的最终目的地,如果是,则将数据包存储在网络栈的高层,否则将数据包放在输出队列,以进行下一次的传输,如果本节点不能解码,同样判断本节点的其他邻居节点是不是该数据包的目的地节点,如果是则直接路由给邻居节点。
2.根据权利要求1所述的无线mesh网络编码方法,其特征在于所说每一个编码数据包插入一个可变长的数据包头的方法是如果路由协议有自己的头文件,数据包头就在 MAC头和路由头之间,否则就在MAC和IP头之间;数据包头由原始数据包ID、接收报告和异步确认ACK三部分组成,其中原始数据包ID部分用于标识参加编码的原始数据包,接收报告部分用于标识已收到的原始数据包的接收报告,ACK部分用于节点正确接收原始数据包的确认,在数据包头的原始数据包ID部分,使用DESN标识每个原始数据包的目的节点,接收侧通过DESN标识判断自己或者邻居是否是目的节点。
全文摘要
本发明公开了一种无线mesh网络编码方法,解决了现有COPE编码算法编码增益低的问题。在本方法中,对于参与异或的原始数据包,在生成的数据包的包头中加入DESN标识,用来标识原始数据包的目的节点,接收侧通过DESN标识判断自己或者邻居是否是目的节点,执行不同的策略,接收侧仅需要在进入中继节点的链路进行解码,进入目标节点的链路路由选择,通过采用这种机制提高网络编码的性能。本发明可以应用与各种通信网络中,能够减少原始数据包传输的次数,有效提高网络编码增益和网络吞吐量,具有很好的实用价值,为网络编码的研究和设计提供一条新的途径。
文档编号H04L1/18GK102487306SQ20101057427
公开日2012年6月6日 申请日期2010年12月6日 优先权日2010年12月6日
发明者孔媛媛, 杨震, 梅中辉, 邓文君 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1