多链路环境下数据发送、接收装置及数据发送、接收方法制造方法及图纸

技术编号:21853752 阅读:40 留言:0更新日期:2019-08-14 01:07
本发明专利技术提供的一种多链路环境下数据发送装置包括:本地数据包捕获模块,用于捕获多个第一数据包;所述多个第一数据包拟通过第一链路逐个发送;FEC编码缓冲区模块,用于以N个数据包为单位,对本地数据包捕获模块捕获的多个第一数据包进行编组;N是大于1的自然数;FEC编码模块,用于对编组后的第一数据包进行编码得到M个第二数据包,第二数据包为第一数据包对应的冗余纠错数据包;M为大于1的自然数;远端数据包发送模块,用于通过第二链路发送编组信息和多个第二数据包。在不增加第一链路传输带宽的情况下用较低的代价实现高质量的数据传输。

Data Sending and Receiving Device and Data Sending and Receiving Method in Multi-link Environment

【技术实现步骤摘要】
多链路环境下数据发送、接收装置及数据发送、接收方法
本专利技术涉及网络通信
,尤其涉及一种多链路环境下数据发送、接收装置及数据发送、接收方法。
技术介绍
随着云计算技术的发展,越来越多的用户倾向于使用云服务器部署业务。但是云服务器的带宽有限,通常不能提供有效的链路质量保证。因此,链路的丢包高、时延不稳定等现象往往是云服务器使用过程中用户面临的痛点。为了解决该问题,云服务提供商提供了带宽资源预留服务,可以保证在服务有效期内,为云服务器提供高质量的链路保障,不会因为链路繁忙而导致丢包。但是,这种方法的代价是用户需要支付高昂的服务费用。解决链路丢包的常见方法是使用前向纠错编码(ForwardErrorCorrection,FEC)技术。传统的FEC技术往往基于单一链路开展,所产生的冗余纠错包和原始数据包在原有链路中同时传输。因此冗余纠错数据包的传输会占用服务器原有的带宽。在云服务器带宽有限的情况下,采用传统FEC技术方式的解决方案,在有效数据传输方面效果并不理想。
技术实现思路
有鉴于此,本申请实施例提供了一种多链路环境下数据发送、接收装置及数据发送、接收方法。第一方面,本申请实施例提供了一种多链路环境下数据发送装置包括:本地数据包捕获模块,用于捕获多个第一数据包;所述多个第一数据包拟通过第一链路逐个发送;FEC编码缓冲区模块,用于以N个数据包为单位,对本地数据包捕获模块捕获的多个第一数据包进行编组;N是大于1的自然数;FEC编码模块,用于对编组后的第一数据包进行编码得到M个第二数据包,第二数据包为第一数据包对应的冗余纠错数据包;其中,M为大于1的自然数;远端数据包发送模块,用于通过第二链路发送编组信息和多个第二数据包。可选实施例中,所述本地数据捕获模块,支持只捕获指定应用程序的第一数据包或排除指定应用程序的第一数据包的过滤。可选实施例中,所述编组信息包括:组号、组内编号、负载长度、标志。可选实施例中,所述FEC编码缓冲区设置有定时器,当FEC编码缓冲区存入第一个第一数据包时,启动计时;在FEC编码缓冲区并未存储够一定数量的第一数据包且定时器超时时,触发FEC编码模块。第二方面,本申请实施例提供了一种多链路环境下数据接收装置包括:本地数据包捕获模块,用于捕获多个第一数据包;远端数据包接收模块,用于接收多个第二数据包和编组信息;FEC解码缓冲区模块,根据编组信息将多个第一数据包和第二数据包编组存放;当FEC编码缓冲区模块中任意一个编组中的第一数据包和第二数据包的总个数达到一定数量时,触发FEC解码模块进行解码;FEC解码模块,对编组后第一数据包和第二数据包进行解码,解码后产生在第一传输链路中丢失的第一数据包的恢复数据包;本地数据包发送模块,用于从FEC解码模块中获取在第一传输链路中丢失的第一数据包的恢复数据包,并将获取的第一数据包的恢复数据包发送到应用程序中。可选实施例中,所述对编组后的第一数据包和第二数据包进行解码包括:采用里德-所罗门算法对在第一链路传输过程中丢失的第一数据包进行恢复。第三方面,本申请实施例提供了一种多链路环境下数据发送方法,所述方法包括:捕获多个第一数据包,对第一数据包进行复制并获取第二链路IP地址;其中,所述多个第一数据包通过第一链路逐个发送;以N个数据包为单位,对多个第一数据包进行编组;其中,N是大于1的自然数;对编组后的第一数据包进行编码,并计算M个第二数据包,所述M个第二数据包是N个第一数据包的冗余纠错数据包;其中,M是大于1的自然数;将编组信息和M个第二数据包通过第二链路发送。可选实施例中,所述获取第二链路IP地址包括:根据复制的第一数据包的目的IP地址,从配置文件中读取IP地址对应关系,找到接收端的第二链路IP地址。第四方面,本申请实施例提供了一种多链路环境下数据接收方法,所述方法包括:接收第一链路发送的多个第一数据包;接收第二链路发送的以N个第一数据包为单位的编组信息和多个第二数据包;其中,第二数据包是第一数据包的冗余数据包,N是大于1的自然数;对多个第一数据包和第二数据包进行解码;对解码后的第一数据包进行校验和过滤,保留在第一链路传输中丢失的第一数据包的恢复数据包,并发送给应用程序。可选实施例中,所述对多个第一数据包和第二数据包进行解码采用里德-所罗门算法,根据M+N个数据包中的任意N个数据包恢复N个第一数据包。本申请实施例具有如下有益效果:本专利技术申请多链路环境下数据发送、接收装置及数据发送、接收方法,在一种可能的情况下结合使用高带宽低质量的第一链路传输原始数据包,低带宽高质量的第二链路传输编组信息和冗余纠错包,实现较低丢包率的数据传输。本方法可以在不增加第一链路传输带宽的情况下用较低的代价实现高质量的数据传输。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1示出了本申请一种多链路环境下的数据传输示意图;图2示出了本申请一种多链路环境下数据发送装置的结构示意图;图3示出了本申请一种多链路环境下数据接收装置的结构示意图;图4示出了本申请一种多链路环境下数据发送方法的流程图;图5示出了本申请一种多链路环境下数据接收方法的流程图;图6示出了本申请的一实施例示意图。具体实施方式下面结合具体实施例对本申请作进一步详细描述,但不作为对本申请的限定。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。图1示出了本申请一种多链路环境下的数据传输示意图。参照图1,发送装置和接收装置通过网卡0,实现与第一链路的连接,通过网卡1实现与第二链路的连接。对于同一个发送装置或者同一个接收装置,网卡0的IP地址和网卡1的IP地址具有一一对应的关系,对应关系记录在相关配置文件中。优选地,第一链路可以使用高带宽低质量的基础互联网链路。第二链路可以使用较低带宽的高质量的专线链路。结合使用两条链路传输数据,在不增加基础互联网带宽的情况下,用较低的代价,实现高质量的数据传输保证。第一链路和第二链路可以统称为加速链路,通常状况下,加速链路的双方都需要部署发送单元与接收单元程序来满足服务器之间的数据交互的需求。在数据传输过程中,第一数据包(待加速数据和不加速数据)通过基础互联网进行传输,而第二数据包则通过云服务器提供商提供的高质量链路(如:专线链路)进行传输。在丢包率较低的情况下,由于第二数据包的数量远小于第一数据包的数量,因此,可以通过一个较低带宽的高质量链路进行传输,从而满足那些对网络质量要求较高的应用的需求。图2为本专利技术实施例提供的一种多链路环境下数据发送装置的结构示意图。参见图2,本专利技术实施例的数据发送装置包括:本地数据包捕获模块201、FEC编码缓冲区模块202、FEC编码模块203、远端数据包发送模块204。本地数据包捕获模块201负责将应用程序发送到网卡0的多个第一数据包复制到FEC编码缓冲区模块202中。本地数据包捕获模块201还支持对多个第一数据包进行过滤。具体地,支持基于报文五元组(源地址、源端口、目的地址本文档来自技高网...

【技术保护点】
1.一种多链路环境下数据发送装置,包括:本地数据包捕获模块,用于捕获多个第一数据包;所述多个第一数据包拟通过第一链路逐个发送;FEC编码缓冲区模块,用于以N个数据包为单位,对本地数据包捕获模块捕获的多个第一数据包进行编组;N是大于1的自然数;FEC编码模块,用于对编组后的第一数据包进行编码得到M个第二数据包,第二数据包为第一数据包对应的冗余纠错数据包;其中,M为大于1的自然数;远端数据包发送模块,用于通过第二链路发送编组信息和多个第二数据包。

【技术特征摘要】
1.一种多链路环境下数据发送装置,包括:本地数据包捕获模块,用于捕获多个第一数据包;所述多个第一数据包拟通过第一链路逐个发送;FEC编码缓冲区模块,用于以N个数据包为单位,对本地数据包捕获模块捕获的多个第一数据包进行编组;N是大于1的自然数;FEC编码模块,用于对编组后的第一数据包进行编码得到M个第二数据包,第二数据包为第一数据包对应的冗余纠错数据包;其中,M为大于1的自然数;远端数据包发送模块,用于通过第二链路发送编组信息和多个第二数据包。2.根据权利要求1所述的数据发送装置,其特征在于,所述本地数据包捕获模块,支持只捕获指定应用程序的第一数据包或排除指定应用程序的第一数据包的过滤。3.根据权利要求1所述的数据发送装置,其特征在于,所述编组信息包括:组号、组内编号、负载长度、标志。4.根据权利要求1所述的数据发送装置,其特征在于,所述FEC编码缓冲区设置有定时器,当FEC编码缓冲区存入第一个第一数据包时,启动计时;在FEC编码缓冲区并未存储够一定数量的第一数据包且定时器超时时,触发FEC编码模块。5.一种多链路环境下数据接收装置,包括:本地数据包捕获模块,用于捕获多个第一数据包;远端数据包接收模块,用于接收多个第二数据包和编组信息;FEC解码缓冲区模块,根据编组信息将多个第一数据包和第二数据包编组存放;当FEC编码缓冲区模块中任意一个编组中的第一数据包和第二数据包的总个数达到一定数量时,触发FEC解码模块进行解码;FEC解码模块,对编组后的第一数据包和第二数据包进行解码,解码后产生在第一传输链路中丢失的第一数据包的恢复数据包;本地数据包发送模块,...

【专利技术属性】
技术研发人员:周旭覃毅芳王浩宇任勇毛
申请(专利权)人:中国科学院计算机网络信息中心
类型:发明
国别省市:北京,11

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

1