多链路数据传输方法、接收装置及存储介质与流程

文档序号:17757565发布日期:2019-05-24 21:25阅读:194来源:国知局
多链路数据传输方法、接收装置及存储介质与流程

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



背景技术:

在多网络链路融合通信领域,发送装置将连续的ip包分发的到不同的网络链路上进行传输,接收装置需要对来自多个网络链路上的ip包重新排序后再进行转发,一旦其中一条网络链路上传输的某个ip包丢失,接收装置需要判断出现ip包丢失情况,从而对该包的后续ip包取消排序等待、马上进行转发,避免造成因为一个ip包丢包造成其他ip包被阻塞。因此,接收装置的转发限时值成为影响ip转发的重要性能指标。如果转发限时值设置太小,则造成大概率的乱序转发、影响网络性能和业务处理;而转发限时值设置太大,则可能造成ip包滞留太久未转发、导致网络性能下降。

当前计算一条网络链路的发送到接收的单向传输延时通常采用两端时间同步的方法,即首先对发送装置和接收装置的本地时间做严格时间同步,计算ip包的发送时间和接收时间之间的差值,并将该差值作为该网络链路的时延。这种两端时间严格同步的方法存在成本高、协议复杂等问题。



技术实现要素:

本发明的主要目的在于提供一种多链路数据传输方法、接收装置以及计算机可读存储介质,旨在通过平滑计算方法计算得到多链路数据传输的转发限时,实现数据包有序、高效地转发,避免了高成本、协议复杂的问题。

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

接收装置在接收到至少两条网络链路分别发送的协议数据包时,获取各个所述协议数据包的接收时间以及发送时间;

根据所述接收时间以及所述发送时间确定所有网络链路的转发限时。

可选的,所述根据所述接收时间以及所述发送时间确定所有网络链路的转发限时的步骤包括:

确定任意的预设数量网络链路分别发送的协议数据包的接收时间以及发送时间;

根据所述接收时间以及所述发送时间确定所述预设数量网络链路的转发限时;

将满足预设条件的所述预设数量网络链路的转发限时作为所述所有网络链路的转发限时。

可选的,将所述预设数量网络链路的转发限时中的最大值作为所述所有网络链路的转发限时。

可选的,所述根据所述接收时间以及所述发送时间确定所述预设数量网络链路的转发限时的步骤包括:

根据所述接收时间以及所述发送时间确定所述预设数量网络链路之间的传输时延差;

根据所述传输时延差确定所述预设数量网络链路的转发限时。

可选的,所述根据所述接收时间以及所述发送时间确定所述预设数量网络链路之间的传输时延差的步骤包括:

计算所述预设数量网络链路分别发送的协议数据包的发送时间之间的第一差值;

计算所述预设数量网络链路分别发送的协议数据包的接收时间之间的第二差值;

计算所述第一差值与所述第二差值之间的第三差值,将所述第三差值的绝对值作为所述预设数量网络链路之间的传输时延差。

可选的,所述根据所述传输时延差确定所述预设数量网络链路的转发限时的步骤包括:

根据所述传输时延差以及预设平滑系数获取平滑传输时延差;

根据所述传输时延差以及所述平滑传输时延差获取时延差变动值;

根据所述平滑传输时延差以及所述时延差变动值确定所述转发限时。

可选的,所述根据所述接收时间以及所述发送时间确定所有网络链路的转发限时的步骤之后,还包括:

在接收到协议数据包时,判断是否接收到所述协议数据包的前序包;

若未接收到所述协议数据包的前序包,获取转发限时;

若在所述转发限时内未接收到所述协议数据包的前序包,将所述协议数据包中的数据包发送至目标地址。

可选的,所述若未接收到所述协议数据包的前序包,获取转发限时的步骤之后,还包括:

若在所述转发限时内接收到所述协议数据包的前序包,将所述前序包中的数据包以及所述协议数据包中的数据包依次发送至所述目标地址。

为实现上述目的,本发明还提供一种接收装置,所述接收装置包括:

存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多链路数据传输程序,所述多链路数据传输程序被所述处理器执行时实现上述多链路数据传输方法的步骤。

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

本发明提供的多链路数据传输方法、接收装置以及计算机可读存储介质,接收装置在接收到至少两条网络链路分别发送的协议数据包时,获取各个所述协议数据包的接收时间以及发送时间,并根据接收时间以及发送时间确定所有网络链路的转发限时。本发明通过平滑计算方法计算得到多链路数据传输的转发限时,实现数据包有序、高效地转发,避免了高成本、协议复杂的问题。

附图说明

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

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

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

图4为本发明多链路数据传输系统示意图。

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

具体实施方式

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

本发明提供一种多链路数据传输方法,通过平滑计算方法计算得到多链路数据传输的转发限时,实现数据包有序、高效地转发,避免了高成本、协议复杂的问题。

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

本发明实施例终端包括但不限于路由器。

如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard)、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

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

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

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

接收装置在接收到至少两条网络链路分别发送的协议数据包时,获取各个所述协议数据包的接收时间以及发送时间;

根据所述接收时间以及所述发送时间确定所有网络链路的转发限时。

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

确定任意的预设数量网络链路分别发送的协议数据包的接收时间以及发送时间;

根据所述接收时间以及所述发送时间确定所述预设数量网络链路的转发限时;

将满足预设条件的所述预设数量网络链路的转发限时作为所述所有网络链路的转发限时。

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

将所述预设数量网络链路的转发限时中的最大值作为所述所有网络链路的转发限时。

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

根据所述接收时间以及所述发送时间确定所述预设数量网络链路之间的传输时延差;

根据所述传输时延差确定所述预设数量网络链路的转发限时。

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

计算所述预设数量网络链路分别发送的协议数据包的发送时间之间的第一差值;

计算所述预设数量网络链路分别发送的协议数据包的接收时间之间的第二差值;

计算所述第一差值与所述第二差值之间的第三差值,将所述第三差值的绝对值作为所述预设数量网络链路之间的传输时延差。

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

根据所述传输时延差以及预设平滑系数获取平滑传输时延差;

根据所述传输时延差以及所述平滑传输时延差获取时延差变动值;

根据所述平滑传输时延差以及所述时延差变动值确定所述转发限时。

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

在接收到协议数据包时,判断是否接收到所述协议数据包的前序包;

若未接收到所述协议数据包的前序包,获取转发限时;

若在所述转发限时内未接收到所述协议数据包的前序包,将所述协议数据包中的数据包发送至目标地址。

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

若在所述转发限时内接收到所述协议数据包的前序包,将所述前序包中的数据包以及所述协议数据包中的数据包依次发送至所述目标地址。

参照图2,在一实施例中,所述多链路数据传输方法包括以下步骤:

步骤s10、接收装置在接收到至少两条网络链路分别发送的协议数据包时,获取各个所述协议数据包的接收时间以及发送时间;

步骤s20、根据所述接收时间以及所述发送时间确定所有网络链路的转发限时。

本实施例中,如图4所示,多链路数据传输系统包括发送端、接收端以及网络链路,所述发送端用于将ip包按照接收的先后顺序封装成协议数据包,并分发到单一或者多个网络通道上传输,其中,所述协议数据包还包括所述ip包序号以及发送时间st;所述接收端用于接收来自不同网络通道的协议数据包,并还原成ip包后排序转发到目标ip地址,所述接收端还用于记录每个协议数据包的接收时间rt,为收到的协议数据包按照转发限时设置计时器,若所述协议数据包的前序包未在转发限时内到达,则计时器触发后转发该协议数据包里的ip包至目标ip地址;所述网络链路为发送端至接收端的传输路径,包括所有物理传输通道和中间网络处理节点。

本实施例中,所述根据所述接收时间以及所述发送时间确定所有网络链路的转发限时的步骤包括:确定任意的预设数量网络链路分别发送的协议数据包的接收时间以及发送时间;根据所述接收时间以及所述发送时间确定所述预设数量网络链路的转发限时;将满足预设条件的所述预设数量网络链路的转发限时作为所述所有网络链路的转发限时。可选的,预设数量为两条。比如接收端在接收到任意两条网络链路分别发送的两个协议数据包后,根据两个协议数据包的接收时间以及发送时间计算出两条网络链路的传输时延差,根据传输时延差以及预设平滑系数获取两条网络链路的平滑传输时延差,根据传输时延差以及平滑传输时延差获取两条网络链路的时延差变动值,根据平滑传输时延差以及时延差变动值确定两条网络链路的转发限时。

具体地,如图4所示,以预设数量为两条为例,计算两条网络链路的转发限时的方法如下:

计算传输时延差:stt=|(rt2-rt1)-(st2-st1)|,其中,st是指发送端的本地时间,rt是指接收端的本地时间,st1、rt1分别是单条网络链路的发送端的本地时间和接收端的本地时间,st2、rt2分别是指另一条网络链路的发送端的本地时间和接收端的本地时间;

计算平滑传输时延差:sstt=(1-alpha)*sstt+alpha*stt,其中:初始sstt=stt,平滑系数alpha的取值范围为:0<alpha<1;

计算时延差变动值:sttvar=(1-beta)*sttvar+beta*|sstt-stt|,其中:初始sttvar=0,平滑系数beta的取值范围为:0<beta<1;

计算转发限时:tto=sstt+gamma*sttvar,其中:gamma=1/beta。

可以理解,后续收到任何一个协议数据包均按照上述方法持续计算。在分别计算得到多条网络链路之间的任意的预设数量网络链路(比如任意两条网络链路)之间的转发限时后,将满足预设条件的转发限时作为所有网络链路的转发限时,可选的,将所述预设数量网络链路的转发限时中的最大值作为所述所有网络链路的转发限时。

本实施例中,所述根据所述接收时间以及所述发送时间确定所述预设数量网络链路的转发限时的步骤包括:根据所述接收时间以及所述发送时间确定所述预设数量网络链路之间的传输时延差;根据所述传输时延差确定所述预设数量网络链路的转发限时。

具体地,所述根据所述接收时间以及所述发送时间确定所述预设数量网络链路之间的传输时延差的步骤包括:计算所述预设数量网络链路分别发送的协议数据包的发送时间之间的第一差值;计算所述预设数量网络链路分别发送的协议数据包的接收时间之间的第二差值;计算所述第一差值与所述第二差值之间的第三差值,将所述第三差值的绝对值作为所述预设数量网络链路之间的传输时延差。

具体地,所述根据所述传输时延差确定所述预设数量网络链路的转发限时的步骤包括:根据所述传输时延差以及预设平滑系数获取平滑传输时延差;根据所述传输时延差以及所述平滑传输时延差获取时延差变动值;根据所述平滑传输时延差以及所述时延差变动值确定所述转发限时。

可以理解,本实施例不限于ip协议技术领域,任何使用本实施例的技术方案均落入本发明的保护范围。

在本实施例公开的技术方案中,接收装置在接收到至少两条网络链路分别发送的协议数据包时,获取各个所述协议数据包的接收时间以及发送时间,并根据接收时间以及发送时间确定所有网络链路的转发限时,这样,通过平滑计算方法计算得到多链路数据传输的转发限时,实现数据包有序、高效地转发,避免了高成本、协议复杂的问题。

在一实施例中,如图3所示,在上述图2所示的实施例基础上,所述根据所述接收时间以及所述发送时间确定所有网络链路的转发限时的步骤之后,还包括:

步骤s30、在接收到协议数据包时,判断是否接收到所述协议数据包的前序包;

步骤s40、若未接收到所述协议数据包的前序包,获取转发限时;

步骤s50、若在所述转发限时内未接收到所述协议数据包的前序包,将所述协议数据包中的数据包发送至目标地址。

本实施例中,若在所述转发限时内接收到所述协议数据包的前序包,将所述前序包中的数据包以及所述协议数据包中的数据包依次发送至所述目标地址。

本实施例中,业务客户端将数据包发送至发送装置,发送装置根据数据包的接收顺序生成所述数据包的序列号,并根据所述数据包以及所述数据包的序列号生成协议数据包,将所述协议数据包通过单条或者多条网络通道发送至接收装置,接收装置将协议数据包还原为数据包以及数据包的序列号,并根据所述数据包的序列号发送所述数据包至目标地址。其中,所述接收装置可以是路由器。

所述根据所述数据包的序列号发送所述数据包至目标地址的步骤包括:获取所述数据包的序列号与预期序列号之间的大小关系,根据所述大小关系发送所述数据包至所述目标地址。具体地,发送装置根据所述数据包的接收顺序确定所述数据包的叠加数值,根据预定序列号以及所述叠加数值生成所述数据包的序列号。可选的,所述数据包的接收顺序越靠后,所述数据包的叠加数值越大。比如,预定序列号设置为0,每接收到一个数据包,序列号叠加1,那么按照接收顺序,数据包的序列号依次为:1、2、3、4......n。所述预期序列号用于接收装置确定数据包的发送顺序,所述预期序列号并非定值,其随着接收装置发出的数据包的序列号进行更新。所述预期序列号根据发送装置最近一次发出的数据包的序列号确定,可选的,所述预期序列号为发送装置最近一次发出的数据包的序列号与预设数值之和,所述预设数值与上述叠加数值有关,比如,预定序列号设置为0,每接收到一个数据包,序列号叠加1,那么预设数值可为1。预定序列号由发送装置和接收装置斜协商确认一致,初始的预期序列号根据预定序列号以及预设数值确定,可选的,初始的预期序列号为预定序列号与预设数值之和。

具体地,在所述数据包的序列号大于所述预期序列号时,将所述数据包添加至缓存队列,并判断所述缓存队列中是否存在所述数据包的前序包;在所述缓存队列中存在所述数据包的前序包时,发送所述数据包以及所述数据包的前序包至所述目标地址。所述缓存队列用于存放待转发的数据包,所述缓存队列的队列长度根据预估每秒最大转发包数量以及预估最大时延差的秒数确定,进一步的,所述缓存队列的队列长度等于预估每秒最大转发包数量和预估最大时延差的秒数之间的乘积。具体地,在所述数据包的序列号大于所述预期序列号时,说明所述数据包晚于所述预期序列号对应的数据包,因此先将所述数据包添加至缓冲队列,并在所述缓冲队列中存在所述数据包的前序包时,将所述数据包以及所述数据包的前序包发送至目标地址。

在所述缓存队列中不存在所述数据包的前序包时,判断转发限时内是否接收到所述数据包的前序包;在所述转发限时内接收到所述数据包的前序包时,发送所述数据包以及所述数据包的前序包至所述目标地址;在所述转发限时内未接收到所述数据包的前序包时,发送所述数据包至所述目标地址。具体地,在缓存队列中不存在数据包的前序包时,为所述数据包的前序包设置计时器(即转发限时),在转发限时内未接收到所述数据包的前序包时,判定所述数据包的前序包丢包,此时为了避免所述数据包永远滞留在缓存队列中,将数据包发送至目标地址。接收装置将缓存队列中的数据包发送至目标地址后,从缓存队列中移除所述数据包以及所述数据包对应的转发限时。

在所述数据包的序列号等于所述预期序列号时,发送所述数据包至所述目标地址。具体地,在所述数据包的序列号等于所述预期序列号时,说明所述数据包恰好为所述预期序列号对应的数据包,因此将所述数据包发送至目标地址。所述在所述数据包的序列号等于所述预期序列号时,发送所述数据包至所述目标地址的步骤之后,还包括:判断缓存队列中是否存在所述数据包的后序包;在所述缓冲队列中存在所述数据包的后序包时,依次发送所述数据包的后序包至所述目标地址。具体地,在缓冲队列中存在所述数据包的后序包时,由于所述数据包已发出,因此将后序包依次发送至目标地址。

在所述数据包的序列号小于所述预期序列号时,发送所述数据包至所述目标地址。具体地,在所述数据包的序列号小于所述预期序列号时,说明所述数据包早于所述预期序列号对应的数据包,因此将所述数据包发送至目标地址。

在本实施例公开的技术方案中,在接收到协议数据包,且未接收到协议数据包的前序包时,获取转发限时,若在转发限时内未接收到协议数据包的前序包,将协议数据包中的数据包发送至目标地址。这样,实现数据包有序、高效地转发,避免了高成本、协议复杂的问题。

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

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有多链路数据传输程序,所述多链路数据传输程序被处理器执行实现如上述接收装置为执行主体下的所述多链路数据传输方法的步骤。

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

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

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

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