基于网络编码的传输控制协议的编译码方法技术

技术编号:16974594 阅读:465 留言:0更新日期:2018-01-07 09:33
本发明专利技术公开了一种基于网络编码的传输控制协议的编译码方法,本方法在网络编码层优化了编码方法,区分了正常数据包还是冗余包,对不同类型的数据报文,采用不同的编码方式,对于正常的编码数据包采用直接异或的方式实现编码;对于冗余数据报文,其编码系数随机选取自范德蒙矩阵中的某一行,然后根据编码系数利用线性编码方法获得冗余编码数据包,降低编码复杂度;在网络层优化编码数据包头部的设计,全面考虑了编码系数和译码所需的参数,缩短了编码头部开销,提高了传输效率;在网络编码层优化了译码算法,使得高斯消元过程更加简单,从而降低了译码复杂度。

【技术实现步骤摘要】
基于网络编码的传输控制协议的编译码方法
本专利技术涉及网络编码的传输控制协议(TCP,TransmissionControlProtocol)领域,特别是一种基于网络编码的传输控制协议的编译码方法。
技术介绍
传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,因其在有线网络场景下能够提供很好的可靠性传输服务,成为了互联网的基础传输协议。在设计之初,TCP协议就是专门针对有线网络设计的,TCP协议将网络中的丢包都认为是网络拥塞所造成的。但是在实际的无线网络应用中,网络中的丢包不仅仅是拥塞导致,更可能是由于无线传输特性不理想所引起的随机丢包。在无线网络中,一旦出现丢包,TCP协议就会把一些由无线链路造成的随机丢包统统归结为网络拥塞造成的,并通过减小拥塞窗口来降低发送速率。事实上,对于无线链路问题引起的非拥塞丢包,TCP协议一味通过降低发送速率并不能解决传输丢包问题。不能区分丢包是因为网络拥塞还是传输不可靠引起的,采用拥塞控制来应传输丢包时传统TCP协议在无线网络条件下传输性能下降的根本原因。因此,在丢包率高的无线网络场景中,如何提高TCP协议的传输性能就显得尤为重要。网络编码(NetworkCoding)是由Ahlswede等人在2000年提出的,其核心思想是网络中节点对接收到的多个数据分组进行编码融合,然后对编码后的数据进行转发,目的节点可根据编码系数实现译码,从而还原出原始数据,运用网络编码能够提升网络吞吐量,均衡网络负载和提高网络带宽利用率等。2011年,JKSundararajan等人在文献“NetworkcodingmeetsTCP:theoryandimplementation”中首先提出了将网络编码应用在TCP协议的一种通信传输协议,该协议能够显著提升在丢包率高的无线网络场景下网络的吞吐率。基于网络编码的传输控制协议(TCP)的核心思想是利用网络编码技术来掩盖数据报文的丢失,尽可能避免触发TCP协议的拥塞控制算法,改善无线网络条件下的传输吞吐率。在现有的基于网络编码的传输控制协议中,采用的编码方式主要是随机线性网络编码,其编码原理可以看作为如下的的矩阵运算:其中,Pi表示第i个参与编码的原始TCP数据报文,qi表示第i个经过编码之后的编码数据报文,元素aij表示第i个编码数据报文中第j个原始TCP数据报文所对应的编码系数。上述例子是将原始的3个TCP报文编码成4个编码数据报文,其中q4即为冗余编码数据报文。对于接收端,只需保证接收端能够接收到3个编码数据报文并且所涉及的编码系数是线性无关的,则可以恢复原始TCP报文。这个例子较好地说明如何利用网络冗余编码的思想来抵抗网络报文丢失。在译码端,对接收到的编码数据报文,对于每到达一个编码数据报文,提取其编码系数,然后根据编码系数对相应的编码数据报文执行高斯消元操作,如果此时有原始数据报文被译码,则直接将译码出来的数据报文传递给TCP层。然而,对于随机线性网络编码在传输控制协议中的应用,其主要存在以下问题:1)在网络编码层,通过随机线性编码方式对原始数据进行编码,考虑到TCP协议是基于字节流的传输协议,其编码系数一般是在有限域GF(28)中随机产生的,假设当前每个编码窗口值为W,TCP数据报文的长度为L字节,则对于产生一个新的编码数据报文,需要进行WL次的有限域乘法和(W-1)L次有限域加法运算,这就增加了发送端的计算复杂度。2)由于采用随机线性编码,需要在编码数据包的头部添加编码系数,导致编码头部较为复杂,冗余信息较多,降低了传输效率。3)当采用随机线性编码方式时,接收端在每收到一个编码数据包后,都会执行一次高斯消元,这极大地增加了接收端的译码复杂度。上述问题使得基于网络编码的传输控制协议实现复杂度较高,不利于实际实现。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于网络编码的传输控制协议的编译码方法,降低基于网络编码的传输控制协议的编码和译码复杂度,减少编码头部开销,提高网络的吞吐量。为解决上述技术问题,本专利技术采用的技术方案是:一种基于网络编码的传输控制协议的编译码方法,包括编码方法和译码方法,具体如下:编码方法步骤1:在编码端,位于传输控制协议TCP(TransmissionControlProtocol,传输控制协议)层与网际协议IP(InternetProtocol,网际协议)层之间的网络编码层设有一个网络编码缓存区,所述网络编码缓存区存放来自传输控制协议TCP层的数据包,设定初始值N=0,循环执行步骤2,直到传输控制协议TCP层没有数据抵达网络编码层为止;步骤2:当有新的数据报文从传输控制协议TCP层抵达网络编码缓存区之后,根据传输控制协议TCP头部的字节序号按顺序存放在网络编码缓存区当中;发送端会对最近抵达的W个数据报文进行编码并发送;编码数据包分为两类,分别为正常编码数据包和冗余编码数据包,冗余编码数据包是为了弥补网络中丢包,发送端额外多发出来的数据包;设定的冗余度R需满足R≥1/(1-Pe),其中,Pe为网络中实际的丢包率;发送编码数据报文的具体步骤为:步骤2.1:每当有新的数据包抵达网络编码缓存区之后,令N=N+R,然后执行操作:如果则构造一个正常编码数据包;如果则构造一个正常编码数据包和个冗余编码数据包,其中,表示向下取整运算;步骤2.2:构造正常编码数据包和冗余编码数据包如果传输控制协议TCP报文负载长度不一致,设该W个传输控制协议TCP数据报文中最长的数据报文长度为L,采用补零的方式使所有报文数据长度一致,具体如下:步骤2.2.1:针对正常编码数据包,将编码缓存区中最近抵达的W个数据包全部进行异或操作,即产生新的编码数据包表示为其中,Pi(i=1,2,...,W)表示第i个就近到达的传输控制协议TCP数据报文;步骤2.2.2:针对冗余编码数据包,将编码缓存区中最近抵达的W个数据包按如下方式进行编码运算其中,k是从1~255中随机选取的整数,aik(i=1,2,...,W)为第i个数据包的编码系数,ai是从有限域GF(28)选出的,其加法和乘法运算都是在有限域GF(28)下完成的;步骤2.3:填充编码头部,编码头部包括源端口、目的端口、编码窗口大小、系数指示位、起始报文的序列号Start1,后W-1个原始传输控制协议TCP数据报文的相对序列号Start2~StartW;步骤2.4:令将已编码的数据包发送到IP层;译码方法步骤1:在译码端,位于在传输控制协议TCP层与网络层之间的网络编码层设有译码缓存区,所述译码缓存区用于存放已收到的编码数据包;构建一个译码矩阵,用于对编码数据包的系数执行高斯消元运算;步骤2:当有新的数据报文从网际协议IP层抵达网络编码层之后,将编码数据报文存放在译码缓冲区,并检查该数据包是否是用于建立连接的控制报文,如果是,则直接上交给传输控制协议TCP层;否则就执行以下操作:步骤2.1:根据系数指示位,判断抵达的编码数据报文是正常编码数据包还是冗余编码数据包,若是正常编码数据包,则将其编码系数直接加入到译码矩阵中;若是冗余编码数据包,则判断其所涉及参与编码的原始传输控制协议TCP报文是否被全部译出,若是,则直接将该冗余编码包给丢掉;若否,则将冗余编码数据包的编码系数提取本文档来自技高网
...
基于网络编码的传输控制协议的编译码方法

【技术保护点】
一种基于网络编码的传输控制协议的编译码方法,其特征在于,包括编码方法和译码方法,具体如下:编码方法步骤1:在编码端,位于传输控制协议TCP层与网际协议IP层之间的网络编码层设有一个网络编码缓存区,所述网络编码缓存区存放来自传输控制协议TCP层的数据包,设定初始值N=0,循环执行步骤2,直到传输控制协议TCP层没有数据抵达网络编码层为止;步骤2:当有新的数据报文从传输控制协议TCP层抵达网络编码缓存区之后,根据传输控制协议TCP头部的字节序号按顺序存放在网络编码缓存区当中;发送端会对最近抵达的W个数据报文进行编码并发送;编码数据包分为两类,分别为正常编码数据包和冗余编码数据包,冗余编码数据包是为了弥补网络中丢包,发送端额外多发出来的数据包;设定的冗余度R需满足R≥1/(1‑Pe),其中,Pe为网络中实际的丢包率;发送编码数据报文的具体步骤为:步骤2.1:每当有新的数据包抵达网络编码缓存区之后,令N=N+R,然后执行操作:如果

【技术特征摘要】
1.一种基于网络编码的传输控制协议的编译码方法,其特征在于,包括编码方法和译码方法,具体如下:编码方法步骤1:在编码端,位于传输控制协议TCP层与网际协议IP层之间的网络编码层设有一个网络编码缓存区,所述网络编码缓存区存放来自传输控制协议TCP层的数据包,设定初始值N=0,循环执行步骤2,直到传输控制协议TCP层没有数据抵达网络编码层为止;步骤2:当有新的数据报文从传输控制协议TCP层抵达网络编码缓存区之后,根据传输控制协议TCP头部的字节序号按顺序存放在网络编码缓存区当中;发送端会对最近抵达的W个数据报文进行编码并发送;编码数据包分为两类,分别为正常编码数据包和冗余编码数据包,冗余编码数据包是为了弥补网络中丢包,发送端额外多发出来的数据包;设定的冗余度R需满足R≥1/(1-Pe),其中,Pe为网络中实际的丢包率;发送编码数据报文的具体步骤为:步骤2.1:每当有新的数据包抵达网络编码缓存区之后,令N=N+R,然后执行操作:如果则构造一个正常编码数据包;如果则构造一个正常编码数据包和个冗余编码数据包,其中表示向下取整运算;步骤2.2:构造正常编码数据包和冗余编码数据包如果传输控制协议TCP报文负载长度不一致,设该W个传输控制协议TCP数据报文中最长的数据报文长度为L,采用补零的方式使所有报文数据长度一致,具体如下:步骤2.2.1:对正常编码数据包,将编码缓存区中最近抵达的W个数据包全部进行异或操作,即产生新的编码数据包表示为Pi表示第i个就近到达的传输控制协议TCP数据报文,i=1,2,...,W;步骤2.2.2:对冗余编码数据包,将编码缓存区中最近抵达的W个数据包按如下方式进行编码运算

【专利技术属性】
技术研发人员:兰小龙陈庆春唐小虎梁宏斌
申请(专利权)人:西南交通大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1