一种机动边缘网络环境下稳定可靠的数据传输方法与流程

文档序号:19604449发布日期:2020-01-03 13:23阅读:260来源:国知局
一种机动边缘网络环境下稳定可靠的数据传输方法与流程

本发明涉及数据传输方法,尤其是涉及一种机动边缘网络环境下稳定可靠的数据传输方法。



背景技术:

tcp/ip协议广泛应用在互联网中,并基于以下物理链路特性的假设,即:较短的传输时延;低误码率;数据链路传输速率对称;数据源端和目的端间的传输路径是连续且双向的。而机动边缘网络与目前广泛使用的互联网有着很大差异,机动边缘网络大都由间断运动或不断运动中的多个节点通过无线连接的方式构成,往往运行于抢险救灾等通信环境恶劣的场合,机动边缘网络具有不同于互联网的物理链路特性,主要包括以下几点:a)高传输时延:机动边缘网络中,网络节点稀疏分布,节点间的平均距离远远大于一般网络,有时需要通过节点移动建立连接机会和较多的等待时间。因此,传输时延远大于互联网的端到端转发。如机动信息服务中心使用的卫星网络单向传输时延可达秒级甚至分钟级。b)高误码率:民用互联网系统中,误码率一般只达10-15-10-12,而在机动边缘网络的通信链路,误码率可达到10-1,数据在接收端的恢复会受到极大的限制。c)间歇性连接:机动边缘网络中,机动信息服务中心可能高速运动中,被山体遮挡的情况时有发生,此时中心间通信将会出现中断。d)链路非对称:互联网通信链路的非对称传输比较小,而在机动边缘网络中,上行和下行数据传输速率不对称比可达1000:1甚至更高。根据以上对比分析和大量研究证明,现有的tcp/ip协议架构并不适用于机动边缘网络,受到长时延、信道非对称、高误码率等问题的影响,将实现数据可靠传输的tcp协议应用于机动边缘网络通信链路时的传输效率会出现显著降低,tcp/ip协议架构已完全无法适应其要求。

为此,本发明提出了一种机动边缘网络环境下稳定可靠的数据传输方法,能够很好的适应恶劣的环境,保障通信的正常进行。



技术实现要素:

为实现本发明之目的,采用以下技术方案予以实现:

一种机动边缘网络环境下稳定可靠的数据传输方法,包括以下步骤:

步骤1.发送端应用层将数据通过编码生成冗余数据包发送给束协议层;

步骤2.束协议层将接收到的数据包封装成数据束并发送给接收端;

步骤3.接收端接收数据束,通过解码恢复数据,当数据不完整时数据自动重传。

所述的方法,其中,步骤1中应用层将待传输文件编码后生成数据包发送给束协议层,包括:

1.1填充:待传输文件先被读入系统内存,对文件进行切割,分为预定大小的若干文件分片,每次从某个文件分片中读取定长的数据,作为编码所需信息数据,依次填充至一个n行的填充矩阵中,共执行k次填充,k<n;

2.2编码:产生m行冗余数据,其中m=n-k,将冗余数据填充在矩阵尾部的行中以对填充矩阵进行编码;

2.3在n行数据的头部添加相关编码信息后,生成编码数据包并逐个送往束协议层。

所述的方法,其中,步骤3中接收端接收到数据束后进行如下操作:

3.1接收:束协议层接收数据束,解封后得到编码包,逐个交付至应用层;

3.2填充:应用层在接收到束协议层交付的编码包后,检查编码包的头部信息,确定编码类型和编码包序号,申请一个n行的矩阵缓存空间,之后去除编码包头部,将信息包和冗余包按序号填充入矩阵;

3.3解码:应用层判断接收到的数据的大小,若接收到的信息包和冗余包的总数为h,当h≥k时,则可以完成解码,应用层将解码后得到的文件分片写入临时文件,当h<k时,则无法解码,应用层通知束协议层产生一个请求重发的数据包。

所述的方法,其中:步骤2.3中在n行数据的头部添加的编码信息包括包种类、编码种类、编码率和n。

所述的方法,其中:步骤2中束协议层将接收到的编码数据包打包成束后按序发送,在这些数据束的最后,束协议层生成一个fin束,由发送端发送给接收端,用以告知接收端本次传输结束。

所述的方法,其中步骤3包括:

3.1接收端束协议层在收到第一数据包束时,启动一个fin计时器,此后每收到一个数据包,计时器重置,当计时器时间耗尽仍未收到后续数据包或接收端接收到fin束,则接收端认为本次传输结束;

3.2接收端接收到的数据包被束协议层解封并提交给接收端应用层,应用层统计接收到的数据包数;

3.3如果接收端应用层接收到h≥k个数据包,接收端束协议层生成eot束并向发送端发送eot束,告知发送端该文件分片己成功接收,若有后续文件分片可开始传输。

所述的方法,其中步骤3包括:

3.1接收端束协议层在收到第一数据包束时,启动一个fin计时器,此后每收到一个数据包,计时器重置,当计时器时间耗尽仍未收到后续数据包或接收端接收到fin束,则接收端认为本次传输结束;

3.2接收端接收到的数据包被束协议层解封并提交给接收端应用层,应用层统计接收到的数据包数;

3.3如果接收端应用层收到小于k个数据包,接收端检查每个己接收到的数据包,获得哪些数据包未收到;

3.4接收端束协议层将未收到的数据包的序号记录在req束中,并将req束回传给发送端,告知发送端需要重传的数据包,同时接收端开启一个req计时器,进入重传等待计时;若预定时间内收到来自发送端重传的数据包,则关闭req计时器;若超出预定的重传等待时间仍未收到发送端重传的数据包,则再次发送req束,重复本步骤,直到接收到后续数据;

发送端在收到req束后,根据req束中所需重传数据包的序号进行重传,并在最后发送一个fin束,告知接收端本次重传结束;

接收端重复执行步骤3.1、3.2,并重新统计己接收到的数据包的总数,若收到大于或等于k个数据包,则向发送端回传eot束,告知该文件分片接收成功,可开始传输下一个文件分片;若不足k个数据包,则重新生成req束,重复上述传输过程,直至接收端接收到足够数据包,可完成解码。

所述的方法,其中步骤3包括:

3.1接收端成功接收到h个数据包,若h大于或等于k,则向发送端发送eot束,告知文件分片传输完成;若发送端成功接收到eot束,直接跳转执行步骤3.4;若发送端在fin计时器时间内未收到eot束,执行步骤3.2及后续步骤;

3.2发送端重发fin束对接收端进行询问,同时开启一个fin束的计时器,进入接收等待;

3.3接收端收到fin束后,重发eot束;

3.4发送端开始后续文件分片发送或文件传输结束,若超出fin束的接收等待时间,未收到eot束,发送端将再次执行3.2,直至发送端接收到eot束,待所有文件分片传输完成,文件接收成功,整个传输过程结束。

所述的方法,其中:所述步骤3中当数据不完整时通过发送控制束实现数据自动重传。

附图说明

图1为机动边缘网络结构示意图;

图2为应用层纠删码编编、解码过程示意图;

图3为编码矩阵示意图;

图4为编码包结构示意图;

图5为无需重传数据包的传输过程示意图;

图6为需重传数据包的传输过程;

图7为控制束丢失重传的传输过程示意图。

具体实施方式

下面结合附图和实施例对本发明进行进一步说明。

如图1中,机动边缘网络包括多个节点,所述多个节点互相连接沟通,节点间通过无线链路通信,节点在通信时,分为发送端,接收端和中继节点,数据传输按如下方式进行:在机动边缘网络中,发送端应用层的数据先被下发到束协议层,封装成束,由束协议层负责把数据交给目的节点的束协议层。束协议层应用路由算法计算束的下一跳转发,由相应的汇聚层将束传递到下一层。当通信链路发生中断,会由汇聚层给予束协议层一个反馈信息,告知束协议层进入传输等待状态。而待传输数据会暂时存储在束协议层,直到连接重新建立,数据将被再次发送。当通信环境恶劣,由于网络的高误码率,造成束丢失时,丢失的数据将通过束协议的可靠性进行恢复。机动边缘网络中,数据是在节点间逐跳(hop-by-hop)传输的,所以当下一节点成功接收到上一节点传输的束后,上述过程会再次执行,直到所有的束成功交付到目的节点,目的节点在束协议层对这些成功接收的束进行重组,之后传递给目的节点的应用层。

托管传输是束协议层的可选机制,用以提供束协议自身的可靠性。为存储被托管的传输束,该机制要求各传输节点具备永久性的存储空间。在一个束从一个节点发送到下一个节点的同时,上一节点会启动一个托管传输的应答计时器开始计时,当束在下一节点成功接收,下一节点会发送一个确认信号给上一节点,告知该束已被接收。而接收到该信号的上一节点会将已成功接收的束从永久性存储空间中删除。若有束在某个节点丢失,上一节点将不会收到来自下一节点的托管传输确认信号,当应答时间计时器的等待时间耗尽,上一节点会重传丢失的束,而无需从原始发送端节点重新发送该束。托管传输机制下,传输路径上的每个节点无需保存所需传输数据的完整备份,从而减少了链路资源的占用。

汇聚层在上述传输过程中的作用在于充当束协议层对不同传输层协议的接口,避免了束协议层与不同传输层之间数据格式不匹配的问题,也在一定程度上保证了传输层协议的性能。汇聚层处在机动边缘网络架构下传输层和束协议层之间,束协议层通过调用汇聚层的汇聚层适配器(convergencelayeradapter,cla)进行束的发送和接收,然后通过传输层协议将数据发送到下一个网络节点。

应用层的数据被下发到束协议层前,应用层会对数据进行编码:

应用层信道编解码主要包括接收端和发送端两部分,其功能在于通过引入冗余数据码向上层掩盖下层的丢包,如前所述,这里的上层为应用层,而下层为束协议层。这样通过在应用层引入纠删码,一方面可以对大文件进行数据包级的编码;另一方面,通过束协议层覆盖层协议的性质,可以在不同的异构网络之间进行数据的传输。

这里先对发送端的应用层编码过程进行说明,如图2左侧部分所示,编码的处理过程主要分为以下三个步骤:

第一步,填充:为提高处理速度,待传输文件先被读入系统内存,若文件尺寸过大,则对文件进行切割,分为固定大小的若干文件分片;每次从某个文件分片中读取定长的数据,作为编码所需信息数据,依次填充至一个n行的矩阵中,共执行k次填充,k<n。

第二步,编码:对填充矩阵进行编码,产生m(m=n-k)行冗余数据,冗余数据格式例如可以是线性系统码,这些冗余数据被填充在矩阵尾部的行中,可知编码率且编码率越小,编码过程中产生的冗余越多。

第三步,发送:在n行数据的头部添加相关编码信息后,生成编码包并逐个送往束协议层,束协议层将每一编码包封装成束。

封装为束的编码包之后会被交付给下层协议,传输给接收端。因为网络协议各层间的处理过程是透明的,所以上层协议如束协议,不用考虑下层协议如链路层协议的处理过程。发送端和接收端数据传输过程中所受到的影响主要来自于传输过程中的丢包如链路拥塞、噪声(比特级错误过多无法通过纠错如链路层的循环冗余校验恢复造成的丢包)、闪断等。在传输过程中,无论是信息包还是冗余包都可能丢失,

接收端的应用层纠删码处理过程与发送端相反,如图2右侧所示,主要包括以下三个步骤:

第一步,接收:束协议层接收数据束,解封后得到编码包,逐个交付至应用层。

第二步,填充:应用层在接收到束协议层交付的编码包后,检查编码包的头部信息,确定编码类型、编码包序号并申请一个n行的矩阵缓存空间,之后去除编码包头部,将信息包和冗余包按序号填充入矩阵。

第三步,解码:应用层判断接收到的数据的大小,若接收到的信息包和冗余包的总数为h,当h≥k时,可以完成解码,应用层将解码后得到的文件分片写入临时文件,当h<k时,无法解码,这时应用层就会产生一个请求重发的数据包,其中包括了需重发数据的序号,该过程可见下面基于束协议层的自动重传机制设计。

编解码方案

1.编解码定义

编码:给定k个数据块d1、d2......dk,通过对这k个数据块编码生成m个编码块,c1、c2......cm。

解码:对任意的k和m,从k个数据块和m个编码块中任取k块就能解码出源数据,即最多可容忍m个数据块和编码块的丢失。

2.编码和解码方法

编码以字作为编码和解码的基本单位,大于一个字长w的数据块会被拆分成若干个字(取值一般为8或者16位),然后对字进行编解码。对数据块或数据包的编码原理与字编码原理相同,后文中以字为例说明,变量di,ci代表一个字。把输入数据视为向量d=(d1,d2...dk).编码后数据视为向量(d1,d2...dk,c1,c2...cm),编码过程可视为如公式1.1所示矩阵运算。

公式1.1编码过程

编码过程中最左边是编码矩阵,编码矩阵需要满足任意k阶子矩阵可逆。图中编码矩阵的上部是k阶单位矩阵,下部是m行k列矩阵。下部矩阵采用范德蒙德矩阵形式。在范德蒙德矩阵中,其任意阶子方阵均可逆。一个m行k列的范德蒙德矩阵定义如公式1所示,其中ai均不相同,且不为0。

令a1、a2...ak分别为1、2、3...k,则得到范德蒙德矩阵如公式2所示:

将单位矩阵和范德蒙德矩阵组合得到的编码矩阵与输入数据d相乘即可得编码后的数据,如公式3。

最多可以容忍m个数据块的丢失,其解码过程如下:

第一步,假设dl、d4、c2丢失,从编码矩阵中删掉丢失的数据块、编码块对应的行,如公式1.2所示。

公式1.2生成矩阵b和丢失数据

报据公式1.2所示编码过程,可以得到如公式1.3所示的b’以及等式。

公式1.3b’及等式

第二步,由于b’是可逆的,b'的逆矩阵记为(b’-1),b’与其逆矩阵b’-1的乘积记为i,i为单位矩阵。等式两边左乘b'逆矩阵。如公式1.4所示:

公式1.4左乘b’的逆矩阵

第三步,得到源数据d的计算公式,其中b’-1可以通过b’直接求逆得到。如公式1.5所示:

公式1.5丢失编码块恢复示意公式

下面对矩阵编码和解码过程进行详细说明。

文件切割的过程即应用层先将长度为lfile文件读入缓存,之后进行细粒度的切分,得到多个长度为lfilepart文件分片;长度为lfilepart的文件分片,会根据下层协议最大传输单元的限制被划分为k个信息包。因为要实现包级的纠删,所以将每个信息包视为一个信息码字符号,若信息包长度为t则可将每个信息码字符号视为一个长度为t的行向量。k个信息码字符号按切割顺序填充入编码矩阵,作为编码矩阵的前行。对这k行信息码字符号进行编码,产生m行冗余码字符号,共n码字符号,这n个码字符号就构成了一个n行t列的矩阵,如图3所示,白色部分为信息码字符号,灰色部分为冗余码字符号。对于最后一个信息码字符号可能出现不满长度t的情况,此时在其末尾进行补零即可。

发送端应用层会对上述矩阵编码后产生的信息包和冗余包添加编码头部信息,包括包种类,用以区别该包是数据还是控制信息;编码种类,用以选定解码方式;编码率和n,通过这两个信息,接收端可以计算得出信息包的数量,即接收到多少包即可完成解码,同时通过n可知需要创建的解码矩阵的大小;包序号,用以告知信息包或冗余包应被填充入解码矩阵中的位置,编码包的结构如图4所示。图4还示出了各层对信息包或冗余包添加的头部信息。束协议层对应用层交付的数据进行打包以形成束。

接收端应用层在接收到来自束协议层交付的编码包后,从编码包首部获取相关编码信息并创建合适大小(n行t列)的解码矩阵,提取信息包或冗余包,按包序号填充入解码矩阵,完成解码,得到文件分片的数据,这些文件分片数据先被写入一个临时文件,当文件分片接收成功后,发送端和接收端会根据传输控制束,将文件分片的编解码矩阵缓存删除;而当所有文件分片都接收成功后,接收端将这些文件分片合并得到原文件,发送端根据传输控制束删除文件缓存。

考虑到空间通信环境下,一方面,当信道条件恶劣,丢包或错包现象严重时,通过一次传输,接收端无法接收到足够的数据包,本发明通过在传输过程中增加fin束、req束及eot束等传输控制束以实现基于束协议层的自动重传机制,实现发送端对部分数据包的重传,使得接收端可以收到足够的数据包来完成解码,以保证传输的可靠性;另一方面,编码率越小,编码过程产生的冗余越多,这样解码成功率也就越高,但同时编码冗余越多,在链路条件好于预测的话,浪费的链路带宽也就越多,所以引入自动重传机制,在一定程度上减少了带宽的浪费,上述传输控制束由束协议层产生。其中fin束用以告知接收端本次发送结束;req束用以告知发送端所需重传的数据包;eot束用以告知发送端文件分片接收成功,若有后续文件分片,可以开始发送。fin束、req束、eot束作为本方案中的传输控制束,需保证可靠传输,发送端和接收端会对其设置相应的计时器,当这些传输控制束按时到达,计时器关闭;若计时器时间耗尽,仍未收到这些控制束,发送端或接收端会根据相应机制进行重发。所有编码产生的数据包,都将交给下层并发往接收端。下面根据不同的传输情况,进行说明:

a)无需重传数据包的情况,如图5所示。具体过程如下:

第一步,编码产生的数据包先被交给束协议层,束协议层将其打包成束后按序发送,在这些数据包的最后,发送端会发送一个fin束,用以告知接收端本次传输结束。

第二步,接收端束协议层在收到第一数据包束时,启动一个fin计时器,此后每收到一个数据包,计时器重置。当计时器时间耗尽仍未收到后续数据包或接收端接收到fin束,则接收端认为本次传输结束。

第三步,接收端接收到的数据包被束协议层解封并提交给接收端应用层,应用层统计接收到的数据包数。

第四步,如果接收端应用层接收到h(h≥k)个数据包,接收端发送eot束,告知发送端,该文件分片己成功接收,若有后续文件分片,可开始传输。

b)当丢包严重时,发送端需对部分数据包重传,如图6所示。

第一、二、三步与无需重传情况下的过程类似,不同的处理步骤从第四步开始,具体如下:

第一步,编码产生的数据包交由bp层(束协议层)按序发送,在数据包的最后,发送端发送一个fin束,告知接收端本次传输结束。

第二步,接收端启动一个fin计时器,每收到一个数据包,计时器重置。当计时器时间耗尽或接收端接收到fin束,接收端认为本次传输结束。

第三步,接收端接收到的数据包被解封并提交给接收端应用层,应用层统计接收到的数据包数。

第四步,如果接收端应用层收到小于k个数据包,接收端检查每个己接收到的数据包。在数据包的前8个bit,记录了该数据包的序号和数据包的总数n,可通过检查得知哪些数据包未收到。

第五步,将未收到的数据包的序号记录在req束中,并将req束回传给发送端,告知发送端需要重传的数据包,同时接收端开启一个req计时器,进入重传等待计时。若一定时间内收到来自发送端重传的数据包,则关闭req计时器;若超出重传等待时间,仍未收到发送端重传的数据包,则再次发送req束。重复本步骤,直到接收到后续数据。

第六步,发送端在收到req束后,根据req束中所需重传数据包的序号进行重传,并在最后发送一个fin束,告知接收端本次重传结束。

第七步,接收端重复情况(b)中第二、三步,并重新统计己接收到的数据包的总数,若收到大于或等于k个数据包,则向发送端回传eot束,告知该文件分片接收成功,可开始传输下一个文件分片;若不足k个数据包,则重新生成req束,重复上述传输过程,直至接收端接收到足够数据包,可完成解码。

c)如图7所示,是在文件传输过程中传输控制束发生丢失情况时的处理方法,具体步骤如下:

第一步,接收端成功接收到h个数据包,若h大于或等于k,则向发送端发送eot束,告知文件分片传输完成。

若发送端成功接收到eot束,直接跳转执行第四步:

若发送端在fin计时器时间内未收到eot束,执行第二步及后续步骤:

第二步,发送端重发fin束对接收端进行询问,同时开启一个fin束的计时器,进入接收等待。

第三步,接收端收到fin束后,重发eot束。

第四步,发送端开始后续文件分片发送或文件传输结束。

若超出fin束的接收等待时间,未收到eot束,发送端将再次执行第二步,直至发送端接收到eot束。待所有文件分片传输完成,文件接收成功,整个传输过程结束。

根据前两节的说明,混合传输方案的设计主要包括应用层纠删码设计和基于束协议层自动重传机制部分。一方面,本方案通过在dtn网络应用层加入冗余数据编码(纠删码),实现了数据包级的编解码,可对数据包级的错误或丢失进行纠错和恢复,减少数据包重传,提高传输效率;另一方面,空间环境尤其是机动边缘网络的通信环境复杂多变,大量数据包丢失的情况时有发生,为保证在恶劣通信条件下,接收端仍可通过要求发送端对部分数据包重传的方式接收到足够数据包,完成解码,以保证传输的可靠性,本发明引入fin、req、eot三种传输控制束,实现了一个基于束协议层自动重传机制。下面对本发明的高效传输方法进行再一次的总结说明:发送端将文件读入缓存,完成文件切割,随后文件分片被读入编码矩阵,完成编码,生成编码包。编码包被依次送往束协议层打包,完成数据发送。之后发送端进入阻塞状态即等待状态:等待接收端回传的反馈信息,若接收到fin束,则开始进行下一文件分片的编码和发送过程;若接收到req束,则根据req束中的信息,对部分编码进行重传。需要指出的是如果发送的是最后一个文件分片,则在编码包之后,向接收端发送一个eot束,告知所有文件分片都己发送。

高效传输方法在接收端的整体处理过程如下:接收端应用层纠删码对束层交付来的数据进行判断,若为编码包,则填充入解码矩阵;若接收到的是传输控制信息,如是fin束或eot束,则开始统计接收到的编码包个数h。若h≥k,则接收到足够数据,可以完成编码,恢复文件分片;若h<k,则计算得到req束,请求发送端对部分编码包进行重新传输。需指出的是如果接收到eot束,则发送端已发送所有文件分片,接收端将所有接收到的文件分片重组后,即可恢复所传输的文件

综上所述,本发明提出了一种应用层信道编码与自动重传机制相结合的数据传输技术,可在恶劣、高动态、不稳定的机动边缘网络环境中,实现多机动信息服务中心间的可靠、高效的数据传输。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1