一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文的传输方法、装置、电子设备及存储介质与流程

2022-12-03 01:28:52 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种报文的传输方法、装置、电子设备及存储介质。


背景技术:

2.在p2p网络中,报文传输是一种基于udp协议的可靠传输过程,在整个传输过程中所使用的拥塞控制算法对传输的性能表现有着重大影响。目前知名的网络可靠传输方案例如tcp协议等默认采用的拥塞控制算法均为基于丢包检测的算法,如reno、cubic等算法,这些算法的基本原理是将丢包视为网络链路发生拥塞的标志,意味着在检测到丢包后降低传输速率。但是这些算法的缺陷在于对丢包过于敏感,在经常有信道噪声造成随机丢包的无线网络环境下性能表现不佳,宽带利用率低下。如今无线网络的使用越来越普遍,这些算法难以适应当下的网络使用环境。


技术实现要素:

3.为了解决上述对丢包过于敏感,在经常有信道噪声造成随机丢包的无线网络环境下性能表现不佳,宽带利用率低下的技术问题,本发明实施例提供了一种报文的传输方法、装置、电子设备及存储介质。具体技术方案如下:
4.在本发明实施例的第一方面,首先提供了一种报文的传输方法,所述方法包括:
5.在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的;
6.确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度:
7.获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;
8.根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
9.在一个可选的实施方式中,所述确定本次报文调度的截止时刻,包括:
10.获取当前时刻;
11.确定本次报文调度的调度时长;
12.获取所述当前时刻与所述调度时长之和,得到本次报文调度的截止时刻。
13.在一个可选的实施方式中,所述确定本次报文调度的调度时长,包括:
14.获取当前的最小往返时延,其中,所述最小往返时延由所述目标拥塞控制算法确定的;
15.获取预设的调度时间间隔,从所述最小往返时延与所述预设的调度时间间隔中选取最小值作为本次报文调度的调度时长。
16.在一个可选的实施方式中,所述从所述最小往返时延与所述预设的调度时间间隔中选取最小值作为本次报文调度的调度时长,包括:
17.获取所述最小往返时延与预设增益因子之间的乘积,从所述乘积与所述预设的调度时间间隔中选取最小值作为本次报文调度的调度时长。
18.在一个可选的实施方式中,所述在本次报文调度中发送所述待传输报文之后,所述方法还包括:
19.对本次报文调度的报文调度数量加一;
20.所述停止本次报文调度之后,还包括:
21.返回本次报文调度的报文调度数量。
22.在一个可选的实施方式中,所述获取待传输报文的发送时刻,包括:
23.若待传输报文为本次报文调度中的首个待传输报文,则将当前时刻作为待传输报文的发送时刻;
24.若待传输报文非本次报文调度中的首个待传输报文,则将上一次迭代所确定的下一个待传输报文的发送时刻作为待传输报文的发送时刻。
25.在一个可选的实施方式中,所述方法还包括:
26.当所述目标拥塞控制算法处于启动状态或循环探测带宽状态时,监测网络链路是否发生丢包;
27.若发生丢包,则从丢包重传的时刻起,确定报文调度的完成次数、报文传输的丢包率以及报文传输成功的数据量;
28.根据所述完成次数、所述丢包率以及所述数据量,判断所述目标拥塞控制算法是否满足状态转移的要求;
29.若所述目标拥塞控制算法满足状态转移的要求,将所述目标拥塞控制算法转移至避免丢包状态;
30.在所述目标拥塞控制算法处于避免丢包状态的情况下,保持所述目标拥塞控制算法的瓶颈带宽以及发送速率增益因子不变;
31.在预设时间段之后,将所述目标拥塞控制算法转移至所述循环探测带宽状态。
32.在一个可选的实施方式中,所述根据所述完成次数、所述丢包率以及所述数据量,判断所述目标拥塞控制算法是否满足状态转移的要求,包括:
33.若所述完成次数在第一预设完成次数与第二预设完成次数之间,且所述数据量大于第一阈值,所述丢包率大于第二阈值,则确定所述目标拥塞控制算法满足状态转移的要求。
34.在一个可选的实施方式中,所述方法还包括:
35.若所述完成次数大于所述第二预设完成次数,则清空丢包记录,并跳转至所述当所述目标拥塞控制算法处于启动状态或循环探测带宽状态时,监测网络链路是否发生丢包的步骤。
36.在一个可选的实施方式中,所述将所述目标拥塞控制算法转移至避免丢包状态之前,所述方法还包括:
37.确定所述目标拥塞控制算法满足状态转移的要求的状态转移时刻,获取从丢包重传的时刻起至状态转移时刻之间的目标时间段;
38.确定所述目标时间内的报文平均发送速率,将所述目标拥塞控制算法的瓶颈带宽更改为所述报文平均发送速率。
39.在本发明实施例的第二方面,还提供了一种报文的传输装置,所述装置包括:
40.速率获取模块,用于在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的;
41.时刻确定模块,用于确定本次报文调度的截止时刻;
42.迭代模块,用于按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
43.在本发明实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
44.存储器,用于存放计算机程序;
45.处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的报文的传输方法。
46.在本发明实施例的第四方面,还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中任一所述的报文的传输方法。
47.在本发明实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的报文的传输方法。
48.本发明实施例提供的技术方案,在触发报文调度的情况下,获取当前的报文发送速率,其中,报文发送速率由目标拥塞控制算法基于评估的带宽而确定的,确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据待传输报文的发送时刻、报文大小、报文发送速率,确定下一个待传输报文的发送时刻。如此在触发报文调度的情况下,获取由目标拥塞控制算法基于评估的带宽而确定的当前的报文发送速率,确定本次报文调度的截止时刻,在截止时刻之前以报文发送速率发送待传输报文,可以最大限度的利用宽带,提高宽带利用率。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
51.图1为本发明实施例中示出的一种报文的传输方法的实施流程示意图;
52.图2为本发明实施例中示出的一种本次报文调度的截止时刻确定方法的实施流程示意图;
53.图3为本发明实施例中示出的一种本次报文调度的调度时长确定方法的实施流程示意图;
54.图4为本发明实施例中示出的一种next-send-time小于当前时刻的示意图;
55.图5为本发明实施例中示出的另一种报文的传输方法的实施流程示意图;
56.图6为本发明实施例中示出的一种目标拥塞算法控制方法的实施流程示意图;
57.图7为本发明实施例中示出的一种bbr算法状态转移的示意图;
58.图8为本发明实施例中示出的一种控制bbr算法状态转移的流程示意图;
59.图9为本发明实施例中示出的一种报文的传输装置的结构示意图;
60.图10为本发明实施例中示出的另一种电子设备的结构示意图。
具体实施方式
61.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
62.在本发明实施例中,bbr(bottleneck bandwidth and round-trip)算法是一种基于宽带估计的拥塞控制算法。相比于传统的拥塞控制算法,它并不把丢包当作网络发生拥塞的标志,而是依靠估计的带宽来控制传输速率,这就使得bbr算法在无线网络环境以及丢包较多的弱网环境下能更多利用带宽,实现更好的传输性能。
63.其中,bbr算法作为一种基于宽带估计的拥塞控制算法,其核心在于根据估计的带宽控制传输速率。bbr算法在运行过程中会不断地更新估计的带宽值,并给出当前的发送速率,记该速率为pacing_rate。为了防止多个报文在瞬间被爆发式的一次性发送,bbr算法要求每个报文的发送时机均需要根据pacing_rate进行准确调度。具体地,假设当前要发送的某个报文长度为packet_size,则下一个报文的最早发送时刻为next_send_time=now packet_size
÷
pacing_rate,now为当前时刻。
64.在实际传输中,每个报文的大小受限于底层网络的mtu大小,最大一般为1500字节,当pacing_rate值较大,传输速率较高时,(例如数据)报文的调度间隔会很小,甚至低于1ms。由于算法需要运行在用户态而非内核态,在用户态实现微秒级的精确调度,不仅在实际编程实现上较为困难,还对设备性能有较高的要求。p2p网络中普遍存在着使用arm、mips架构芯片的性能低下的设备,对于这类设备而言无法承受精确调度带来的性能压力。
65.鉴于实际设备低性能的限制,完全进行准确调度并不现实,因此需要适当牺牲调度的时间精度,对报文发送做粗粒度调度。当每次调度发送报文时,可以一次性发送多个报文,适当扩大每次调度之间的时间间隔,从而降低cpu压力。通常实现调度的做法是每隔一段固定时间触发一次报文调度,间隔期间也可以利用其他事件发生的契机触发报文调度。
66.基于上述思想,在触发报文调度的情况下,获取当前的报文发送速率,其中,报文发送速率由目标拥塞控制算法(例如上述bbr算法)基于评估的带宽而确定的,确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送待传输报文;根据待传输报文的发送时刻、报文大小、报文发送速率,确定下一个待传输报文的发送时刻。
67.如此在触发报文调度的情况下,获取由目标拥塞控制算法基于评估的带宽而确定的当前的报文发送速率,确定本次报文调度的截止时刻,在截止时刻之前以报文发送速率发送待传输报文,不仅可以最大限度的利用宽带,提高宽带利用率,还可以降低设备的cpu
压力,使得设备不必承受精确调度带来的性能压力。
68.具体地,如图1所示,为本发明实施例提供的一种报文的传输方法的实施流程示意图,该方法应用于电子设备,具体可以包括以下步骤:
69.s101,在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的。
70.在本发明实施例中,可以每间隔一段固定时间触发一次报文调度,从而在触发报文调度的情况下,可以获取当前的报文发送速率,其中,报文发送速率由目标拥塞控制算法基于评估的带宽而确定的。此外,在间隔期间也可以利用其他事件发生的契机触发报文调度。
71.例如,在本发明实施例中,每间隔1秒钟,触发一次报文调度,从而在触发报文调度的情况下,获取当前的报文发送速率,其中,bbr算法在运行过程中会不断地更新估计的带宽值并给出当前的报文发送速率,记该速率为pacing_rate。
72.s102,确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度。
73.s103,获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文。
74.s104,根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
75.在本发明实施例中,在触发报文调度的情况下,一方面获取当前的报文发送速率,另一方面确定本次报文调度的截止时刻。其中,这里的截止时刻意味着在本次报文调度的过程中,如果某个待传输报文的发送时刻大于或等于截止时刻,则停止本次报文调度。
76.基于此,在本发明实施例中,按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
77.其中,对于待传输报文,若待传输报文为本次报文调度中的首个待传输报文,则将当前时刻作为待传输报文的发送时刻;若待传输报文非本次报文调度中的首个待传输报文,则将上一次迭代所确定的下一个待传输报文的发送时刻作为待传输报文的发送时刻。
78.例如,当前时刻为10:00:00,确定本次报文调度的截止时刻10:00:01,则对于本次报文调度中的首个待传输报文,其发送时刻即当前时刻10:00:00,该报文在本次报文调度中将被发送。首个待传输报文的大小为packet_size1,则首个待传输报文的下一个待传输报文的发送时刻为10:00:00 packet_size1/pacing_rate。对于首个待传输报文的下一个待传输报文,即第二个待传输报文,其发送时刻即10:00:00 packet_size1/pacing_rate,如果未大于或未等于本次报文调度的截止时刻10:00:01,则第二个待传输报文也将在本次报文调度中被发送,第二个待传输报文的大小为packet_size2,则第二个待传输报文的下一个待传输报文的发送时刻为10:00:00 packet_size1/pacing_rate packet_size2/pacing_rate。
79.如此按照以上步骤不断进行迭代,直至某次迭代过程中待传输报文的下一个待传输报文的发送时刻大于或等于本次报文调度的截止时刻10:00:01,如此可以停止本次报文调度。
80.通过上述对本发明实施例提供的技术方案的描述,在触发报文调度的情况下,获取当前的报文发送速率,其中,报文发送速率由目标拥塞控制算法基于评估的带宽而确定的,确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
81.如此在触发报文调度的情况下,获取由目标拥塞控制算法基于评估的带宽而确定的当前的报文发送速率,确定本次报文调度的截止时刻,在截止时刻之前以报文发送速率发送待传输报文,不仅可以最大限度的利用宽带,提高宽带利用率,还可以降低设备的cpu压力,使得设备不必承受精确调度带来的性能压力。
82.在上述步骤s102中,对于本次报文调度的截止时刻,可以如图2所示,为本发明实施例提供的一种本次报文调度的截止时刻确定方法的实施流程示意图,该方法具体可以包括以下步骤:
83.s201,获取当前时刻。
84.s202,确定本次报文调度的调度时长。
85.在本发明实施例中,在触发报文调度的情况下,意味着要进行本次的报文调度,此时可以获取当前时刻,对于当前时刻,一方面作为本次报文调度中首个待传输报文的发送时刻,另一方面作为本次报文调度的起始时刻,用来确定本次报文调度的截止时刻。
86.此外,在本发明实施例中,还需要确定本次报文调度的调度时长,该调度时长用来表征本次报文调度的持续时长,这里调度时长可以是一个经验值,当然也可以采用后续方法确定调度时长,本发明实施例对此不作限定。
87.例如,获取当前时刻10:00:00,以及确定本次报文调度的调度时长1秒钟,意味着自10:00:00开始起,本次报文调度的持续时长为1秒钟,超过1秒钟,则就自动结束本次报文调度。
88.其中,对于本次报文调度的调度时长的确定,可以如图3所示,为本发明实施例提供的一种本次报文调度的调度时长确定方法的实施流程示意图,该方法具体可以包括以下步骤:
89.s301,获取当前的最小往返时延,其中,所述最小往返时延由所述目标拥塞控制算法确定的。
90.在本发明实施例中,可以获取当前的最小往返时延,其中,最小往返时延由目标拥塞控制算法确定的,意味着由目标拥塞控制算法给出最小往返时延。例如,获取当前的最小rtt,其中,最小rtt由bbr算法给出。
91.s302,获取预设的调度时间间隔,从所述最小往返时延与所述预设的调度时间间隔中选取最小值作为本次报文调度的调度时长。
92.在本发明实施例中,可以预先设置一个固定的调度时间间隔,如此每隔一段固定的调度时间间隔,可以触发一次报文调度。由此可以获取预设的调度时间间隔,从而从最小往返时延与所述预设的调度时间间隔中选取最小值作为本次报文调度的调度时长。
93.其中,当最小往返时延(即最小rtt)低于固定的调度时间间隔时,一次性发送多个报文所带来的调度间隔应不高于最小rtt。但由于网络链路延时存在波动,实际从发送报文
到接收到ack响应所经过的rtt会略高于最小rtt,如果程序在经过最小rtt的时间后来不及继续调度发送报文,就会导致在某次接收到ack响应后,算法中(即上述迭代过程)的下一个待传输报文的发送时刻小于当前时刻,如图4所示,进而导致bbr算法估计出偏低的带宽,进而影响传输速率。
94.为此,通过将最小rtt适当放大一些来避免该问题。但相比该方法,设置更小的固定的调度时间间隔是更优的方法。设置越低的固定调度时间间隔,报文调度的准确性越高,但随之而来的是cpu压力也会越来越大,因此固定的调度时间间隔的设置需要在准确性与cpu压力之间做权衡考虑。
95.基于此,在本发明实施例中,获取最小往返时延与预设增益因子之间的乘积,从所述乘积与所述预设的调度时间间隔中选取最小值本次报文调度的调度时长。
96.例如,预设的调度时间间隔即interval,最小rtt即minrtt,预设增益因子即rtt_factor,则获取最小往返时延与预设增益因子之间的乘积,从所述乘积与所述预设的调度时间间隔中选取最小值本次报文调度的调度时长,如下所示。
97.本次报文调度的调度时长=min(interval,min_rtt
×
rtt_factor)。
98.s203,获取所述当前时刻与所述调度时长之和,得到本次报文调度的截止时刻。
99.在本发明实施例中,可以根据当前时刻与本次报文调度的调度时长,确定本次报文调度的截止时刻,即获取所述当前时刻与所述调度时长之和,得到本次报文调度的截止时刻。
100.此外,在本发明实施例中,还可以得到本次报文调度一次性可以发送的报文数量,如图5所示,为本发明实施例提供的另一种报文的传输方法的实施流程示意图,该方法应用于电子设备,具体可以包括以下步骤:
101.s501,在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的。
102.在本发明实施例中,本步骤与上述步骤s101类似,本发明实施例在此不再一一赘述。
103.s502,确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度,并返回本次报文调度的报文调度数量。
104.s503,获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文。
105.s504,对本次报文调度的报文调度数量加一。
106.s505,根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
107.在本发明实施例中,在触发报文调度的情况下,一方面获取当前的报文发送速率,另一方面确定本次报文调度的截止时刻。其中,这里的截止时刻意味着在本次报文调度的过程中,如果某个待传输报文的发送时刻大于或等于截止时刻,则停止本次报文调度,并返回本次报文调度的报文调度数量。
108.基于此,在本发明实施例中,按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于截止时刻,停止本次报文调度,并返回本次报文调度的报文调度数量:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;对本次报文调度的报
文调度数量加一;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
109.如此在触发报文调度的情况下,获取由目标拥塞控制算法基于评估的带宽而确定的当前的报文发送速率,确定本次报文调度的截止时刻,在截止时刻之前以报文发送速率发送待传输报文,不仅可以最大限度的利用宽带,提高宽带利用率,还可以降低设备的cpu压力,使得设备不必承受精确调度带来的性能压力,另外还可以得到本次报文调度的报文数量。
110.此外,对于目标拥塞控制算法,即bbr算法,对丢包不敏感的特性也使得bbr算法相比于基于丢包检测的算法会产生更多的重传流量,浪费更多带宽。出于带宽成本控制的考虑,需要对bbr算法做调整,适当增加bbr算法对丢包的敏感性,当丢包多到一定程度时,主动降低bbr算法的带宽估计值与发送速率。
111.为此,如图6所示,为本发明实施例提供的一种目标拥塞算法控制方法的实施流程示意图,该方法具体可以包括以下步骤:
112.s601,当所述目标拥塞控制算法处于启动状态或循环探测带宽状态时,监测网络链路是否发生丢包。
113.在本发明实施例中,对于目标拥塞控制算法,当其处于启动状态或循环探测带宽状态时,监测网络链路是否发生丢包。其中,这里可以是监测网络链路是否首次发生丢包。
114.例如,对于bbr算法,当bbr算法处于startup状态(启动状态)或probe_bw状态(循环探测带宽状态)时,监测网络链路是否首次发生丢包。
115.s602,若发生丢包,则从丢包重传的时刻起,确定报文调度的完成次数、报文传输的丢包率以及报文传输成功的数据量。
116.在本发明实施例中,对于网络链路,若发生丢包,即如果首次丢包的话,则从丢包重传的时刻起,确定报文调度的完成次数、报文传输的丢包率以及报文传输成功的数据量。
117.其中,需要说明的是,对于报文调度,在将报文调度过程中的报文发送完毕,且接收到ack响应的情况下,视为完成一次报文调度,本发明实施例对此不作限定。
118.s603,根据所述完成次数、所述丢包率以及所述数据量,判断所述目标拥塞控制算法是否满足状态转移的要求。
119.s604,若所述目标拥塞控制算法满足状态转移的要求,将所述目标拥塞控制算法转移至避免丢包状态。
120.在本发明实施例中,对于报文调度的完成次数、报文传输的丢包率以及报文传输成功的数据量,可以根据所述完成次数、所述丢包率以及所述数据量,判断所述目标拥塞控制算法是否满足状态转移的要求。
121.如果所述目标拥塞控制算法满足状态转移的要求,将所述目标拥塞控制算法转移至避免丢包状态。其中,在本发明实施例中,对于原来的目标拥塞控制算法状态转移过程做了扩展,新增了避免丢包状态。
122.例如,对于原来的bbr算法的状态转移过程做了扩展,新增了avoid_loss状态(避免丢包状态),如图7所示。当bbr算法满足状态转移的要求,将bbr算法转移至avoid_loss状态。
123.其中,对于报文调度的完成次数、报文传输的丢包率以及报文传输成功的数据量,
若所述完成次数在第一预设完成次数与第二预设完成次数之间,且所述数据量大于第一阈值,所述丢包率大于第二阈值,则确定所述目标拥塞控制算法满足状态转移的要求。
124.例如,报文调度的完成次数在5与20之间(包括5和20的情况),且报文传输成功的数据量大于n字节,报文传输的丢包率大于阈值loss_thresh,此时上述3个条件均满足,此时bbr算法就可以进入到avoid_loss状态。
125.此外,若所述完成次数大于所述第二预设完成次数,则清空丢包记录,并跳转至所述当所述目标拥塞控制算法处于启动状态或循环探测带宽状态时,监测网络链路是否发生丢包的步骤,意味着报文调度的完成次数超过了第二预设完成次数(例如20),则取消上述3个条件的判断,并清空丢包记录,后续再发生丢包时,重启上述判断过程,如图8所示。
126.s605,在所述目标拥塞控制算法处于避免丢包状态的情况下,保持所述目标拥塞控制算法的瓶颈带宽以及发送速率增益因子不变。
127.s606,在预设时间段之后,将所述目标拥塞控制算法转移至所述循环探测带宽状态。
128.在本发明实施例中,在目标拥塞控制算法处于避免丢包状态的情况下,保持所述目标拥塞控制算法的瓶颈带宽以及发送速率增益因子(这里的发送速率增益因子可以是某个阈值,例如1.0)不变,在预设时间段之后,将所述目标拥塞控制算法转移至所述循环探测带宽状态。
129.其中,在将目标拥塞控制算法转移至避免丢包状态之前,还可以确定所述目标拥塞控制算法满足状态转移的要求的状态转移时刻,获取从丢包重传的时刻起至状态转移时刻之间的目标时间段,确定所述目标时间内的报文平均发送速率,将所述目标拥塞控制算法的瓶颈带宽更改为所述报文平均发送速率。
130.例如,当上述3个条件全部满足时,可以确定目标拥塞控制算法满足状态转移的要求的状态转移时刻,获取从丢包重传的时刻起至状态转移时刻之间的目标时间段,确定目标时间内的报文平均发送速率,将bbr算法的瓶颈带宽更改为报文平均发送速率,随后bbr算法进入avoid_loss状态。
131.由于丢包使得报文传输耗时变长,新的瓶颈带宽会明显降低。当bbr算法处于avoid_loss状态时,瓶颈带宽保持不变,发送速率增益因子pacing_gain保持1.0不变。该状态持续1秒后自动退出并转入probe_bw状态,若网络丢包状况有所好转,转入probe_bw状态后bbr算法也能自动探测出新的瓶颈带宽。
132.与上述方法实施例相对应,本发明实施例还提供了一种报文的传输装置,如图9所示,该装置可以包括:速率获取模块910、时刻确定模块920、迭代模块930。
133.速率获取模块910,用于在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的;
134.时刻确定模块920,用于确定本次报文调度的截止时刻;
135.迭代模块930,用于按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
136.本发明实施例还提供了一种电子设备,如图10所示,包括处理器101、通信接口
102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信,
137.存储器103,用于存放计算机程序;
138.处理器101,用于执行存储器103上所存放的程序时,实现如下步骤:
139.在触发报文调度的情况下,获取当前的报文发送速率,其中,所述报文发送速率由目标拥塞控制算法基于评估的带宽而确定的;确定本次报文调度的截止时刻,并按照以下步骤进行迭代,直至下一个待传输报文的发送时刻大于或等于所述截止时刻,停止本次报文调度:获取待传输报文的发送时刻,在本次报文调度中发送所述待传输报文;根据所述待传输报文的发送时刻、报文大小、所述报文发送速率,确定下一个待传输报文的发送时刻。
140.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
141.通信接口用于上述电子设备与其他设备之间的通信。
142.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
143.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
144.在本发明提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文的传输方法。
145.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文的传输方法。
146.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
147.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
148.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
149.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献