多链路聚合数据重传方法及发送设备

文档序号:1448665 发布日期:2020-02-18 浏览:27次 >En<

阅读说明:本技术 多链路聚合数据重传方法及发送设备 (Multilink aggregation data retransmission method and transmitting equipment ) 是由 柯于刚 马骏 刘则林 张伟 于 2019-10-22 设计创作,主要内容包括:本申请公开了一种多链路聚合数据重传方法及发送设备,该方法包括:接收由接收设备发送的重传请求,所述重传请求中携带丢失数据包的全局序列号SN,全局SN用于区分每个数据包;按照预设规则,从所有链路中选择重传链路,所述重传链路与初次发送丢失数据包的链路相同或不同;利用重传链路向接收设备重传与全局SN对应的数据包。本申请可以实现数据包的快速重传。(The application discloses a multilink aggregation data retransmission method and a transmitting device, wherein the method comprises the following steps: receiving a retransmission request sent by receiving equipment, wherein the retransmission request carries a global sequence number SN of a lost data packet, and the global SN is used for distinguishing each data packet; selecting a retransmission link from all links according to a preset rule, wherein the retransmission link is the same as or different from a link for primarily transmitting the lost data packet; and retransmitting the data packet corresponding to the global SN to the receiving equipment by utilizing the retransmission link. The method and the device can realize the quick retransmission of the data packet.)

多链路聚合数据重传方法及发送设备

技术领域

本申请涉及网络数据传输技术领域,尤其涉及一种多链路聚合数据重传方法及发送设备。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

丢包是数据传输过程中的常见现象。为了保证接收设备能够接收到完整的数据,在丢包现象发生后,往往需要发送设备将丢失的数据包重传至接收设备。如何快速的将数据包重传至接收设备,也就成为需要关注的问题。

发明内容

本申请实施例提供一种多链路聚合数据重传方法,用以实现数据包的快速重传,该方法包括:

接收由接收设备发送的重传请求,所述重传请求中携带丢失数据包的全局序列号(Serial Number,SN),全局SN用于区分每个数据包;按照预设规则,从所有链路中选择重传链路,所述重传链路与初次发送丢失数据包的链路相同或不同;利用重传链路向接收设备重传与全局SN对应的数据包。

本申请实施例还提供一种发送设备,用以实现数据包的快速重传,该发送设备包括:

接收模块,用于接收由接收设备发送的重传请求,所述重传请求中携带丢失数据包的全局序列号SN,全局SN用于区分每个数据包;链路选择模块,用于按照预设规则,从所有链路中选择重传链路,所述重传链路与初次发送丢失数据包的链路相同或不同;发送模块,用于利用链路选择模块选择的重传链路向接收设备重传与全局SN对应的数据包。

本申请实施例中,利用全局SN来区分不同的数据包,这样发送设备可以不必拘泥于初次发送该丢失数据包的链路,而是可以在任意链路上发送丢失数据包,这样当初次发送丢失数据包的链路存在时延大、丢包率大或超负载等情况导致链路状态不佳时,可以选择其他状态更好的链路发送该丢失数据包,从而保证数据包可以快速的重传至接收设备。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本申请实施例中一种多链路聚合数据重传方法的流程图;

图2为本申请实施例中一种数据包传输过程的示意图;

图3为本申请实施例中另一种数据包传输过程的示意图;

图4为本申请实施例中另一种数据包传输过程的示意图;

图5为本申请实施例中一种发送设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本申请实施例做进一步详细说明。在此,本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。

本申请实施例提供了一种多链路聚合数据重传方法,应用于发送设备,如图1所示,该方法包括步骤101至步骤103:

步骤101、接收由接收设备发送的重传请求。

其中,重传请求中携带丢失数据包的全局序列号SN,全局SN用于区分每个数据包。

在本申请实施例中,通讯双方,即发送设备和接收设备,没有类似于传输控制协议(Transmission Control Protocol,TCP)一样的三次握手过程,如图2所示,通讯双方(通讯方A和通讯方B)周期性持续维持控制选项(ctrl option)交互数据包,来检查通讯双方的实例是否匹配,同时交换对方发送数据的全局SN列表。根据从发送设备获取的全局SN列表,接收设备通过比对接收到的数据包的全局SN以及全局SN列表,能够确定未接收到的数据包,进而向发送设备发送携带丢失数据包的全局SN的重传请求,以供发送设备向接收设备重传丢失数据包。

由于数据具有时效性,如果丢失数据包之后,在较长时间之内都未将数据包重传至接收设备,则接收设备可能不再需要该数据包,为了避免发送接收设备可能不需要的数据包占用链路资源,在本申请实施例中,在接收由接收设备发送的重传请求之后,发送设备判断数据包超时时间是否大于最大允许超时时间,其中,数据包超时时间为数据包的发送至接收到重传请求之间的时间;如果数据包超时时间大于最大允许超时时间,则不再重传丢失数据包;如果数据包超时时间小于等于最大允许超时时间,则分配链路资源重传丢失数据包。

示例性的,如图2所示,如果发送设备(如图2中通讯方A)接收到接收设备(如图2中通讯方B)发送的全局重传请求时,该全局重传请求SACK(Selective ACK)中的数据包括全局SN列表。发送设备判断需要进行全局重传的数据对应的全局SN列表是否已超出最大允许超时时间;如果请求全局重传的数据包已经超时,则发送设备判断请求重传的数据已不存在,发送设备立即同步ctrol option包,同步双方全局SN。接收设备跳过无法重传恢复的数据,这在实时视频传输的应用场景中具有良好的应用效果。

步骤102、按照预设规则,从所有链路中选择重传链路。

需要说明的是,重传链路与初次发送丢失数据包的链路相同或不同。也就是说,既可以使用初次发送丢失数据包的链路重传丢失数据包,也可以选择其他链路重传丢失数据包。这是考虑到不论承载能力大或承载能力小的链路均具有一定的丢包率,某条链路上发生了丢包,并不意味着该条链路的传输能力一定差,因此,在选择重传链路的时候,同样考虑初次传输丢失数据包的链路。

具体的,获取链路的带宽、延时以及每条链路上正在传输的数据包数量等链路参数,并根据链路参数确定每条链路所能承载的最大数据包数量;从正在传输的数量包数量小于当前链路所能承载的最大数据包数量的链路中,任意选择一条链路作为重传链路。

在本申请实施例中,还可以根据丢失数据的性质选择重传链路,比如,对于如视频电话、视频会议、视频互动、视频监控、互动直播、视频点播或视频组播等对实时性要求较高的数据,可以从正在传输的数据包数量小于当前链路所能承载的最大数据包数量的链路中,选择延时最低或延时能够满足数据包实时性要求的链路作为重传链路;对于较大、传输时占用带宽资源较多的数据包,可以选择带宽剩余量较多的链路。通过这样具有针对性的链路选择可以满足不同数据包的传输需求。

另外,除了针对丢失数据的性质选择延时小或带宽大的数据包之外,还可以综合链路的整体情况来选择重传链路。具体的,可以针对每个链路参数设置权重,及分值评估方案,根据分值评估方案确定当前链路的每个链路参数的得分,并根据得分及各种的权重确定链路的整体分值,如果分值越高对应链路的情况越好,则优先选择整体分值较高的链路作为重传链路。

步骤103、利用重传链路向接收设备重传与全局SN对应的数据包。

在本申请实施例中,考虑到无线链路常有数据抖动,若干数据包往往会几倍于常态往返时延(Round-Trip Time,RTT)的延时到达,这就造成接收设备偶发数据包到达延时过大。本申请实施例中,可以由接收设备记录已接收的数据包的到达时间,进而根据已接收数据包的发送时间、已接收数据包的到达时间、链路的最大允许延时值和抖动容忍修正值,预测从发送已接收数据包的链路发送数据包的预测到达时间,也即预测未到数据包的应到时间,从而判断数据包是否发生丢包或超时时间过长等现象。如果在预测到达时间内,未接收到接收设备发送的确收字符(Acknowledge character,ACK),则确定重传当前发送的数据包。并主动对该类可能丢失的数据包或超市时间过长的数据包进行重传,以使接收设备能够获得更低的整体延时效果。

在本申请实施例中,发送设备发送的数据包中同时携带用于区分不同数据包的全局SN和用于区分数据包发送链路的链路SN,以及发送设备的时间戳,接收设备接收到数据后,回复ACK,并携带SACK重传数据组,丢失数据包的发送链路的链路SN,发送设备根据发送设备的时间戳和接收到ACK的时间来计算每次数据通信的RTT值。示例性的,如图3所示,通讯方A为发送设备,通讯方B为接收设备,双方通过链路X来传输数据,当通讯方B接收到数据包后立即向通讯方A反馈ACK,从通讯方A发送数据包的时刻至通讯方A接收到ACK的时刻之间的时间段即为本次通信的RTT值。

由于链路SN和全局SN具有唯一性,因此,可以用于通讯双方全局数据确认以及数据包去重和排序等。链路SN还可以用于确认链路上发送的数据是否到达、计算链路发送窗口作用等。

需要说明的是,链路SN和全局SN非一一对应的关系,同一个链路SN多次发送的数据包的全局SN未必是相同的,不同链路SN的链路发送的数据包也未必是不同的。也就是说,链路只负责发送数据,具体发送的是什么数据和链路没有直接关系,链路根据链路SN是否到达来判断数据包是否丢失或延迟、进行驱动重传和拥塞控制算法的运算,这样就解耦数据和窗口估计的关联。

考虑到发送设备按照链路能够承担的负载量为链路分配负载,若链路发生丢包,则链路当前传输的数据包的数量减少,则可以再重新为链路分配数据包,以便于充分利用链路资源。因此,在利用重传链路向接收设备重传与全局SN对应的数据包之后,还可以根据链路SN,判断重传链路与初次发送丢失数据包的链路是否相同;如果重传链路与初次发送丢失数据包的链路不同,则利用初次发送丢失数据包的链路发送与丢失数据包数量相等的数据包。其中,链路SN用于区分不同链路。示例性的,一条链路上可以承载40个数据包,当前发送的数据包的数量为40个,如果丢失了2个数据包,则链路上发送的数据包数量由40减少为38个,此时,发送设备可以再利用本链路发送2个数据包。

再如,参见图4所示,通信方A和通信方B发送数据时使用的X链路上最多可发送44个数据包,这些可容纳44个数据包的位置被编号为链路1~链路44,在此,并不限定链路1~链路44是发送的哪个数据包,其只关注自身代表的位置是否被占用。在发送过程中,通信方B在接收到编号为链路42的数据包之后,检查到链路42之前的3个数据包,即链路39、链路40和链路41位置的数据包,未被接收到,则在通信方B通知通信方A链路39~41空余后,通信方A重新为链路X分配数据包以占用链路39~链路41所代表的三个位置,这样,就可以保证链路1~链路44这44个位置没有空缺,链路资源的利用率达到最高。

可见,本申请实施例中,利用全局SN和链路SN将数据包重传和链路数据重传分离,使得数据包的重传不依赖于初次发送其丢包的链路;而链路在重传的过程中,也无需关注是否再次发送发生过丢包的数据包,只需保证自身的链路资源得到有效利用。

本申请实施例中,利用全局SN来区分不同的数据包,这样发送设备可以不必拘泥于初次发送该丢失数据包的链路,而是可以在任意链路上发送丢失数据包,这样当初次发送丢失数据包的链路存在时延大、丢包率大或超负载等情况导致链路状态不佳时,可以选择其他状态更好的链路发送该丢失数据包,从而保证数据包可以快速的重传至接收设备。

本申请实施例还提供了一种发送设备,如图5所示,该发送设备500包括接收模块501、链路选择模块502和发送模块503。

其中,接收模块501,用于接收由接收设备发送的重传请求,重传请求中携带丢失数据包的全局序列号SN,全局SN用于区分每个数据包。

链路选择模块502,用于按照预设规则,从所有链路中选择重传链路,重传链路与初次发送丢失数据包的链路相同或不同。

发送模块503,用于利用链路选择模块502选择的重传链路向接收设备重传与全局SN对应的数据包。

在本申请实施例的一种实现方式中,链路选择模块502,用于:

获取链路的带宽、延时以及每条链路上正在传输的数据包数量;

根据链路参数确定每条链路所能承载的最大数据包数量;

从正在传输的数量包数量小于当前链路所能承载的最大数据包数量的链路中,任意选择一条链路作为重传链路。

在本申请实施例的一种实现方式中,发送设备500还包括:

链路判断模块504,用于根据链路SN,判断链路选择模块502确定的重传链路与初次发送丢失数据包的链路是否相同,链路SN用于区分不同链路。

发送模块503,用于当链路判断模块504判断重传链路与初次发送丢失数据包的链路不同时,利用初次发送丢失数据包的链路发送与丢失数据包数量相等的数据包。

在本申请实施例的一种实现方式中,发送设备500还包括:

获取模块505,用于从接收设备获取已接收数据包的到达时间。

预测模块506,用于根据已接收数据包的发送时间、获取模块505获取的已接收数据包的到达时间、链路的最大允许延时值和抖动容忍修正值,预测从发送已接收数据包的链路发送数据包的预测到达时间。

确定模块507,用于当在预测模块506确定的预测到达时间内,未接收到接收设备发送的确收字符ACK时,确定重传当前发送的数据包。

在本申请实施例的一种实现方式中,发送设备500还包括:

时间判断模块508,用于判断数据包超时时间是否大于最大允许超时时间,数据包超时时间为数据包的发送至接收到重传请求之间的时间。

发送模块503,还用于当数据包超时时间大于最大允许超时时间时,不再重传丢失数据包。

本申请实施例中,利用全局SN来区分不同的数据包,这样发送设备可以不必拘泥于初次发送该丢失数据包的链路,而是可以在任意链路上发送丢失数据包,这样当初次发送丢失数据包的链路存在时延大、丢包率大或超负载等情况导致链路状态不佳时,可以选择其他状态更好的链路发送该丢失数据包,从而保证数据包可以快速的重传至接收设备。

本申请实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现步骤101至步骤103及其各种实现方式中的任一方法。

本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有执行步骤101至步骤103及其各种实现方式中的任一方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种业务交换处理方法、系统、设备及其存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!