CN112422443A - 一种拥塞算法的自适应控制方法、存储介质、设备及系统 - Google Patents
一种拥塞算法的自适应控制方法、存储介质、设备及系统 Download PDFInfo
- Publication number
- CN112422443A CN112422443A CN202011161198.3A CN202011161198A CN112422443A CN 112422443 A CN112422443 A CN 112422443A CN 202011161198 A CN202011161198 A CN 202011161198A CN 112422443 A CN112422443 A CN 112422443A
- Authority
- CN
- China
- Prior art keywords
- congestion
- congestion algorithm
- algorithm
- data
- data stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种拥塞算法的自适应控制方法、存储介质、设备及系统,方法包括步骤:利用XGBoost算法对各种拥塞算法的效果构建出对应的效果预测模型,并将所述效果预测模型进行组合,构成拥塞算法预测模型;对网络通信中的数据流进行监听并获取所述数据流的统计信息,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值;根据所述效果值计算每个拥塞算法被选中的概率,并根据所述概率随机选出与所述数据流适配的拥塞算法,并将数据流与拥塞算法的对应关系存储至bpf_map中。本发明可根据数据流的行为特征自动切换合适的拥塞算法,从而提高网络的整体吞吐并有效降低时延。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种拥塞算法的自适应控制方法、存储介质、设备及系统。
背景技术
拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。随着技术的发展,新的拥塞算法层出不穷,但是它们适用的场景以及针对的流的特征往往有限,无法满足现网中各类流的需求。以copa算法为例,该算法针对的是那些rtt(往返时延)短且变化率不大的数据流,这些数据流很少出现丢包,且延迟的变化主要是因为短暂的排队而导致,这样,copa就可以通过时延的变化来判断数据流的排队情况,并以此为依据调整发包的速率。但是,如果一条数据流本身所处的网络环境非常不稳定,即时不发生拥塞,时延和吞吐都容易出现剧烈的变化,那么如果再使用copa算法来控制数据包的行为,将无法获得最佳的结果。
虽然目前很多学者提出,使用及其学习的方法进行数据流行为的预测,但是其往往存在模型可解释性差、cpu消耗高以及处理时间长等问题;并且通过研究发现,在指定情况下通过机器学习进行控制的拥塞算法,很难获得与适配该环境的传统拥塞控制算法一样的效果。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种拥塞算法的自适应控制方法、存储介质、设备及系统,旨在解决传统拥塞算法适配性不强以及机器学习拥塞控制算法控制效果不佳,导致网络的整体传输效率较差的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种拥塞算法的自适应控制方法,其中,包括步骤:
利用XGBoost算法对各种拥塞算法的效果构建出对应的效果预测模型,并将所述效果预测模型进行组合,构成拥塞算法预测模型;
对网络通信中的数据流进行监听并获取所述数据流的统计信息,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值;
根据所述效果值计算每个拥塞算法被选中的概率,并根据所述概率随机选出与所述数据流适配的拥塞算法,并将数据流与拥塞算法的对应关系存储至bpf_map中。
所述拥塞算法的自适应控制方法,其中,所述拥塞算法包括copa拥塞算法、cubic拥塞算法、bbr拥塞算法、C2TCP拥塞算法、DCTCP拥塞算法以及Westwood拥塞算法。
所述拥塞算法的自适应控制方法,其中,所述数据流的统计信息包括数据流在传输阶段出现的最小在途节数、最大在途节数、在途字节数方差、最小rtt、最大rtt、rtt方差、到达时间、rtt变化方差、到达时间间隙方差以及发送速率。
所述拥塞算法的自适应控制方法,其中,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值的步骤包括:
采用公式量化地计算出每个拥塞算法的效果值,其中,pacing_rateavg表示间隔时间内传输速率的平均值,s_delayavg表示间隔时间内s_rtt的平均值,loss表示间隔时间内丢包个数,ε表示丢包敏感度参数。Ratemax表示数据流生命周期中最大的发送速率,delaymin表示数据流生命周期中最短的传输延迟。
所述拥塞算法的自适应控制方法,其中,还包括步骤:
在所述数据流的拥塞算法预测效果值基础上,通过加权同一IP的历史算法预测效果值获得IP级别流与拥塞算法的对应关系并存储至bpf_map中。
所述拥塞算法的自适应控制方法,其中,还包括步骤:
在对网络通信中的数据流进行监听过程中,利用tcp_bpf技术获取所述数据流中数据包的特征字段;
当监听到所述数据流处于连接创建阶段时,则根据所述特征字段从所述bpf_map中寻找IP对应的拥塞算法;
当监听到所述数据流处于数据传输阶段时,则根据所述特征字段从所述bpf_map中寻找数据流对应的拥塞算法;
当监听到所述数据流处于数据结束阶段,则删除所述bpf_map中所述数据流与拥塞算法的对应关系。
所述拥塞算法的自适应控制方法,其中,所述数据包的特征字段包括目的IP,目的端口,平滑后的rtt,rtt平均偏差,数据流目前最小rtt,在途数据,丢包个数,重传次数,数据流目前所在阶段以及传送速率。
一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明所述拥塞算法的自适应控制方法中的步骤。
一种拥塞算法的自适应控制设备,其中,包括处理器,适于实现各指令;以及存储介质,适于存储多条指令,所述指令适于由处理器加载并执行本发明任意一种拥塞算法的自适应控制方法中的步骤。
一种拥塞算法的自适应控制系统,其中,包括:
数据包探测模块,用于对网络通信中的数据流进行监听并获取所述数据流的统计信息;
拥塞算法预测模块,用于以统计信息以及丢包敏感度参数作为输入参数计算每个拥塞算法的效果值并根据所述效果值计算每个拥塞算法被选中的概率,最后根据所述概率随机选出与所述数据流适配的拥塞算法;
拥塞算法控制模块,利用tcp_bpf技术,根据所述拥塞算法预测模块的预测结果,完成数据流的拥塞算法自适应切换。
有益效果:与现有技术相比,本发明提出了将传统拥塞算法与机器学习算法结合进行拥塞控制的方案,可以根据数据流的行为特征自动切换合适的拥塞算法,从而提高网络的整体吞吐并有效降低时延;本发明利用机器学习算法对数据流的行为以及变化趋势进行分析,根据数据流的特征切换最适合的拥塞算法,本发明会针对数据流以及IP进行搜集与预测,保证对短流进行有效控制。
附图说明
图1为本发明一种拥塞算法的自适应控制方法较佳实施例的流程图。
图2为本发明一种拥塞算法的自适应控制设备的原理图。
图3为本发明一种拥塞算法的自适应控制系统的整体框架图。
图4为本发明中数据探测模块的运行流程图。
图5为本发明中拥塞算法预测模型的结构示意图。
图6为本发明拥塞算法预测模型中的效果预测模型图。
图7为本发明离线训练模块中训练数据的生成流程图。
具体实施方式
本发明提供一种拥塞算法的自适应控制方法、存储介质、设备及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参阅图1,本发明提供了一种拥塞算法的自适应控制方法较佳实施例的流程图,如图所示,其包括步骤:
S10、利用XGBoost算法对各种拥塞算法的效果构建出对应的效果预测模型,并将所述效果预测模型进行组合,构成拥塞算法预测模型;
S20、对网络通信中的数据流进行监听并获取所述数据流的统计信息,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值;
S30、根据所述效果值计算每个拥塞算法被选中的概率,并根据所述概率随机选出与所述数据流适配的拥塞算法,并将数据流与拥塞算法的对应关系进行存储至bpf_map中。
本实施例为了解决传统拥塞算法适配性不强以及机器学习拥塞控制算法控制效果不佳的问题,提出了一种将传统拥塞算法与机器学习算法结合进行拥塞控制的方法,通过利用XGBoost算法对各种拥塞算法的效果构建出对应的预测模型,并将所述预测模型进行组合,构成拥塞算法预测模型,所述拥塞算法预测模型可根据数据流的行为特征自动为数据流切换合适的拥塞算法,从而提高网络的整体吞吐并有效降低时延,进而提升网络的传输效率。
在本实施例中,所述拥塞算法包括copa拥塞算法、cubic拥塞算法、bbr拥塞算法、C2TCP拥塞算法、DCTCP拥塞算法以及Westwood拥塞算法,但不限于此。
在一些具体的实施方式中,假设拥塞算法预测模型中一共有3个效果预测模型,分别为A,B,C。在获取预处理模块传入的输入参数后,依次利用这三个效果预测模型进行预测,假设拥塞算法A的预测效果为a,拥塞算法B的预测效果为b,拥塞算法C的预测效果为c;接着计算出每个拥塞算法被选中的概率为A:a/(a+b+c),B:b/(a+b+c),C:c/(a+b+c),并以此概率随机选出拥塞算法。之所以不直接选择效果最佳的拥塞算法,是为了引入随机性,防止算法在非最佳的拥塞算法上收敛。至此,拥塞算法预测模型就完成了一次数据流级别的拥塞算法选择。
在一些实施方式中,所述数据流的统计信息包括byte_in_flightmin,byte_in_flightmax,var(byte_in_flight),var(sub(byte_in_flight)),rttmin,rttmax,var(rtt),arrive_time,var(sub(rtt)),var(sub(arrive_time)),pacing_rate,分别表示数据流在传输阶段出现的最小在途节数、最大在途节数、在途字节数方差、最小rtt、最大rtt、rtt方差、到达时间、rtt变化方差、到达时间间隙方差以及发送速率。
在一些实施方式中,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值的步骤包括:
采用公式量化地计算出每个拥塞算法的效果值,其中,pacing_rateavg表示间隔时间内传输速率的平均值,s_delayavg表示间隔时间内s_rtt的平均值,loss表示间隔时间内丢包个数,ε表示丢包敏感度参数。Ratemax表示数据流生命周期中最大的发送速率,delaymin表示数据流生命周期中最短的传输延迟。在本实施例中,由于小数据流对于延迟的敏感度较高,而大数据流则更看中吞吐而非延迟,所以为了优化reward函数,在数据流的生命周期中,本实施例会根据数据流的大小调整ε的大小,在数据流刚创建时,ε会设置的大一些,让小数据流选择丢包少,延迟较短的拥塞算法。随着时间的推移,当系统获取到的数据包超过阈值N的时候,则会认为此流是一条大数据流,将会调小ε的值,以此选择有助于增加吞吐量的拥塞算法。
在一些实施方式中,由于在真实的网络环境中短流(小数据流)的数会远远大于长流(大数据流)的数量。很多流在没有经历完一个预测周期就已经结束。本实施例认为每个IP所对应的设备,在短时间内数据流的特征有较强的相关性,所以在本实施例中除了对流级别进行拥塞控制,也会根据同一个IP中历史流的表现,进行IP级别的拥塞算法控制。这样短流就能在初始化阶段就选择处适合自己的拥塞控制算法,提高整体网络的传输效率。具体来讲,在所述数据流的拥塞算法预测效果值基础上,通过加权同一IP的历史算法预测效果值获得IP级别流与拥塞算法的对应关系并存储至bpf_map中。
假设A,B,C为三种备选的拥塞算法,初始到达的拥塞算法的权限系数为1,往后每到达一条新的流,历史流的结果权限系数将乘以损失系数(范围在0~1之间),以此更好响应拥塞算法的变化趋势。在本实施例中损失系数为0.9,其具体流程如下公式所示:
在一些实施方式中,所述拥塞算法的自适应控制方法还包括步骤:
在对网络通信中的数据流进行监听过程中,利用tcp_bpf技术获取所述数据流中数据包的特征字段;当监听到所述数据流处于连接创建阶段时,则根据所述特征字段从所述bpf_map中寻找IP对应的拥塞算法;当监听到所述数据流处于数据传输阶段时,则根据所述特征字段从所述bpf_map中寻找数据流对应的拥塞算法;当监听到所述数据流处于数据结束阶段,则删除所述bpf_map中所述数据流与拥塞算法的对应关系。本实施例中,所述数据包的特征字段包括目的IP,目的端口,平滑后的rtt,rtt平均偏差,数据流目前最小rtt,在途数据,丢包个数,重传次数,数据流目前所在阶段以及传送速率。
在一些实施方式中,还提供一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明所述拥塞算法的自适应控制方法中的步骤。
在一些实施方式中,还提供一种拥塞算法的自适应控制设备,如图2所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
在一些实施方式中,还提供一种拥塞算法的自适应控制系统,其中,包括:
数据包探测模块,用于对网络通信中的数据流进行监听并获取所述数据流的统计信息;
拥塞算法预测模块,用于以统计信息以及丢包敏感度参数作为输入参数计算每个拥塞算法的效果值并根据所述效果值计算每个拥塞算法被选中的概率,最后根据所述概率随机选出与所述数据流适配的拥塞算法;
拥塞算法控制模块,利用tcp_bpf技术,根据所述拥塞算法预测模块的预测结果,完成数据流的拥塞算法自适应切换。
在一些具体的实施方式中,所述拥塞算法的自适应控制系统整体框架如图3所示,其包括数据包探测模块、拥塞算法预测模块以及拥塞算法控制模块,为了使用户态应用与内核态应用可以方便地进行消息的传输,本实施例采用eBPF技术。eBPF技术通过bpf_map作为用户态与内核态的交互媒介,如图3所示,用户态(内核态)应用将数据传递到双方约定好的bpf_map中进行存储,内核态(用户态)应用通过key值在bpf_map中进行搜索,以获得对应的信息。
在本实施中,所述数据包探测模块包括数据流监听单元、数据包分析单元以及信息传递单元,所述数据包探测模块会在数据流的各个生命阶段进行监控并调用对应的处理函数。具体来讲,所述数据流监听单元主要监听的是数据流初始化、传输以及关闭这三个阶段。利用tcp_bpf技术分别在内核的tcp_init_sock、tcp_recvmsg、tcp_sendmsg以及tcp_shutdown等函数中增加tcp_bpf_call函数。这样当数据流经过这些函数后,内核会自动将数据包信息以及数据包目前所处的阶段传递给数据包分析单元;当所述数据包分析单元接收到数据包后,会提取所述数据包的特征字段,所述特殊字段具体包括:
daddr,dport,srtt,mdev,min_rtt,packets_out,lost,total_retrans,state,pacing_rate,分别表示目的ip,目的端口,平滑后的rtt,rtt平均偏差,数据流目前最小rtt,在途数据,丢包个数,重传次数,数据流目前所在阶段,传送速率。
在本实施例中,所述数据包探测模块的工作流程图如图4所示,当所述数据包探测模块分析完数据包信息之后,会根据所述数据包所处的阶段进行相应的处理:若所述数据包处于数据流连接创建阶段,则会直接将分析好的数据包信息(包括特殊字段)传递给拥塞算法控制模块,通过所述拥塞算法控制模块寻找IP所对应的拥塞算法,并设置数据流的拥塞算法,如果所述拥塞算法控制模块未找到与当前IP对应的拥塞算法,则用系统默认的拥塞算法对sock进行初始化处理;若数据包处于数据流传输阶段,则会将数据包信息复制两份,一份传递给拥塞算法控制模块,让其判断是否有对应的拥塞算法需要切换,另一份则将数据存储于bpf_map中,并触发信息传递模块从里面读取,传递到用户态,进行后续的拥塞算法预测流程;若数据包处于数据流连接结束阶段,则将数据包传递到拥塞算法控制模块,删除对应数据流与拥塞算法的对应关系,避免后续因端口重用而导致算法选择错误。
在一些实施方式中,所述拥塞算法预测模块主要具有两个功能,一个是在线拥塞算法选择功能,即将数据流的特征数据输入到拥塞算法预测模型中,得到需要切换的拥塞算法;另一个是离线模型优化功能,通过不断搜集在线的数据流信息,并对其使用的拥塞算法效果进行评价,形成离线训练数据,并周期性地使用离线训练数据进行模型优化。
在本实施例中,所述在线拥塞算法选择功能的实现设计三个单元,分别是数据流信息存储单元、数据预处理单元以及拥塞算法预测模型。具体来讲,当信息传递单元将分析好的数据传递给留信息存储单元后,所述流信息存储单元会以流远端的IP+PORT+Time为key对数据包进行存储,同时所述流信息存储单元还会周期性地将数据流在时间窗口内的所有数据包传递给数据预处理单元;所述数据预处理单元主要是为了将数据包集合的信息转化为数据流的统计信息,以便于拥塞算法预测单元对拥塞算法进行预测,所述数据流的统计信息包括byte_in_flightmin,byte_in_flightmax,var(byte_in_flight),var(sub(byte_in_flight)),RTTmin,RTTmax,var(RTT),arrive_time,var(sub(RTT)),var(sub(arrive_time)),pacing_rate,分别表示数据流在传输阶段出现的最小在途字节数、最大在途字节数、在途字节数方差、在途字节数变化方差、最小RTT、最大RTT、RTT方差、到达时间、RTT变化方差以及到达时间间隙方差、发送速率;所述拥塞算法预测单元在收集到数据预处理单元传递过来的数据流特征后,会利用从离线训练模型优化功能中获得的拥塞算法预测模型进行拥塞算法的选择。
在本实施例中,所述拥塞算法预测模型如图5和图6所示,利用XGBoost算法对各种拥塞算法的效果构建出对应的效果预测模型,并将所述效果预测模型进行组合,构成拥塞算法预测模型,也就是说,在拥塞算法预测模型中会包含多个拥塞算法的效果预测模型(如图5所示);当所述数据预处理单元将需要预测的特征参数(输入参数)传递到所述拥塞算法预测模型后,所述拥塞算法预测模型会将特征参数传递给每个拥塞算法的效果预测模型,在获得每个拥塞算法的预测效果后,预测模型会按照每个拥塞算法效果所占的百分比,概率性地选出拥塞算法。
在本实施例中,所述每个效果预测模型的结构如图6所示,其由多个二叉树组成,每个二叉树节点带有4个属性:分裂属性、分裂点、左子树、右子树。根据二叉树每个节点所携带的分裂属性,找到输入参数中对应的值,然后与分裂点进行比较。如果小于分裂点,则将参数映射到左子树,否则将其映射到右子树中。以此类推找到对应的叶子节点的预测输出,最后预测模块将所获得的所有预测输出相加,得到拥塞算法效果预测值。
在一些具体的实施方式中,假设拥塞算法预测模型中包括3个效果预测模型,分别为A,B,C。在获取预处理模块传入的参数后,依次利用这三个效果预测模型进行预测。根据图6中展示的流程得到如下结果,拥塞算法A的预测效果为a,拥塞算法B的预测效果为b,拥塞算法C的预测效果为c。预测模块计算出每个拥塞算法被选中的概率为A:a/(a+b+c),B:b/(a+b+c),C:c/(a+b+c),并以此概率随机选出拥塞算法。之所以不直接选择效果最佳的拥塞算法,是为了引入随机性,防止算法在非最佳的拥塞算法上收敛。
至此,拥塞算法预测模型就完成了一次数据流级别的拥塞算法选择。但是在真实的网络环境中短流的数会远远大于长流的数量。很多数据流在没有经历完一个预测周期就已经结束。本实施例认为每个IP所对应的设备,在短时间内流的特征有较强的相关性。所以在本实施例中除了对流级别进行拥塞控制,也会根据同一个IP中历史流的表现,进行IP级别的拥塞算法控制。这样短流就能在初始化阶段就选择处适合自己的拥塞控制算法,提高整体网络的传输效率。
IP与拥塞算法的对应关系,是在流级别的拥塞算法预测结果基础上,是通过加权同一ip的历史算法预测结果获得的。假设A,B,C为三种备选的拥塞算法,初始到达的拥塞算法的权限系数为1,往后每到达一条新的流,历史流的结果权限系数将乘以损失系数(范围在0~1之间),以此更好响应拥塞算法的变化趋势。在本实施例中损失系数为0.9,其具体流程如下公式所示:
最后比较拥塞算法的权限系数,选择拥有最大权限系数的拥塞算法为此IP的拥塞算法。每当拥塞算法预测模块完成一次流级别的算法预测后,都会更新对应的IP与拥塞算法的对应关系,并将其传递给拥塞算法调整单元,成为后续拥塞算法切换的依据。
在一些实施方式中,所述离线模型优化功能主要是对拥塞算法预测模型选择的拥塞算法效果进行量化评价,并与数据流特征进行组合得到训练数据,进而不断优化拥塞算法预测模型,此功能主要由reward计算模块以及离线训练模块完成。
具体来讲,reward计算模块通过周期性地获取该时间断内数据流信息,利用公式量化地计算出拥塞算法的效果值,并以流远端的IP+PORT+Time为key对拥塞算法的效果值进行存储,其中,pacing_rateavg表示间隔时间内传输速率的平均值,s_delayavg表示间隔时间内s_rtt的平均值,loss表示间隔时间内丢包个数,ε表示丢包敏感度参数,数值越大,则表示对丢包约敏感。Ratemax表示数据流生命周期中最大的发送速率,delaymin表示数据流生命周期中最短的传输延迟。在本实施例中,由于小数据流对于延迟的敏感度较高,而大数据流则更看中吞吐而非延迟,所以为了优化reward函数,在数据流的生命周期中,本实施例会根据数据流的大小调整ε的大小,在数据流刚创建时,ε会设置的大一些,让小数据流选择丢包少,延迟较短的拥塞算法。随着时间的推移,当系统获取到的数据包超过阈值N的时候,则会认为此流是一条大数据流,将会调小ε的值,以此选择有助于增加吞吐量的拥塞算法。
在一些实施方式中,所述离线训练模块中主要分为两个函数,一个是训练数据生成函数,另一个是模型训练函数。在训练数据生成函数中训练的数据以拥塞算法名称+IP+PORT+time+ε为key(其中IP为数据流远端IP,PORT为数据流远端端口,time表示时间段编号),存储在map数据结构中,并周期性地将数据落盘。训练数据的产生流程如图7所示,当拥塞算法预测模块确定所使用的拥塞算法后,将数据流的统计信息(byte_in_flightmin,byte_in_flightmax,ar(byte_in_flight),var(sub(byte_in_flight)),RTTmin,RTTmax,var(RTT),arrive_time,var(sub(RTT)),var(sub(arrive_time)),pacing_rate)、确定的拥塞算法以及时间段编号T传递给离线训练模块的数据生成函数。数据生成函数会以拥塞算法+IP+PORT+时间段T+ε为key,将统计数据进行保存。等到下一个时间周期到达后,数据生成函数以IP+PORT+(T+1)为key到reward计算模块中找到对应时间段内拥塞算法的效果。将获得的效果、ε以及之前获取的统计信息进行组合,得到最后的训练数据(格式为byte_in_flightmin,byte_in_flightmax,var(byte_in_flight),var(sub(byte_in_flight)),RTTmin,RTTmax,var(RTT),arrive_time,var(sub(RTT)),var(sub(arrive_time)),pacing_rate,ε,效果)。并以拥塞算法+IP+PORT+T+ε为key,写入map中。同时数据生成函数会周期性地将线上获得训练数据根据所使用的拥塞算法写入不同的文件中,并与该拥塞算法的历史训练数据进行组合,形成最终的离线训练数据。
在持续获得离线训练数据后,模型训练函数通过遍历不同的拥塞算法训练数据,训练出不同的拥塞算法效果预测模型。目前在本专利的预测模型集中主要包含copa效果预测模型,cubic效果预测模型,bbr效果预测模型,C2TCP效果预测模型,DCTCP效果预测模型,Westwood效果预测模型等。每个预测模型都是采用XGBoost算法进行回归模型的训练。拥塞算法效果预测模型的输入参数为数据预处理模块中计算出的统计信息以及当前设置的丢包敏感度参数ε(即byte_in_flightmin,byte_in_flightmax,var(byte_in_flight),var(sub(byte_in_flight)),RTTmin,RTTmax,var(RTT),arrive_time,var(sub(RTT)),var(sub(arrive_time)),pacing_rate,ε),输出数据为该流使用该拥塞算法会获得的效果。效果值越大,说明拥塞算法越适合。
从单个效果预测模型来看,每个效果预测模型都是由多个决策树组成的。在算法中,每个弱分类器是以二叉树的形式表现的,如下公式所示:其中,q代表每棵树的结构,T表示对应树的叶子节点个数,f(x)表示对应树的结构q和叶子节点权重w;当预测的结果误差超过一定范围之后,XGBoost算法会产生下一个决策树去拟合误差函数对预测值的残差。
在XGBoost算法中定义的目标函数如下公式所示:其中表示的是损失误差,Ω(ft)表示的是正则化项,定义了整棵树的复杂度。在本实施例中采用得是平方损失函数进行模型评估。根据确定的目标函数,通过带权重的分位数略图算法,找到近似最佳分裂点进行分裂,并最终获得相应的二叉树模型。通过离线训练模块的不断训练,最终为各个拥塞算法训练出了效果预测模型;并将各个效果预测模型组合成拥塞算法预测模型,传递给拥塞算法预测模块。
在一些实施方式中,所述拥塞算法控制模块由两个单元组成,分别为处于用户态的拥塞算法调整单元以及处于内核态的拥塞算法控制单元。在所述拥塞算法调整单元中,一共设置有两个map,第一个map用于存储数据流与拥塞算法的对应关系,第二个map用于存储IP与拥塞算法的对应关系,其中第一个map的优先级高于第二个map,当拥塞算法调整单元接收预测信息以后,会利用ebpf的bpf_map机制,将用户态的流与拥塞算法的对应关系,传递给内核态。而在拥塞算法控制单元中,利用tcp_bpf技术在数据包收发函数中(tcp_recvmsg、tcp_sendmsg)设置的监听点,以此来捕获经过该函数的数据包信息。此后,每次有新的数据包进入内核态之后,拥塞算法控制单元根据bpf_map优先级顺序,找到与数据流特征匹配的拥塞算法。若数据流处于数据传输阶段,则利用tcp_bpf提供的bpf_setsockopt函数修改数据流的拥塞算法,若数据流处于初始化阶段,则利用tcp_assign_congestion_control函数进行拥塞算法初始化。
综上所述,本发明提供了一种具有自适应、灵活的拥塞算法切换方法及系统,本发明以拥塞算法为维度,通过XGBoot算法,对数据流使用该算法后的效果进行预测,以此来选择合适的拥塞算法;本发明提供的拥塞算法控制方法及系统的扩展性强,对于新的拥塞算法,只需要针对该拥塞算法,训练出一个XGBoost预测模型,并将其加入到预测模型集中即可实现扩展;本发明为每个数据流提供针对性的拥塞控制方案,细粒度、针对性地优化网络传输性能;在IP及流等粒度上进行拥塞算法预测,保证长流和短流都能有效地选择拥塞算法;本发明还通过设置reward函数,量化地描述一个拥塞算法的控制效果,并能通过可变参数调节数据流对延迟与丢包的敏感度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种拥塞算法的自适应控制方法,其特征在于,包括步骤:
利用XGBoost算法对各种拥塞算法的效果构建出对应的效果预测模型,并将所述效果预测模型进行组合,构成拥塞算法预测模型;
对网络通信中的数据流进行监听并获取所述数据流的统计信息,以所述统计信息以及丢包敏感度参数作为所述拥塞算法预测模型的输入参数,得到每个拥塞算法的效果值;
根据所述效果值计算每个拥塞算法被选中的概率,并根据所述概率随机选出与所述数据流适配的拥塞算法,并将数据流与拥塞算法的对应关系存储至bpf_map中。
2.根据权利要求1所述拥塞算法的自适应控制方法,其特征在于,所述拥塞算法包括copa拥塞算法、cubic拥塞算法、bbr拥塞算法、C2TCP拥塞算法、DCTCP拥塞算法以及Westwood拥塞算法。
3.根据权利要求1所述拥塞算法的自适应控制方法,其特征在于,所述数据流的统计信息包括数据流在传输阶段出现的最小在途节数、最大在途节数、在途字节数方差、最小rtt、最大rtt、rtt方差、到达时间、rtt变化方差、到达时间间隙方差以及发送速率。
5.根据权利要求1所述拥塞算法的自适应控制方法,其特征在于,还包括步骤:
在所述数据流的拥塞算法预测效果值基础上,通过加权同一IP的历史算法预测效果值获得IP级别流与拥塞算法的对应关系并存储至bpf_map中。
6.根据权利要求5所述拥塞算法的自适应控制方法,其特征在于,还包括步骤:
在对网络通信中的数据流进行监听过程中,利用tcp_bpf技术获取所述数据流中数据包的特征字段;
当监听到所述数据流处于连接创建阶段时,则根据所述特征字段从所述bpf_map中寻找IP对应的拥塞算法;
当监听到所述数据流处于数据传输阶段时,则根据所述特征字段从所述bpf_map中寻找数据流对应的拥塞算法;
当监听到所述数据流处于数据结束阶段,则删除所述bpf_map中所述数据流与拥塞算法的对应关系。
7.根据权利要求6所述拥塞算法的自适应控制方法,其特征在于,所述数据包的特征字段包括目的IP,目的端口,平滑后的rtt,rtt平均偏差,数据流目前最小rtt,在途数据,丢包个数,重传次数,数据流目前所在阶段以及传送速率。
8.一种存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述拥塞算法的自适应控制方法中的步骤。
9.一种拥塞算法的自适应控制系统,其特征在于,包括处理器,适于实现各指令;以及存储介质,适于存储多条指令,所述指令适于由处理器加载并执行权利要求1-7任意一种拥塞算法的自适应控制方法中的步骤。
10.一种自适应拥塞算法控制系统,其特征在于,包括:
数据包探测模块,用于对网络通信中的数据流进行监听并获取所述数据流的统计信息;
拥塞算法预测模块,用于以统计信息以及丢包敏感度参数作为输入参数计算每个拥塞算法的效果值并根据所述效果值计算每个拥塞算法被选中的概率,最后根据所述概率随机选出与所述数据流适配的拥塞算法;
拥塞算法控制模块,利用tcp_bpf技术,根据所述拥塞算法预测模块的预测结果,完成数据流的拥塞算法自适应切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011161198.3A CN112422443B (zh) | 2020-10-27 | 2020-10-27 | 一种拥塞算法的自适应控制方法、存储介质、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011161198.3A CN112422443B (zh) | 2020-10-27 | 2020-10-27 | 一种拥塞算法的自适应控制方法、存储介质、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422443A true CN112422443A (zh) | 2021-02-26 |
CN112422443B CN112422443B (zh) | 2022-09-27 |
Family
ID=74841441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011161198.3A Active CN112422443B (zh) | 2020-10-27 | 2020-10-27 | 一种拥塞算法的自适应控制方法、存储介质、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422443B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300969A (zh) * | 2021-05-20 | 2021-08-24 | 清华大学深圳国际研究生院 | 基于场景变化的拥塞控制切换方法、存储介质和电子设备 |
CN114034375A (zh) * | 2021-10-26 | 2022-02-11 | 三峡大学 | 一种特高压输电线路噪声测量系统及方法 |
CN114039930A (zh) * | 2021-11-16 | 2022-02-11 | 中国联合网络通信集团有限公司 | 数据包处理方法及系统 |
CN114389959A (zh) * | 2021-12-30 | 2022-04-22 | 深圳清华大学研究院 | 网络拥塞控制方法、装置、电子设备及存储介质 |
CN115174478A (zh) * | 2022-07-27 | 2022-10-11 | 深圳星云智联科技有限公司 | 一种网络拥塞控制方法及相关装置 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
CN116232998A (zh) * | 2022-12-28 | 2023-06-06 | 鹏城实验室 | 基于深度强化学习的网络拥塞控制方法、系统及相关设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100254262A1 (en) * | 2009-04-01 | 2010-10-07 | Lockheed Martin Corporation | Tuning congestion control in IP multicast to mitigate the impact of blockage |
CN107506175A (zh) * | 2017-07-21 | 2017-12-22 | 北京中科睿芯科技有限公司 | 一种基于执行效率梯度预测的数据流图拥塞检测方法 |
CN107517481A (zh) * | 2017-09-21 | 2017-12-26 | 上海斐讯数据通信技术有限公司 | 一种基站负载均衡的管理方法及系统 |
US20190150027A1 (en) * | 2017-11-13 | 2019-05-16 | Verizon Patent And Licensing Inc. | Dynamic congestion control algorithm selection in a proxy device |
US20190182170A1 (en) * | 2017-12-08 | 2019-06-13 | Reniac, Inc. | Systems and methods for congestion control in a network |
CN110650095A (zh) * | 2018-06-26 | 2020-01-03 | 复旦大学 | 一种对拥塞控制算法的改进方法 |
CN110856214A (zh) * | 2019-10-29 | 2020-02-28 | 广东省电信规划设计院有限公司 | 一种tcp拥塞控制方法及装置 |
CN111341098A (zh) * | 2020-02-18 | 2020-06-26 | 北京中旖新能源有限公司 | 拥堵状态预测的方法及装置 |
-
2020
- 2020-10-27 CN CN202011161198.3A patent/CN112422443B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100254262A1 (en) * | 2009-04-01 | 2010-10-07 | Lockheed Martin Corporation | Tuning congestion control in IP multicast to mitigate the impact of blockage |
CN107506175A (zh) * | 2017-07-21 | 2017-12-22 | 北京中科睿芯科技有限公司 | 一种基于执行效率梯度预测的数据流图拥塞检测方法 |
CN107517481A (zh) * | 2017-09-21 | 2017-12-26 | 上海斐讯数据通信技术有限公司 | 一种基站负载均衡的管理方法及系统 |
US20190150027A1 (en) * | 2017-11-13 | 2019-05-16 | Verizon Patent And Licensing Inc. | Dynamic congestion control algorithm selection in a proxy device |
US20190182170A1 (en) * | 2017-12-08 | 2019-06-13 | Reniac, Inc. | Systems and methods for congestion control in a network |
CN110650095A (zh) * | 2018-06-26 | 2020-01-03 | 复旦大学 | 一种对拥塞控制算法的改进方法 |
CN110856214A (zh) * | 2019-10-29 | 2020-02-28 | 广东省电信规划设计院有限公司 | 一种tcp拥塞控制方法及装置 |
CN111341098A (zh) * | 2020-02-18 | 2020-06-26 | 北京中旖新能源有限公司 | 拥堵状态预测的方法及装置 |
Non-Patent Citations (3)
Title |
---|
唐懿芳等: "基于RBF预估神经网络控制器的无线传感器网络拥塞算法", 《小型微型计算机系统》 * |
曹瑞娟等: "一种基于连续统计估计的源端拥塞控制方法", 《计算机应用与软件》 * |
郑力明等: "RLAR:基于增强学习的自适应路由算法", 《计算机工程与设计》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300969A (zh) * | 2021-05-20 | 2021-08-24 | 清华大学深圳国际研究生院 | 基于场景变化的拥塞控制切换方法、存储介质和电子设备 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
CN115442306B (zh) * | 2021-06-01 | 2024-05-28 | 迈络思科技有限公司 | 基于基数的流量控制 |
CN114034375A (zh) * | 2021-10-26 | 2022-02-11 | 三峡大学 | 一种特高压输电线路噪声测量系统及方法 |
CN114034375B (zh) * | 2021-10-26 | 2024-06-11 | 三峡大学 | 一种特高压输电线路噪声测量系统及方法 |
CN114039930A (zh) * | 2021-11-16 | 2022-02-11 | 中国联合网络通信集团有限公司 | 数据包处理方法及系统 |
CN114039930B (zh) * | 2021-11-16 | 2023-12-01 | 中国联合网络通信集团有限公司 | 数据包处理方法及系统 |
CN114389959A (zh) * | 2021-12-30 | 2022-04-22 | 深圳清华大学研究院 | 网络拥塞控制方法、装置、电子设备及存储介质 |
CN114389959B (zh) * | 2021-12-30 | 2023-10-27 | 深圳清华大学研究院 | 网络拥塞控制方法、装置、电子设备及存储介质 |
CN115174478A (zh) * | 2022-07-27 | 2022-10-11 | 深圳星云智联科技有限公司 | 一种网络拥塞控制方法及相关装置 |
CN116232998A (zh) * | 2022-12-28 | 2023-06-06 | 鹏城实验室 | 基于深度强化学习的网络拥塞控制方法、系统及相关设备 |
CN116232998B (zh) * | 2022-12-28 | 2024-04-05 | 鹏城实验室 | 基于深度强化学习的网络拥塞控制方法、系统及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112422443B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422443B (zh) | 一种拥塞算法的自适应控制方法、存储介质、设备及系统 | |
Xu et al. | Experience-driven congestion control: When multi-path TCP meets deep reinforcement learning | |
CN108521375B (zh) | 一种基于SDN的网络多业务流量QoS的传输及调度方法 | |
US8279753B2 (en) | Efficient determination of fast routes when voluminous data is to be sent from a single node to many destination nodes via other intermediate nodes | |
Chen et al. | DRL-QOR: Deep reinforcement learning-based QoS/QoE-aware adaptive online orchestration in NFV-enabled networks | |
US20140222730A1 (en) | Distributed architecture for machine learning based computation using a decision control point | |
Liu et al. | DRL-OR: Deep reinforcement learning-based online routing for multi-type service requirements | |
CN112787951B (zh) | 拥塞控制方法、装置、设备和计算机可读存储介质 | |
CN112887217B (zh) | 控制数据包发送方法、模型训练方法、装置及系统 | |
CN112532530B (zh) | 一种拥塞通知信息调整的方法及设备 | |
CN108696453B (zh) | 轻量级的电力通信网sdn业务流感知方法及系统 | |
KR102389104B1 (ko) | Tcp 혼잡 윈도우를 최적화하는 통신 장치 및 방법 | |
US9626628B2 (en) | Point-to-multipoint communication infrastructure for expert-based knowledge feed-back using learning machines | |
Wang et al. | SEE: Scheduling early exit for mobile DNN inference during service outage | |
CN108880909B (zh) | 一种基于强化学习的网络节能方法及装置 | |
JP7451689B2 (ja) | ネットワーク輻輳処理方法、モデル更新方法、および関連装置 | |
Xu et al. | An actor-critic-based transfer learning framework for experience-driven networking | |
Mai et al. | In-network intelligence control: Toward a self-driving networking architecture | |
Liao et al. | Intelligently modeling, detecting, and scheduling elephant flows in software defined energy cloud: A survey | |
CN112910789A (zh) | 拥塞控制方法以及相关设备 | |
Zhang et al. | DSOQR: Deep Reinforcement Learning for Online QoS Routing in SDN‐Based Networks | |
CN111901237B (zh) | 源路由选路方法及系统、相关设备及计算机可读存储介质 | |
Wassing et al. | A machine learning approach for service function chain embedding in cloud datacenter networks | |
Martins et al. | Policy distillation for real-time inference in fronthaul congestion control | |
Sneha et al. | Prediction of network congestion at router using machine learning technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |