Dtn或icn网络上利用网络编码技术减少冗余消息的方法

文档序号:7697950阅读:267来源:国知局
专利名称:Dtn或icn网络上利用网络编码技术减少冗余消息的方法
技术领域
本发明总体上涉及网络通信技术领域,更具体地涉及一种DTN或ICN网络上利用 网络编码技术减少冗余消息的方法。
背景技术
DTN或ICN网络是一种完全由移动节点构成、节点分布稀疏、通常没有持续的端到端 连接的无线网络。其中的移动节点既是主机又具备路由功能,负责发现和维护通往其他节点 的路径。与典型的Ad Hoc网络不同,DTN或ICN中的数据传输采用转发一缓存—转发 (Forward-Buffer-Forward)的异步传输模式,即当路由路径出现中断时,中间节点会将待转 发消息暂存在缓存器中,直到遇到其他合适的中间节点或者目的节点再将其转发出去。近年 来,DTN和ICN被广泛应用于星际网络、战场通信、游牧通信、偏远地区数据接入等通信 服务中。
但是,DTN和ICN网络中的移动节点大多都是移动便携设备,这些设备通常都只由电 池供电,当节点电池能量耗尽时,就不能与其他节点进行有效通信。同时,随着耗尽电量节点 的增加,网络中的节点就变得越来越稀疏,数据传输也越来越困难。并且,DTN或ICN中 最常使用的路由协议是传染病协议,它是将数据包广播给所有邻居节点,通过发掘所有可能 的路径来实现数据传输的最短延时。这种大规模的洪泛会造成大量的冗余消息,大量消耗节 点能量。此外,由于DTN或ICN环境节点的稀疏和移动性等原因,路径的选择和建立都比 较困难,丢失的消息会多次被重发,也造成了大量的冗余传输。因此,减少冗余消息的传输 以节省节点能量的消耗对DTN和ICN网络性能起着决定性的作用,研究如何减少冗余消息 对DTN和ICN网络具有非常重要的意义。
Ahlswede、李硕彦等人于2000年辑出的网络编码概念,其核心思想就是网络中的节点 可以采用不增加冗余的编码。Tracey Ho等人又将网络编码发展到随机网络编码,这种方案 是不需要知道网络拓扑信息的,被编码信息的系数是可以在一个有限域内随机选择的。研究 表明只要有限域取得足够大,该方法的失败率可以很低。利用网络编码技术,节点就可以把 多个数据包通过一定的编码手段重新组包再发送到下一节点,接收端收到一定数量的包后通 过解码获得原始数据。将网络编码技术同传染病路由协议结合起来,可以增加单次消息的信 息量,减少消息的冗余传输,减小节点能量消耗,减弱节点缓存负担,提高DTN或ICN网 络的性能。

发明内容
有鉴于此,本发明的目的是提供一种DTN和ICN网络上利用网络编码技术减少冗余消 息的方法。该方法通过采用随机线性编码方案,对DTN和ICN网络中的源节点的数据信息,在网络层进行分段编码和发送,在中间节点进行已有消息的再次编码和转发,在目的节点解 码收到的消息来恢复部分原始数据。这样可以减少DTN和ICN网络中冗余消息的传输,从 而有效地降低节点能量消耗、延长节点工作时间、改善网络性能和生存期的作用。该方法作 为一种比较理想、节能效果好、实用性强的技术方案,能够有效减少冗余消息,降低投递消 息的开销,延长移动节点工作时间,实现整个DTN和ICN网络性能的改善和生命期延长。
为了达到上述目的,本发明提供一种DTN或ICN网络上利用网络编码技术减少冗余消 息的方法,应用于使用传染病路由协议建立路由的网络中,包括下列几个组成部分
(1) 在源节点采用随机线性编码方案,将要发送的数据信息分段收集,分段进行 网络编码,并发送编码后的新消息。
(2) 中间节点收到响应信息后,对被请求的同段消息再次进行编码,产生新的编 码消息,发送被请求的消息和新消息。
(3) 目的节点对接收的编码消息进行线性独立性的筛选,当收到足够的段内编码 消息后,进行段内解码来恢复该段的原始数据信息。
作为优选实施方式
所述部分(1)包含以下内容
(11) 在源节点设立编码缓冲区用于收集分段大小Batch Size数巨的待编码消息;
(12) 网络层从运输层顺序接收消息放入编码缓冲区中,当收集的消息数目达到 Batch Size时,从有限域内随机产生每个消息的系数,系数的总和称作一个编码向量。 将消息和各自的系数在有限域内做乘法运算,再将各结果做和运算,得到编码后的新消 息的数据区;
(13) 在新消息的包头信息中添加新消息序列号、源节点地址、目的节点地址、段 序列号和编码向量;
(14) 将新消息加入源节点的缓存器,并更新本节点保存的消息列表,发送新消息 到链路层;
(15) 清空收集消息的编码缓冲区,段序列号加一,从运输层接收下一段原始数据, 进行网络编码和发送。
所述部分(2)包含以下内容
(21) 收到响应信息的中间节点按照响应信息中包括的消息列表,在本节点缓存器 中检索出源节点地址相同、目的节点地址相同、段序列号相同的同段消息;
(22) 从有限域内为每个同段消息随机产生系数,将消息和各自的系数在有限域内 做乘法运算,再将各结果做和运算,得到新编码消息的数据区;
(23) 取出各同段消息包头信息中的原编码向量,将新随机产生的系数与该编码向 量做乘法运算,得到再次编码的新编码向量;
(24) 在新编码消息的包头信息中添加新消息序列号、原消息的源节点地址、原消 息的目的节点地址、原消息的段序列号和新编码向量;
(25) 将新编码消息加入源节点缓存器,并更新本节点保存的消息列表;
(26) 按照响应信息中包括的消息列表顺序发送本节点缓存器中相应的消息,如果有新编码消息产生,则将新消息随被请求消息一起发送。 所述部分(3)包含以下内容
(31) 目的节点保存有不同段的段维护矩阵和解码缓冲区,每收到一个新到达的消 息,检査该消息头部信息中的目的地址是否与本节点地址相同;
(32) 若相同,则取出该消息包头信息中的编码向量,并过高斯消元判断该编码向 量的线性独立性,若线性独立,则将该编码消息加入目的节点的解码缓冲区中,并按照 包头信息中的段序列号加入对应的段维护矩阵中,若线性不独立,则丢弃该消息,段维 护矩阵保持不变;
(33) 每次添加新的编码向量后,检查该段维护矩阵是否满秩。满秩,则在相应的 解码缓冲区中进行转置矩阵的运算,恢复该段原始数据,并发送至运输层。
本发明是一种在无线延迟容忍网络或间歇连接网络中,使用分段网络编码技减少消息冗 余传输的方法,具有下列优点
当前,DTN或ICN网络中最常用的是传染病路由协议,特点是"存储-携带-转发",受网 络带宽和节点缓存的限制,在进行数据传输时往往造成大延时和很低的吞吐量。在带宽和节 点缓存有限的情况下,将网络编码技术与传染病路由协议进行结合,充分利用了无线天生广 播的特性和传染病算法的特点,在更短的时间内发送更多的信息,有效地减少DTN或ICN 网络中消息的冗余传输,减少了节点耗能,提高了DTN或ICN网络的性能。 本发明由当前DTN或ICN网络的传染病路由协议的特点和网络编码的优势发展而来, 对DTN环境下数据传输的方式进行了优化,进而实现了网络性能的提高。这种利用网络编 码技术减少消息冗余传输的方法,针对DTN或ICN传统路由的特点,在其基础上使用新技 术来改善整体网络性能,不仅保留了原有成熟路由协议的优点,还对不足之处进行了弥补和 优化,可以被简易的应用在现有DTN或ICN网络中,效果理想,应用前景看好。


图1是本发明基本构架原理的示意图。
图2是本发明源节点编码及发送数据的流程图。
图3是本发明使用网络编码的传染病路由中数据包(DATA)的包格式图。 图4是本发明路由寻找过程中使用的探测信息(HELLO)的包格式图。 图5是本发明路由寻找过程中使用的响应信息(REPLY)的包格式图。 图6是本发明中间节点再次编码及转发数据的流程图。 图7是本发明目的节点解码恢复数据的流程图。
具体实施例方式
为使本发明的目的、实现方案和优点更为清晰,下面结合附图对本发明作进一歩地详细 描述。
参见图1,介绍本发明方法的基本构架原理一利用网络编码技术减少冗余消息的方法。
源节点从运输层收到数据包,在网络层缓冲区对一部分数据包进行缓存,^r收集的数据包进行随机线性编码得到编码包,发送编码包到链路层,清空缓冲区再接收并编码下一段数据。 对于中间节点,每次收到响应信息,则根据响应信息中的请求消息列表对本地缓存器中的同 段编码包再次编码产生新编码包,按照请求消息列表的内容将被请求消息转发给邻居节点, 同时也转发新产生的编码包。目的节点在收集到足够数量的某段的编码包后,就可以解码出 该段原始数据交给运输层。通过对原始数据包进行线性组合,增加了单次传输的信息量,有 效减少了冗余消息的传输,节省了节点的能量,同时提高了节点缓存器的利用率。
参见图2至图7,详细介绍本发明一种DTN和ICN网络上利用网络编码技术减少冗余 消息的方法,该方法包括以下几个阶段
(1) 源节点编码和发送在源节点的网络层,将要发送的总数据信息进行分段处 理。使用编码缓冲区收集Batch Size数量的数据包,采用随机线性网络编码方案,为同 段的所有数据包随机产生系数并进行线性组合,得到编码包,系数的总和称作一个编码 向量。将编码计算结果放入编码包的数据区,将段序列号、消息序列号、源节点地址, 冃的节点地址和编码向量填充到编码包的头部信息中,基于网络编码的传染病路由协议 的数据吧格式参见图3。在发送了一定数量的该段的编码包后,清空编码缓冲区,对下 一段数据信息进行收集、编码和发送。每产生一个编码包,则将其加入本地缓存器中, 并更新本节点保存的消息列表。该过程的基本流程参见图2。
(2) 路由寻找凡缓存器非空的节点周期性地发送探测信息以探测进入通讯范围 的节点,同时利用该探测信息交换消息列表以确定缓存器中哪些消息需要进行交换。该 过程主要包含以下几个步骤发送探测信息HELLO,接收探测信息HELLO,发送响应 信息REPLY 。其中HELLO消息和RELPY消息的格式图参见图4和图5 。
(3) 中间节点再次编码和转发当中间节点收到一个响应信息时,按照响应信息 中包括的消息列表顺序转发本地缓存器中相应的消息。此外,对被请求的同段消息再次 进行随机线性网络编码。为本地缓存器中被请求的同段消息产生随机系数,再次进行线 性组合得到新消息,为新消息分配一个消息序列号。将计算结果放入新消息的数据区, 将原段序列号、新消息序列号、源节点地址,目的节点地址和新计算出的编码向量填充 到新消息的头部信息中。将新消息随被请求消息一起发送。将新消息加入本地缓存器中, 并更新本节点保存的消息列表。该过程的基本流程参见图6。
(4) 目的节点解码目的节点每接收到一个目的地址与本节点地址相同的消息, 判断其是否与目的节点已收到的同段消息的集合是线性独立的,丢弃非线性独立的消 息。收到Batch Size数目个同段的消息即可解码出该段原始数据信息,通过转置矩阵的 运算恢复该部分的原始数据。将恢复出的数据发送到目的节点的运输层。该过程的基本 流程参见图7。
所述部分(1)源节点编码和发送过程主要包含以下内容
(11) 在源节点设立编码缓冲区用于收集Batch Size数目的数据包;
(12) 随机网络编码需要限定有限域的大小,研究表明只要有限域取得足够大,该 方法的失败率就可以很低。本发明的随机线性网络编码中,采用Galois Field(伽罗华域), 选取28的有限域,以Byte为单位进行编码计算。所以,产生随机系数以及编码和解码
7的运算都是在这一有限域内进行的。
(13) 解码缓冲区收集满n (设Batch Size-n)个数据包Pl, p2,…,pn后,进行数据
包的线性组合,得到编码包0= j] ^a,这里ek是从有限域中随机产生的系数;
"A: = 1
(14) 将编码计算的结果放入编码包的数据区,为该编码包分配消息序列号。将段 序列号、消息序列号、源节点地址,目的节点地址和编码向量e二[e卜..en]填充到编码 包的头部信息中,编码包格式可参见图3;
(15) 将新产生的编码包加入源节点缓存器中,并更新本节点保存的消息列表,发 送新消息到链路层;
(16) 清空编码缓冲区,将段序列号加一,再对下一段数据信息进行收集、编码和发送。
所述部分(2)路由寻找的过程主要包含以下几个步骤
(21) 发送探测信息HELLO。当节点缓存器非空时,周期性地广播路由探测信息 HELLO。 HELLO信息头部包含msgList字段,用于记录发送探测信息节点缓存器中所有消 息信息的列表,HELLO包格式见图4。
(22) 接收探测信息HELLO。中间节点收到HELLO后提取包头信息中的msgList字段 得到msgList_S列表。根据本节点保存的消息列表msgList—A对msgList—S进行更新,去掉 其中与msgList—A中记录重复的部分。
(23) 发送响应信息REPLY。本方法中只有收到HELLO包的节点可以回复REPLY信 息。REPLY中包含iwant—msgList字段用于记录上述更新后的msgList一S中的记录。REPLY 包格式参见图4。这样,REPLY包中的iwant一msgList就是记录着发送HELLO包的节点可 以给转发给其探测到的邻居节点的消息。
所述部分(3)中间节点再次编码和转发的过程主要包含以下内容
(31) 当中间节点收到一个响应信息时,按照响应信息中包括的消息列表顺序转发 本地缓存器中相应的消息;
(32) 按照响应信息中的请求消息列表,检索出相同源地址、相同目的地址及相同
段序列号的m个消息p'j二 q^,这里pk是原始消息。从有限域中随机产生系数
q,再次进行线性组合得到新消息c'^X^ r,j/,;
(33) 将计算结果放入新消息的数据区,为新消息分配一个消息序列号,将原来的 段序列号、新的消息序列号、源节点地址,目的节点地址和新的编码向量e
充到新消息的头部信息中,数据包格式可参见图3。
(34) 将新消息加入本节点的缓存器,并更新本节点保存的消息列表 被请求消息一起发送;
所述部分(4)目的节点解码的过程主要包含以下内容
8
,将新消息随(41) 目的节点每收到一个新到达的消息,先检査该消息包头信息中的目的地址是 否与本节点地址相同,相同,则代表该消息需要进行解码并向上层传输。不相同,则按 中间节点缓存该消息;
(42) 对于每个目的节点地址是本节点的消息,判断该消息是否和已有的同段消息 的集合是线性独立的。检査所有数据字节的线性独立是昂贵且不必要的,目的节点只需 要检査同段消息的编码向量的线性独立就可以了。因此,在目的节点保存不同段的段维 护矩阵,用于线性独立和解码的判断。
(43) 对于每个目的地址是本节点的消息Ck,取出该消息包头信息中的编码向量ek =[ei...en],按照包头信息中的段序列号加入对应的段维护矩阵的空行中,通过高斯消元 来判断ek的线性独立性。若消元后ek全为0,则代表Ck与已有同段消息的集合是线性不 独立的,在段维护矩阵中删除ek,并在缓存器中丢弃消息Ck;若消元后ek有非零元素,
则代表Ck与巳有同段消息的集合是线性独立的,整理段维护矩阵,并将Ck放入解码缓
冲区中。
(44) 每次在段维护矩阵中添加了新的编码向量后,检査该段维护矩阵是否满秩。 满秩,则代表可以解码该段数据信息,在相应解码缓存区中进行转置矩阵的运算。设ET =[eiT...enT],CT=[ClT...CnT〗,PT = [PlT...pnT],其中,ck是编码包,ek是Ck的编码向量, Pk是原始数据包,T表示转置操作,则转
权利要求
1.一种DTN或ICN网络上利用网络编码技术减少冗余消息的方法,应用于使用传染病路由协议建立路由的网络中,包括下列几个组成部分(1)在源节点采用随机线性编码方案,将要发送的数据信息分段收集,分段进行网络编码,并发送编码后的新消息;(2)中间节点收到响应信息后,对被请求的同段消息再次进行编码,产生新的编码消息,发送被请求的消息和新消息;(3)目的节点对接收的编码消息进行线性独立性的筛选,当收到足够的段内编码消息后,进行段内解码来恢复该段的原始数据信息。
2. 根据权利要求1所述的方法,其特征在于,所述部分(1)包含以下内容(11) 在源节点设立编码缓冲区用于收集分段大小Batch Size数目的待编码消息;(12) 网络层从运输层顺序接收消息放入编码缓冲区中,当收集的消息数目达到 Batch Size时,从有限域内随机产生每个消息的系数,系数的总和称作一个编码向量, 将消息和各自的系数在有限域内做乘法运算,再将各结果做和运算,得到编码后的新消 息的数据区;(13) 在新消息的包头信息中添加新消息序列号、源节点地址、目的节点地址、段. 序列号和编码向量;(14) 将新消息加入源节点的缓存器,并更新本节点保存的消息列表,发送新消息 到链路层;(15) 清空收集消息的编码缓冲区,段序列号加一,从运输层接收下一段原始数据, 进行网络编码和发送。
3. 根据权利要求l或2所述的方法,其特征在于,所述部分(2)包含以下内容(21) 收到响应信息的中间节点按照响应信息中包括的消息列表,在本节点缓存器 中检索出源节点地址相同、目的节点地址相同、段序列号相同的同段消息;(22) 从有限域内为每个同段消息随机产生系数,将消息和各自的系数在有限域内 做乘法运算,再将各结果做和运算,得到新编码消息的数据区;(23) 取出各同段消息包头信息中的原编码向量,将新随机产生的系数与该编码向 量做乘法运算,得到再次编码的新编码向量;(24) 在新编码消息的包头信息中添加新消息序列号、原消息的源节点地址、原消 息的目的节点地址、原消息的段序列号和新编码向量;(25) 将新编码消息加入源节点缓存器,并更新本节点保存的消息列表;(26) 按照响应信息中包括的消息列表顺序发送本节点缓存器中相应的消息,如果 有新编码消息产生,则将新消息随被请求消息一起发送。
4. 根据权利要求1至3任意一项所述的方法,其特征在于,所述部分(3)包含以下内容(31)目的节点保存有不同段的段维护矩阵和解码缓冲区,每收到一个新到达的消 息,检査该消息头部信息中的目的地址是否与本节点地址相同;(32) 若相同,则取出该消息包头信息中的编码向量,并过高斯消元判断该编码向量的线性独立性,若线性独立,则将该编码消息加入目的节点的解码缓冲区中,并按照包头信息中的段序列号加入对应的段维护矩阵中,若线性不独立,则丢弃该消息,段维护矩阵保持不变;(33) 每次添加新的编码向量后,检查该段维护矩阵是否满秩。满秩,则在相应的解码缓冲区中进行转置矩阵的运算,恢复该段原始数据,并发送至运输层。
全文摘要
本发明属于网络通信技术领域,涉及一种DTN或ICN网络上利用网络编码技术减少冗余消息的方法,包括下列几个组成部分(1)在源节点采用随机线性编码方案,将要发送的数据信息分段收集,分段进行网络编码,并发送编码后的新消息。(2)中间节点收到响应信息后,对被请求的同段消息再次进行编码,产生新的编码消息,发被请求的消息和新消息。(3)目的节点对接收的编码消息进行线性独立性的筛选,当收到足够的段内编码消息后,进行段内解码来恢复该段的原始数据信息。本发明适用于主要由传感器(Sensor)、PDA、便携计算机、掌上电脑等移动设备构成、节点能量和缓存器有限的DTN和ICN网络中。该方法作为一种有效、实用的技术方案,应用前景看好。
文档编号H04L1/00GK101667885SQ20091007071
公开日2010年3月10日 申请日期2009年9月29日 优先权日2009年9月29日
发明者茜 张, 罗咏梅, 赵西满, 金志刚 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1