本技术涉及计算机,具体而言,涉及一种流量控制方法、装置、电子设备和存储介质。
背景技术:
1、目前,现有的流量控制方法为:发送端根据发送窗口swnd、接收窗口rwnd和拥塞窗口cwnd等参数控制报文的发送。
2、然而,在这种流量控制方式中,发送端无法及时感知到该报文传输路径中的瓶颈,不断向网络发送报文,导致网络拥堵;同时由于报文传输路径的瓶颈处会对超出其发送能力的报文进行丢弃,从而导致发送端重传丢失的报文,造成不必要的网络资源浪费。
技术实现思路
1、本技术实施例的目的在于提供一种流量控制方法、装置、电子设备和存储介质,用以动态调整接收窗口,进而使发送端根据报文传输路径上的最大传输能力及时调整发送速率,进而避免向网络发送大量报文,造成网络拥塞的情况。同时通过发送端及时调整发送速率,减少网络丢包的可能性,避免了网络资源的浪费。
2、第一方面,本发明提供一种流量控制方法,所述方法包括:
3、接收接收端发送的数据报文;
4、匹配所述数据报文关联的流控队列;
5、解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;
6、基于所述数据报文获取流控队列的剩余存储容量;
7、将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;
8、基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;
9、将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。
10、在本技术第一方面中,通过接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。
11、在可选的实施方式中,在所述匹配所述数据报文关联的流控队列之后,所述解析所述数据报文得到窗口字段的数值之前,所述方法还包括:
12、判断所述数据报文是否为ack报文,如果所述数据报文为所述ack报文,则触发执行所述解析所述数据报文得到窗口字段的数值,如果所述数据报文不是所述ack报文,则不触发执行所述解析所述数据报文得到窗口字段的数值。
13、在上述可选的实施方式中,通过判断所述数据报文是否为ack报文,进而能够在所述数据报文为所述ack报文,则触发执行所述解析所述数据报文得到窗口字段的数值,而在所述数据报文不是所述ack报文,则不触发执行所述解析所述数据报文得到窗口字段的数值,从而能够避免对非ack报文进行处理。
14、在可选的实施方式中,所述匹配所述数据报文关联的流控队列,包括:
15、提取所述数据报文中的五元组信息;
16、基于所述五元组信息确定所述流控队列。
17、在上述可选的实施方式中,通过提取所述数据报文中的五元组信息,进而能够基于所述五元组信息确定所述流控队列。
18、在可选的实施方式中,所述基于所述数据报文获取流控队列的剩余存储容量,包括:
19、识别所述数据报文的协议版本;
20、获取所述流控队列的属性信息;
21、基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。
22、在上述可选的实施方式中,通过识别所述数据报文的协议版本和获取所述流控队列的属性信息,进而能够基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量。
23、在可选的实施方式中,所述流控队列的属性信息包括所述流控队列的配置元素容量、所述流控队列的当前使用元素容量和所述流控队列的队列元素存储最大字节数。
24、在可选的实施方式中,所述基于所述流控队列的属性信息和所述数据报文的协议版本计算所述流控队列的剩余存储容量对应的计算式为:
25、q=(k-c)*(mss);
26、其中,q表示所述流控队列的剩余存储容量,k表示所述流控队列的配置元素容量,c表示流控队列的当前使用元素容量,mss表示所述流控队列的队列元素存储最大字节数,mss基于所述数据报文的协议版本确定。
27、在可选的实施方式中,当所述数据报文的协议版本为ipv6时,mss=mtu-60;
28、当所述数据报文的协议版本为ipv4时,mss=mtu-40;
29、其中,mtu表示所述流控队列关联网络设备的最大传输单元。
30、在上述可选的实施方式中,当所述数据报文的协议版本为ipv6时,可通过mss=mtu-60这一计算式计算mss,而当数据报文的协议版本为ipv4时,可通过mss=mtu-40计算得到mss;
31、第二方面,本发明提供一种流量控制装置,所述装置包括:
32、接收模块,用于接收接收端发送的数据报文;
33、匹配模块,用于匹配所述数据报文关联的流控队列;
34、解析模块,用于解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小;
35、获取模块,用于基于所述数据报文获取流控队列的剩余存储容量;
36、比较模块,用于将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,以确定最小数值;
37、更新模块,用于基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值;
38、发送模块,用于将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率。
39、本技术第二方面的装置通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。
40、第三方面,本发明提供一种电子设备,包括:
41、处理器;以及
42、存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如前述实施方式任一项所述的流量控制方法。
43、本技术第三方面的电子设备通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。
44、第四方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的流量控制方法。
45、本技术第四方面的存储介质通过执行流量控制方法,能够接收接收端发送的数据报文,进而能够匹配所述数据报文关联的流控队列,进而能够解析所述数据报文得到窗口字段的数值,其中,所述窗口字段的数值表征所述接收端的接收窗口的大小,进而能够基于所述数据报文获取流控队列的剩余存储容量,进而通过将所述流控队列的剩余存储容量与所述窗口字段的数值进行比较,能够确定最小数值,进而能够基于所述最小数值更新所述数据报文,其中,在修改后的所述数据报文中,所述窗口字段的数值为所述最小数值,进而能够将修改后的所述数据报文发送至发送端,以使所述发送端基于所述最小数值调整发送速率,最终通过基于流控队列剩余大小动态调整接收窗口大小的方式,实时告知发送端网络传输能力,使发送端能够及时调整发送速率,进而实现发送端根据网络情况进行流量控制,从而解决发送在不能及时感知报文传输路径中的瓶颈,而向网络中发送大量报文所导致的网络拥堵、网络资源浪费这类问题。