CN103906165B - 一种基于编码感知的在线机会式路由方法 - Google Patents

一种基于编码感知的在线机会式路由方法 Download PDF

Info

Publication number
CN103906165B
CN103906165B CN201410114029.2A CN201410114029A CN103906165B CN 103906165 B CN103906165 B CN 103906165B CN 201410114029 A CN201410114029 A CN 201410114029A CN 103906165 B CN103906165 B CN 103906165B
Authority
CN
China
Prior art keywords
node
packet
stream
coding
bag
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
CN201410114029.2A
Other languages
English (en)
Other versions
CN103906165A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201410114029.2A priority Critical patent/CN103906165B/zh
Publication of CN103906165A publication Critical patent/CN103906165A/zh
Application granted granted Critical
Publication of CN103906165B publication Critical patent/CN103906165B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于编码感知的在线机会式路由方法,其实现步骤包括:在网络中进行编码感知路由发现,根据编码条件寻找进行流间网络编码的节点和路径;源节点根据目的节点的反馈来滑动编码窗口并对窗口内的数据包进行在线网络编码,中间节点根据编码机会对接收到的数据包做编译码操作,生成相应的流内包或混合包并发送到目的节点,目的节点利用高斯约当消去法对接收到的数据包化简并解码出原始数据包。本发明通过采用编码感知算法减少传输次数,并利用在线机会式路由算法对抗质量较差链路,可以有效降低传输时延,提高网路吞吐量和可靠性。

Description

一种基于编码感知的在线机会式路由方法
技术领域
本发明属于无线网络领域,涉及一种路由方法,特别是无线网络中一种基于编码感知的在线机会式路由方法。
背景技术
随着越来越多的移动产品的出现,人们对无线网络的依赖不断增加。然而无线网络中的节点具有移动性且信道不可靠,因此需要设计一种高效可靠的路由方法来保证无线网络中数据传输的可靠性。
网络编码是一种融合了编码和路由的信息交换技术,它通过在网络的中间节点对接收到的信息进行处理并转发给下游节点,改变了传统路由中节点只对接收到的数据进行存储转发操作的工作方式。研究表明,网络编码技术可以在很大程度上提高网络的吞吐量和可靠性。
根据编码是否发生在同一个数据流之间可以将网络编码分为流内网络编码和流间网络编码。
编码感知路由算法是流间网络编码方法中的一种,它通过主动选择一条或多条能对不同数据流进行网络编码的路径进行传输,可以减少传输次数,提高网络吞吐量。但是,编码感知路由算法需要利用ACK信号和重传确保下一跳节点收到编码包,从而使目的节点成功译码。当无线网络中链路丢包率较高时,重传和ACK信号会浪费大量的带宽资源,同时也会增大传输时延。
在线机会式路由算法是流内网络编码方法中的一种,不同于传统的流内网络编码方法—在MAC层独立的机会路由(MAC-independence OpportunisticRouting,MORE)算法中,源节点根据目的节点的反馈从编码窗口中移除已经“看到”的数据包,从而无需等到同一段的数据包全部译码就可以发送下一段的数据,能够减小传输时延;另外,在线机会式路由算法无需事先确定固定的转发节点集,而是通过将数据广播给多个转发节点以避免复杂的调度,同时转发节点可以根据一定的策略自主智能地选择下一跳节点,进而有效地利用了无线网络的广播环境,即使链路质量较差,该算法也能以很高的概率完成数据传输的任务,提高传输效率。但是,在线机会式路由算法在某些节点需要承载多条数据流的转发任务时,易造成链路拥塞和调度困难,从而导致传输性能下降。
发明内容
针对上述问题,本发明提出了一种基于编码感知的在线机会式路由方法,通过编码感知(流间网络编码)减少传输次数,同时利用在线机会式路由方法(流内网络编码在)对抗质量较差的链路并提高传输效率,有效地结合了流内网络编码和流间网络编码的优点,可以有效提高网络吞吐量并降低传输时延。
为实现上述目的,本发明所述的一种基于编码感知的在线机会式路由方法,包括如下步骤:
(1)在网络中进行编码感知路由发现,根据编码条件寻找进行流间网络编码的节点和路径,并在这些路径上的编码节点对来自不同流的数据进行网络编码;
编码机会定义如下:当数据流f1,f2,…,fn在节点c相交时,若节点c是编码节点(即节点c存在编码机会),则任意两条数据流fk(k=1,2,…,n)和fj(j=1,2,…,n,j≠k)满足以下条件1)或条件2)。
条件1):存在节点a,b,满足
a∈D(c,fk),a∈U(c,fj)∩b∈D(c,fj),b∈U(c,fk)
条件2):存在节点a1,a2,b1,b2,满足
a1∈D(c,fk),a1∈N(b1),b1∈U(c,fj)∩
b2∈D(c,fj),b2∈N(b1),a2∈U(c,fk)
其中a1,a2∈fk;b1,b2∈fj
其中,N(a)表示节点a的一跳邻居节点集;a∈f表示节点a在数据流f上;U(a,f)表示节点a在数据流f上的所有上游节点的集合;D(a,f)表示节点a在数据流f上的所有下游节点的集合;
(2)源节点准备发送的数据包称作原始数据包,源节点根据目的节点的反馈来滑动编码窗口,对窗口内的数据包进行在线网络编码,添加包头生成流内包并广播给其他节点;
2a)确定编码窗口W以及滑动步长n的大小;
2b)根据目的节点反馈的希望发送的下一个数据包的序列号s,判断是否滑动编码窗口,当l+n<=s时,编码窗口向前滑动n个大小,否则不滑动,其中,当前编码窗口的起始序列号为l,即源节点对第l个到第l+W-1个原始数据包进行编码;
2c)对当前滑动窗口内的原始数据包进行随机线性网络编码并添加包头信息生成流内包,该包头信息包括数据包类型、源节点地址和目的节点地址、数据流ID、编码系数、起始序列号、编码窗口的大小、转发节点列表:
其中Ej是序列号为j的原始数据包,αj是从有限域Fq上随机选择的网络编码系数;
(3)中间节点根据编码机会对接收到的数据包做编译码操作,生成相应的流内包并发送到目的节点,或者将不同数据流的流内包进行流间网络编码后生成相应的混合包并发送到目的节点;其中,将不同数据流的流内包进行流间网络编码后得到的数据包称作混合包;混合包的头部包含三个部分,第一部分指明数据包类型;第二部分指出参与流间网络编码的数据包和它们的下一跳节点集,包括参与编码包中流内包的数目、编码包的源地址、编码包的目的地址、流内网络编码中数据包的最小序列号、相应编码窗口的大小、编码包应该被转发的下一跳节点集;第三部分为接收报告,包括接收报告的个数、每个报告的源地址、从源节点接收到的最新数据包的IP序列号以及最近接收到的数据包的位图;
3a)根据接收到的数据包头中的下一跳节点集信息,判断自己是否在转发节点列表中,不是的话丢弃该数据包,否则接收此数据包;
3b)根据数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
3ba)如果数据包为混合包,则判断是否可以译码该混合包,如果不能译码,则将此数据包直接存储转发给下一跳节点;
3bb)如果可以译码,则将此混合包解码并分离出译码所需数据流的流内包;
3c)如果接收到的数据包是流内包,将流内包中的编码向量和中间节点缓存中的编码向量矩阵组成一个临时矩阵,如果临时矩阵的秩和原编码矩阵的秩相等,则该数据包和中间结点缓存中已有的数据包线性相关,否则不相关;中间节点判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
3d)对中间节点缓存中的数据包做随机线性网络编码并添加包头信息生成流内包;
3e)根据编码条件判断节点是否可以进行流间网络编码;
3ea)如果满足流间网络编码条件,则对来自不同流的数据包进行编码并添加包头信息,生成混合包并转发给下一跳节点;
3eb)如果不满足流间网络编码条件,则将此流内包广播出去;
(4)目的节点利用高斯-约当消去法对接收到的流内包和混合包化简并解码出原始数据包:
4a)根据接收到的数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
4b)如果是混合包,则利用缓存中其余数据流的信息将该混合包解码,分离出译码所需数据流的流内包;
4c)如果是流内包,包括从混合包中分离出的流内包,判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
4d)对目的节点缓存中的编码向量采用高斯-约当消元法进行化简,编码矩阵的秩即为目的节点“看到”的包的最大序列号s,目的节点希望下次接收到的原始数据包的最小序列号为s+1;
其中目的节点“看到”一个原始包pk,则意味着目的节点中有足够多的编码包信息可以得到如下的线性组合:
pk+q
其中,q代表序列号大于k的原始包的线性组合;
4e)沿着最短路径向源节点反馈希望下次接收到的原始数据包的最小序列号s+1;
4f)如果目的端的接收矩阵满秩,则利用简单的矩阵求逆即可进行解码:
其中P1,…,Pn为原始数据包,X1,…,Xn为编码数据包,αi=(αi1i2,...,αin)为编码向量。
所述的编码感知路由发现,包括如下步骤:
1a)源节点发送一条路由请求消息,路由请求消息中包含源节点的一跳邻居节点集以及经过该节点的路径信息;
1b)当中间节点接收到路由请求消息时,它将首先检查是否已经收过该路由请求消息,如果是,则丢弃该请求消息以避免形成环路;如果不是,则节点将进行以下工作:
1ba)暂时储存包含“可进行监听节点”新路径信息的路由请求消息,即节点储存上游节点传输时可以执行机会式监听的节点列表;
1bb)更新“可进行监听节点”信息,即节点将它的一跳邻居节点信息附加到路由请求消息上;
1bc)将节点添加到该数据流经过的路径上;
1bd)发送该路由请求消息;
1c)当路由请求消息被目的节点接收到时,目的节点将发送路由应答消息,路由应答消息已经包含了所需的路径信息;
1d)当中间节点接收到一条路由应答消息时,它会比较路由应答消息中包含的上游路径和之前暂时储存的路由请求消息中包含的路径;如果有相符的,节点就可以获得新路径信息和“可进行监听节点”监听信息,每个节点都会保存所有流经自身的数据流的上述两个信息,当有新的数据流经过节点时,节点可以利用以上信息判断新的流是否可以和已经存在的数据流进行编码,如果满足编码条件,则节点将在路由应答消息中把该链路标记为“可以编码”;
1e)当源节点收到路由应答消息后,源节点将根据潜在的流间网络编码机会选择路径并开始发送数据包;
1f)当第一个数据包到达中间节点后,该节点将保存所选择的新路径信息和“可进行监听节点”监听信息,同时丢弃之前暂时保存的其余信息。
本发明与现有的技术相比具有以下优点:
1、本发明采用的编码感知路由算法通过主动寻找进行流间网络编码的节点和路径,并在相应中间节点对来自不同流的数据包进行网络编码,减少了数据传输次数,提高了网络吞吐量;
2、本发明采用的在线机会式路由算法可以有效对抗较差质量的链路,保证了传输的可靠性。
3、本发明采用在线网络编码,可以及时发送对目的节点译码有用的数据包,降低了传输时延。
附图说明
图1为本发明的总流程图;
图2为本发明所述的源节点流程图;
图3为本发明所述的流内包头格式示意图;
图4为本发明所述的混合包头格式示意图;
图5为本发明所述的中间节点流程图;
图6为本发明所述的目的节点流程图;
图7为数据流个数从1到10变化时不同方法的吞吐量性能对比仿真图;
图8为链路失败率从0.02到0.2变化时不同方法的吞吐量性能对比仿真图;
图9为链路失败率从0.02到0.2变化时不同方法的时延性能对比仿真图;
具体实施方式
以下参照附图对本发明进行详细描述:
参照图1,本发明的一种基于编码感知的在线机会式路由方法,包括以下步骤:
步骤1:在网络中进行编码感知路由发现,根据编码条件寻找进行流间网络编码的节点和路径,并在这些路径上的编码节点对来自不同流的数据包进行网络编码;
1a)源节点发送一条路由请求消息,路由请求消息中包含源节点的一跳邻居节点集以及经过该节点的路径信息;
1b)当中间节点接收到路由请求消息时,它将首先检查是否已经收过该路由请求消息,如果是,则丢弃该请求消息以避免形成环路,如果不是,则节点将进行以下工作:
1ba)暂时储存包含“可进行监听节点”新路径信息的路由请求消息,即节点储存上游节点传输时可以执行机会式监听的节点列表;
1bb)更新“可进行监听节点”信息,即节点将它的一跳邻居节点信息附加到路由请求消息上;
1bc)将节点添加到该数据流经过的路径上;
1bd)发送该路由请求消息;
1c)当路由请求消息被目的节点接收到时,目的节点将发送路由应答消息,路由应答消息已经包含了所需的路径信息;
1d)当中间节点接收到一条路由应答消息时,它会比较路由应答消息中包含的上游路径和之前暂时储存的路由请求消息中包含的路径;如果有相符的,节点就可以获得新路径信息和“可进行监听节点”监听信息,每个节点都会保存所有流经自身的数据流的上述两个信息,当有新的数据流经过节点时,节点可以利用以上信息判断新的流是否可以和已经存在的数据流进行编码,如果满足编码条件,则节点将在路由应答消息中把该链路标记为“可以编码”;
1e)当源节点收到路由应答消息后,源节点将根据潜在的流间网络编码机会选择路径并开始发送数据包;
1f)当第一个数据包到达中间节点后,该节点将保存所选择的新路径信息和“可进行监听节点”监听信息,同时丢弃之前暂时保存的其余信息。
步骤2:源节点准备发送的数据包称作原始数据包,源节点根据目的节点的反馈来滑动编码窗口,对窗口内的数据包进行在线网络编码,添加包头生成流内包并广播给其他节点。
参照图2,本步骤的具体实现如下:
2a)确定编码窗口W以及滑动步长n的大小(n一般取W/2);
2b)根据目的节点反馈的希望发送的下一个数据包的序列号s,判断是否滑动编码窗口,当l+n<=s时,编码窗口向前滑动n个大小,否则不滑动,其中,当前编码窗口的起始序列号为l;
2c)对当前滑动窗口内的原始数据包进行随机线性网络编码并添加包头信息生成流内包,该包头信息包括数据包类型、源节点地址和目的节点地址、数据流ID、编码系数、起始序列号、编码窗口的大小、转发节点列表,流内包的包头格式如图3所示。
其中Ej是序列号为j的原始数据包,αj是从有限域Fq上随机选择的网络编码系数,x是经过线性网络编码后生成的数据包。
步骤3:中间节点根据编码机会对接收到的数据包进行编译码操作,生成相应的流内包并发送到目的节点,或者将不同数据流的流内包进行流间网络编码后生成相应的混合包并发送到目的节点;
混合包的包头格式如图4所示。混合包的包头信息中包含三个部分;第一部分指明数据包类型;第二部分指出参与流间网络编码的数据包和它们的下一跳节点集,其中,“编码包数目”代表参与流间编码的流内包的数目,“源地址”是编码包的源地址,“目的地址”是编码包的目的地址,“编码包起始序号”表示流内网络编码中数据包的最小序列号,“编码长度”代表相应编码窗口的大小,“下一跳节点”表示编码包应该被转发的下一跳节点集;第三部分给出接收报告,包括接收报告的个数,每个报告给出了源地址、从源节点接收到的最新数据包的IP序列号以及最近接收到的数据包的位图。
参照图5,本步骤的具体实现如下:
3a)根据接收到的数据包头中的下一跳节点集信息,中间节点判断自己是否在转发节点列表中,如果不是,丢弃该数据包,否则接收此数据包;
3b)根据数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
3ba)如果数据包为混合包,则判断是否可以译码该混合包,如果不能译码,则将此数据包直接存储转发给下一跳节点;
3bb)如果可以译码,则将此混合包解码并分离出译码所需数据流的流内包;
3c)如果接收到的数据包是流内包,中间节点判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
3d)对缓存中的数据包做随机线性网络编码并添加包头信息生成流内包;
3e)根据编码条件判断节点是否可以进行流间网络编码;
3ea)如果满足流间网络编码条件,则对来自不同流的数据包进行编码并添加包头信息,生成混合包并转发给下一跳节点;
3eb)如果不满足流间网络编码条件,则将此流内包广播出去。
步骤4:目的节点利用高斯-约当消去法对接收到的流内包和混合包进行化简并解码出原始数据包。
参照图6,本步骤的具体实现如下:
4a)根据接收到的数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
4b)如果是混合包,则利用缓存中其余数据流的信息将该混合包解码,并分离出译码所需数据流的流内包;
4c)如果是流内包,包括从混合包中分离出的流内包,则判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
4d)对目的节点缓存中的编码向量采用高斯-约当消元法进行化简,编码矩阵的秩即为目的节点“看到”的包的最大序列号s,目的节点希望下次接收到的原始数据包的最小序列号为s+1;
4e)目的节点沿着最短路径向源节点反馈下次希望接收到的原始数据包的最小序列号s+1;
4f)如果目的端的接收矩阵满秩,则利用简单的矩阵求逆即可进行解码:
其中P1,…,Pn为原始数据包,X1,…,Xn为编码数据包,αi=(αi1i2,...,αin)为编码向量。
本发明的效果可以通过仿真结果进一步说明:
1、实验条件和内容:
本实施例在Matlab语言环境下仿真实现,仿真拓扑是一个5×5的网络拓扑,节点间的成功传输概率根据距离大小随机产生,网络编码的有限域为28,数据包大小为1024byte,数据包传输一次用时0.1s。
2、仿真内容及结果:
A.比较网络中有多条数据流时,流内和流间网络编码方法的吞吐量性能,仿真结果如图7所示。
在网络中随机选择源节点和目的节点,比较有多条流同时传输时,传统的流内网络编码方法MORE和基于机会的网络编码方法(An OpportunisticNetworkCodingMechanism,COPE)以及本发明方法的吞吐量性能。
由图7可以看到,随着流数目的增多,MORE方法的吞吐量呈下降趋势。这是因为该方法属于流内网络编码方法,它没有考虑数据流之间的调度,当流的数目增多时,流会在网络中产生拥塞,即当中间节点接收到来自多条流的数据包时,它们无法决定转发哪条数据流的数据包,进而导致有的目的节点可能要过很久才能接收到所需数据包。而COPE方法和本发明方法的吞吐量则随着网络中数据流条数的增加呈上升趋势。这是因为随着流数目的增多,流间网络编码机会也随之增加,可以减少网络传输次数并提高吞吐量。另一方面,本发明方法的吞吐量性能一直优于其它方法,这是因为该方法不仅考虑了流间网络编码机会,也有效利用了流内机会式网络编码,所以,每次节点转发时可以尽力地将数据包转发出去,从而进一步减少了转发次数,提高了网络吞吐量。
图7表明,流内网络编码方法并不适合网络中存在多条传输流的场景,而流间网络编码方法在该场景下可以有效提高网络传输性能。同时,本发明方法的性能优于传统的流间网络编码方法COPE。
B.链路失败率变化时,不同流间网络编码方法的吞吐量性能,仿真结果如图8所示。
流内网络编码方法并不适合网络中存在多条传输流的场景,所以本次仅比较网络中有两条数据流时,链路失败率在0.02~0.2的情况下,不同流间网络编码方法即COPE方法以及本发明方法的吞吐量性能。
由图8可以看到随着链路失败率的增大,COPE方法和本发明方法的吞吐量都有所下降,但本发明的吞吐量性能始终优于COPE方法的吞吐量。这是因为链路失败率的增大会导致网络中传输一个包所需要的传输次数变多,即传输时间变长,从而造成网络吞吐量的下降。此外,随着链路失败率的增大,流间网络编码机会变小,也将导致网络吞吐量的下降。另一方面,由于本发明方法采用了机会式路由和流内网络编码,即传输数据包的上一跳节点将机会式地选择转发概率更高的下一跳节点,因此,可以提高数据包的成功传输概率,即网络中成功传输数据包的次数会比COPE方法多,所以本发明方法较COPE方法吞吐量性能更优。
图8表明,本发明方法可以在网络中获得更高的吞吐量。
C.链路丢包率变化时,不同流间网络编码方法的时延性能,仿真结果如图9所示。
从图9可以看出随着链路失败率的提高,两种方法的时延都在增加,但本发明方法的时延比COPE方法增加的缓慢,这是因为本发明方法有效利用了无线网络的广播环境,能够利用潜在的传输机会,更快地向目的节点转发有用编码包,所以本发明方法的时延性能更好。
图9表明利用本发明方法可以在网络中实现更低的传输时延,提高传输效率。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,仍属于本发明技术方案的范围内。

Claims (1)

1.一种基于编码感知的在线机会式路由方法,其特征在于,包括如下步骤:
(1)在网络中进行编码感知路由发现,根据编码条件寻找进行流间网络编码的节点和路径,并在这些路径上的编码节点对来自不同流的数据进行网络编码;
所述步骤(1)编码条件中的编码机会定义如下:
当数据流f1,f2,…,fn在节点c相交时,若节点c是编码节点(即节点c存在编码机会),则任意两条数据流fk(k=1,2,…,n)和fj(j=1,2,…,n,j≠k)满足以下条件1)或条件2),
条件1):存在节点a,b满足
a∈D(c,fk),a∈U(c,fj)∩b∈D(c,fj),b∈U(c,fk)
条件2):存在节点a1,a2,b1,b2满足
a1∈D(c,fk),a1∈N(b1),b1∈U(c,fj)∩
b2∈D(c,fj),b2∈N(a2),a2∈U(c,fk)
其中a1,a2∈fk;b1,b2∈fj,N(a)表示节点a的一跳邻居节点集;a∈f表示节点a在数据流f上;U(a,f)表示节点a在数据流f上的所有上游节点的集合;D(a,f)表示节点a在数据流f上的所有下游节点的集合;
其步骤是:
1a)源节点发送一条路由请求消息,路由请求消息中包含源节点的一跳邻居节点集以及经过该节点的路径信息;
1b)当中间节点接收到路由请求消息时,它将首先检查是否已经收过该路由请求消息,如果是,则丢弃该请求消息以避免形成环路;如果不是,则节点将进行以下工作:
1ba)暂时储存包含“可进行监听节点”新路径信息的路由请求消息,即节点储存上游节点传输时可以执行机会式监听的节点列表;
1bb)更新“可进行监听节点”信息,节点将它的一跳邻居节点信息附加到路由请求消息上;
1bc)将节点添加到该数据流经过的路径上;
1bd)发送该路由请求消息;
1c)当路由请求消息被目的节点接收到时,目的节点将发送路由应答消息,路由应答消息已经包含了所需的路径信息;
1d)当中间节点接收到一条路由应答消息时,它会比较路由应答消息中包含的上游路径和之前暂时储存的路由请求消息中包含的路径;如果有相符的,那节点就可以获得新路径的路径信息和“可进行监听节点”信息,每个节点都会保存所有流经自身的数据流的上述两个信息,当有新的数据流经过节点时,节点可以利用以上信息判断新的流是否可以和已经存在的数据流进行编码,如果满足编码条件,则节点将在路由应答消息中把该路径标记为“可以编码”;
1e)当源节点收到路由应答消息后,源节点将根据潜在的流间网络编码机会选择路径并开始发送数据包;
1f)当第一个数据包到达中间节点后,该节点将保存所选择的新路径的路径信息和“可进行监听节点”监听信息,同时丢弃之前暂时保存的其余信息;
(2)源节点根据目的节点的反馈来滑动编码窗口,对窗口内的数据包进行在线网络编码,添加包头生成流内包并广播给其他节点;
所述步骤(2)是:
2a)源节点确定编码窗口W和滑动步长n的大小;
2b)源节点根据目的节点的反馈的希望发送的下一个数据包序列号s,判断是否滑动编码窗口;当l+n<=s时,编码窗口向前滑动n个大小,否则不滑动;其中,当前编码窗口的起始序列号为l,即源节点对第l个到第l+W-1个原始数据包进行编码;
2c)对当前滑动窗口内的原始数据包进行随机线性网络编码并添加包头信息生成流内包,该包头信息包括数据包类型、源节点地址和目的节点地址、数据流ID、编码系数、起始序列号、编码窗口的大小、转发节点列表:
<mrow> <mi>x</mi> <mo>=</mo> <msubsup> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mi>l</mi> </mrow> <mrow> <mi>l</mi> <mo>+</mo> <mi>W</mi> </mrow> </msubsup> <msub> <mi>&amp;alpha;</mi> <mi>j</mi> </msub> <msub> <mi>E</mi> <mi>j</mi> </msub> </mrow>
其中Ej是序列号为j的原始数据包,αj是从有限域Fq上随机选择的网络编码系数;
(3)中间节点根据编码机会对接收到的数据包做编译码操作,生成相应的流内包并发送到目的节点;或者将不同数据流的流内包进行流间网络编码后生成相应的混合包并发送到目的节点;
所述步骤(3)中,将不同数据流的流内包进行流间网络编码后得到的数据包称作混合包;混合包的头部包含三个部分,第一部分指明数据包类型;第二部分指出参与流间网络编码的数据包和它们的下一跳节点集,包括参与编码包中流内包的数目、编码包的源地址、编码包的目的地址、流内网络编码中数据包的最小序列号、相应编码窗口的大小、编码包应该被转发的下一跳节点集;第三部分为接收报告,包括接收报告的个数、每个报告的源地址、从源节点接收到的最新数据包的IP序列号以及最近接收到的数据包的位图;
3a)根据接收到的数据包头中的下一跳节点集信息,判断自己是否在转发节点列表中,不是的话丢弃该数据包,否则接收此数据包;
3b)根据数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
3ba)如果数据包为混合包,则判断是否可以译码该数据包,如果不能译码,则将此数据包直接存储转发给下一跳节点;
3bb)如果可以译码,则将此混合包解码并分离出译码所需数据流的流内包;
3c)如果接收到的数据包是流内包,中间节点判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
3d)对中间节点缓存中的数据包做随机线性网络编码并添加包头信息生成流内包;
3e)根据编码条件判断节点是否可以进行流间网络编码;
3ea)如果满足流间网络编码条件,则对来自不同流的数据包进行编码并添加包头信息,生成混合包并转发给下一跳节点;
3eb)如果不满足流间网络编码条件,则将此流内包广播出去;
(4)目的节点利用高斯-约当消去法对接收到的数据包化简并解码出原始数据包;
所述步骤(4)中:
4a)根据接收到的数据包头中的数据包类型信息判断该数据包是混合包还是流内包;
4b)如果是混合包,则利用缓存中其余数据流的信息将该混合包解码,分离出译码需要的数据流的流内包;
4c)如果是流内包,包括从混合包中分离出的流内包,判断该数据包是否与缓存中已有的数据包线性相关,如果不相关,则将此数据包标记为创新包,并将其放入节点缓存中,否则,丢弃该数据包;
4d)对目的节点缓存中的编码向量采用高斯-约当消元法进行化简,编码矩阵的秩即为目的节点“看到”的包的最大序列号s,目的节点希望下次接收到的原始数据包的最小序列号为s+1;
4e)沿着最短路径向源节点反馈希望下次接收到的原始数据包的最小序列号s+1;
4f)如果目的端的接收矩阵满秩,则利用简单的矩阵求逆即可进行解码:
其中P1,…,Pn为原始数据包,X1,…,Xn为编码数据包,αi=(αi1i2,...,αin)为编码向量。
CN201410114029.2A 2014-03-24 2014-03-24 一种基于编码感知的在线机会式路由方法 Expired - Fee Related CN103906165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410114029.2A CN103906165B (zh) 2014-03-24 2014-03-24 一种基于编码感知的在线机会式路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410114029.2A CN103906165B (zh) 2014-03-24 2014-03-24 一种基于编码感知的在线机会式路由方法

Publications (2)

Publication Number Publication Date
CN103906165A CN103906165A (zh) 2014-07-02
CN103906165B true CN103906165B (zh) 2017-11-28

Family

ID=50997261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410114029.2A Expired - Fee Related CN103906165B (zh) 2014-03-24 2014-03-24 一种基于编码感知的在线机会式路由方法

Country Status (1)

Country Link
CN (1) CN103906165B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486040B (zh) * 2014-12-15 2017-10-24 西安电子科技大学 基于缓存管理的高效编码感知路由方法
CN105634946B (zh) * 2016-01-05 2018-10-02 大连大学 卫星网络中基于网络编码的机会路由算法
CN105897381A (zh) * 2016-05-12 2016-08-24 中国科学院信息工程研究所 一种网络编码tcp解码方法及装置
CN106972908B (zh) * 2017-02-16 2020-11-06 上海交通大学 一种针对海面信道的网络编码可靠传输方法
CN106911433A (zh) * 2017-04-27 2017-06-30 重庆邮电大学 一种节点编码感知的机会转发路由协议设计方法
CN107426248B (zh) * 2017-09-05 2020-05-26 东北大学 一种基于网络编码的wmn匿名通信方法
CN110430018B (zh) * 2019-08-02 2021-10-26 电子科技大学 一种均衡保护的滑动窗口bats码传输方法
CN115134047A (zh) * 2021-03-29 2022-09-30 维沃移动通信有限公司 传输方法、装置、设备及可读存储介质
CN114884614A (zh) * 2022-04-30 2022-08-09 杭州趣链科技有限公司 一种面向软件定义网络的流内网络编码传输方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DCAR: Distributed Coding-Aware Routing in Wireless Networks;Jilin Le;《IEEE TRANSACTIONS ON MOBILE COMPUTING》;20100430;596-608 *
Network Coding Based Opportunistic Routing with;Pan Daru;《2010 International Conference on Computer Application and System Modeling (ICCASM 2010)》;20101231;663-666 *
Trading Structure for Randomness in Wireless Opportunistic Routing;Szymon Chachulski;《Conf. on App.,tech., archi., and prot. for comp. comm. (SIGCOMM). NewYork,NY,》;20070831;全文 *
XORs in the Air: Practical Wireless Network Coding;Sachin Katti;《IEEE/ACM TRANSACTIONS ON NETWORKING》;20080630;全文 *
基于流编码的机会路由协议设计;高明;《中国优秀硕士学位论文全文数据库信息科技辑》;20120415;正文24-37 *

Also Published As

Publication number Publication date
CN103906165A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103906165B (zh) 一种基于编码感知的在线机会式路由方法
US10116418B2 (en) Joint fountain coding and network coding for loss-tolerant information spreading
CN102223683B (zh) 无线传感器网络中的数据传输方法、节点和系统
Khreishah et al. Distributed network coding-based opportunistic routing for multicast
Huang et al. Just FUN: A joint fountain coding and network coding approach to loss-tolerant information spreading
TW200427257A (en) Mobile ad-hoc network (MANET) including forward error correction (FEC), interleaving, and multi-route communication features and related methods
CN106922008B (zh) 一种基于RPL路由协议的IPv6无线传感网多路径传输方法
JP2007104675A (ja) モバイルアドホックネットワーク環境でのマルチキャストルーティング方法
CN107959551A (zh) 一种基于网络编码的无线传感器网络可靠数据传输方法
Ferreira et al. Real-time network coding for live streaming in hyper-dense WiFi spaces
EP3054742A1 (en) Mobile ad hoc networking media aware networking element
Rezende et al. The selective use of redundancy for video streaming over Vehicular Ad Hoc Networks
CN107409400A (zh) 冗余流量工程的方法与系统
CN102970235B (zh) 无线网状网络中基于流内和流间网络编码的多播路由方法
Obaidat et al. QoS-aware multipath communications over MANETs
CN106954242A (zh) 一种基于网络编码的卫星分布式动态多径路由方法
CN102316315B (zh) 一种实时视频传输方法
CN107809784A (zh) 多跳无线网络中传输实时视频流的机会路由方法
Aymen et al. Offloading performance evaluation for network coding-based cooperative mobile video streaming
Rathore et al. Network coding assisted multicasting in multi-hop wireless networks
CN112887203B (zh) 一种基于网络编码的tdma无线网络多路径数据传输方法
CN103475453B (zh) 基于随机线性网络编码的协作通信方法
Saeed et al. Multimedia streaming for ad hoc wireless mesh networks using network coding
Jeong et al. A network coding-aware routing mechanism for time-sensitive data delivery in multi-hop wireless networks
CN103986563B (zh) 瑞利信道下基于etx值的多包反馈机会路由的数据传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171128

CF01 Termination of patent right due to non-payment of annual fee