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

流量控制方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 19:27:02


流量控制方法、装置、电子设备和存储介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种流量控制方法、装置、电子设备和存储介质。

背景技术

目前,现有的流量控制方法为:发送端根据发送窗口swnd、接收窗口rwnd和拥塞窗口cwnd等参数控制报文的发送。

然而,在这种流量控制方式中,发送端无法及时感知到该报文传输路径中的瓶颈,不断向网络发送报文,导致网络拥堵;同时由于报文传输路径的瓶颈处会对超出其发送能力的报文进行丢弃,从而导致发送端重传丢失的报文,造成不必要的网络资源浪费。

发明内容

本申请实施例的目的在于提供一种流量控制方法、装置、电子设备和存储介质,用以动态调整接收窗口,进而使发送端根据报文传输路径上的最大传输能力及时调整发送速率,进而避免向网络发送大量报文,造成网络拥塞的情况。同时通过发送端及时调整发送速率,减少网络丢包的可能性,避免了网络资源的浪费。

第一方面,本发明提供一种流量控制方法,所述方法包括:

接收接收端发送的数据报文;

匹配所述数据报文关联的流控队列;

解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;

基于所述数据报文获取流控队列的剩余存储容量;

将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;

基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;

将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。

在本申请第一方面中,通过接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

在可选的实施方式中,在所述匹配所述数据报文关联的流控队列之后,所述解析所述数据报文得到窗口字段的数值之前,所述方法还包括:

判断所述数据报文是否为ACK报文,如果所述数据报文为所述ACK报文,则触发执行所述解析所述数据报文得到窗口字段的数值,如果所述数据报文不是所述ACK报文,则不触发执行所述解析所述数据报文得到窗口字段的数值。

在上述可选的实施方式中,通过判断所述数据报文是否为ACK报文,进而能够在所述数据报文为所述ACK报文,则触发执行所述解析所述数据报文得到窗口字段的数值,而在所述数据报文不是所述ACK报文,则不触发执行所述解析所述数据报文得到窗口字段的数值,从而能够避免对非ACK报文进行处理。

在可选的实施方式中,所述匹配所述数据报文关联的流控队列,包括:

提取所述数据报文中的五元组信息;

基于所述五元组信息确定所述流控队列。

在上述可选的实施方式中,通过提取所述数据报文中的五元组信息,进而能够基于所述五元组信息确定所述流控队列。

在可选的实施方式中,所述基于所述数据报文获取流控队列的剩余存储容量,包括:

识别所述数据报文的协议版本;

获取所述流控队列的属性信息;

基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。

在上述可选的实施方式中,通过识别所述数据报文的协议版本和获取所述流控队列的属性信息,进而能够基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。

在可选的实施方式中,所述流控队列的属性信息包括所述流控队列的配置元素容量、所述流控队列的当前使用元素容量和所述流控队列的队列元素存储最大字节数。

在可选的实施方式中,所述基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量对应的计算式为:

Q=(K-C)*(MSS);

其中,Q表示所述流控队列的剩余存储容量,K表示所述流控队列的配置元素容量,C表示流控队列的当前使用元素容量,MSS表示所述流控队列的队列元素存储最大字节数,MSS基于所述数据报文的协议版本确定。

在可选的实施方式中,当所述数据报文的协议版本为IPV6时,MSS=MTU-60;

当所述数据报文的协议版本为IPV4时,MSS=MTU-40;

其中,MTU表示所述流控队列关联网络设备的最大传输单元。

在上述可选的实施方式中,当所述数据报文的协议版本为IPV6时,可通过MSS=MTU-60这一计算式计算MSS,而当数据报文的协议版本为IPV4时,可通过MSS=MTU-40计算得到MSS;

第二方面,本发明提供一种流量控制装置,所述装置包括:

接收模块,用于接收接收端发送的数据报文;

匹配模块,用于匹配所述数据报文关联的流控队列;

解析模块,用于解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;

获取模块,用于基于所述数据报文获取流控队列的剩余存储容量;

比较模块,用于将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;

更新模块,用于基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;

发送模块,用于将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。

本申请第二方面的装置通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

第三方面,本发明提供一种电子设备,包括:

处理器;以及

存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如前述实施方式任一项所述的流量控制方法。

本申请第三方面的电子设备通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

第四方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的流量控制方法。

本申请第四方面的存储介质通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本申请实施例公开的一种流量控制方法的流程示意图;

图2是本申请实施例公开的一种流量控制装置的结构示意图;

图3是本申请实施例公开的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一

请参阅图1,图1是本申请实施例公开的一种流量控制方法的流程示意图,如图1所示,本申请实施例的方法包括以下步骤:

101、接收接收端发送的数据报文;

102、匹配所述数据报文关联的流控队列;

103、解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;

104、基于所述数据报文获取流控队列的剩余存储容量;

105、将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;

106、基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;

107、将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。

在本申请实施例中,通过接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

在本申请实施例中,针对步骤101,数据报文是指ACK(Acknowledge character,确认字符)报文,其中,ACK报文为接收端发给发送端的一种传输类控制字符,用于表示发来的数据已确认接收无误。

在本申请实施例中,针对步骤102,流控队列为用于实现流量控制的数据队列,其中,通过该流控队列能够控制网络的流量大小。

在本申请实施例中,针对步骤102,每个流控队列对应一个五元组,响相应地,通过数据报文的五元组可匹配数据报文关联的流控队列。需要说明的是,五元组是指源IP地址,源端口,目的IP地址,目的端口和传输层协议。

在本申请实施例中,针对步骤

在本申请实施例中,作为一种可选的实施方式,在步驟102:所述匹配所述数据报文关联的流控队列之后,步驟103:所述解析所述数据报文得到窗口字段的数值之前,本申请的方法还包括以下步骤:

判断所述数据报文是否为ACK报文,如果所述数据报文为所述ACK报文,则触发执行所述解析所述数据报文得到窗口字段的数值,如果所述数据报文不是所述ACK报文,则不触发执行所述解析所述数据报文得到窗口字段的数值。

在上述可选的实施方式中,通过判断所述数据报文是否为ACK报文,进而能够在所述数据报文为所述ACK报文,则触发执行所述解析所述数据报文得到窗口字段的数值,而在所述数据报文不是所述ACK报文,则不触发执行所述解析所述数据报文得到窗口字段的数值,从而能够避免对非ACK报文进行处理。

在本申请实施例中,作为一种可选的实施方式,步骤:所述匹配所述数据报文关联的流控队列,包括:

提取所述数据报文中的五元组信息;

基于所述五元组信息确定所述流控队列。

在上述可选的实施方式中,通过提取所述数据报文中的五元组信息,进而能够基于所述五元组信息确定所述流控队列。

在本申请实施例中,作为一种可选的实施方式,步骤104:所述基于所述数据报文获取流控队列的剩余存储容量,包括以下子步骤:

识别所述数据报文的协议版本;

获取所述流控队列的属性信息;

基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。

在上述可选的实施方式中,通过识别所述数据报文的协议版本和获取所述流控队列的属性信息,进而能够基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。

在本申请实施例中,作为一种可选的实施方式,所述流控队列的属性信息包括所述流控队列的配置元素容量、所述流控队列的当前使用元素容量和所述流控队列的队列元素存储最大字节数。

进一步可选地,步骤:所述基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量对应的计算式为:

Q=(K-C)*(MSS);

其中,Q表示所述流控队列的剩余存储容量,K表示所述流控队列的配置元素容量,C表示流控队列的当前使用元素容量,MSS表示所述流控队列的队列元素存储最大字节数,MSS基于所述数据报文的协议版本确定。

在可选的实施方式中,当所述数据报文的协议版本为IPV6时,MSS=MTU-60;

当所述数据报文的协议版本为IPV4时,MSS=MTU-40;

其中,MTU表示所述流控队列关联网络设备的最大传输单元。

在本申请实施例中,作为一种可选的实施方式,当所述数据报文的协议版本为IPV6时,可通过MSS=MTU-60这一计算式计算MSS,而当数据报文的协议版本为IPV4时,可通过MSS=MTU-40计算得到MSS。

实施例二

请参阅图2,图2是本申请实施例公开的一种流量控制装置的结构示意图,如图2所示,本申请实施例的装置包括以下功能模块:

接收模块201,用于接收接收端发送的数据报文;

匹配模块202,用于匹配所述数据报文关联的流控队列;

解析模块203,用于解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;

获取模块204,用于基于所述数据报文获取流控队列的剩余存储容量;

比较模块205,用于将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;

更新模块205,用于基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;

发送模块206,用于将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。

本申请实施例的装置通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

需要说明的是,关于本申请实施例的装置的其他详细说明,请参阅本申请实施例一的相关说明,本申请实施例对此不作赘述。

实施例三

请参阅图3,图3是本申请实施例公开的一种电子设备的结构示意图,如图3所示,本申请实施例的电子设备包括:

处理器301;以及

存储器302,配置用于存储机器可读指令,所述指令在由所述处理器301执行时,执行如前述实施方式任一项所述的流量控制方法。

本申请实施例的电子设备通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

实施例四

本申请实施例公开一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的流量控制方法。

本申请实施例的存储介质通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

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

相关技术
  • 流量控制装置、流量控制方法和程序存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 存储清理方法、装置、电子设备及存储介质
  • 业务流量控制方法、装置、电子设备及可读存储介质
  • 气体流量控制方法及装置、电子设备和存储介质
技术分类

06120115916911