CN106209565B - 一种基于喷泉码的隧道可靠传输方法及装置 - Google Patents
一种基于喷泉码的隧道可靠传输方法及装置 Download PDFInfo
- Publication number
- CN106209565B CN106209565B CN201610816545.9A CN201610816545A CN106209565B CN 106209565 B CN106209565 B CN 106209565B CN 201610816545 A CN201610816545 A CN 201610816545A CN 106209565 B CN106209565 B CN 106209565B
- Authority
- CN
- China
- Prior art keywords
- packet
- encoded
- data
- packets
- identifier
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 34
- 239000011159 matrix material Substances 0.000 claims abstract description 19
- 230000003139 buffering effect Effects 0.000 claims abstract description 3
- 238000005538 encapsulation Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供了一种基于喷泉码的隧道可靠传输方法及装置,包括:获得遵从网络层协议的IP包;将IP包缓存至发送缓存区域;当发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对发送缓存区域内已缓存的IP包进行喷泉编码处理,获得编码包集合;在编码包集合中每一编码包的首部添加第一标识和第二标识,其中,第一标识用于表示编码包在所述编码包集合中的序号,第二标识用于表示所述编码包集合的标识;对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。本申请实施例提供的方法利用喷泉码的优点来解决隧道丢包率高的问题,能够有效提高隧道数据传输的可靠性。
Description
技术领域
本申请涉及虚拟专用网络领域,特别是涉及一种基于喷泉码的隧道可靠传输方法及装置。
背景技术
虚拟专用网络(Virtual Private Network,VPN)基于广泛分布的Internet网络,便于部署、成本低廉、可扩展性好,在企业网中得到广泛应用。隧道是实现VPN的关键技术,主要利用隧道协议来实现。隧道协议把一种网络协议的数据帧或数据包封装进另一种协议的数据帧中,在两主机间建立虚拟专有连接,封装的数据包就像普通的数据包一样进行传输,实现了在公共网络上传输私有数据。
随着网络技术的快速发展,涌现出了大量的多媒体业务,这些业务对数据传输的实时性和可靠性都有很高的要求。现有的隧道传输方法,由于Internet链路、节点阻塞、防火墙过滤等因素的影响,造成隧道内会出现数据丢包的情况,此时网络中会出现大量的ACK确认包和重传包,增加了网络负载,加剧了网络拥塞,严重时还会出现网络瘫痪,导致隧道传输可靠性低。例如,如果隧道基于UDP协议建立,丢包会导致网络传输可靠性降低,用户的应用数据不能正确传输,影响用户体验;如果隧道基于TCP建立,出现丢包时TCP协议会重传数据包,以提高数据传输可靠性,但是网络中大量的重传包,加大阻塞程度,降低网络传输效率。目前还没有应用喷泉码来提高隧道可靠性的方法。
发明内容
本申请实施例目的在于提供一种基于喷泉码的隧道可靠传输方法及装置,以提高隧道数据传输的可靠性。具体技术方案如下:
一种基于喷泉码的隧道可靠传输方法,应用于发送端,所述方法包括:
获得遵从网络层协议的IP包;
将所述IP包中的IP数据包缓存至发送缓存区域;
当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合;
在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所述编码包集合中的序号,所述第二标识用于表示所述编码包集合的标识;
对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
较佳地,所述数据编码条件包括:
所述发送缓存区域所缓存的IP数据包数量不小于预设数量;或者
所述缓存区域超过预设时间未缓存新的IP数据包。
较佳地,所述IP包,包括:IP数据包和IP控制包;
在所述获得遵从网络协议的IP包之后,还包括:
对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
较佳地,本申请实施例还提供一种基于喷泉码的隧道可靠传输方法,应用于接收端,所述方法包括:
接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
将所述第一编码包缓存至接收缓存区域;
基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识;
当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识以及所述编码包集合的各个编码包中的第二标识,对所述编码包集合进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号。
较佳地,所述方法还包括:
接收发送端发送的第二数据包;
对所述第二数据包进行解封装处理,获得IP控制包。
另一方面,本申请实施例还提供一种基于喷泉码的隧道可靠传输装置,应用于发送端,所述装置包括:
获得模块,用于获得遵从网络层协议的IP包;
发送缓存模块,用于将所述IP包中的IP数据包缓存至发送缓存区域;
编码模块,用于当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合;
标记模块,用于在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所述编码包集合中的序号,所述第二标识用于表示所述编码包集合的标识;
第一发送模块,用于对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
较佳地,所述数据编码条件包括:
所述发送缓存区域所缓存的IP数据包数量不小于预设数量;或者
所述缓存区域超过预设时间未缓存新的IP数据包。
较佳地,所述IP包,包括:IP数据包和IP控制包;
在获得模块之后,还包括:
第二发送模块,用于对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
另一方面,本申请实施例还提供一种基于喷泉码的隧道可靠传输装置,应用于接收端,所述装置包括:
第一接收模块,用于接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
接收缓存模块,用于将所述第一编码包缓存至接收缓存区域;
确定模块,用于基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识;
解码模块,用于当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识以及所述编码包集合的各个编码包中的第二标识,对所述编码包集合进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号。
较佳地,所述装置还包括:
第二接收模块,用于接收发送端发送的第二数据包,并对所述第二数据包进行解封装处理,获得IP控制包。
本申请实施例提供的一种基于喷泉码的隧道可靠传输方法及装置,发送端将待发送的遵从网络层协议的IP数据包缓存至发送缓存区域,在发送缓存区域满足预设的喷泉编码条件的情况下,对上述发送缓存区域内的IP数据包进行喷泉编码、封装处理,并将进行上述处理后的数据包发送至接收端。由于数据包经过喷泉编码后,接收端只要接收到一定数量的编码包即可恢复出所有的数据包,所以,在网络传输丢包率高时,接收端只要接收到了一定数量的数据包,就可以通过对所接收的数据包进行解封装、译码处理,恢复出发送端发送的所有数据包,而无需发送端再次发送丢失的数据包。因此,应用本申请实施例提供的方案,在存在网络丢包的情况下,由于无需重传丢失的数据包,也就不会增大网络的阻塞程度,进而也就不会进一步增加丢包率,可见,能够提高数据传输的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法的流程图;
图2为本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法的另一流程图;
图3为本申请实施例所提供的一种基于喷泉码的隧道可靠传输装置的结构示意图;
图4为本申请实施例所提供的一种基于喷泉码的隧道可靠传输装置的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种基于喷泉码的隧道可靠传输方法及装置,以解决数据传输时可靠性低的问题。
下面首先对本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法进行介绍。
需要说明的是,本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法应用于隧道的发送端服务器。另外,在执行本数据发送方法之前,发送端和接收端之间已经通过VPN服务器验证,建立网络隧道连接。
如图1所示,本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法,可以包括如下步骤:
S101:获得遵从网络层协议的IP包;
具体的,所述IP(Internet Protocol,网络互连协议)数据包为发送端服务器将待发数据包去掉MAC(Media Access Control,媒体访问控制)源目的地址得来。
需要说明的是,根据具体的、隧道所使用的协议,上述获得的IP包可以为普通的遵从网络层协议的数据包,同时也可以为加密处理后的、遵从网络层协议的数据包,其中,上述加密处理为现有技术,在此不作赘述。
S102:将所述IP包中的IP数据包缓存至发送缓存区域;
由于后续步骤需要对数据包进行喷泉编码,而喷泉编码的编码要求为:存在多组待编码的数据(此处为多个IP数据包)。因此,本申请实施例提供发送缓存区域,目的在于存储每一次获取的IP数据包,以达到拥有多个IP数据包(即喷泉编码要求)的目的,以便进行下一步骤。
S103:当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合;
上述预设编码矩阵可以是由工程师根据链路情况预先设定的,在一种实现方式中,所述编码矩阵可以为LT(Luby Transform Code,卢比变换码),当然所述编码矩阵还可以是其他喷泉码矩阵。
具体的,喷泉码是一种删除编码,与物理层信道编码不同,它以符号(比特组)为编码单位。发送端按照预设的喷泉码编码矩阵对数据进行编码,接收端只要接收到了足够多的数据包(即本申请实施例的第一数据包)即可高概率成功恢复出待发送数据包。
在本申请的一种实现方式中,喷泉码的具体编码方式可以为:将所述缓存区域内的至少两个IP数据包进行异或运算,得到一个编码包;接着多次重复上述步骤以得到多个编码包。需要强调的是,为保证编码后数据能够充分体现IP数据包的内容,所述编码包数目不少于所述IP数据包的数目。
进一步需要说明的是,所述编码包集合,由所述发送缓存区域内所有IP数据包编码而得。例如,当前发送缓存区域中包含5个IP数据包,那么在一种实现方式中,发送端可以将上述5个IP数据包根据预设的编码矩阵编为15个编码包,进而获得15个编码包。则所述编码包集合包含15个编码包。
具体的,预设的数据编码条件可以为所述发送缓存区域所缓存的IP数据包数量不小于预设数量。缓存预设数量的IP数据包的目的是达到喷泉编码的要求,即存在多组待编码的数据(此处为多个IP数据包)。
进一步的,由于待发送IP数据包本身数目有限或者发送中断等因素,在最后一次缓存IP数据包时,有可能出现待发送IP包数目小于预设数量的情况,相应地缓存区域所缓存的IP数据包数目同样无法达到预设数量。因此,预设的数据编码条件还可以为:所述缓存区域超过预设时间未缓存新的IP数据包。也就是说,当缓存区域超过预设时间未缓存新的IP数据包时,即使当前缓存区域的IP数据包数目未达到预设数量,同样执行编码操作。
需要说明的是,上述预设数量可以是根据待发送数据包数量所确定的任一数值,也可以是根据实际传输需求设定的任一数值,上述预设时间可以由实际的链路的畅通情况决定,具体决定方法为现有技术,在此不作赘述。
S104:在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所述编码包集合中的序号,所述第二标识用于表示所述编码包集合的标识;
具体的,发送端执行完一次喷泉编码操作所得到的编码包属于同一编码包集合。接收端可以通过上述第二标识识别所接收的数据包属于哪一编码包集合,接着通过上述第一标识识别所接收到的数据包在所述编码包集合的顺序。
具体的,在一种实现方式中,假设当前编码包集合中有15个编码包,那么首先在第1个编码包的首部添加第一标识,即表明此编码包在所述编码包集合中的序号的标识,接着添加第二标识,第二标识用于区别当前编码包集合与其他编码包集合;接着在第2个编码包的首部执行同样操作,以此类推,直至当前编码包集合中所有编码包被添加第一标识和第二标识。
S105:对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
具体的,首先对第1个填加标识后的编码包进行封装处理,得到第一数据包,并发送至接收端;接着对第2个添加标识后的编码包进行封装处理,得到新的第一数据包,发送至接收端;以此类推,直至处理完所有添加标识后的编码包。
由于IP包包括IP数据包以及IP控制包,IP数据包为用于承载用户数据的IP包,IP控制包为用于维持隧道连接的IP包。鉴于此,为了保证发送端所发送的第一数据包能够到达接收端,本申请实施例还包括:
S106:在所述获得遵从网络层协议的IP包之后,对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
具体的,发送端将所述IP控制包添加UDP(User Datagram Protocol,用户数据报协议)头、IP头,以达到封装IP控制包的目的,其中,由于加TCP封装会导致隧道层面的二次重传,所以此处可选使用UDP封装。
需要说明的是,本申请并不限定S106和S102-S105的执行顺序,例如,S106和S102-S105可以是并行的也可以是顺序执行。也就是说,本申请实施例可以首先对IP数据包进行处理,然后对IP控制包进行处理;或者首先对IP控制包进行处理,然后对IP数据包进行处理。
本申请实施例提供的一种基于喷泉码的隧道可靠传输方法,发送端将待发送的遵从网络层协议的IP数据包缓存至发送缓存区域,在发送缓存区域满足预设数据编码条件的情况下,对上述缓存区域的IP数据包进行喷泉编码、封装处理,并将进行上述处理后的数据包发送至接收端。由于数据包经过喷泉编码后,接收端只要接收到一定数量的第一数据包即可恢复出所有IP数据包,所以,在网络传输丢包率高时,接收端只要接收到了一定数量的数据包,就可以通过对所接收的数据包进行解封装、译码处理,恢复出发送端所发送的所有数据包,而无需发送端再次发送丢失的数据包。因此,应用本申请实施例提供的方案,在存在网络丢包的情况下,由于无需重传丢失的数据包,也就不会增大网络的阻塞程度,进而也就不会进一步增大丢包率,可见,能够提高数据传输的可靠性。
更进一步的,为了完成数据的完整传输,本申请实施例还提供了一种基于喷泉码的隧道可靠传输方法,应用于接收端,是上述数据发送方法的逆过程。下面,对本申请实施例所提供的,应用于接收端的一种基于喷泉码的隧道可靠传输方法进行详细介绍。
如图2所示,本申请实施例所提供的应用于接收端的一种基于喷泉码的隧道可靠传输方法,可以包括如下步骤:
S201:接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
由于发送端发送的数据包为进行封装处理后的数据包,所以,接收端接收到第一数据包后,首先需对第一数据包进行解封装处理。
S202:将所述第一编码包缓存至接收缓存区域;
具体的,由于接收端需要接收一定数量的、同一编码包集合的编码包,才进行解码处理,所以本申请实施例设定接收缓存区域用来存储接收到的第一编码包。其中,第一编码包为接收端对所接收的第一数据包进行解封处理所得。
S203:基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识;
需要说明的是,在一种实现方式中,发送端将不同编码包集合中的编码包标记不同第二标识,将相同编码包集合中的编码包标记相同第二标识,具体的,同一编码包集合的编码包为发送端在同一次编码时所得。
相应的,接收端在识别所述第一编码包中的第二标识时,可以判断所述第一编码包由哪次编码所得,即判断所述第一编码包所述的编码包集合,进而为解码做准备。
S204:当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识以及所述编码包集合的各个编码包中的第二标识,对所述编码包集合进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号;
具体的,当所述编码包集合中的编码包数目不小于预设数目时,即说明编码包数目达到解码要求,进而根据所述编码包内的第二标识,对同一编码包集合内的编码包进行解码。
所述第二标识为发送端所添加的,用于表示编码包在编码包集合内的序号,即在本次编码内当前编码包于第几个产生。具体的,在一种实现方式中,假设当前编码包在本次编码中第一个产生,则当前编码包的第一标识可以为1。相应的,在接收端所接收的上述编码包,同样带有标记为1的第一标识,进而接收端可以判断上述编码包在编码包集合中(即一次编码时)的顺序,进而解码。
需要说明的是,所述编码矩阵可以为喷泉码中的任意一种。
较佳地,当发送和接收双方选择有加密的隧道协议建立隧道连接时,发送端数据需要经过加密处理,相应于发送端的传输方法,接收端的传输方法增加相同的解密机制。隧道协议为现有技术,在此不作赘述。
可以理解的是,当恢复出发送端所发送的原始数据时,为了防止数据解错而不符合协议规定,而使得接收端处理器处理错误,因此本申请实施例对上述IP数据包进行验证处理,进而验证数据的合法性,验证过程为现有技术,在此不做赘述。
由于数据链路帧包含IP数据包以及IP控制包,IP控制包用于维持隧道连接。为了保证所发送的第一数据包能够成功到达接收端,故发送端发送上述第二数据包。鉴于此,为了保证发送端、接收端的隧道连接,进而使接收端接收第一数据包,本申请实施例还包括:
S205:接收发送端发送的第二数据包;
具体的,所述第二数据包为发送端所发送的,经过发送端封装处理后的IP控制包。
需要说明的是,发送端待发送的IP包包括IP数据包和IP控制包,进而发送端分别对IP数据包和IP控制包进行处理,最后得到发送端发送的数据。因此,相应地,接收端除了会收到S201中的第一数据包,同样会收到发送端处理IP控制包后所得并发送的第二数据包。
S206:对所述控制包进行解封装处理,获得IP控制包。
较佳地,为保证IP控制包能够正常被读取,在获得IP控制包后,验证上述IP控制包的合法性,验证过程为现有技术,在此不做赘述。
需要说明的是,S201-S204与S205-S206之间不存在先后顺序。也就是说,接收端可以先接收所述第一数据包,然后接收所述第二数据包;还可以是接收端先接收第二数据包,然后接收第一数据包。上述两种情况都是合理的,根据实际接收到的顺序做出相应的处理。
本申请实施例提供的一种基于喷泉码的隧道可靠传输,接收端接收发送端发送的第一数据包,上述第一数据包经过喷泉编码,接着缓存第一数据包并识别第一数据包所属的编码包集合,当同一编码包集合的第一数据包达到预设数量时,对编码包集合进行解码处理,获得数据包集合,进而获得发送端所发送的IP数据包。由于数据包经过喷泉编码后,接收端只要接收到一定数量的第一数据包即可恢复出所有的数据包,所以,在网络传输丢包率高时,接收端只要接收到了一定数量的数据包,就可以通过对所接收的数据包进行解封装、译码处理,恢复出发送端所发送的所有数据包,而无需发送端再次发送丢失的数据包。因此,应用本申请实施例提供的方案,在存在网络丢包的情况下,由于无需重传丢失的数据包,也就不会增大网络的阻塞程度,进而也就不会进一步增大丢包率,可见,能够提高数据传输的可靠性。
为了更清楚解释本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法,下面结合一种应用场景进行介绍。
执行本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法的发送端、接收端VPN服务器可以为云主机。具体的,在发送端云主机和接收端云主机间建立网络层隧道连接,接着发送端、接收端分别执行本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法,完成数据传输。由于云主机之间的丢包率高,传输可靠性低,而现有的利用TCP来提高可靠性的方法又会导致在大量丢包时网络传输效率低。在此场景下应用本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法,可以高程度提高隧道可靠性。
进一步的,由于隧道服务提供商无法对应用层、物理层等数据进行更改,因此应用于网络层的本申请实施例所提供的一种基于喷泉码的隧道可靠传输方法可以方便应用于隧道服务器中,无需对客户终端或者物理层进行改动。
相应于上述方法,如图3所示,本申请实施例还提供了一种基于喷泉码的隧道可靠传输装置,详细介绍如下:
一种数据发送装置,应用于发送端,所述装置包括:
获得模块310,用于获得遵从网络层协议的IP包;
发送缓存模块320,用于将所述IP包中的IP数据包缓存至发送缓存区域;
编码模块330,用于当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合;
标记模块340,用于在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所述编码包集合中的序号,所述第二标识用于表示所述编码包集合的标识;
第一发送模块350,用于对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
较佳地,所述数据发送条件包括:
所述发送缓存区域所缓存的IP数据包数量不小于预设数量;或者
所述缓存区域超过预设时间未缓存新的IP数据包。
较佳地,所述IP包,包括:IP数据包和IP控制包;
获得模块之后,还包括:
第二发送模块,用于对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
本申请实施例提供的一种基于喷泉码的隧道可靠传输装置,应用于发送端,发送端将遵从网络层协议的IP包中的IP数据包缓存至发送缓存区域,在发送缓存区域满足预设数据编码条件的情况下,对上述缓存区域的IP数据包进行喷泉编码、封装处理,并将进行上述处理后的数据包发送至接收端。由于数据包经过喷泉编码后,接收端只要接收到一定数量的编码包即可恢复出所有的数据包,所以,在网络传输丢包率高时,接收端只要接收到了一定数量的数据包,就可以通过对所接收的数据包进行解封装、译码处理,恢复出发送端所发送的所有数据包,而无需发送端再次发送丢失的数据包。因此,应用本申请实施例提供的方案,在存在网络丢包的情况下,由于无需重传丢失的数据包,也就不会增大网络的阻塞程度,进而也就不会进一步增大丢包率,可见,能够提高数据传输的可靠性。
另一方面,如图4所示,本申请实施例还提供另一种基于喷泉码的隧道可靠传输装置,应用于接收端,所述装置包括:
第一接收模块410,用于接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
接收缓存模块420,用于将所述第一编码包缓存至接收缓存区域;
确定模块430,用于基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识;
解码模块440,用于当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识,对所述编码包集合的各个编码包进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号。
较佳地,所述装置还包括:
第二接收模块,用于接收发送端发送的第二数据包,并对第二数据包进行解封装处理,获得IP控制包;
本申请实施例提供的一种基于喷泉码的隧道可靠传输装置,应用于接收端,接收端接收发送端发送的第一数据包,上述第一数据包经过喷泉编码,接着缓存第一数据包并识别第一数据包所属的编码包集合,当同一编码包集合的第一数据包达到预设数量时,对编码包集合进行解码处理,获得数据包集合,并对数据包集合进行解封装、译码处理获得发送端所发送的IP数据包。由于数据包经过喷泉编码后,接收端只要接收到一定数量的第二数据包即可恢复出所有IP数据包,所以,在网络传输丢包率高时,接收端只要接收到了一定数量的数据包,就可以通过对所接收的数据包进行解封装、译码处理,恢复出发送端所发送的所有数据包,而无需发送端再次发送丢失的数据包。因此,应用本申请实施例提供的方案,在存在网络丢包的情况下,由于无需重传丢失的数据包,也就不会增大网络的阻塞程度,进而也就不会进一步增大丢包率,可见,能够提高数据传输的可靠性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种基于喷泉码的隧道可靠传输方法,其特征在于,应用于发送端虚拟专用网络VPN服务器,发送端VPN服务器和接收端VPN服务器之间已经通过VPN服务器验证,建立网络隧道连接,所述方法包括:
获得遵从网络层协议的IP包,所述IP包为发送端将待发数据包去掉媒体访问控制MAC源目的地址得来;
将所述IP包中的IP数据包缓存至发送缓存区域;
当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合,各编码包集合分别为发送端执行完一次喷泉编码操作所得到的编码包的集合;
在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所属编码包集合中的序号,所述第二标识用于表示编码包所属的编码包集合的标识;
对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
2.根据权利要求1所述的方法,其特征在于,所述数据编码条件包括:
所述发送缓存区域所缓存的IP数据包数量不小于预设数量;或者
所述缓存区域超过预设时间未缓存新的IP数据包。
3.根据权利要求1或2所述的方法,其特征在于,
所述IP包,包括:IP数据包和IP控制包,所述IP控制包为用于维持隧道连接的IP包;
在所述获得遵从网络协议的IP包之后,还包括:
对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
4.一种基于喷泉码的隧道可靠传输方法,其特征在于,应用于接收端虚拟专用网络VPN服务器,发送端VPN服务器和接收端VPN服务器之间已经通过VPN服务器验证,建立网络隧道连接,所述方法包括:
接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
将所述第一编码包缓存至接收缓存区域;
基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识,各编码包集合分别为发送端执行完一次喷泉编码操作所得到的编码包的集合;
当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识以及所述编码包集合的各个编码包中的第二标识,对所述编码包集合进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收发送端发送的第二数据包;
对所述第二数据包进行解封装处理,获得IP控制包。
6.一种基于喷泉码的隧道可靠传输装置,其特征在于,应用于发送端虚拟专用网络VPN服务器,发送端VPN服务器和接收端VPN服务器之间已经通过VPN服务器验证,建立网络隧道连接,所述装置包括:
获得模块,用于获得遵从网络层协议的IP包,所述IP包为发送端将待发数据包去掉媒体访问控制MAC源目的地址得来;
发送缓存模块,用于将所述IP包中的IP数据包缓存至发送缓存区域;
编码模块,用于当所述发送缓存区域满足预设的数据编码条件时,根据预设编码矩阵,对所述发送缓存区域内已缓存的IP数据包进行喷泉编码处理,获得编码包集合,各编码包集合分别为发送端执行完一次喷泉编码操作所得到的编码包的集合;
标记模块,用于在所述编码包集合中每一编码包的首部添加第一标识和第二标识,其中,所述第一标识用于表示编码包在所属编码包集合中的序号,所述第二标识用于表示编码包所属的编码包集合的标识;
第一发送模块,用于对所述编码包集合中添加标识后的每一编码包进行封装处理得到第一数据包,并将所述第一数据包发送至接收端。
7.根据权利要求6所述的装置,其特征在于,所述数据编码条件包括:
所述发送缓存区域所缓存的IP数据包数量不小于预设数量;或者
所述缓存区域超过预设时间未缓存新的IP数据包。
8.根据权利要求6或7所述的装置,其特征在于,
所述IP包,包括:IP数据包和IP控制包,所述IP控制包为用于维持隧道连接的IP包;
在获得模块之后,还包括:
第二发送模块,用于对所述IP控制包进行封装处理,并将封装处理后得到的第二数据包发送至接收端。
9.一种基于喷泉码的隧道可靠传输装置,其特征在于,应用于接收端虚拟专用网络VPN服务器,发送端VPN服务器和接收端VPN服务器之间已经通过VPN服务器验证,建立网络隧道连接,所述装置包括:
第一接收模块,用于接收发送端发送的第一数据包,并对所述第一数据包进行解封装处理,获得第一编码包;
接收缓存模块,用于将所述第一编码包缓存至接收缓存区域;
确定模块,用于基于所述第一编码包中的第二标识,确定所述第一编码包所属的编码包集合,其中,所述第二标识为用于表示编码包所属的编码包集合的标识,各编码包集合分别为发送端执行完一次喷泉编码操作所得到的编码包的集合;
解码模块,用于当所述编码包集合中编码包数目不小于预设数目时,根据预设编码矩阵、所述编码包集合的各个编码包中的第一标识以及所述编码包集合的各个编码包中的第二标识,对所述编码包集合进行解码处理,获得IP数据包,其中,所述第一标识用于表示编码包在所属编码包集合中的序号。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收发送端发送的第二数据包,并对所述第二数据包进行解封装处理,获得IP控制包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816545.9A CN106209565B (zh) | 2016-09-12 | 2016-09-12 | 一种基于喷泉码的隧道可靠传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816545.9A CN106209565B (zh) | 2016-09-12 | 2016-09-12 | 一种基于喷泉码的隧道可靠传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209565A CN106209565A (zh) | 2016-12-07 |
CN106209565B true CN106209565B (zh) | 2019-11-05 |
Family
ID=58067311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610816545.9A Expired - Fee Related CN106209565B (zh) | 2016-09-12 | 2016-09-12 | 一种基于喷泉码的隧道可靠传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209565B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360568B (zh) * | 2017-08-24 | 2020-06-19 | 西安交通大学 | 利用喷泉码实现对称加密保障无线数据安全传输的方法 |
CN116170115B (zh) * | 2023-04-19 | 2023-06-27 | 华南师范大学 | 基于码本的数字喷泉编解码方法、装置以及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617525A (zh) * | 2003-11-14 | 2005-05-18 | 华为技术有限公司 | 一种保证通用路由封装隧道传输可靠的方法 |
EP2234304A1 (en) * | 2009-03-19 | 2010-09-29 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for recovery of lost and/ or corrupted data |
CN102801495A (zh) * | 2012-06-18 | 2012-11-28 | 北京遥测技术研究所 | 一种基于喷泉码的遥测数据帧同步方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103338092B (zh) * | 2013-06-13 | 2016-09-21 | 清华大学 | 分布式短波电台通信的方法及系统 |
-
2016
- 2016-09-12 CN CN201610816545.9A patent/CN106209565B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617525A (zh) * | 2003-11-14 | 2005-05-18 | 华为技术有限公司 | 一种保证通用路由封装隧道传输可靠的方法 |
EP2234304A1 (en) * | 2009-03-19 | 2010-09-29 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for recovery of lost and/ or corrupted data |
CN102801495A (zh) * | 2012-06-18 | 2012-11-28 | 北京遥测技术研究所 | 一种基于喷泉码的遥测数据帧同步方法 |
Non-Patent Citations (2)
Title |
---|
Fountain Code Design for Broadcasting Systems With Intermediate-State Users;Youngkil Suh,Jonghyun Baik等;《IEEE transactions communications》;20150930;3057-3067 * |
喷泉码在多接口无线多媒体传输中的应用;邹衍芳,尹长川,李剑峰;《中国科技论文》;20140430;451-455 * |
Also Published As
Publication number | Publication date |
---|---|
CN106209565A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11671868B2 (en) | Methods and apparatus for optimizing tunneled traffic | |
CN106716951B (zh) | 用于优化隧道流量的方法和装置 | |
JP5164123B2 (ja) | スループットの向上を実現するシステム及び方法 | |
JP6025880B2 (ja) | データ伝送方法、装置及びシステム | |
RU2549518C2 (ru) | Устройство для передачи блока протокольных данных уровня управления доступом к среде "mac pdu" с расширенным заголовком фрагментации и объединения и соответствующий способ | |
CN103905180B (zh) | 经典应用接入量子通信网络的方法 | |
US20110317719A1 (en) | Data link layer headers | |
CN103428227B (zh) | 基于Huffman编码的IP隐秘通信方法 | |
WO2010121410A1 (zh) | 一种采用arq机制的头压缩通信方法和装置 | |
CN102118792B (zh) | 一种传输数据包的方法及装置 | |
CN106256149A (zh) | 一种数据处理方法及装置 | |
KR20170097548A (ko) | 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치 | |
US10200155B2 (en) | One-way data transmission apparatus, one-way data reception apparatus, and one-way data transmission/reception method using the same | |
CN106209565B (zh) | 一种基于喷泉码的隧道可靠传输方法及装置 | |
Roca et al. | Simple low-density parity check (ldpc) staircase forward error correction (fec) scheme for fecframe | |
WO2008034365A1 (en) | Methods and a system and devices for ipv6 datagram transmission in the ethernet | |
WO2018214070A1 (zh) | 译码的方法和装置 | |
CN100433714C (zh) | 一种ip分片报文传输处理方法 | |
WO2017143538A1 (zh) | 语音数据传输方法以及装置 | |
EP3340545B1 (en) | Methods and apparatus for optimizing tunneled traffic | |
CN114500412A (zh) | 一种镜像流量数据的处理方法及系统 | |
CN100466506C (zh) | 一种数据传输的方法 | |
CN101557277A (zh) | 基站与网络节点之间基于承载网的数据传输方法及设备 | |
Roca et al. | RFC 6816: Simple Low-Density Parity Check (LDPC) Staircase Forward Error Correction (FEC) Scheme for FECFRAME | |
Li et al. | Improved IPsec performance utilizing transport‐layer‐aware compression architecture |
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: 20191105 |
|
CF01 | Termination of patent right due to non-payment of annual fee |