掌桥专利:专业的专利平台
掌桥专利
首页

网络速率调整方法及装置、存储介质及电子设备

文献发布时间:2024-04-18 20:01:55


网络速率调整方法及装置、存储介质及电子设备

技术领域

本公开涉及计算机技术领域,尤其涉及一种网络速率调整方法及装置、存储介质及电子设备。

背景技术

随着计算机技术与网络技术的发展,数据中心网络链路的速度从10G快速增长到100G以上,且流量模式快速变化,对网络性能的要求日益增加。其中,拥塞控制技术是提高网络吞吐、降低延迟、保证网络稳定性的重要手段。

相关技术中所使用的拥塞控制算法,常常使用较多的参数进行速率的调控,从而导致算法部署复杂,调控效率较低;或是进行较长时间的监测后才进行速率的调控,从而导致调整一次花费时间较长,调控效率较低。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种网络速率调整方法、装置、电子设备及存储介质,能够快速判断是否需要对发送速率进行降速调整,并可以通过少量参数实现对当前发送速率简便有效且快速的调整。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的一个方面,提供一种网络速率调整方法,包括:根据当前发送速率向接收端发送探测数据包,以进行当次网络测量;响应于接收端返回的对探测数据包的应答消息,确定当次网络测量的当前往返时延,并判断在当次网络测量的期间是否接收到拥塞通知报文;在当次网络测量的期间接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整。

在本公开一个实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第一降幅比率;根据第一降幅比率对当前发送速率进行降速调整。

在本公开一个实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,还包括:在当前往返时延大于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第二降幅比率;其中,第二降幅比率大于第一降幅比率;根据第二降幅比率对当前发送速率进行降速调整。

在本公开一个实施例中,网络速率调整方法还包括:在当次网络测量的期间未接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整。

在本公开一个实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前理想发送速率和第一增速常量;其中,当前理想发送速率大于或等于当前发送速率;将当前理想发送速率和第一增速常量之和确定为第一更新后理想发送速率;根据第一更新后理想发送速率对当前发送速率进行增速调整。

在本公开一个实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,获得增速调整后发送速率,还包括:在当前往返时延大于上次往返时延的情况下,获取当前理想发送速率和第二增速常量;其中,当前理想发送速率大于或等于当前发送速率,第二增速常量小于第一增速常量;将当前理想发送速率和第二增速常量之和确定为第二更新后理想发送速率;根据第二更新后理想发送速率对当前发送速率进行增速调整。

在本公开一个实施例中,在当前往返时延小于或等于上次往返时延的情况下,网络速率调整方法还包括:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行降值更新;以及,在当前往返时延大于上次往返时延的情况下,网络速率调整方法还包括:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行增值更新。

根据本公开的另一个方面,提供一种网络速率调整装置,包括:发送模块,用于根据当前发送速率向接收端发送探测数据包,以进行当次网络测量;确定模块,用于响应于接收端返回的对探测数据包的应答消息,确定当次网络测量的当前往返时延,并判断在当次网络测量的期间是否接收到拥塞通知报文;调整模块,用于在当次网络测量的期间接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整。

根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的网络速率调整方法。

根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的网络速率调整方法。

本公开的实施例所提供的网络速率调整方法,能够向接收端发送探测数据包以进行网络测量,然后确定本次测量中的往返时延以及判断本次测量期间是否接收到拥塞通知报文,进而在接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延对当前发送速率进行降速调整。一方面,可以根据发送探测数据包之后“是否接收到拥塞通知报文”这一信息来判断是否需要对发送速率进行降速调整,可见,判定是否需要降速调整的方式简便有效。另一方面,可以在确定需要进行降速调整的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,可见,调整方式同样简便有效,能够避免占用过多的计算资源,能够为实时快速调控发送速率提供算法基础。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了可以应用本公开实施例的网络速率调整方法的示例性系统架构的示意图;

图2示出了本公开一个实施例的网络速率调整方法的流程图;

图3示出了可以应用本公开实施例的网络速率调整方法的网络拓扑的示意图;

图4示出了本公开一个实施例的网络速率调整方法的示意图;

图5示出了本公开一个实施例的网络速率调整方法中对当前发送速率进行调整的示意图;

图6示出了本公开一个实施例的网络速率调整方法中对降速因子进行更新的示意图;

图7示出了本公开一个实施例的网络速率调整装置的框图;和

图8示出本公开实施例中一种网络速率调整计算机设备的结构框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

图1示出了可以应用本公开实施例的网络速率调整方法的示例性系统架构的示意图。

如图1所示,该系统架构可以包括服务器101、网络102和客户端103。网络102用以在客户端103和服务器101之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

在示例性实施例中,与服务器101进行数据传输的客户端103可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、AR(Augmented Reality,增强现实)设备、VR(Virtual Reality,虚拟现实)设备、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux系统、windows系统等。

服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实际应用中,服务器101也可以是网络平台的服务器,网络平台例如可以是交易平台、直播平台、社交平台或者音乐平台等,本公开实施例对此不作限定。其中,服务器可以是一台服务器,也可以是多台服务器形成的集群,本公开对于服务器的具体架构不做限定。

在示例性实施例中,可以有多个客户端101通过同一个交换机与同一个服务器101进行数据传输,其中,在客户端101作为数据发送方向服务器101进行数据发送时,每一客户端可以根据各自的发送速率进行数据发送,并可以通过本公开提供的网络速率调整方法对自身的发送速率进行实时调控,尽可能地使用能够避免拥塞且较高的发送速率进行数据传输,不仅能够最大限度避免触发PFC(Priority-based Flow Control,基于优先级的流量控制),还可以实现更高带宽、多流带宽分配的高公平性、以及对微突发的快速响应。

在示例性实施例中,客户端103用于实现网络速率调整方法的过程可以是:客户端103根据当前发送速率向接收端发送探测数据包,以进行当次网络测量;客户端103响应于接收端返回的对探测数据包的应答消息,确定当次网络测量的当前往返时延,并判断在当次网络测量的期间是否接收到拥塞通知报文;在当次网络测量的期间接收到拥塞通知报文的情况下,客户端103根据上次往返时延和当前往返时延,对当前发送速率进行降速调整。

此外,需要说明的是,图1所示的仅仅是本公开提供的网络速率调整方法的一种应用环境。图1中的服务器101、网络102和客户端103的数目仅仅是示意性的,根据实际需要,可以具有任意数目的客户端、网络和服务器。

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图及实施例对本公开示例实施例中的网络速率调整方法的各个步骤进行更详细的说明。

图2示出了本公开一个实施例的网络速率调整方法的流程图。本公开实施例提供的方法可以由如图1所示的服务器101或客户端103执行,但本公开并不限定于此。

在下面的举例说明中,以客户端103为执行主体进行示例说明。

如图2所示,本公开实施例提供的网络速率调整方法可以包括以下步骤。

步骤S201,根据当前发送速率向接收端发送探测数据包,以进行当次网络测量。

本步骤中,探测数据包可以是预设的RTT(Round-Trip Time,往返时延)探测包,该探测包可以是用于在后续步骤中确定当次网络测量的当前往返时延数据包。

在一些实际应用中,客户端103作为发送端发送数据,在初始时可以以低速率启动发送,其中,启动速率(初始速率)是一个可配置的超参数,可以根据实际需要进行配置,例如,可配置为最大发送速率的1/256。该参数的配置目标是初始带宽利用率和避免触发PFC的折中。在客户端103向外进行数据发送的过程中,可以以一个预设频率持续发送多个探测数据包,以持续实时更新发送速率;其中,发送频率可以是一个可配置的超参数,例如,可配置为4KB或8KB;相邻两次发送探测数据包的间隔越大,控制越平滑则速率波动小,间隔越小则控制响应越快,可以根据实际需求进行发送频率的调控。

步骤S203,响应于接收端返回的对探测数据包的应答消息,确定当次网络测量的当前往返时延,并判断在当次网络测量的期间是否接收到拥塞通知报文。

当接收端接收到探测数据包时,可以生成并返回一个指示“已收到”的ACT(应答消息),发送方可以基于接收到的应答消息触发RTT完成事件并记录此刻的接收时间,进而可以根据发送探测数据包的时间与接收时间确定出当前往返时延(rtt的数值)。

此外,当次网络测量的期间可以是从发送端发送探测数据包开始,直至发送端接收到接收针对探测数据包的应答消息。其中,从发送端发送探测数据包到接收端接收到该探测数据包的过程中,若产生过ECN(Explicit Congestion Notification,显示拥塞通知),则会随之生成CNP(Congestion Notification Packets,拥塞通知包),反之,若未出现ECN,则不会生成CNP,因此还可以在接收到的应答消息后判断在此期间是否接收到拥塞通知报文。

通过本步骤,可以确定出当次网络测量结果,该测量结果中包含了RTT信息(rtt的数值)和是否接收到CNP的信息,以用于后续步骤中的发送速率的调整。其中,接收到CNP的个数可以是一个或多个,也即,只要收到CNP,则“判断在当次网络测量的期间是否接收到拥塞通知报文”的判断结果均为“是”。

步骤S205,在当次网络测量的期间接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整。

本步骤中,上次往返时延是上次网络测量中使用上次发送速率发送探测数据包而确定出的。在对当前发送速率进行降速调整后,可以获得降速更新后的发送速率,进而可以在之后使用降速更新后的发送速率进行数据流的发送。其中,若当次网络测量的期间接收到拥塞通知报文,意味着使用当前发送速率进行数据传输已出现拥塞,可以推断出当前发送速率的值过高,需要向下调整,以希望调整后的发送速率不会再产生拥塞。在本步骤中,可以在当前发送速率的基础上进行降值处理,以实现降速调整。

在一些实施例中,可以获取当前的降速因子,使用当前的降速因子对当前发送速率进行降速调整。该降速因子可以是0到1之间的数值,可以是预设的定值,也可以是一个能够随应用环境实时调控的值。

通过本公开提供的网络速率调整方法,可以向接收端发送探测数据包以进行网络测量,然后确定本次测量中的往返时延以及判断本次测量期间是否接收到拥塞通知报文,进而在接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延对当前发送速率进行降速调整。一方面,可以根据发送探测数据包之后“是否接收到拥塞通知报文”这一信息来判断是否需要对发送速率进行降速调整,可见,判定是否需要降速调整的方式简便有效。另一方面,可以在确定需要进行降速调整的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,可见,调整方式同样简便有效,能够避免占用过多的计算资源,能够为实时快速调控发送速率提供算法基础。

在一些实施例中,步骤S205中的“根据上次往返时延和当前往返时延,对当前发送速率进行降速调整”,可以包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第一降幅比率;根据第一降幅比率对当前发送速率进行降速调整。

本实施例中,当前往返时延小于或等于上次往返时延,意味着较上次测量而言,本次测量中虽然收到过CNP,但使用当前发送速率得到的往返时延已在变短,也即,拥塞情况已在缓解,因此可以以适当的幅度对当前发送速率进行降速调整。在一些实际应用中,在拥塞缓解的情况下可以对当前发送速率以较小的幅度进行普通减速处理。

在一些实际应用中,降速因子可以用α表示,α可以是0~1之间的数值,第一降幅比率例如可以是第一预设系数与α的乘积,其中,需要保证第一预设系数与α的乘积依然处于0~1之间。例如,第一预设系数可以取值为1/4,那么第一降幅比率可以是α/4,假设当前发送速率使用rate_cur来表示,降速调整后得到的发送速率使用rate_cur’来表示,那么在当前往返时延小于或等于上次往返时延的情况下,rate_cur’可以根据如下公式进行确定:rate_cur’=rate_cur*(1-α/4)。

在一些实施例中,步骤S205中的“根据上次往返时延和当前往返时延,对当前发送速率进行降速调整”,还可以包括:在当前往返时延大于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第二降幅比率;其中,第二降幅比率大于第一降幅比率;根据第二降幅比率对当前发送速率进行降速调整。

本实施例中,当前往返时延大于上次往返时延,意味着较上次测量而言,本次测量中使用当前发送速率得到的往返时延更长了,也即,拥塞情况在加剧,因此可以以符合当前情况的幅度对当前发送速率进行降速调整。在一些实际应用中,在拥塞加剧的情况下可以对当前发送速率以较大的幅度进行超减速处理。

承上述,在一些实际应用中,第二降幅比率例如可以是第二预设系数与α的乘积,其中,需要保证第二预设系数大于上述第一预设系数,且第二预设系数与α的乘积依然处于0~1之间。例如,第二预设系数可以取值为1/2,那么第一降幅比率可以是α/2,假设当前发送速率使用rate_cur来表示,降速调整后得到的发送速率使用rate_cur”来表示,那么在当前往返时延大于上次往返时延的情况下,rate_cur”可以根据如下公式进行确定:rate_cur’=rate_cur*(1-α/2)。

在一些实施例中,本公开提供的网络速率调整方法还可以包括:在当次网络测量的期间未接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整。

本实施例中,若当次网络测量的期间未接收到拥塞通知报文,意味着当前发送速率还未到达能够触发ECN的阈值,因此可以在当前发送速率的基础上,结合上次往返时延和当前往返时延的值对当前发送速率适当增值,以实现增速调整。在获得增速更新后的发送速率后,即可以使用增速更新后的发送速率进行数据流的发送。其中ECN的阈值可以是预先设定好的,具体而言可以通过交换机配置的命令进行配置,不同厂商的交换机配置方式可以有所不同。

在一些实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前理想发送速率和第一增速常量;其中,当前理想发送速率大于或等于当前发送速率;将当前理想发送速率和第一增速常量之和确定为第一更新后理想发送速率;根据第一更新后理想发送速率对当前发送速率进行增速调整。

本实施例中,若当前往返时延小于或等于上次往返时延,意味着本此测量中既没有产生ECN,使用当前发送速率得到的往返时延也在变短,因此本实施例中的情况可以看作是网络畅通的情况,该情况下可以在当前发送速率的基础上以较大幅度进行超增速处理。

其中,当前理想发送速率可以看作是在之前所有测量中最近一次收到CNP时所使用的发送速率,当前理想发送速率通常是一个大于当前发送速率的值,可以看作是对当前发送速率进行调整的一个目标速率。第一增速常量是一个超参数,可以使用HAI来表示;可以在本公开提供的网络速率调整方法运行之前对HAI进行配置,例如,HAI可以设置为最大速率的1/256;其中,当多个发送端和少量的接收端组成的网络拓扑以及连接发送端与接收端的交换机硬件确定之后,最大速率可以被确定,HAI就可以随之确定了,并且在确定之后可以无需再动态调整HAI。

可以先获取当前理想发送速率和第一增速常量,然后利用第一增速常量对当前理想发送速率进行更新,也即,可以将当前理想发送速率和第一增速常量之和确定为第一更新后理想发送速率;接着可以再根据第一更新后理想发送速率对当前发送速率进行增速调整,在一些实际应用中,可以将第一更新后理想发送速率和当前发送速率的均值,作为本实施例中网络畅通的情况下的增速调整后的当前发送速率。

在一些实施例中,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,获得增速调整后发送速率,还包括:在当前往返时延大于上次往返时延的情况下,获取当前理想发送速率和第二增速常量;其中,当前理想发送速率大于或等于当前发送速率,第二增速常量小于第一增速常量;将当前理想发送速率和第二增速常量之和确定为第二更新后理想发送速率;根据第二更新后理想发送速率对当前发送速率进行增速调整。

本实施例中,若当前往返时延大于上次往返时延,意味着本此测量中虽然没有产生ECN,但使用当前发送速率得到的往返时延变长了,因此本实施例中的情况可以看作是存在拥塞风险的情况,该情况下可以在当前发送速率的基础上以较小幅度进行加性增速处理。

其中,类似于第一增速常量,第二增速常量也是一个超参数,可以使用AI来表示;类似于HAI,针对AI也可以在本公开提供的网络速率调整方法运行之前进行配置,例如,AI可以设置为最大速率的1/2

可以先获取当前理想发送速率和第二增速常量,然后利用第二增速常量对当前理想发送速率进行更新,也即,可以将当前理想发送速率和第一增速常量之和确定为第二更新后理想发送速率;接着可以再根据第二更新后理想发送速率对当前发送速率进行增速调整,在一些实际应用中,可以将第二更新后理想发送速率和当前发送速率的均值,作为本实施例中存在拥塞风险的情况下的增速调整后的当前发送速率。

在一些实施例中,在当前往返时延小于或等于上次往返时延的情况下,网络速率调整方法还包括:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行降值更新。

以及,在当前往返时延大于上次往返时延的情况下,网络速率调整方法还包括:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行增值更新。

本实施例中,因子调整常量可以看作是一个超参数,可以使用g来表示,g可以用于控制降速因子α更新的幅度,在一些实际应用工作,g可以是一个预先配置的满足0

其中,在当前往返时延小于或等于上次往返时延的情况下,可以认为拥塞情况或拥塞风险已经有所缓解,因此在需要降速时,可以尝试着少降一些发送速率进行数据流的发送,故而所使用的降速因子α可以更小,以达到以更小的降幅对发送速率进行降速调整的效果。在一些实际应用中,假设当前的降速因子使用α来表示,降值更新后得到的降速因子使用α’来表示,那么在当前往返时延小于或等于上次往返时延的情况下,α’可以根据如下公式进行确定:α’=α*(1-g)。

而在当前往返时延大于上次往返时延的情况下,可以认为拥塞加剧或将要有拥塞风险了,因此在需要降速时,可以尝试着多降一些发送速率进行数据流的发送,以期望缓解拥塞,故而所使用的降速因子α可以更大,以达到以更大的降幅对发送速率进行降速调整的效果。在一些实际应用中,假设当前的降速因子使用α来表示,增值更新后得到的降速因子使用α”来表示,那么在当前往返时延大于上次往返时延的情况下,α”可以根据如下公式进行确定:α”=α*(1-g)+g。

图3示出了可以应用本公开实施例的网络速率调整方法的网络拓扑的示意图,如图3所示,包括100个发送端、1个交换机304和1个接收端305,其中100个发送端可以包括发送端301、发送端302和发送端303。

在本实施例中的网络拓扑中,100个发送端可以同时发送数据流,其中每个发送端可发送10条1M大小的流,从而可以构成典型的incast(又称TCP incast,一种多对一的通信模式)场景。此时的瓶颈链路为交换机304到接收端305的链路,由于交换机304总的入口带宽大于出口带宽,因此此时在瓶颈链路中会出现拥塞。

其中,出现拥塞的具体表现可以是:交换机304中的队列长度增加,当队列长度超过交换机的ECN标记阈值时,交换机304会在转发的包中增加ECN标记。接收端305收到ECN标记的包后会立即返传CNP包,通知发送端链路出现了拥塞。

以发送端301举例说明,在一些实际应用中,发送端301中可以设置有RTT测量模块、速率控制模块、降速因子更新模块,这三个模块可以均设置在发送端301的发送端网卡上,这三个模块可以与发送端301中的网卡硬件联合作用以实现网络速率调整的架构。具体而言,RTT测量模块可以向网卡硬件发送RTT测量请求;速率控制模块在接收到测量请求后,可以使用低速率启动RTT探测包的发送;RTT测量模块可以记录与RTT探测包对应的测量结果;然后速率控制模块可以从RTT测量模块读取RTT测量结果,并根据在测量期间收到CNP(Congestion Notification Packets,拥塞通知包)的情况进行速率的调整;其中,降速因子更新模块还可以根据RTT测量结果更新降速因子,进而控制速率控制模块降速的幅度。

本实施例中所使用的往返时延测量的是从发送端提交RTT测量请求,到收到接收端305返回的RTT测量请求的ACK包的时间,当交换机304中的队列长度增加,RTT也会相应增加。

运行在发送端301的速率控制模块、降速因子更新模块会按照前述技术方案中的流程进行速率的调控、降速因子的更新。

在一些实际应用中,初始阶段,交换机304不会发出ECN包,因此发送端不会收到CNP,各个发送端的速率控制模块均会快速提高发送速率,以达到最大带宽利用率。随后,交换机304的队列会快速增加,直到达到ECN标记阈值并发送ECN信号,接收端305收到ECN包后迅速返回CNP到发送端,发送端的速率控制模块收到CNP后会立即进行降速处理。当速率降低持续一段时间后,交换机304队列会逐渐消耗,直至低于CNP阈值。而当发送端的速率控制模块在一个RTT测量期间没有收到CNP,则又会进行加速。最终,如图3所示的网络拓扑中的各个发送端中各条流的发送速率会趋于稳定,且趋于稳定的各个发送端的发送速率将会以较高的值接近交换机304的ECN标记阈值的触发,因此通过本方案,可以自动调控发送端的发送速率使得发送速率维持在较高的数值且尽量少地触发拥塞。

图4示出了本公开一个实施例的网络速率调整方法的示意图,本实施例可以应用于包含有RTT测量模块、速率控制模块、降速因子更新模块和网卡硬件的发送端,如图4所示,网络速率调整方法可以包括以下步骤。

步骤S401,RTT测量模块向网卡硬件发送RTT测量请求。

步骤S403,RTT测量模块记录发送时刻t1。

步骤S405,网卡硬件发送RTT探测包。

步骤S407,网卡硬件收到RTT探测包的ACK并触发RTT完成事件。

步骤S409,RTT测量模块记录时刻t2,计算rtt=t2-t1。

步骤S411,速率控制模块根据RTT以及是否接收到CNP进行调速。

步骤S413,降速因子更新模块根据RTT更新降速因子。

步骤S415,告知网卡新的发送速率。

其中,步骤S411和步骤S413的执行顺序可以不做限定;图4实施例的其它内容可以参照上述其它实施例。

图5示出了本公开一个实施例的网络速率调整方法中对当前发送速率进行调整的示意图,本实施例可以应用于接收到RTT测量结果之后。如图5所示,对当前发送速率进行调整的方法可以包括以下步骤。

步骤S501,确定RTT测量事件完成。其中,发送端接收到接收端返回的对探测数据包的应答消息时,可以确定RTT测量事件完成。

步骤S503,获取本次RTT测量的结果rtt。其中,rtt可以是发送RTT测量请求的时刻t1至接收到上述应答消息的时刻t2之间的时间段。

步骤S505,判断在本次RTT测量期间是否收到CNP包。若是,则执行步骤S507;若否,则执行步骤S515。

步骤S507,判断rtt是否小于或等于last_rtt。其中,last_rtt是上次网络测量中确定出的上次往返时延。若是,则执行步骤S509;若否,则执行步骤S511。

步骤S509,确定此时处于拥塞缓解(普通减速)的情况,可以按照如下公式中等号右边的方式对rate_cur进行调速更新:rate_cur=rate_cur*(1-α/4);其中,rate_cur表示当前发送速率,α表示当前的降速因子。

步骤S511,确定此时处于拥塞加剧(超减速)的情况,可以按照如下公式中等号右边的方式对rate_cur进行调速更新:rate_cur=rate_cur*(1-α/2)。

步骤S513,向网卡硬件返回调速后的发送速率rate_cur。

步骤S515,判断rtt是否小于或等于last_rtt。若是,则执行步骤S517;若否,则执行步骤S519。

步骤S517,确定此时处于网络畅通(超增速)的情况,可以按照如下公式中等号右边的方式对rate_tar进行更新:rate_tar=rate_tar+HAI;其中,rate_tar表示理想发送速率,HAI表示第一增速常量。

步骤S519,确定此时处于拥塞风险(加性增速)的情况,可以按照如下公式中等号右边的方式对rate_tar进行更新:rate_tar=rate_tar+AI;其中,AI表示第二增速常量,第二增速常量AI小于第一增速常量HAI。

步骤S521,根据更新后的rate_tar对rate_cur进行更新,具体地,可以按照如下公式中等号右边的方式对rate_cur进行调速更新:rate_cur=(rate_tar+rate_cur)/2。

图5实施例的其它内容可以参照上述其它实施例。

通过本实施例,设计了一种基于往返时延与ECN联合进行调速的算法。速率控制模块可以根据在此次RTT测量期间是否收到CNP,以及此次测量的rtt测量值的大小与上次rtt测量值的大小之间的关系,划分出4种情况,分别为:

网络畅通(步骤S517中的情况):网络没有拥塞,且交换机队列降低;

拥塞风险(步骤S519中的情况):交换机队列增长,但是还未到触发ECN的阈值;

拥塞缓解(步骤S509中的情况):上次的降速已经生效,交换机队列变短了,但是队列长度仍然大于ECN阈值;

拥塞加剧(步骤S511中的情况):网络拥塞有加剧的趋势。

并且,为每种情况设计了对应的调速算法,并可以将调速后的发送速率返回网卡硬件。网卡硬件收到调速后的发送速率后,可以按照新的发送速率进行数据发送。

可见,本方案设计的基于往返时延与ECN联合进行调速的算法,在广泛使用的基于ECN进行拥塞控制的基础上,增加了端到端的往返时延rtt作为拥塞控制的输入信息,可以有效扩充网络拥塞状态表示的信息量,实现更精准的控制。

并且,本方案中所使用的启动速率(初始速率)和增速机制,可以综合考虑交换机队列长度,以及链路中的端到端时延,进而可最大限度避免PFC触发,从而实现更高带宽、多流带宽分配的高公平性、以及对微突发的快速响应。

图6示出了本公开一个实施例的网络速率调整方法中对降速因子进行更新的示意图。如图6所示,对降速因子的更新可以包括以下步骤。

步骤S601,确定RTT测量事件完成。

步骤S603,获取本次RTT测量的结果rtt。

步骤S605,判断rtt是否小于或等于last_rtt。若是,则执行步骤S607;若否,则执行步骤S609。

步骤S607,根据因子调整常量g对降速因子α进行更新,具体地,可以按照如下公式中等号右边的方式对α进行降值更新:α=α(1-g)。

步骤S609,根据因子调整常量g对降速因子α进行降值更新,具体地,可以按照如下公式中等号右边的方式对α进行更新:α=α(1-g)+g。

图6实施例的其它内容可以参照上述其它实施例。

本方法中使用了降速因子α,降速因子α可以看作是一个控制每次降速幅度的超参数。本方法中可以根据发送探测数据包进行的网络测量的测量结果直接对降速因子进行更新,进而在需要对当前发送速率进行降速更新时调控降低幅度,使得降低幅度更加适应于当前的情况(包括拥塞缓解的情况和拥塞加剧的情况)。

其中,具体可以由降速因子更新模块根据此次测量的rtt与上次测量得到的上次rtt测量值的大小关系,控制降速因子的更新,进而使得调节速率控制模块调用更新后的降速因子来控制减速的幅度。该降速因子更新模块可简化计时器、比特计数器的阈值配置工作,简化了相关超参数的配置。这些优化极大降低了算法部署的难度,实现通过一种简便有效的方式来控制对当前发送速率的降速调整。

需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

图7示出了本公开一个实施例的网络速率调整装置700的框图;如图7所示,包括:发送模块701,用于根据当前发送速率向接收端发送探测数据包,以进行当次网络测量;确定模块702,用于响应于接收端返回的对探测数据包的应答消息,确定当次网络测量的当前往返时延,并判断在当次网络测量的期间是否接收到拥塞通知报文;调整模块703,用于在当次网络测量的期间接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整。

通过本公开提供的网络速率调整装置,可以向接收端发送探测数据包以进行网络测量,然后确定本次测量中的往返时延以及判断本次测量期间是否接收到拥塞通知报文,进而在接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延对当前发送速率进行降速调整。一方面,可以根据发送探测数据包之后“是否接收到拥塞通知报文”这一信息来判断是否需要对发送速率进行降速调整,可见,判定是否需要降速调整的方式简便有效。另一方面,可以在确定需要进行降速调整的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,可见,调整方式同样简便有效,能够避免占用过多的计算资源,能够为实时快速调控发送速率提供算法基础。

在一些实施例中,调整模块703根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第一降幅比率;根据第一降幅比率对当前发送速率进行降速调整。

在一些实施例中,调整模块703根据上次往返时延和当前往返时延,对当前发送速率进行降速调整,还包括:在当前往返时延大于上次往返时延的情况下,获取当前的降速因子,并根据降速因子确定第二降幅比率;其中,第二降幅比率大于第一降幅比率;根据第二降幅比率对当前发送速率进行降速调整。

在一些实施例中,调整模块703还用于:在当次网络测量的期间未接收到拥塞通知报文的情况下,根据上次往返时延和当前往返时延,对当前发送速率进行增速调整。

在一些实施例中,调整模块703根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,包括:判断当前往返时延是否小于或等于上次往返时延;在当前往返时延小于或等于上次往返时延的情况下,获取当前理想发送速率和第一增速常量;其中,当前理想发送速率大于或等于当前发送速率;将当前理想发送速率和第一增速常量之和确定为第一更新后理想发送速率;根据第一更新后理想发送速率对当前发送速率进行增速调整。

在一些实施例中,调整模块703根据上次往返时延和当前往返时延,对当前发送速率进行增速调整,获得增速调整后发送速率,还包括:在当前往返时延大于上次往返时延的情况下,获取当前理想发送速率和第二增速常量;其中,当前理想发送速率大于或等于当前发送速率,第二增速常量小于第一增速常量;将当前理想发送速率和第二增速常量之和确定为第二更新后理想发送速率;根据第二更新后理想发送速率对当前发送速率进行增速调整。

在一些实施例中,网络速率调整装置700还包括因子更新模块704,在当前往返时延小于或等于上次往返时延的情况下,因子更新模块704用于:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行降值更新;以及,在当前往返时延大于上次往返时延的情况下,因子更新模块704还用于:在对当前发送速率进行降速调整或增速调整之后,获取预设的因子调整常量和当前的降速因子;根据因子调整常量对降速因子进行增值更新。

图7实施例的其它内容可以参照上述其它实施例。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

图8示出本公开实施例中一种网络速率调整计算机设备的结构框图。需要说明的是,图示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2中所示的方法。

存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。

存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

根据本发明实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

根据本公开的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例的各种可选实现方式中提供的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

相关技术
  • 一种航空发动机分流环零件点焊裂纹修复方法
  • 分流环、航空发动机以及分流环制造方法
  • 分流环、航空发动机以及分流环制造方法
技术分类

06120116571003