一种网络编码包头的压缩方法

文档序号:7898947阅读:249来源:国知局

专利名称::一种网络编码包头的压缩方法
技术领域
:本发明涉及网络编码(NetworkCoding,本文后简称NC)包头的传输方法,特别涉及网络编码在点对点有反馈的网络环境下的传输方法。
背景技术
:2000年诞生的NC是继C.E.Shannon发表《AMathematicalTheoryofCommunication》解决信道容量极限问题后的一个全新突破,它解决了网络通信中单/多源对多接收点组/广播如何达到网络容量极限的问题。传统网络通信节点上的路由交换机只完成存储转发功能。NC指出如果允许路由交换机对输入信息流进行编码再发送,使得网络节点既实现路由功能又实现编码功能。在这种全新的体系结构下,网络性能可以达到最大流传输的理论极限。NC最简单的概念来自"ButterflyNetwork〃,参见图1,源节点S1想把信息流a传送给R1和&。另一方面,源节点&也希望在相同时间、以相同速度,把信息流b同样传送给接收节点R1和&。假设每个路径每秒可携带一个位元,并且只能顺着箭头所指方向前进。如果路由器A、B只是转发其接收到的信息,那么中间链路将是个瓶颈,因为每秒总共接收到二位元的信息,但其容量只有一位元,故路由器A每秒只能传送一位元的信息给B。相反,如果把一般的路由器A换成编码器,它可以把两个信息通过异或(或者线性组合运算)变成单一位元输送给B,即发送ab(或者a和b的线性组合),便可轻而易举地解决塞车问题。可见,引入NC后,网络的运作可望变得更有效率,同时不需要增加硬件设备或频宽,就可以提高网络吞吐量。此外,其还可以改善网络的负载均衡,节省网络带宽消耗及无线网络的能量消耗,提高网络的鲁棒性,对于具有链路时延的网络,相对于路由方式,通过NC进行多播传输时可以获得较小的传播时延。通常情况下,数据包在经过网络编码处理后,所用编码系数会被存储在网络编码包头,以供接收方解码所使用。为使编码后数据包长度保持不变,编码运算通常使用域内加法和乘法,而折中开销和解码成功率两方面因素考虑,域的大小通常设为256,这样域中每一个系数可以用8bit(即lbyte)来表示。在理论分析以及假设举例的时候,通常只考虑数个包被编码在一起的情况,所以将所用的编码系数存储在相应网络编码包头时带来的几字节的开销也并没有引起重视。但是,随着目前传输带宽越来越大,网络编码与传输机制结合后,为保证不影响原有传输速率,上百个数据包被编码在一起形成一个新的编码包的现象时有发生,如果此时仍将编码系数存储在网络编码包头,则光这部分的开销就将达到上百字节。同时,我们知道因特网中典型的数据包大小大概是1400byte,相对与上百字节的编码系数开销不得不引起足够重视。另一方面,将编码系数放在网络编码包头这一做法在安全上也存在一定隐患,和接收方一样,窃听者如果收集到足够数量的编码包同样可以获知原始信息。
发明内容为了在一定程度上改进网络编码包头的上述缺点,本发明提出一种网络编码包头的压缩方法,使包头长度在无需再编码的条件下不会随着参与编码的数据包个数增加而增加。一种网络编码包头的压缩方法,包括在传统网络编码包头中对编码系数一项进行修改用两个变量代替网络编码包头中的编码系数,接收方利用这两个变量恢复出所使用的编码系数。更具体地,本发明一种网络编码包头的压缩方法,其中用两个变量代替网络编码包头中的编码系数,接收方利用这两个变量恢复出所使用的编码系数的具体方法表述如下收发双方建立连接后,在发送数据内容之前,首先以安全方式(例如加密发送方式)将待使用的系数表告知接收方,双方约定系数的读取方式(例如可以采用连续或间隔若干个位置读取);使得双方在该会话过程中始终维护同一张系数表,另外双方需在此约定系数的读取方式(例如连续或间隔若干个位置读取)。在发送方,网络编码包头中加入特定的变量包括编码系数在系数表中的偏移coef_offset和参与编码的原始数据包个数cod_length,其中,所述变量C0ef_0ffSet用于指示编码系数在系数表中的开始位置,可随机产生或根据线性无关的原则人为指定,在使用前将产生的数做模运算c0ef_0ffSetmod(table_size),table_size为系数表大小;所述变量cocLlength表示本次所使用的编码系数个数,即本次要从系数表中读取的系数个数。在接收方,根据网络编码包头中的两个变量,C0ef_0ffSet和cocLlength,从系数表中恢复出该编码包所用的系数。结合后面将要给出的描述,以及下述附图,将会对本发明的特点及优势有更透彻的理解。图1是描述NC概念的蝴蝶图。图2是描述收发双方通过变量恢复编码系数的过程。实施方式本发明实施例提供一种网络编码包头的压缩方法,在参与编码的数据包个数较大时有其独特的优越性。我们考虑有100个数据包参与编码。在双方建立连接,并完成系数表的传递之后,首先发送方随机产生一个整数n,将其做取模运算,这里假设系数表大小为256,即coef_offset=η%256,显然,cod_length=100。此时发送方在系数表的coef_offset位置以双方约定好的方式,例如连续读取100个系数,或者间隔若干个位置读取系数。并且使用这些系数对数据包编码。接收方获知C0ef_0ffSet和cocLlength后,在系数表同样的位置读取系数,参见图2。如果cod_length为Ibyte则可以表示256个数据包参与编码;如果cod_length为1.5byte则可以表示4096个数据包参与编码,cod_length—旦取定,其长度不会随着参与编码数据包个数的增加而增加。如需要再编码,考虑到中间节点再编码时遵循不同流之间不编码、中间节点被多条链路共享的原则以及中间节点快速处理并转发的特点,因此不会像发送方那样有太多的数据包被编到一起,加之中间节点不知道收发双方所维护的系数表,故按传统方法将系数另行存储在网络编码包头。故本发明更适合在点对点有反馈传输条件下使用。此外,若编码包被窃听者获取,即便其收集到足够数量的编码包,也会因为缺少编码系数而无法解码,在一定程度上提升了编码数据包在传输过程中的安全性。权利要求1.一种网络编码包头的压缩方法,其特征在于发送方用两个变量代替网络编码包头中的编码系数,接收方利用这两个变量恢复出所使用的编码系数。2.根据权利要求1所述的一种网络编码包头的压缩方法,其特征在于发送方用两个变量代替网络编码包头中的编码系数,接收方利用这两个变量恢复出所使用的编码系数,按照如下方法进行收发双方建立连接后,在发送数据内容之前,首先以安全方式将待使用的系数表告知接收方,双方约定系数的读取方式,使得双方在该会话过程中始终维护同一张系数表;在发送方,网络编码包头中加入特定的变量包括编码系数在系数表中的偏移coef_offset和参与编码的原始数据包个数cocLlength,其中,所述变量C0ef_0ffSet用于指示编码系数在系数表中的开始位置,可随机产生或根据线性无关的原则人为指定在使用前将产生的数做模运算coef_offsetmodtable_size,table_size为系数表大小;所述变量cocLlength表示本次所使用的编码系数个数;在接收方,根据网络编码包头中的两个变量C0ef_0ffSet和cocLlength,按照约定的读取方式从系数表中恢复出该编码包所用的系数。3.根据权利要求2所述的一种网络编码包头的压缩方法,其特征在于收发双方建立连接后,在发送数据内容之前,首先以加密发送方式将待使用的系数表告知接收方。4.根据权利要求2所述的一种网络编码包头的压缩方法,其特征在于所述双方约定系数的读取方式采用连续或间隔若干个位置读取。全文摘要一种网络编码包头的压缩方法,通过发送方用两个变量代替传统将编码系数全部放进包头的做法,在接收方利用这两个变量恢复出所使用的编码系数。这种方法尤其适合在涉及网络编码的点对点有传输反馈的场合下使用,减小包头在整个编码包中的开销,同时提升编码数据包在传输过程中的安全性。文档编号H04L1/00GK102291202SQ20111025823公开日2011年12月21日申请日期2011年9月2日优先权日2011年9月2日发明者刘吉,安辉耀,李大刚,李挥,潘凯申请人:北京大学深圳研究生院,李挥
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1