一种丢包应对方法、装置、电子设备及存储介质

文档序号:1616975 发布日期:2020-01-10 浏览:21次 >En<

阅读说明:本技术 一种丢包应对方法、装置、电子设备及存储介质 (Packet loss coping method and device, electronic equipment and storage medium ) 是由 陈策 于 2019-10-08 设计创作,主要内容包括:本发明实施例提供了一种丢包应对方法、装置、电子设备及存储介质。方案如下:确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延,根据确认数据包的数量,判断是否发生丢包,若是,则根据往返时延,确定丢包的类别,根据丢包的类别,调整待发送目标数据包的发送速率。通过本发明实施例提供的技术方案,在确定数据传输过程发生丢包后,根据当前时间段内已发送的目标数据包与接收到的确认数据包之间的往返时延,可以准确的确定丢包的类别,从而根据确定的丢包的类别,及时调整待发送的目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。(The embodiment of the invention provides a packet loss coping method, a packet loss coping device, electronic equipment and a storage medium. The scheme is as follows: determining the number of confirmation data packets corresponding to the sent target data packets received in the current time period and the round-trip delay between the sent target data packets and the confirmation data packets, judging whether packet loss occurs or not according to the number of the confirmation data packets, if so, determining the type of the packet loss according to the round-trip delay, and adjusting the sending rate of the target data packets to be sent according to the type of the packet loss. According to the technical scheme provided by the embodiment of the invention, after packet loss occurs in the data transmission process, the type of the packet loss can be accurately determined according to the round-trip delay between the transmitted target data packet and the received confirmation data packet in the current time period, so that the transmission rate of the target data packet to be transmitted is timely adjusted according to the determined type of the packet loss, the probability of the data packet loss is reduced, and the phenomenon of the data packet loss in the data transmission process is relieved.)

一种丢包应对方法、装置、电子设备及存储介质

技术领域

本发明涉及互联网数据传输技术领域,特别是涉及一种丢包应对方法、装置、电子设备及存储介质。

背景技术

在移动互联网时代,数据传输过程中数据包丢失的现象几乎每时每刻都会发生,为了保证高质量的数据传输,如何应对数据丢包成为至关重要的一环。

目前,在数据传输过程中,导致丢包的原因主要有两种,一种是由于网络拥塞导致的拥塞丢包;另一种是由于路由器、交换机等设备或无线网络传输等原因导致的链路丢包。

在应对上述两种类别的丢包时,电子设备往往是将数据传输过程中所有的丢包视为一种类别的丢包,例如,将数据传输过程中所有的丢包均视为拥塞丢包,或者将数据传输过程中所有的丢包均视为链路丢包,从而采取相应的措施应对丢包,以缓解数据传输过程中的数据包丢失的现象。但是当真实的丢包类别与电子设备所认为的丢包类别冲突时,数据传输过程中的数据包丢失现象并不能得到缓解。

发明内容

本发明实施例的目的在于提供一种丢包应对方法、装置、电子设备及存储介质,以缓解数据传输过程中的数据包丢失现象。具体技术方案如下:

本发明实施例提供了一种丢包应对方法,所述方法包括:

确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及所述已发送目标数据包与所述确认数据包间的往返时延;

根据所述确认数据包的数量,判断是否发生丢包;

若是,则根据所述数据包传输的往返时延,确定所述丢包的类别;

根据所述丢包的类别,调整待发送目标的发送速率。

可选的,所述根据所述确认数据包的数量,判断是否发生丢包的步骤,包括:

根据所述确认数据包的数量,计算所述当前时间段对应的丢包率;

根据所述丢包率的大小,判断是否发生丢包。

可选的,所述根据所述往返时延,确定所述丢包的类别的步骤,包括:

判断所述往返时延是否大于预设往返时延;

若是,则确定所述丢包的类别为拥塞丢包;

若否,则确定所述丢包的类别为链路丢包。

可选的,所述根据所述丢包的类别,调整待发送目标数据包的发送速率的步骤,包括:

若所述丢包的类别为拥塞丢包,则减小待发送目标数据包的发送速率;

若所述丢包的类别为链路丢包,则增大所述待发送目标数据包的发送速率。

可选的,所述减小待发送目标数据包的发送速率的步骤,包括:

基于预设拥塞控制算法,减小待发送目标数据包的发送速率。

可选的,所述增大所述待发送目标数据包的发送速率的步骤,包括:

根据所述当前时间段内丢包的数量,增大所述待发送目标数据包的发送速率。

本发明实施例还提供了一种丢包应对装置,所述装置包括:

第一确定模块,用于确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及所述已发送目标数据包与所述确认数据包间的往返时延;

判断模块,用于根据所述确认数据包的数量,判断是否发生丢包;

第二确定模块,用于在所述判断模块的判断结果为是时,根据所述往返时延,确定所述丢包的类别;

调整模块,用于根据所述丢包的类别,调整待发送目标数据包的发送速率。

可选的,所述判断模块,具体用于根据所述确认数据包的数量,计算所述当前时间段对应的丢包率;根据所述丢包率的大小,判断是否发生丢包。

可选的,所述第二确定模块,具体用于判断所述往返时延是否大于预设往返时延;若是,则确定所述丢包的类别为拥塞丢包;若否,则确定所述丢包的类别为链路丢包。

可选的,所述调整模块,包括:

减小子模块,用于若所述丢包的类别为拥塞丢包,则减小待发送目标数据包的发送速率;

增大子模块,用于若所述丢包的类别为链路丢包,则增大所述待发送目标数据包的发送速率。

可选的,所述减小子模块,具体用于基于预设拥塞控制算法,减小待发送目标数据包的发送速率。

可选的,所述增大子模块,具体用于根据所述当前时间段内丢包的数量,增大所述待发送目标数据包的发送速率。

本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的丢包应对方法步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的丢包应对方法步骤。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的丢包应对方法。

本发明实施例有益效果:

本发明实施例提供的一种丢包应对方法、装置、电子设备及存储介质,确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延,根据确认数据包的数量,判断是否发生丢包,若是,则根据往返时延,确定丢包的类别,根据丢包的类别,调整待发送目标数据包的发送速率。通过本发明实施例提供的技术方案,在确定数据传输过程发生丢包后,根据当前时间段内已发送的目标数据包与接收到的确认数据包之间的往返时延,可以准确的确定丢包的类别,也就是准确的识别出丢包类别是拥塞丢包还是链路丢包,从而根据确定的丢包的类别,及时调整待发送的目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为现有数据传输中数据包传输的一种示意图;

图2为本发明实施例提供的丢包应对方法的一种流程示意图;

图3为本发明实施例提供的丢包应对装置的一种结构示意图;

图4为本发明实施例提供的电子设备的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在数据传输过程中,数据是以数据包的形式在网络中进行传输的。如图1所示,图1为现有数据传输中数据包传输的一种示意图。发送端101可以向接收端102发送数据包1,接收端102在接收到该数据包1后可以向发送端101发送一数据包2,该数据包2为确认数据包,如Acknowledgement(ACK)包,该数据包2可以用于告知发送端101,接收端102已经接收到其发送的数据包1。发送端101在接收到该数据包2后可以确定接收端102已经接收到数据包1。在该数据传输过程中,数据包的往返时延(Round Trip Time,RTT)可以表示为发送端101发送数据包1到接收到数据包2所经历的时延。也就是发送端101发送数据包1的时间,与接收到数据包2的时间之间的时间差。

为了解决现有应对不同类别的丢包中,丢包现象未得到缓解的问题,本发明实施例提供了一种丢包应对方法。该方法可以应用于任一电子设备。该电子设备可以为数据传输过程中数据包的发送端。在本发明实施例提供的丢包应对方法中,电子设备可以确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延,根据确认数据包的数量,判断是否发生丢包;若是,则根据往返时延,确定丢包的类别;根据丢包的类别,调整待发送目标数据包的发送速率。

通过本发明实施例提供的方法,在确定数据传输过程发生丢包后,根据当前时间段内已发送的目标数据包与接收到的确认数据包之间的往返时延,可以准确的确定丢包的类别,也就是准确的识别出丢包类别是拥塞丢包还是链路丢包,从而根据确定的丢包的类别,及时调整待发送的目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

下面以具体的实施例,对本发明实施例进行说明。

如图2所示,图2为本发明实施例提供的丢包应对方法的一种流程示意图。该方法具体包括以下步骤。

步骤S201,确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延。

在本步骤中,电子设备可以按照预设时间间隔,对每一预设时间间隔内接收到已发送目标数据包所对应的确认数据包的数量进行统计,并确定每一时间间隔内发送的目标数据包与其对应的确认数据包间的往返时延。也就是电子设备发送一目标数据包的时间,与接收到该目标数据对应的确认数据包的时间所对应的时间差。电子设备可以获取当前时间段内已发送目标数据包所对应的接收到的确认数据包的数量,以及当前时间段内已发送目标数据包与确认数据包间的往返时延。

一个可选的实施例中,上述当前时间段内已发送目标数据包与确认数据包间的往返时延可以为当前时间段内接收到的每一确认数据包与其对应的已发送目标数据包间的往返时延。

另一个可选的实施例中,上述当前时间段内的已发送目标数据包与确认数据包间的往返时延可以为根据当前时间段内接收到的所有确认数据包与其对应的已发送目标数据包间的往返时延,计算得到的平均往返时延。

关于上述预设时间间隔可以根据用户需求,未发生丢包时的最大往返时延等进行设置。例如,电子设备每秒发送100个目标数据包,记为100个/秒,在未发生丢包的情况下,电子设备可以在1秒内接收到已发送目标数据包对应的确认数据包,也就是未发生丢包时的最大往返时延为1秒。此时,电子设备可以将预设时间间隔设置为1秒。在此,对预设时间间隔的设置不作具体限定。

在本发明实施例中,关于上述已发送目标数据包与确认数据包间的往返时延的确定,电子设备在接收到某一确认数据包后,可以确定该确认数据包所对应的已发送目标数据包。电子设备计算该确认数据包的接收时间与所确定的已发送目标数据包的发送时间之间的时间差,作为已发送目标数据包与确认数据包间的往返时延。

步骤S202,根据确认数据包的数量,判断是否发生丢包。若是,则执行步骤S203。

在本步骤中,电子设备可以根据当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,判断数据传输过程中是否发生丢包,也就是判断是否存在数据包丢失现象。关于判断的具体方法,可参见下文描述,在此不作具体说明。

在本发明实施例中,上述丢包现象可以由已发送目标数据包的丢失导致。上述丢包现象也可以由已发送目标数据包所对应的确认数据到丢失导致。也就是当已发送目标数据包或确认数据包中的任一数据包丢失时,电子设备均可确定网络中发生丢包现象。

步骤S203,根据往返时延,确定丢包的类别。

在本步骤中,在数据传输过程中,针对不同类别的丢包,已发送目标数据包与确认数据包间的往返时延的变化是不同的。例如,对于拥塞丢包,随着时间的发展,若网络拥塞问题没有缓解或解决,已发送目标数据包与确认数据包间的往返时间将不断增加。对于链路丢包,随着时间的发展,已发送目标数据包与确认数据包间的往返时间是不变的。因此,在确定数据传输过程发生丢包时,电子设备可以根据当前时间段内已发送目标数据包与确认数据包间的往返时延的变化情况,确定数据传输过程中丢包的类别。

一个可选的实施例中,当确定数据传输过程未发生丢包时,电子设备可以不调整待发送目标数据包的发送速率,也就是不改变电子设备向接收端发送待发送目标数据包的发送速率。例如,当前待发送目标数据包的发送速率为100个/秒,之后仍按照100个/秒向接收端发送待发送目标数据包。

另一个可选的实施例中,当确定数据传输过程未发生丢包时,电子设备可以增大待发送目标数据包的发送速率,并按照增大后的发送速率向接收端发送待发送目标数据包。例如,在传输控制协议(Transmission Control Protocol,TCP)传输过程中,发送端与接收端在刚刚进行数据传输时,发送端将按照慢启动方式向接收端发送待发送目标数据包。也就是发送端先按照较小的发送速率向接收端发送待发送目标数据包,之后逐渐增大待发送目标数据包的发送速率。因此,当上述当前时间段为慢启动过程中的某一时间段,且数据传输过程未发生丢包时,电子设备可以在当前时间段的下一时间段以大于当前发送速率的发送速率,向接收端发送待发送目标数据包。

步骤S204,根据丢包的类别,调整待发送目标数据包的发送速率。

在本步骤中,电子设备可以根据确定的丢包的类别,调整待发送目标数据包发送速率,也就是电子设备可以根据不同类别的丢包,增大或减小待发送目标数据包的发送速率,缓解数据传输过程中的数据包丢失现象。

一个可选的实施例中,上述步骤S204,根据丢包的类别,调整待发送目标数据包的发送速率,具体可以包括以下两种情况。

情况一,当丢包的类别为拥塞丢包时,电子设备可以减小待发送目标数据包的发送速率。

情况二,当丢包的类别为链路丢包时,电子设备可以增大待发送目标数据包的发送速率。

为方便理解,以待发送目标数据包的丢失对上述两种情况进行举例说明。

针对上述情况一,假设网络的传输带宽为1000个/秒,电子设备按照1000个/秒的发送速率为向接收端发送待发送目标数据包,接收端每秒可以接收900个待发送目标数据包。在第一秒传输完成后,网络中仍有100个待发送目标数据包未被接收。此时,若电子设备仍以1000个/秒的发送速率向接收端发送待发送目标数据包,网络中待发送目标数据包的数量将达到100+1000=1100,1100>1000,网络将出现拥塞,待发送目标数据包将出现丢失现象。若电子设备按照900个/秒的发送速率向接收端发送待发送目标数据包,网络中的待发送目标数据包的数量为900+100=1000,1000=1000,网络将不会拥塞。因此,电子设备通过调整待发送目标数据包的发送速率,可以有效降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

在本发明实施例中,在确定丢包的类别为拥塞丢包后,电子设备通过减小待发送目标数据包的发送速率,从而降低单位时间内待发送目标数据包的发送量,使得网络中传输的待发送目标数据包的总量有所降低,减少了数据传输过程中数据包丢失的数量,缓解了数据传输过程中的数据包丢失的现象。

针对上述情况二,假设电子设备以100个/秒的发送速率向接收端发送待发送目标数据包,每一次链路丢包的数量为20个。电子设备在确定发生丢包后,需要对丢失的待发送目标数据包进行数据重传,也就是重新发送丢失20个待发送目标数据包。若电子设备仍以100个/秒的发送速率向接收端发送待发送目标数据包,则发送的100个待发送目标数据包中将包括丢失的20个待发送目标数据包,导致待发送目标数据包传输效率有所降低。因此,电子设备可以增大待发送目标数据包的发送速率,从而提高数据包的传输效率,降低了数据包丢失的比例,缓解了数据传输过程中的数据包丢失的现象。

一个可选的实施例中,在确定丢包的类别为拥塞丢包后,电子设备可以基于预设拥塞控制算法,减小待发送目标数据包的发送速率。也就是电子设备按照减小后的发送速率向接收端发送待发送目标数据包。

在利用预设拥塞控制算法对网络拥塞进行控制时,根据网络的拥塞情况,拥塞窗口的大小将发生动态变化。当确定丢包的类别为拥塞丢包时,电子设备可以当前拥塞窗口的大小,减小待发送目标数据包的发送速率,使得发送端发送的待发送目标数据包的数量不大于拥塞窗口的限制,减少了网络中传输的数据包的总量,从而降低数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

一个可选的实施例中,电子设备可以利用以下公式,减小待发送目标数据包的发送速率:

V1=V*b

其中,V1为减小后的发送速率,V为当前时间段的发送速率,b为预设衰减系数,且b<1。

另一个可选的实施例中,电子设备还可以采用以下公式,减小待发送目标数据包的发送速率:

V1=V*(1-b)

上述预设衰减系数可以根据当前时间段的传输速率、网络拥塞的具体情况等进行设定。在此,对预设衰减系数的设定不作具体说明。

在本发明实施例中,在确定丢包的类别为拥塞丢包时,电子设备利用预设衰减系数减小待发送目标数据包的发送速率,使得发送速率的计算较为简单,从而使得电子设备及时对发送速率进行调整,避免更多的数据包丢失。

一个可选的实施例中,在确定丢包的类别为链路丢包后,电子设备可以根据当前时间段内丢包的数量,增大待发送目标数据包的发送速率。

具体的,在确定丢包的类别为链路丢包后,电子设备可以根据当前时间段内丢包的数量,增大待发送目标数据包的发送速率,也就是电子设备可以按照增大后的发送速率,向接收端发送待发送目标数据包。

以丢包前的发送速率为100个/秒为例进行说明。某一时间段内在检测到发生链路丢包,且丢包的数量为20时,电子设备可以将待发送目标数据包的发送速率调整为100+20=120个/秒,并按照120个/秒向接收端发送待发送目标数据包。

在本发明实施例中,在确定丢包的类别为链路丢包后,电子设备根据当前时间段内丢失的数据包的数量,增大待发送目标数据包的发送速率,可以有效的降低数据包丢失的比例,缓解数据传输过程中的数据包丢失现象。

另一个可选的实施例中,电子设备可以利用以下公式,增大待发送目标数据包的发送速率:

V2=V*(1+L)

其中,V2为增大后的发送速率,V为当前时间段的发送速率,L为当前时间段的丢包率。

在本发明实施例中,在确定丢包的类别为链路丢包后,电子设备根据当前时间段的丢包率,增大待发送目标数据包的发送速率,可以有效的降低数据包丢失的比例,缓解数据传输过程中的数据包丢失现象。

一个可选的实施例中,在确定丢包的类别为链路丢包后,电子设备可以向用户推送用于指示链路异常的通知消息。例如,该通知消息可以为“链路异常”、“请检查链路是否异常”等消息。用户在接收到该通知消息后,可以及时对链路进行检测,并对异常进行处理,从而避免链路丢包导致的数据包丢失现象。

在上述实施例中是以数据传输过程中的丢包为拥塞丢包或链路丢包中的一种为例进行说明的。当数据传输过程中的丢包既有拥塞丢包,又有链路丢包时,由于链路丢包时已发送目标数据包与确认数据包间的往返时延不会变化,拥塞丢包会使得数据包的往返时延不断增大。因此,当数据传输过程中发送两种类别的丢包时,电子设备可以先减小待发送目标数据包的发送速率,使得网络不拥塞,再增大待发送目标数据包的发送速率,以应对链路丢包。

一个可选的实施例中,上述步骤S202,根据确认数据包的数量,判断是否发生丢包,具体可以包括以下步骤。

步骤S2021,根据确认数据包的数量,计算当前时间段对应的丢包率。

在本步骤中,电子设备可以根据当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包的数量,计算当前时间段对应的丢包率。

例如,电子设备可以计算已发送目标数据包的数量和接收到的确认数据包的数量间的差值,与已发送目标数据包的数量之间的比值,作为丢包率。即丢包率L可以表示为:

Figure BDA0002225837570000111

一个可选的实施例中,上述已发送目标数据包的数量可以是根据电子设备当前时间段内已经发送的目标数据包确定的。在数据传输过程中,发送端向接收端发送的每一目标数据包存在对应的超时时长。发送端在发出某一目标数据包后,若在该目标数据包对应的超时时长内未接收到对应的确认数据包,发送端可以认为该目标数据包丢失。因此,电子设备可以根据已发送目标数据包对应的发送时间和超时时长,确定当前时间段应该接收到的确认数据包的数量,作为上述已发送目标数据包的数量。

在本发明实施例中,上述未发生丢包时的最大往返时延可以是根据每一已发送目标数据包对应的超时时长确定的,在此不作具体限定。

另一个可选的实施例中,上述已发送目标数据包的数量可以是根据当前时间段接收到的确认数据包确定的。例如,电子设备可以根据当前时间段内最早接收到的确认数据包,如ACK包1,以及当前时间段内最晚接收到确认数据包,如ACK包2,确定电子设备对应发送的目标数据包,也就是电子设备发送的与ACK包1对应的数据包1,以及与ACK包2对应的数据包2。电子设备根据数据包1和数据包2所对应的发送时间,确定该时间段内发送的目标数据包的数量,作为上述已发送目标数据包的数量。再例如,电子设备可以根据当前时间段内接收到的确认数据包,确定电子设备所对应发送的目标数据包。根据确定的目标数据包中最早的发送时间以及最晚的发送时间,电子设备可以统计该时间段内发送的目标数据包的数量,作为上述已发送目标数据包的数量。

再一个可选的实施例中,上述已发送目标数据包的数量可以为根据数据包发送速率,未发生丢包时的最大往返时延,以及当前时间段的时长所确定的预设数据包数量。例如,当前时间段内待发送目标数据包的发送速率为100个/秒,未发生丢包时的最大往返时延为1秒,当前时间段的时长为1秒,电子设备可以确定预设数据包数量为100=100*1*1,也就是上述已发送目标数据包的数量为100个。

步骤S2022,根据丢包率的大小,判断是否发生丢包。

在本步骤中,在确定当前时间段对应的丢包率之后,电子设备可以将该丢包率与预设丢包率阈值进行比较,确定是否发生丢包。也就是判断当前时间段对应的丢包率是否大于预设丢包率阈值。若当前时间段对应的丢包率大于预设丢包率阈值时,则电子设备可以确定数据传输过程发生丢包。若当前时间段对应的丢包率不大于预设丢包率阈值时,则电子设备可以确定数据传输过程未发生丢包。例如,上述预设丢包率阈值为0,若当前时间段的丢包率为5%,5%>0,电子设备可以确定数据传输过程发生丢包。若当前时间段的丢包率为0,0=0,电子设备可以确定数据传输过程未发生丢包。

在本发明实施例中,上述预设丢包率阈值可以根据实际传输过程中的网络情况,硬件设备具体情况,上述预设时间间隔中已发送目标数据包的数量等进行设置。例如,当数据传输过程中的网络带宽资源较为充足,硬件设备运行状态良好时,可以认为在该条件下,不会出现丢包现象,电子设备可以将上述预设丢包率阈值设置为0至1%之间。

通过上述步骤,电子设备可以根据当前时间段对应的丢包率准确地确定出数据传输过程中是否出现丢包,提高了数据包丢失确定的准确性,这使得在确定数据包丢失时,电子设备可以及时应对丢包现象,降低了数据包丢失的概率,缓解了数据传输过程中的丢包现象。

在本发明实施例中,上述是以丢包率为例对数据传输过程中是否发生丢包的判断方法进行说明的。除此以外,电子设备还可以采用其他方法判断数据传输过程是否发生丢包。例如,电子设备可以直接根据上述丢包率计算公式中已发送目标数据包的数量和接收到的确认数据包的数量,判断是否发生丢包。再例如,电子设备可以根据接收到的确认数据包所对应的已发送目标数据包的发送速率,未丢包时的最大往返时延以及当前时间段的时长,预估当前时间段内接收到的确认数据包的预期数量,将该预期数量与当前时间段内实际接收到的确认数据包的数量进行比较,判断是否发生丢包。在此,对数据传输过程是否丢包的确定方法,不作具体限定。

为方便理解,以上述丢包率计算公式中已发送目标数据包的数量和接收到的确认数据包的数量对是否发生丢包的确定方法进行说明。

例如,电子设备可以计算接收到的确认数据包的数量与已发送目标数据包的数量之间的比值。该比值V可以表示为:

Figure BDA0002225837570000131

电子设备可以将计算得到的比值与预设比值阈值进行比较,确定是否发生丢包。如预设比值为1,当计算得到的比值V小于1时,电子设备可以确定发生丢包。当计算得到的比值V不小于1,也就是计算得到的比值V等于1时,电子设备可以确定未发生丢包。

再例如,电子设备可以计算上述已发送目标数据包的数量与接收到的确认数据包的数量之间的差值,并将计算得到的差值与预设差值阈值进行比较,确定是否发生丢包。具体可参照上述根据计算得到的比值,确定是否发生丢包的方法,在此不作具体说明了。

一个可选的实施例中,上述步骤S203,根据往返时延,确定丢包的类别,具体可以包括以下步骤。

步骤S2031,判断往返时延是否大于预设往返时延。若是,则执行步骤S2032。若否,则执行步骤S2033。

在本步骤中,电子设备可以将上述步骤S201中确定的已发送目标数据包与确认数据包间的往返时延与预设往返时延进行比较,确定已发送目标数据包与确认数据包间的往返时延是否大于预设往返时延。

一个可选的实施例中,上述预设往返时延可以为上述当前时间段内接收到的所有确认数据包对应的往返时延中最小的往返时延。

例如,上述步骤S201中获得的已发送目标数据包与确认数据包间的往返时延为当前时间段内接收到的每一确认数据包与其对应的已发送目标数据包间的往返时延。电子设备可以将确定的已发送目标数据包与确认数据包间的的往返时延与预设往返时延进行比较,也就是与上述最小的往返时延进行比较,确定每一确认数据包对应的往返时延是否大于该预设往返时延。当大于该预设往返时延的确认数据包的数量达到第一数量阈值时,电子设备可以确定当前时间段内已发送目标数据包与确认数据包间的往返时延大于预设往返时延。当大于预设往返时延的确认数据包的数量未达到第一数量阈值时,电子设备可以确定当前时间段内已发送目标数据包与确认数据包间的往返时延不大于预设往返时延。

另一个可选的实施例中,上述预设往返时延也可以为当前时间段的前一时间段内所接收到的所有确认数据包对应的平均往返时延。

例如,上述步骤201中获得的已发送目标数据包与确认数据包间的往返时延为根据当前时间段内接收到的所有确认数据包与其对应的已发送目标数据包间的往返时延,计算得到的平均往返时延。电子设备可以直接将当前时间段对应的平均往返时延与预设往返时延进行比较,也就是与当前时间段的前一时间段所对应的平均往返时延进行比较。若当前时间段对应的平均往返时延大于前一时间段的平均往返时延,则电子设备可以确定当前时间段内已发送目标数据包与确认数据包间的往返时延大于预设往返时延。若当前时间段对应的平均往返时延不大于前一时间段的平均往返时延,则电子设备可以确定当前时间段内已发送目标数据包与确认数据包间的往返时延不大于预设往返时延。

步骤S2032,确定丢包的类别为拥塞丢包。

在本步骤中,在确定已发送目标数据包与确认数据包间的往返时延大于预设往返时延时,电子设备可以确定数据传输过程中的丢包的类别为拥塞丢包。

步骤S2033,确定丢包的类别为链路丢包。

在本步骤中,在确定已发送目标数据包与确认数据包间的往返时延不大于预设往返时延时,电子设备可以确定数据传输过程中的丢包的类别为链路丢包。

通过上述步骤,根据当前时间段的已发送目标数据包与确认数据包间的往返时延和预设往返时延之间的比较结果,电子设备可以准确的识别出丢包的类别,也就是识别出是拥塞丢包,还是链路丢包。这提高了丢包类别识别的准确性,使得电子设备可以针对不同类别的丢包采取不同的应对方法,及时调整待发送目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

另一个可选的实施例中,若上述步骤S201中获得的已发送目标数据包与确认数据包间的往返时延为当前时间段内接收到的每一确认数据包与其对应的已发送目标数据包间的往返时延,则电子设备可以按照接收到每一确认数据包的先后顺序,根据每相邻两个确认数据包所对应的往返时延之间的时间差,确定丢包的类别。

具体的,当每相邻两个确认数据包所对应的往返时延之间的时间差大于预设时间差的数量达到第二数量阈值时,电子设备可以确定丢包的类别为拥塞丢包。当每相邻两个确认数据包所对应的往返时延之间的时间差大于预设时间差的数量未达到第二数量阈值时,电子设备可以确定丢包的类别为链路丢包。

为方便理解进行举例说明,在发生丢包的某一时间段内,电子设备按照时间先后依次接收到5个ACK包,分别为ACK包1、ACK包2、ACK包3、ACK包4和ACK包5。也就是最早接收到ACK包1,最晚接收到ACK包5。针对ACK包1和ACK包2,电子设备可以分别计算每相邻两个ACK包在往返时延上的时间差。即ACK包1和ACK包2在往返时延上的时间差1,ACK包2和ACK包3在往返时延上的时间差2,ACK包3与ACK包4在往返时延上的时间差3,以及ACK包4与ACK包5在往返时延上的时间差4。当4个时间差全部大于0时,电子设备可以确定当前时间段内数据包的往返时延不断增大。当4个时间差全部等于0时,电子设备可以确定当前时间段内数据包的往返时延未发生改变。因此,当4个时间差全部大于0,或者任意2个或3个时间差大于0,电子设备可以确定丢包的类别为拥塞丢包。当4个时间差全部等于0,或者仅有一个大于0时,电子设备可以确定丢包的类别为链路丢包。

在本发明实施例中,虽然丢包的类别为链路丢包时,已发送目标数据包与确认数据包间的往返时延是不会改变的,但是在实际传输过程中,由于网络的不稳定性,可能导致在链路丢包时,已发送目标数据包与确认数据包间的往返时延出现一定的变化。因此,上述在根据每相邻两个确认数据包所对应的往返时延之间的时间差确定丢包的类别时,考虑到实际传输过程中的误差,引入预设时间差,降低网络的不稳定性对往返时延的影响,提高确定的丢包的类别的准确性。

基于同一种发明构思,根据本发明实施例提供的丢包应对方法,本发明实施例还提供了一种丢包应对装置。如图3所示,图3为本发明实施例提供的丢包应对装置的一种结构示意图。该装置具体包括以下模块。

第一确定模块301,用于确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延。

判断模块302,用于根据确认数据包的数量,判断是否发生丢包。

第二确定模块303,用于在判断模块302的判断结果为是时,根据往返时延,确定丢包的类别。

调整模块304,用于根据丢包的类别,调整待发送目标数据包的发送速率。

可选的,上述判断模块302,具体可以用于根据确认数据包的数量,计算当前时间段对应的丢包率;根据丢包率的大小,判断是否发生丢包。

可选的,上述第二确定模块303,具体可以用于判断往返时延是否大于预设往返时延;若是,则确定丢包的类别为拥塞丢包;若否,则确定丢包的类别为链路丢包。

可选的,上述调整模块304,可以包括:

减小子模块,用于若丢包的类别为拥塞丢包,则减小待发送目标数据包的发送速率。

增大子模块,用于若丢包的类别为链路丢包,则增大待发送目标数据包的发送速率。

可选的,上述减小子模块,具体可以用于基于预设拥塞控制算法,减小待发送目标数据包的发送速率。

可选的,上述增大子模块,具体可以用于根据当前时间段内丢包的数量,增大待发送目标数据包的发送速率。

通过本发明实施例提供的装置,在确定数据传输过程发生丢包后,根据当前时间段内已发送的目标数据包与接收到的确认数据包之间的往返时延,可以准确的确定丢包的类别,也就是准确的识别出丢包类别是拥塞丢包还是链路丢包,从而根据确定的丢包的类别,及时调整待发送的目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

基于同一种发明构思,根据本发明实施例提供的丢包应对方法,本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信;

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:

确定当前时间段内接收到的已发送目标数据包所对应的确认数据包的数量,以及已发送目标数据包与确认数据包间的往返时延;

根据确认数据包的数量,判断是否发生丢包;

若是,则根据往返时延,确定丢包的类别;

根据丢包的类别,调整待发送目标数据包的发送速率。

通过本发明实施例提供的电子设备,在确定数据传输过程发生丢包后,根据当前时间段内已发送的目标数据包与接收到的确认数据包之间的往返时延,可以准确的确定丢包的类别,也就是准确的识别出丢包类别是拥塞丢包还是链路丢包,从而根据确定的丢包的类别,及时调整待发送的目标数据包的发送速率,降低了数据包丢失的概率,缓解了数据传输过程中的数据包丢失现象。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

基于同一种发明构思,根据本发明实施例提供的丢包应对方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一丢包应对方法的步骤。

基于同一种发明构思,根据本发明实施例提供的丢包应对方法,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一丢包应对方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种总线通信方法、通信基本周期确定方法及装置

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!