数据传输方法、装置、系统及网关与流程

文档序号:16245304发布日期:2018-12-11 23:31阅读:342来源:国知局
数据传输方法、装置、系统及网关与流程

本发明涉及数据网络通信领域,尤其是涉及到数据传输方法、装置、系统及网关。

背景技术

在现有数据通信领域,存在有两条链路,下文以链路a和链路b代称。在其中一条链路铺设不到位或者铺设质量不够好的情况,如果用户单独使用链路a或单独使用链路b,会出现业务带宽不足、链路不稳定等问题。因此,将链路a和链路b捆绑在一起作为解决方案,可以避免此问题。即如果用户流量小于链路a的传输带宽阈值,则流量仅走链路a;如果用户流量大于链路a的传输带宽阈值,则将超出的流量分担到链路b。

由于两条链路时延不一致,所以从两条链路发送的数据到达对端的时延是不一致,相关技术中对端收到报文后,需要先进行保序,然后再转发。当时延差较大的时候,接收端保序重组的压力很大,超过保序能力的话,报文会被丢弃,或者乱序发出,从而影响整体的绑定带宽。特别是tcp传输的情况下,如果两条链路时延差太大,会造成大量的丢包重传,导致整体吞吐量下降。

针对相关技术中多条链路传输数据时接收端保序重组压力大存在丢包风险的问题,现有技术还未提出有效的解决方案。



技术实现要素:

本发明提供了数据传输方法、装置、系统及网关,解决了相关技术中多条链路传输数据时接收端保序重组压力大存在丢包风险的问题。

根据本发明的一个方面,提供一种数据传输方法,包括:周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;传输该第一链路和该第二链路上的数据。

进一步,该缓存队列为流量整形缓存队列。

进一步,根据该第一链路与该第二链路的时延差确定该缓存队列的深度包括:周期性的比较根据该第一链路与该第二链路的时延差确定的该流量整形缓存队列的深度与该缓存队列的深度阈值,其中,该深度阈值包括最大深度阈值和最小深度阈值;在该流量整形缓存队列的深度小于该流量整形缓存队列的最小深度阈值的情况下,确定该流量整形缓存队列的深度为最小深度阈值;在该流量整形缓存队列的深度大于最小深度阈值且小于最大深度阈值的情况下,确定该流量整形缓存队列的深度为根据该第一链路与该第二链路的时延差确定的该流量整形缓存队列的深度。

进一步,在周期性的比较根据该第一链路与该第二链路的时延差确定的该流量整形缓存队列的深度与该缓存队列的深度阈值之后,该方法还包括:在该流量整形缓存队列的深度大于该流量整形缓存队列的最大深度阈值的情况下,确定该流量整形缓存队列的深度为最大深度阈值。

进一步,在周期性的确定作为主链路的第一链路与第二链路的时延差之后,该方法还包括:在该第一链路作为主链路的时延大于该第二链路的情况下,确定该流量整形缓存队列的深度为最小深度阈值,其中,该流量整形缓存队列用于在传输第一链路上的数据前进行流量整形。

进一步,该周期性的确定作为主链路的第一链路与第二链路的时延差包括:周期性的获取该第一链路发送的第一发送报文的第一发送时间戳信息以及通过该第一链路接收到的第一响应报文的第一接收时间戳信息,其中,该第一响应报文的发送时间与该第一发送报文的接收时间相同;周期性的获取通过该第二链路发送的第二发送报文的第二发送时间戳信息以及通过该第二链路接收到的第二响应报文的第二接收时间戳信息,其中,该第二响应报文的发送时间与该第二发送报文的接收时间相同;根据该第一发送时间戳信息、该第一接收时间戳信息、该第二发送时间戳信息和该第二接收时间戳信息确定作为主链路的第一链路与第二链路的时延差。

根据本发明的另一方面,提供一种数据传输装置,包括:第一确定模块,用于周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;第二确定模块,用于在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;传输模块,用于传输该第一链路和该第二链路上的数据。

根据本发明的另一方面,提供一种网关,该网关包括:第一接口、第二接口、处理器和存储器,其中,该第一接口为有线接口用于通过有线链路进行数据收发,其特征在于,该处理器被配置为执行该存储器中的程序指令,该程序指令在被该处理器读取执行时执行以下操作:周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;传输该第一链路和该第二链路上的数据。

进一步,该网关包括家庭网关和混合接入网关。

根据本发明的另一方面,提供一种数据传输系统,包括第一网关、第二网关、用户终端,该第一网关和该第二网关之间存在包括有线链路在内的至少两条链路,该用户终端通过该第一网关和该第二网关之间的该至少两条链路进行数据收发,其特征在于,该第一网关周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;在该第一链路的时延小于该第二链路的情况下,该第一网关根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;该第一网关向该第二网关传输该第一链路和该第二链路上的数据。

进一步,该第一网关为家庭网关,该第二网关为混合接入网关;或该第一网关为混合接入网关,该第二网关为家庭网关。

通过本发明,采用在主链路的流量达到阈值的情况下利用缓存队列缓存经过主链路的流量的技术方案,解决了相关技术中多条链路传输数据时接收端保序重组压力存在丢包风险的问题,提高吞吐量。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的数据传输方法的流程图一;

图2是根据本发明实施例的数据传输装置的结构框图;

图3是根据本发明实施例的数据传输系统的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种数据传输方法、装置、系统及网关,图1是根据本发明实施例的数据传输方法的流程图一,如图1所示,该流程包括如下步骤:

步骤s102,周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;

在本实施例中,作为主链路的第一链路为有线链路,第二链路为有线链路或者是无线链路,两条链路间存在时延差。

具体的,该周期性的确定作为主链路的第一链路与第二链路的时延差包括:周期性的获取该第一链路发送的第一发送报文的第一发送时间戳信息以及通过该第一链路接收到的第一响应报文的第一接收时间戳信息,其中,该第一响应报文的发送时间与该第一发送报文的接收时间相同;周期性的获取通过该第二链路发送的第二发送报文的第二发送时间戳信息以及通过该第二链路接收到的第二响应报文的第二接收时间戳信息,其中,该第二响应报文的发送时间与该第二发送报文的接收时间相同;根据该第一发送时间戳信息、该第一接收时间戳信息、该第二发送时间戳信息和该第二接收时间戳信息确定作为主链路的第一链路与第二链路的时延差。

步骤s104,在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;

在第一链路的时延小于第二链路的情况下,也即第一链路上数据的传输速率大于第二链路上数据的传输速率,利用缓存队列对第一链路上的数据进行缓存后再发送,以至少消除部分时延,减轻接收端保序重组压力,避免保序重组压力过大情况下丢包现象发生。

在一种可行的实施方式中,该缓存队列为新增队列,仅用于对该第一链路上的数据进行缓存后传输该第一链路上的数据。优选地,该缓存队列为流量整形缓存队列,用于对有线链路上的流量进行整形处理,且可通过调节队列深度的方式实现调整该第一链路上的数据在传输前在流量整形缓存队列中缓存的时间。

可选地,一种根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度的方式为周期性的比较根据该第一链路与该第二链路的时延差确定的该流量整形缓存队列的深度与该缓存队列的深度阈值,其中,该深度阈值包括最大深度阈值和最小深度阈值。

在该流量整形缓存队列的深度小于该流量整形缓存队列的最小深度阈值的情况下,确定该流量整形缓存队列的深度为最小深度阈值,以保证该流量整形缓存队列能实现最基本的流量整形功能;

在该流量整形缓存队列的深度大于最小深度阈值且小于最大深度阈值的情况下,确定该流量整形缓存队列的深度为根据该第一链路与该第二链路的时延差确定的该流量整形缓存队列的深度;

在该流量整形缓存队列的深度大于该流量整形缓存队列的最大深度阈值的情况下,确定该流量整形缓存队列的深度为最大深度阈值,以避免流量整形缓存队列的长度过长占用过多的内存空间。

步骤s106,传输该第一链路和该第二链路上的数据。

可选地,在该第一链路作为主链路的时延大于该第二链路的情况下,确定该流量整形缓存队列的深度为最小深度阈值,其中,该流量整形缓存队列用于在传输第一链路上的数据前进行流量整形。

图2是根据本发明实施例的数据传输装置的结构框图,如图2所示,该装置包括:

第一确定模块22,用于周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;

第二确定模块24,用于在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;

传输模块26,用于传输该第一链路和该第二链路上的数据。

本发明实施例中网关包括:

第一接口、第二接口、处理器和存储器,其中,该第一接口为有线接口用于通过有线链路进行数据收发,该处理器被配置为执行该存储器中的程序指令,该程序指令在被该处理器读取执行时执行以下操作:周期性的确定作为主链路的第一链路与第二链路的时延差,其中,该第一链路为有线链路;在该第一链路的时延小于该第二链路的情况下,根据该第一链路与该第二链路的时延差确定与该第一链路对应的缓存队列的深度,其中,该缓存队列用于对该第一链路上的数据进行缓存后传输该第一链路上的数据;传输该第一链路和该第二链路上的数据。

具体的,上述网关可以为家庭网关或者是混合接入网关。

图3是根据本发明实施例的数据传输系统的结构框图,如图3所示,该数据传输系统包括:第一网关32、第二网关34、用户终端36,所述第一网关32和所述第二网关34之间存在包括有线链路在内的至少两条链路,所述用户终端36通过所述第一网关和所述第二网关之间的所述至少两条链路进行数据收发,

所述第一网关32周期性的确定作为主链路的第一链路与第二链路的时延差,其中,所述第一链路为有线链路;

在所述第一链路的时延小于所述第二链路的情况下,所述第一网关32根据所述第一链路与所述第二链路的时延差确定与所述第一链路对应的缓存队列的深度,其中,所述缓存队列用于对所述第一链路上的数据进行缓存后传输所述第一链路上的数据;

所述第一网关32向所述第二网关34传输所述第一链路和所述第二链路上的数据。

具体的,上述第一网关为家庭网关,上述第二网关为混合接入网关;或者上述第一网关为混合接入网关,上述第二网关为家庭网关。

下面结合具体实施例对本发明进行进一步说明。

本发明实施例提出一种自适应链路时延差数据传输方法,两条链路其中有一条为主链路,仅当主链路的流量达到阈值后,才会分流给另一条链路。在主链路上设置一个动态的缓存队列,用于拉近两条链路之间的传输时延。该缓存队列会周期性的根据链路时延进行调整,以适应链路时延不断变化的需求。通过在时延较小的主链路上设置缓存队列对流量进行缓存以使得经过链路a或链路b的流量到达对端的时间相近,从而提高整体的吞吐量。优选地,在主链路上的流量已满的情况下,也即主链路上的流量超出主链路带宽的情况下,启用非主链路进行流量分担。上述令牌数量可以根据rtt设置缓存队列深度确定。

本发明实施例包括以下步骤:

1.周期性的获取链路a和链路b的链路时延,计算链路时延差。

2.根据计算的链路时延差,来调整主链路的缓存队列的深度。若非主链路的时延小于主链路的时延,不进行额外的缓存。

3.流量经过缓存后发送给对端,达到两条链路到达对端的时间相近。

4.若下一个周期两条链路的时延差有变化,继续调整主链路的缓存队列的深度。

通过上述流程步骤,本发明实施例能够将链路a和链路b数据报文到达对端进行保序的时间控制在很接近的范围内,减小了对端的保序缓存压力,避免了丢包重传等情况,提高了传输速率。同时根据当前两条链路的时延差实时调整缓存队列的缓存深度,能够很快响应链路状态的变化。

一种典型的应用场景为有线链路和无线链路捆绑成一条隧道进行有线无线融合的数据传输。用户终端与internet之间是通过有线无线捆绑的隧道进行通信,该隧道的两端分别是家庭网关cpe和混合接入网关hag(hybridaccessaggregation)。cpe同时带两个接口,一个传统的有线接口dslwan,一个是无线空口ltewan。其中ltewan口通过由无线基站和无线网关构成的lte网络接入hag,dslwan口通过由dslam和bras设备接入构成的dsl网络接入hag。hag与用户终端的流量会通过有线链路和无线链路进行收发。由于两条链路时延不一致,所以相关技术中cpe和hag设备对从两条链路上收到的报文会先进行保序,然后再转发。

下面以hag送给cpe的流量为例说明本发明优选实施例的数据传输方法,cpe向hag传输流量也可以类似处理。其中有线链路为主链路,无线链路为非主链路。在主链路的流量达到阈值的情况下,通过无线链路进行流量负荷分担,在接收端对接收到的有线链路及无线链路发送的报文进行保序转发。

1.hag上周期性的通过有线和无线链路分别发送hello报文,并且记录每一个发送hello报文的发送时间戳wiredsendstamp和wirelesssendstamp。

2.cpe收到hag发来的hello报文后,马上回复一个hello报文给hag。

3.hag收到cpe发来的hello回复报文,获取该报文的时间戳wiredrecvstamp或wirelessrecvstamp。

4.根据获取到的链路双向时延计算单向链路时延:

wiredbidirectlatencytime=wiredrecvstamp–wiredsendstamp

wirelessbidirectlatencytime=wirelessrecvstamp–wirelesssendstamp

有线链路单向链路时延:wiredlatencytime=wiredbidirectlatencytime/2

无线链路单向链路时延:wirelesslatencytime=wirelessbidirectlatencytime/2

5.利用相关技术中的有线链路的流量整形缓存队列作为上述缓存队列进行流量缓存,设置有线链路的流量整形缓存队列的最小深度阈值minrtt和最大深度阈值maxrtt。其中,上述最大深度阈值是根据流量整形缓存队列缓存的内存空间大小决定的。

6.计算链路时延rtt

如果wirelesslatencytime<=wiredlatencytime,rtt=minrtt;

如果wirelesslatencytime>wiredlatencytime,获取有线-无线时延差,rtt=wirelesslatencytime-wiredlatencytime。

7.如果rtt<minrtt,则设置rtt=minrtt。

如果rtt>maxrtt,则设置rtt=maxrtt。

8.根据rtt设置流量整形的队列深度,有线流量整形队列的队列深度也即令牌数量token=当前整形速率rate(bps)*rtt(s)

9.当用户流量大于有线链路带宽时,有线链路队列中的报文会缓存rtt时间后再发送,从而抵消了原有的有线-无线时延差,两路报文能在比较接近的时间到达cpe进行保序,从而提高整体的传输速率。

10.下一个周期计算的rtt如果有变化,则再次调整流量整形的队列深度,以达到适应时延动态变化的场景。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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