多链路数据传输方法、装置及计算机可读存储介质与流程

文档序号:17922680发布日期:2019-06-15 00:13阅读:132来源:国知局
多链路数据传输方法、装置及计算机可读存储介质与流程

本发明涉及通信领域,尤其涉及一种多链路数据传输方法、装置及计算机可读存储介质。



背景技术:

随着随着智能终端和云计算业务的发展和普及,业务对传输网络的发展,人们对传输网络的传输带宽和可用性的要求也日益提高。使得多网络链路融合通信的产品和技术逐渐普及。目前,网络链路融合的通信产品一般基于tcp(transmissioncontrolprotocol,传输控制协议)协议实现数据传输。而在多条链路上进行tcpack(acknowledgement,确认字符)包平均分发传输时,容易受到不同链路的丢包率、时延差异的叠加影响,而致使tcpack包出现延迟和丢包情况,从而导致数据传输效率降低的技术问题。



技术实现要素:

本发明的主要目的在于提供一种多链路数据传输方法、装置及计算机可读存储介质,旨在达到提高数据传输效率的目的。

为实现上述目的,本发明提供一种多链路数据传输方法,所述多链路数据传输方法包括以下步骤:

在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符;

在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同;

通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。

可选地,所述在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包的步骤包括:

获取链路数量;

根据所述确认字符生成对应的所述确认数据包;

复制所述确认数据包,产生与所述链路数量相同数量的所述确认数据包。

可选地,所述数据包包括tcp数据包或ack包,所述确认字符为ack包。

此外,所述多链路数据传输方法还包括以下步骤:

接收确认数据包;

在首次接收到所述确认数据包时,将所述确认数据包发送至目的终端;

在非首次接收到所述确认数据包时,丢弃接收到的所述确认数据包。

可选地,所述在首次接收到所述确认数据包时,将所述确认数据包发送至目标终端的步骤之前,还包括:

获取所述确认数据包对应的标识信息,以根据所述标识信息判断是否为首次接收到所述确认数据包;

在首次接收到所述确认数据包时,保存所述确认数据包对应的标识信息。

可选地,所述保存所述确认数据包对应的标识信息的步骤之后,还包括:

获取所述标识信息的已存储时间;

在所述已存储时间大于预设时间阈值时,删除所述标识信息。

此外,为实现上述目的,本发明还提供一种多链路数据传输装置,所述多链路数据传输装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如上所述的多链路数据传输方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如上所述的多链路数据传输方法的步骤。

本发明实施例提出的一种多链路数据传输方法、装置及计算机可读存储介质,在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符,在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同,然后通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。由于通过多条链路向数据发送端发送确认数据包,这样避免了由于单链路的传输确认数据包时,导致的不同链路的丢包率、时延差异叠加影响,从而提高了数据传输的效率。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明多链路数据传输方法的一实施例的流程示意图;

图3为本发明多链路数据传输方法另一实施例的流程示意图;

图4为本发明处理标识信息的流程示意图;

图5为本发明删除标识信息的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:

在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符;

在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同;

通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。

由于目前,网络链路融合的通信产品一般基于tcp(transmissioncontrolprotocol,传输控制协议)协议实现数据传输。而在多条链路上进行tcpack(acknowledgement,确认字符)包平均分发传输时,容易受到不同链路的丢包率、时延差异的叠加影响,而致使tcpack包出现延迟和丢包情况,从而导致数据传输效率降低的技术问题。

本发明实施例提出的一种多链路数据传输方法、装置及计算机可读存储介质,在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符,在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同,然后通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。由于通过多条链路向数据发送端发送确认数据包,这样避免了由于单链路的传输确认数据包时,导致的不同链路的丢包率、时延差异叠加影响,从而提高了数据传输的效率。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是多卡路由器等可用于多链路传输终端设备。

如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括指示灯、输入单元比如按钮等,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据传输程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据传输程序,并执行以下操作:

在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符;

在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同;

通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。

进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:

获取链路数量;

根据所述确认字符生成对应的所述确认数据包;

复制所述确认数据包,产生与所述链路数量相同数量的所述确认数据包。

进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:

接收确认数据包;

在首次接收到所述确认数据包时,将所述确认数据包发送至目的终端;在非首次接收到所述确认数据包时,丢弃接收到的所述确认数据包。

进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:

获取所述确认数据包对应的标识信息,以根据所述标识信息判断是否为首次接收到所述确认数据包;

在首次接收到所述确认数据包时,保存所述确认数据包对应的标识信息。

进一步地,处理器1001可以调用存储器1005中存储的数据传输程序,还执行以下操作:

获取所述标识信息的已存储时间;

在所述已存储时间大于预设时间阈值时,删除所述标识信息。

参照图2,在本发明多链路数据传输方法的一实施例中,所述多链路数据传输方法包括:

步骤s10、在接收到数据包时,对所述数据包进行识别,以判定所述数据包是否为确认字符;

在一实施例中,执行主体可以是多卡无线路由器,多卡无线路由器可以接收数据包,也可以发送数据包。其中,所述多卡无线路由器接收及/或发送数据包时,基于tcp传输协议实现。本实施例中,以多卡无线路由器与接收端连接。其中,在基于tcp传输协议进行数据传时,发送端发送的tcp数据包需经过多卡无线路由器向接收端转发,接收端发送的ack包需要经过多卡无线路由器向发送端转发。

需要说明的是,所述接收端可以是pc、智能手持移动端及或服务器等设备,本发明对此不作限定。所述tcp数据包是指用于传输实际数据的数据包。

在基于tcp协议进行通信时,当发送端向接收端发送数据包(即tcp数据包)后,需要根据接收端反馈的ack判断接收端是否已经接收到完整的数据信息。而ack传输时的时延、和丢包率是基于tcp协议进行传输时,影响传输效率的关键因素。特别是在多链路传输模式中,传统传输模式仅会生成一个ack包,然后从多链路的其中一条链路发送至接收端。当发送该ack包的链路的传输状态不佳时,对传输效率产生极大的影响。

本实施例提供的多卡无线路由器作为数据中转装置时,当接收到数据包时,先对数据包进行识别。当识别出该数据包为tcp数据包时,直接转发所述tcp数据包。当识别出所述数据包为ack包时,执行步骤s20。

具体地,当接收到一个数据包时,解析所述数据包的包头,并获取所述数据包的长度。根据所述数据包的包头及所述数据包的长度对所述数据包进行识别。以确所述数据包是否为ack包。

步骤s20、在所述数据包为确认字符时,获取链路数量,并根据所述确任字符生成确认数据包,其中,所述确认数据包的数量与所述链路数量相同;

在一实施例中,当多卡无线路由器判定当前接收到数据包为确认字符(即ack包)时,将该确认字符封装成确认数据包(即对ack包进一步封装)。其中,在封装所述确认字符时,封装如特定的标识信息,用以识别所述确认数据包。在完成封装后,多卡无线路由器可以复制该确认数据包,以生成多个确认数据包。

具体地,所述步骤s20包括:

步骤s21、获取链路数量;

在一实施例中,所述多卡无线路由器可以获取与当前需要转发的ack包对应的目的终端(即当前ack包的接收端)之间的链路数量。所述链路数量可以为预存数据,即可以将多卡无线路由器与目的终端之间实际存在的链路数量,预先存储至多卡无线路由器可以读取的储存介质中。多卡无线路由器可以直接通过读取储存介质中的数据,确定链路数量。另外,多卡无线路由器也可以采取实时检测的方式,检测与目的终端之间的当前可用链路数量。其中,实时检测可用链路,可以基于多卡无线路由器储存的路由表实现。可以理解的是,本实施例提出的获取链路数量的方法,并不用于限定如何获取链路数量。

步骤s22、根据所述确认字符生成对应的所述确认数据包;

步骤s23、复制所述确认数据包,产生与所述链路数量相同数量的所述确认数据包。

在一实施例中,在多卡无线路由器获取到与目的终端之间的通信链路数量时,将将确认字符(ack包)与标识信息封装成一个确认数据包。在生成一个确认数据包后,复制所述确认数据包,使得产生与所述链路数量相等数量的确认数据包。

步骤s30、通过各条链路分别向目的终端发送所述确认数据包,其中,每条所述链路发送一个所述确认数据包。

在一实施例中,在获得与链路数量相同数量的确认数据包后,分别通过多条通信链路向目的终端发送所述确认数据包。即在向目的终端发送确认数据包时,每一条链路均会发送一个相同的确认数据包。

在本实施例中,当接收到ack包时,获取链路数量,并根据ack包生成多个相同的确认数据包,并将多个相同的确认数据包通过多条不同链路发送至目的终端,这样,减小了单一链路发送ack包时,由于该链路的传输状态不佳产生的时延,及减小了ack包发生丢包事件的概率。从而达到了提高传输效率的目的。

进一步地,参照图3,本发明多链路数据传输方法的另一实施例中,基于上述实施例,所述多链路数据传输方法,还包括:

步骤s010、接收确认数据包;

在一实施例中,执行主体可以为多卡无线路由器,多卡无线路由器在基于tcp传输协议进行数据传输时,可以作为数据的中转装置,所以多卡无线路由器可以发送/接收数据包。本实施例将以多卡无线路由器作为与数据发送端连接的中转装置进行解释说明。即基于tcp传输协议进行数据传输时,多卡无线路由器与发送实际数据的发送端直接连接。发送端将tcp包发送至接收端,或者接收端将ack包发送至发送端时,均需要经过多卡无线路由器的转发。

具体地,当多卡无线路由器接收到数据包时,判定该数据包是否为确认数据包。若接收到的数据包为确数据包时,参照图4,可以执行以下步骤:

步骤s040、获取所述确认数据包对应的标识信息,以根据所述标识信息判断是否为首次接收到所述确认数据包;

步骤s050、在首次接收到所述确认数据包时,保存所述确认数据包对应的标识信息。

在一实施例中,当接收到的数据包为确认数据包时,可以获取其标识信息。进而查询当前数据库中是否保存有该标识信息。当数据库中保存有该标识信息时,判定当前时刻之前,已经接收到该确认数据包相同的数据包。否则,判定当前时刻首次接收到该确认数据包。在首次接收到该确认数据包时,将所述标识信息保存至对应的数据库中。

可选地,参照图5,所述步骤s050之后,还包括:

步骤s060、获取所述标识信息的已存储时间;

步骤s070、在所述已存储时间大于预设时间阈值时,删除所述标识信息。

在一实施例中,多卡无线路由器可以定时检测当前已存储的每一标识信息的已储存时间,也可以实时检测当前已存储的每一标识信息储存时间,进而判断所述已储存时间是否大于预设时间阈值。其中,预设时间阈值可以由设备生产者根据经验自定义设置,并储存在多卡无线路由器可以读取的储存介质中。当所述标识信息的已储存时间大于预设时间阈值时,可以将所述标识信息删除。这样,使得节省了多卡无线路由器的储存空间,避免了储存容量满溢的现象。

或者也可以在多卡无线路由器的存储介质中,划定一固定储存容量的区域作为存储所述标识信息的区域。该区域仅仅用于存储所述标识信息。当该区域还剩余存储容量时,将获取到的标识信息直接储存于该区域。当该区域已经储存满,且又获取到一新的标识信息需要储存时,删除当前时刻已经储存于该储存区域中的,最先存入的标识信息。并将新获取到的标识信息写入该储存区域,进行储存。这样则可以省略获取每一标识信息的已储存时间的步骤,及省略对比每一标识信息的已存储时间是否大于预设时间阈值的步骤。达到了节省cpu开销的目的。

步骤s020、在首次接收到所述确认数据包时,将所述确认数据包发送至目标终端;

步骤s030、在非首次接收到所述确认数据包时,丢弃接收到的所述确认数据包。

在一实施例中,在当前时刻为首次接收到该确认数据包时,将所述确认数据包还原成ack包,并将该ack包发送至目的终端。在判定当前时刻之前,已经接收到与当前接收到的确认数据包相同的确认数据包时,即在非首次接收到该确认数据包时,丢弃当前时刻接收到的确认数据包。

在本实施例中,可以接收确认数据包,并在非首次接收到确认数据包时,执行丢包动作,这样达到了避免由于数据重复产生的数据冲突的目的。

此外,本发明实施例还提出一种多链路数据传输装置,所述多链路数据传输装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如上各个实施例所述的多链路数据传输方法的步骤。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如上各个实施例所述的多链路数据传输方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是多卡路由器等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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