CN118118425A - 面向可编程交换机的动态网络负载均衡方法 - Google Patents
面向可编程交换机的动态网络负载均衡方法 Download PDFInfo
- Publication number
- CN118118425A CN118118425A CN202410112352.XA CN202410112352A CN118118425A CN 118118425 A CN118118425 A CN 118118425A CN 202410112352 A CN202410112352 A CN 202410112352A CN 118118425 A CN118118425 A CN 118118425A
- Authority
- CN
- China
- Prior art keywords
- switch
- probe
- programmable
- network
- programmable switch
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000000523 sample Substances 0.000 claims abstract description 197
- 238000005259 measurement Methods 0.000 claims abstract description 45
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000002787 reinforcement Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 5
- 238000013479 data entry Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 26
- 230000000694 effects Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000012792 core layer Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 241001077262 Conga Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
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
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开的面向可编程交换机的动态网络负载均衡方法,具体包括以下步骤:步骤1,每个ToR交换机生成主动测量探针,生成的探针报文随后被发送至所有直接与该ToR交换机相连的邻居交换机,邻居交换机判断探针报文接收情况;步骤2,可编程交换机利用端口信息和主动测量探针携带的内容来维护一个网络状态表,同时,可编程交换机就端口信息对探针进行更新;步骤3,每个可编程交换机都将自己的网络状态表作为输入,独立地通过PPO算法实例计算出不同网络流转发的最优概率,改变数据中心的网络分流配比,使整个可编程数据中心达到稳定的负载均衡状态。本发明能够实现基于当前网络状态的动态转发网络流的负载均衡。
Description
技术领域
本发明属于网络通信技术领域,涉及一种面向可编程交换机的动态网络负载均衡方法。
背景技术
大型数据中心网络通常采用多层Fat-Tree拓扑设计。Fat-Tree拓扑结构分为两个主要部分:Leaf层和Spine层。Leaf层位于最底层,主要包含接入层交换机(ToRSwitches)。Spine层作为核心层,负责连接各个Leaf层交换机,为数据中心内部的数据传输提供高速通道。然而,在如此庞大的数据中心拓扑中实现负载均衡会带来可扩展性挑战。在基数为K的Fat-Tree网络拓扑中,若源ToR交换机需追踪到其他ToR交换机的路径的链路利用率,则源ToRs需要追踪K要条路径。若Leaf层有N个ToR交换机,则每个交换机需维护N*K换个流表条目以追踪所有路径信息。例如,CONGA负载均衡算法维护了大约48K位的内存(512个ToRs和16个上行链路)来存储路径利用矩阵。因此当前多种负载均衡算法面临巨大的信息收集开销问题。
当前分布式探针测量系统,通过主动探针测量方式大幅减小了条目追踪所有ToR之间的路径利用率,但由于其基于链路利用率的决策机制,可能无法充分利用网络中所有可用的多样路径,从而影响负载均衡效果。
发明内容
本发明的目的是提供一种面向可编程交换机的动态网络负载均衡方法,解决了现有技术中由于其基于链路利用率的决策机制,无法充分利用网络中所有可用的多样路径,从而影响负载均衡效果的技术问题。
本发明所采用的技术方案是,面向可编程交换机的动态网络负载均衡方法,具体包括以下步骤:
步骤1,每个ToR交换机均按照预设的时间间隔生成主动测量探针,生成的主动测量探针报文随后被发送至所有直接与该ToR交换机相连的邻居交换机,邻居交换机判断探针报文接收情况;
步骤2,在数据中心中,可编程交换机利用端口信息和步骤1中的主动测量探针携带的内容来维护一个网络状态表,同时,可编程交换机就端口信息对主动测量探针进行更新;
步骤3,每个可编程交换机都将自己的网络状态表作为输入,独立地通过PPO算法实例计算出不同网络流转发的最优概率,改变数据中心的网络分流配比,使整个可编程数据中心达到稳定的负载均衡状态。
本发明的特点还在于,
步骤1中的主动测量探针使用IP协议中的Protocol和Option字段分别来标识和存储探针相关信息,可编程交换机在接收到报文后,通过解析Protocol字段鉴别并区分转发的数据包和探针的数据包;
Protocol字段用于标识探针报文;Option字段用于存储探针的详细信息;Option字段包括Src_Tor字段、Type字段、Step字段、Link_Util字段和Queue_Delay字段;
通过Src_Tor字段,接收设备准确识别出该报文的源交换机,并判断是否需要终止组播该探针;
在数据转发过程中,每个可编程交换机节点均读取并解析Type字段,用以鉴别并区分转发的数据包和探针的数据包;
Step字段在创建探针时还未经过任何交换机初始值为0,此后每当探针经过一个可编程交换机,Step字段自增,Step增加操作由可编程交换机完成;
Link_Util字段用于存储从初始发送可编程交换机节点到当前接收可编程交换机节点路径中所有可编程交换机端口的所有链路的最大利用率,在初始阶段,Link_Util字段的值被置为0,随着探针报文在网络中的传播,每当探针报文经过一个可编程交换机,都会触发一个特定的操作:该交换机获取其经过端口的Link_Util值,与探针报文中的Link_Util字段值进行比较,若当前可编程交换机端口的Link_Util值更高,那么更新探针报文和该可编程交换机网络状态表中的Link_Util字段,使其反映出当前最大的链路利用率;
Queue_Delay字段存储从初始发送可编程交换机节点到当前可编程交换机接收节点路径中所有可编程交换机端口的最大队列延迟大小,在初始阶段,Queue_Delay字段的值被设为0,随着探针报文在网络中的传输,每当探针经过一个链路,系统获取当前可编程交换机端口的队列延迟值,并与探针报文中的Queue_Delay字段值进行对比,如果发现当前交换机的队列延迟值大于探针中记录的值,Queue_Delay字段的值被更新为该更高的队列延迟值,Queue_Delay字段在探针报文的传输过程中始终保持当前路径中的最大队列延迟大小的信息。
步骤1具体为:
ToR交换机定期生成主动测量探针报文并广播探针报文至所有与其直连的可编程交换机,在每个可编程交换机接收到探测报文后,首先检查报文中的Src_Tor字段并与其接收该探针的可编程交换机的ID进行对比;
交换机识别并记录端口接收对应Src_Tor字段的探测报文情况,若报文尚未到达其目标,接收交换机进一步将报文转发给部分邻居可编程交换机,当探针报文到达除Src_Tor字段记录的ToR交换机之外的任何其他ToR交换机时,接收该探针报文的交换机将停止对此报文的进一步转发。
步骤2中更新网络状态表具体为:可编程交换机接收到探针报文时,该交换机提取报文中的最大路径利用率和最大队列时延字段,提取到的字段值与交换机计算并存储在寄存器中的相应值进行比较,交换机根据结果更新网络状态表中对应的数据条目。
可编程交换机端口的利用率的估计方式具体包括以下步骤:
步骤2.1,Link_Util字段基于当前可编程交换机端口的端口利用率的值,可编程交换机的计数器记录周期(T)内从该端口传出的数据包的总大小(D);
步骤2.2,从步骤2.1的配置信息中,获取有关于该端口最大传输速率的常数(S),使用公式U=D/t*S计算端口传出数据包速率(U)。
步骤2中更新主动测量探针具体为:
可编程交换机根据Src_Tor字段判断是否有多个端口接到了相同ToR交换机节点发出的探针,若只有一个端口接收到了某个ToR交换机发送的测量探针,则根据接收探针的端口信息和探针信息更新探针中的Link_Util和Queue_Delay字段;
若可编程交换机在多个端口接收到了ToR交换机的信息,则该可编程交换机节点将多个端口信息和接收到的所有探针信息进行比较,且根据式(1)更新探针内容、更新后继续进行组播;
其中,式(1)为:W=α*Path_Util+β*Queue_Delay,
式(1)中,α和β为常数,Path_Util和Queue_Delay为可编程交换机网络状态表维护的字段。
步骤3具体为:
使用PPO算法计算数据中心各个可编程交换机上的不同数据流的链路分流配比:
可编程交换机节点在本地建立一个基于PPO的深度强化学习模型,模型分别从维护的网络状态表中获取其路径最大利用率和最大队列延迟信息;
PPO算法迭代中,算法首先根据当前的网络状态,利用深度强化学习模型计算出网络中所有预期流量分流比例,交换机根据这一新的分流策略进行流量调度,经过预设时间段T后,交换机收集新的网络状态信息,并将这些信息作为奖励函数的输入进行计算,更新PPO算法的网络模型参数,以最大化模型参数Reward;
在多次迭代和更新后,当模型训练完毕后,其中算法根据当前网络状态动态地决定不同网络流通过哪个端口转发,得到最优的每个端口的流量分流配比。
改变数据中心的网络分流配比具体以流表的形式输出,可编程交换机基于流表转发,调整不同链路的分流比例,均衡和优化数据中心网络流量。
本发明的有益效果是:
与现有负载均衡算法相比,本发明面向可编程交换机的动态网络负载均衡方法结合PPO算法和可编程交换机,具有更高的灵活性和定制化能力,同时以最小的通信开销获取并广播准确的链路信息。在处理网络拥塞时,本发明不仅考虑了链路的利用率,还考虑了端口的队列延迟,从而实现了更精确和有效的负载均衡。解决了现有技术中由于其基于链路利用率的决策机制,无法充分利用网络中所有可用的多样路径,从而影响负载均衡效果的技术问题。
附图说明
图1是本发明面向可编程交换机的动态网络负载均衡方法的流程示意图;
图2是本发明面向可编程交换机的动态网络负载均衡方法中可编程交换机的转发逻辑示意图;
图3是本发明面向可编程交换机的动态网络负载均衡方法中测量探针的结构示意图;
图4是本发明面向可编程交换机的动态网络负载均衡方法中测量探针在数据中心前两跳的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步解释说明。
实施例1
如图1所示,本发明提供了一种面向可编程交换机的动态网络负载均衡方法,具体包括以下步骤:
步骤1,每个ToR交换机均按照预设的时间间隔生成主动测量探针,生成的主动测量探针报文随后被发送至所有直接与该ToR交换机相连的邻居交换机,邻居交换机判断探针报文接收情况;
主动测量探针适用于由可编程交换机组成的数据中心,这种测量探针使用较小的开销收集交换机到其所有可达的顶层交换机之间的网络链路信息,测量探针的目标是在有限的开销内,将链路信息传达给网络拓扑中的所有节点。其中,ToR(TopofRack)交换机特指直接与主机相连的交换机。
探针由顶层交换机设置好初值后周期性地发送。一旦探针构造完毕,发送探针的源交换机会向其所有端口广播这些探针;
本发明可编程交换机采用P4可编程交换机,P4可编程交换机是一种使用P4语言进行编程的交换机。其主要优势在于其能够灵活地定义和执行网络中数据包的处理方式。此种灵活性使得网络设计师和运营商能够根据实际需求进行深度定制网络行为。P4语言是一种专门用于描述网络设备如何处理数据包的高级编程语言。通过使用P4,开发者可以精确地控制设备如何处理接收到的数据包,包括如何解析数据包,以及在解析后如何处理和转发数据包。P4可编程交换机允许网络设计者自定义网络协议,而不仅仅局限于现有的协议,如IPv4、IPv6、TCP、UDP等。这意味着网络设计者可以根据自己的需求设计新的协议,或者针对现有协议做出修改。
如图4所示,本实施例中的数据中心网络拓扑结构包含了不同层级的可编程交换机。
ToR层:包含4个可编程交换机。在数据中心的网络设计中,每个机架顶部通常会有一个ToR交换机,用于连接机架内的所有服务器。这些交换机通常负责处理机架内的网络流量,并将流量转发到上一层的网络。
Leaf层:包含4个可编程交换机。在数据中心网络的层次结构中,Leaf层交换机通常直接与ToR层交换机相连,负责处理跨机架的网络流量。
Core层:包含2个可编程交换机。在数据中心网络中,Core层通常是网络的最顶层,负责处理跨多个Leaf交换机的网络流量。
如图3所示,每个测量探针都包含多个字段。其中探针使用IP协议中的Protocol和Option字段来标识和存储探针相关信息。在Option保存的字段包含以下内容:Src_Tor字段占用48位,用于记录探针的源ToR交换机;Type字段占用16位,用于标识数据包的类型;Step字段占用16位,其在创建探针时的初始值为0,用于记录探针经过的交换机数量或其他相关的网络路径信息,Link_Util字段占用16位,该字段用于存储从初始发送可编程交换机节点到当前接收可编程交换机节点路径中所有可编程交换机端口的所有链路的最大利用率;Queue_Delay字段占用16位,其在初始阶段的值被设为0,用于测量或记录交换机端口的队列时延。
除了用IP协议中的Protocol用来区别转发数据包和探针数据包,探针包含的Type字段用于标识探针类型,可用于后续的探针功能的拓展。
在数据转发过程中,每个可编程交换机节点都会读取并解析探针的Step字段。这个字段在探针创建时,还未经过任何交换机,其初始值为0。然后,每当探针经过一个可编程交换机,Step字段的值就会自增1。这个逻辑由可编程交换机通过P4代码实现。
在图4所示的数据中心网络拓扑结构中,所有的可编程交换机都使用P4代码来实现了常见的二层和三层交换机的转发逻辑。
在二层交换机的转发逻辑中,根据数据包的MAC地址进行转发。在接收数据包时,二层交换机会学习源MAC地址和对应的入口接口,并将这些信息存储在MAC地址表中。在需要转发数据包时,二层交换机会查看数据包的目标MAC地址,并在MAC地址表中查找对应的出口接口,然后将数据包转发出去。如果在MAC地址表中找不到目标MAC地址,二层交换机会将数据包泛洪到所有的接口。
在三层交换机的转发逻辑中,数据包的转发是基于IP地址进行的。三层交换机在接收到数据包时,会查看数据包的目标IP地址,然后在路由表中查找最佳的下一跳地址,并将数据包转发到对应的接口。三层交换机通常用于实现不同网络之间的通信。
P4交换机的可编程性赋予了它更广泛的应用可能性。除了实现标准的转发逻辑外,P4交换机还能够解析特定的探针数据包,并将探针中的部分字段信息存储在交换机的寄存器中。
在图3的测量探针结构中,Link_Util和Queue_Delay字段表示特定的网络性能参数,这些字段的值由可编程交换机根据其自身的状态和探针携带的内容进行更新。
步骤2,在数据中心中,可编程交换机利用端口信息和步骤1中的主动测量探针携带的内容来维护一个网络状态表,同时,可编程交换机就端口信息对主动测量探针进行更新;
在图2中,一个数据中心可编程交换机节点的示意图是如下所示。这个节点内部维护着一张网络状态表,这张表存储了交换机所有端口到ToR交换机的状态信息。
网络状态表存储在可编程交换机的寄存器中,并且可以被外部设备访问。这意味着网络管理员或者其他网络设备可以查询这张表,从而获取交换机端口到ToR交换机的状态信息。
网络状态表能够提供对网络性能的实时反馈。在这个系统中,网络状态表记录了每个端口到ToR交换机的路径利用率估计值和队列延迟信息。这些信息能够帮助我们理解网络的实时状态,例如链路的拥塞程度和数据包的延迟情况。
网络状态表中路径利用率估计值根据可编程交换机的计数器数据结构和转发代码逻辑计算得出的。它反映了从端口到ToR交换机的路径的利用率,可以用来评估网络的负载情况,找出网络的瓶颈。
网络状态表中端口队列延迟信息由可编程交换机的内存中直接读取,这个值反映了数据包在交换机的输出队列中等待的时间。如果队列延迟过高,说明链路存在拥塞,需要进行调整或优化。
网络状态表是随着探针周期的发生而进行更新的。当可编程交换机接收到探针报文时,交换机首先会提取报文中的最大路径利用率和最大队列延迟字段。然后,将这些提取到的字段值与交换机计算并存储在寄存器中的相应值进行比较。在比较后,根据结果交换机会更新网络状态表中对应的数据条目。这种设计确保了网络状态表能够实时反映网络的最新状态,并且能够根据网络的实时变化进行动态更新。
PPO算法和测量探针的更新都依赖于交换机的可编程的网络状态表、交换机需要保存一个网络状态信息表,网络状态表的内容如下:网络状态表的更新需要用到各可编程交换机本身的端口的信息,该信息定时更新并存储在交换机的寄存器中,这种设计使得网络状态信息的获取和更新能够实时和准确。
状态表记录了当前的网络状态,包含了诸如链路的利用率和队列的延迟等关键信息具体来说,网络状态表的更新根据端口信息和由步骤1测量探针携带的内容进行,同时,步骤1测量探针的内容是根据可编程交换机就端口信息进行更新的。可编程交换机通过周期性地更新和维护网络状态表,能够准确地反映出网络的实时负载情况。
步骤3,每个可编程交换机都将自己的网络状态表作为输入,独立地通过PPO算法实例计算出不同网络流转发的最优概率,改变数据中心的网络分流配比,使整个可编程数据中心达到稳定的负载均衡状态。
在可编程交换机节点中,每个PPO算法实例在训练前需要进行初始化。这包括为算法实例设置初始参数,确定算法的学习率,以及其他相关的初始配置。初始化的目的是为后续的训练和迭代过程打好基础。
每个可编程交换机都维护了一个独立的PPO(ProximalPolicyOptimization)算法实例,其是一种强化学习算法。每个可编程交换机都将自己的网络状态表作为输入,独立地通过其PPO算法实例计算出不同网络流转发的最优概率,即每个可编程交换机的操作和数据处理都相互独立,无需依赖其他可编程交换机,随着每个可编程交换机上的PPO算法实例迭代次数达到预设值,整个可编程数据中心将达到一个稳定的负载均衡状态。
算法需要合理利用本地的网络状态表,可编程交换机独立的PPO算法通过读取自身的寄存器中的值后获取了网络状态表的内容后需要迭代出最优决策。在可编程交换机中,网络状态表被视为负载均衡算法的输入参数,其实可编程交换机各自维护自己的网络状态表,以保证每个交换机算法的独立性。负载均衡算法从交换机的寄存器获取网络状态表的值。这些寄存器存储了所有与网络状态表相关的数据,使得交换机可以迅速访问和处理这些数据,从而实现动态的负载均衡。每个可编程交换机都运行自己独立的负载均衡算法。交换机根据自己的网络状态表作出决策,而不依赖于其他交换机的状态或决策。这种独立性使得整个系统更加稳定和可靠。PPO负载均衡算法,该算法用于计算不同流对应的链路分流配比。这一计算过程基于深度强化学习,使得交换机可以在不断变化的网络环境中学习和改进其决策。
步骤1中的主动测量探针使用IP协议中的Protocol和Option字段分别来标识和存储探针相关信息,可编程交换机在接收到报文后,通过解析Protocol字段鉴别并区分转发的数据包和探针的数据包;
除了处理探针的特殊逻辑之外,可编程交换机还需要执行其常规的数据包转发功能。这些功能通过使用P4语言定义转发逻辑来实现。当数据包到达时,交换机首先判断数据包是否是探针。如果是探针,交换机会修改探针内容并进行组播,如果不是探针,交换机则根据其流表进行数据流的转发。使用P4语言定义可编程交换机的转发逻辑、判断数据包是否是探针、是则修改探针并组播,否则根据流表转发流。可编程交换机除探针逻辑外,通过P4语言定义好其余交换机内容,包括二层转发、三层转发和Vlan功能。其中探针转发逻辑不影响交换机识别数据流转发功能、且对转发速率几乎没有影响。可编程交换机使用寄存器存储网络状态表,通过本存储方式,可外部轻易访问网络状态表。
Protocol字段用于标识探针报文;Option字段用于存储探针的详细信息;Option字段包括Src_Tor字段、Type字段、Step字段、Link_Util字段和Queue_Delay字段;
通过Src_Tor字段,该字段的长度被设定为48位,接收设备准确识别出该报文的源交换机,并判断是否需要终止组播该探针;
可编程交换机依赖探针中的Src_Tor字段和交换机ID来记录交换机的端口到不同顶层交换机的路径;
在数据转发过程中,每个可编程交换机节点均读取并解析Type字段,这个字段占用16位,用以鉴别并区分转发的数据包和探针的数据包;
Step字段这个字段占用16位,在创建探针时还未经过任何交换机初始值为0,此后每当探针经过一个可编程交换机,Step字段自增,Step增加操作由可编程交换机完成;
Link_Util字段的长度被设定为16位,用于存储从初始发送可编程交换机节点到当前接收可编程交换机节点路径中所有可编程交换机端口的所有链路的最大利用率,在初始阶段,Link_Util字段的值被置为0。随着探针报文在网络中的传播,每当探针报文经过一个可编程交换机,都会触发一个特定的操作:该交换机将会获取其经过端口的Link_Util值,与探针报文中的Link_Util字段值进行比较。如果当前可编程交换机端口的Link_Util值更高,那么将会更新探针报文和该可编程交换机网络状态表中的Link_Util字段,使其反映出当前最大的链路利用率。
Queue_Delay字段存储从初始发送可编程交换机节点到当前可编程交换机接收节点路径中所有可编程交换机端口的最大队列延迟大小,Queue_Delay字段的长度被设定为16位,在初始阶段,Queue_Delay字段的值被设为0,随着探针报文在网络中的传输,每当探针经过一个链路,系统获取当前可编程交换机端口的队列延迟值,并与探针报文中的Queue_Delay字段值进行对比,如果发现当前交换机的队列延迟值大于探针中记录的值,那么Queue_Delay字段的值将会被更新为该更高的队列延迟值,Queue_Delay字段在探针报文的传输过程中始终保持当前路径中的最大队列延迟大小的信息。
在图4中,探针是由ToR交换机初始化并周期性地发送的。这种周期性地发送探针的策略是为了能够定期监控和评估网络的状态和性能,在本实例中周期设置为2s。
图4展示了Tor1探针的前2跳转发方向,当探针经过Leaf层和Core层的交换机时,每个交换机都会根据其当前状态更新Link_Util和Queue_Delay字段。具体来说,Link_Util字段更新为当前链路的利用率,这是根据交换机端口的输出流量和端口的最大带宽计算得出的。Queue_Delay字段更新为当前交换机的队列延迟,该字段根据数据包在输出队列中等待的时间计算得出的。这两个字段的更新都是为了记录和反映网络的实时状态和性能。
在探针数据包经过整个网络并最终返回到初始的Tor交换机之后,该Tor交换机会读取探针的所有字段,并将这些信息用于网络性能的测量和分析。
在每一个可编程交换机接收到探测报文时,它首先会检查报文中的Src_Tor字段,并将其与自身的交换机ID进行比对。Src_Tor字段为每个探测报文提供了唯一的源交换机标识,这使得接收交换机能够识别并记录哪些端口曾经接收过与该Src_Tor字段相对应的探测报文。这种记录可以用于网络管理和分析,例如通过分析探测报文的分布和流动可以了解网络的拓扑结构和流量情况。
步骤1具体为:
ToR交换机定期生成主动测量探针报文并广播探针报文至所有与其直连的可编程交换机,在每个可编程交换机接收到探测报文后,首先检查报文中的Src_Tor字段并与其接收该探针的可编程交换机的ID进行对比;
Src_Tor字段在此处为每个探测报文提供了唯一的标识,该字段使得交换机能够识别并记录哪些端口曾经接收到了对应Src_Tor字段的探测报文。
交换机识别并记录端口接收对应Src_Tor字段的探测报文情况,若报文尚未到达其目标,接收交换机进一步将报文转发给部分邻居可编程交换机,当探针报文到达除Src_Tor字段记录的ToR交换机之外的任何其他ToR交换机时,接收该探针报文的交换机将停止对此报文的进一步转发。
这些邻居可编程交换机仅包括那些尚未接收到具有同一Src_Tor字段的探测报文的交换机,从而有效地防止了探测报文的回环发送。
实施例2
在实施例1的基础上,步骤2中更新网络状态表具体为:可编程交换机接收到探针报文时,该交换机提取报文中的最大路径利用率和最大队列时延字段,提取到的字段值与交换机计算并存储在寄存器中的相应值进行比较,交换机根据结果更新网络状态表中对应的数据条目。
在数据中心,每个可编程交换机都维护着一张网络状态表。这张表记录了所有端口到ToR交换机的状态信息,并存储在交换机的内部寄存器中,且该寄存器可以被外部直接访问。通过控制端口,外部实体可以通过P4Runtime快速地访问寄存器中的信息,即获取网络状态表中的网络状态信息。这张表记录了每个端口到ToR交换机的路径利用率的估计值以及队列延迟信息。需要注意的是,端口的信息是定时更新并存储在交换机的寄存器中的。这种设计确保了网络状态信息的获取和更新可以实时且准确地进行。
可编程交换机在寄存器中维护一个网络状态表,其中网络状态表保存了数据中心中可编程交换机节点所有端口到对应顶层交换机链路中的Link_Util和Queue_Delay的最大值。网络状态表的更新,当探针到达可编程交换机时,交换机读取报文中的Link_Util字段和Queue_Delay字段,交换机将这些读取到的字段值与自身保存的网络状态表中的对应值进行比较并更新。
交换机的网络状态表和探针的更新需要用到交换机端口的队列时延,其中端口队列时延通过可以直接从可编程交换机的内存中获取。
当测量探针到达交换机时,该交换机会根据多个探针的内容和自身的端口信息更新自己的网络状态表。一旦网络状态表更新完毕,该交换机会向指定的多个端口组播这些测量探针。
网络状态表的更新,当探针报文到达可编程交换机时,当前交换机首先读取报文中的最大路径利用率字段和最大链路时延字段,交换机将这些读取到的字段值与本地计算的的对应值进行比较并取两者的最大值更新到探针中。
可编程交换机端口的利用率的估计方式具体包括以下步骤:
步骤2.1,Link_Util字段基于当前可编程交换机端口的端口利用率的值,可编程交换机的计数器记录周期(T)内从该端口传出的数据包的总大小(D);
步骤2.2,从步骤2.1的配置信息中,获取有关于该端口最大传输速率的常数(S),使用公式U=D/t*S计算端口传出数据包速率(U)。
传出数据包速率(U)表示在单位时间内,通过该端口传输的数据量,其中U存储在交换机的寄存器中,且更新逻辑嵌入在可编程交换机的转发逻辑中,每个周期T自动更新寄存器中的值。
其中可编程交换机端口的传出数据包U速率字段的更新需要通过编译交换机的转发逻辑实现,通过可编程语言将端口传输速率定期更新并存储在寄存器中,其中传出数据包U速率使用公式U=D/T*S来计算,其中T为可编程交换机的计数器记录周期,D为周倜T内从该端口传出的数据包的总大小,S为常数。
实施例3
在实施例1的基础上,步骤2中更新主动测量探针具体为:
可编程交换机根据Src_Tor字段判断是否有多个端口接到了相同ToR交换机节点发出的探针,若只有一个端口接收到了某个ToR交换机发送的测量探针,则根据接收探针的端口信息和探针信息更新探针中的Link_Util和Queue_Delay字段;
若可编程交换机在多个端口接收到了ToR交换机的信息,则该可编程交换机节点将多个端口信息和接收到的所有探针信息进行比较,且根据式(1)更新探针内容、更新后继续进行组播;
式(1)中,α和β为常数,Path_Util和Queue_Delay为可编程交换机网络状态表维护的字段。
当数据中心的可编程交换机节点的多个端口同时接收到相同源节点发出的探针,即可编程交换机有多条路径与发送探针的源节点可达;
当数据中心的可编程交换机节点的单个端口接收到源节点发出的探针,它将根据该探针携带的网络状态信息和端口信息更新探针内容;
当探针报文已经到达除初始节点以外的其他顶层交换机时,接收交换机将停止转发该报文,并根据探针内容和可编程交换机端口状态更新交换机保存的网络状态表;
当探针报文到达非顶层交换机时,当前非顶层交换机根据探针内容和端口状态更新网络状态表,并将探针组播到除接收该初始顶层交换机发出的探针的所有其他端口;
实施例4
在实施例1的基础上,步骤3具体为:
使用PPO算法计算数据中心各个可编程交换机上的不同数据流的链路分流配比:
可编程交换机节点在本地建立一个基于PPO的深度强化学习模型,模型分别从维护的网络状态表中获取其路径最大利用率和最大队列延迟信息;
PPO算法迭代中,算法首先根据当前的网络状态,利用深度强化学习模型计算出网络中所有预期流量分流比例,交换机根据这一新的分流策略进行流量调度,经过预设时间段T后,交换机收集新的网络状态信息,并将这些信息作为奖励函数的输入进行计算,更新PPO算法的网络模型参数,以最大化模型参数Reward;
在多次迭代和更新后,当模型训练完毕后,其中算法根据当前网络状态动态地决定不同网络流通过哪个端口转发,得到最优的每个端口的流量分流配比。
在数据中心中,可编程交换机的维护的PPO负载均衡算法模型将网络状态表作为算法输入的参数:
在可编程交换机中,网络状态表被用作负载均衡算法的输入参数。这些交换机各自具有独立的负载均衡算法,该算法从交换机的寄存器获取网络状态表中的值。因此,每个交换机都能根据当前网络状况动态地调整其负载均衡策略。此外,所有交换机维护自己的网络状态表,这种设计确保了每个交换机算法的独立性。
每个交换机节点维护一个基于PPO的深度强化学习模型。该模型从自己的独立网络状态表中获取其路径最大利用率和最大队列延迟信息,并使用这些信息来计算预期的流量分流比例。在PPO算法的迭代过程中,交换机首先根据当前的网络状态和其深度强化学习模型,计算出预期的流量分流比例。然后,交换机根据这一新的分流策略进行流量调度。经过预设时间段T后,交换机收集新的网络状态信息,并将这些信息作为奖励函数的输入进行处理。这一奖励函数用于更新PPO算法的网络模型参数,并尽可能地最大化奖励。当深度强化学习模型训练完毕后,PPO算法会根据当前的网络状态动态地决定通过哪个端口转发数据,从而得到每个端口最优的流量分流比例。
改变数据中心的网络分流配比具体以流表的形式输出,可编程交换机基于流表转发,调整不同链路的分流比例,均衡和优化数据中心网络流量。
其中,流表为可编程交换机转发的逻辑表且流表基于PPO算法输出,流表配置的下发能够直接控制链路的分流比例。流表定义了数据中心的网络分流配比,它是交换机执行转发操作的基础。
PPO算法的输出包括不同流和每个端口转发的概率,这些概率是由深度强化学习模型根据当前的网络状态计算出来的。
当交换机需要决定不同流从通过哪个端口转发数据时,它不是简单地选择流量分流比例最大的端口,而是根据PPO算法输出的每个端口的分流概率进行随机选择。
交换机首先根据PPO算法的输出,生成一个端口选择表。这个表包含了每个端口的分流概率。然后,交换机根据这个表进行随机选择,决定通过哪个端口转发数据。当确定了端口后,交换机会根据这个决策生成一个新的转发流表。
一旦转发流表被生成,它会通过P4RuntimeAPI下发到可编程交换机。P4Runtime是一个开放的标准API,用于控制和管理可编程数据平面。通过这个API,新的转发流表可以被成功地下发到交换机,从而对网络的流量分流进行动态控制。
PPO算法通过这种方式实现了对链路分流配比的动态调整。这种调整不仅考虑了当前的网络状态,还考虑了未来可能的网络变化。这使得可编程交换机能够在网络状况变化时,迅速调整其转发策略,以保持网络流量的均衡和优化。
如图2所示,可编程交换机的网络状态表定期更新后,PPO算法实例将进行再训练和迭代。这样,PPO算法实例的预测能力能够随着网络状态的变化而动态调整,从而使得每次的网络流量转发决策都能基于最新的网络状态进行。
PPO算法实例的预测策略可以根据网络状态的变化和网络流量的需求动态调整。例如,当网络流量增大时,通过调整预测策略,以便更多的流量能够通过高带宽的链路进行转发。相反,当网络流量减小时,通过调整预测策略,以便更多的流量能够通过低延迟的链路进行转发。
根据调整后的预测策略,PPO算法实例会生成新的预测结果,然后将这些结果转化为流表,下发到每个可编程交换机节点。每个节点会根据收到的流表,调整自己的网络流量转发规则,然后根据这些规则,实施网络流量的转发。
为了保证网络流量的转发效果,需要对转发效果进行评估。评估的方式可以有多种,例如,可以通过计算网络流量的平均延迟、丢包率等指标,来评估转发效果。如果发现转发效果不佳,可以调整PPO算法实例的参数,或者调整流表的配置,以改善转发效果。
为了保证网络流量的持续优化管理,需要定期进行系统的维护和更新。这包括更新PPO算法实例的版本、优化流表的结构和配置、调整流表的下发策略等。通过持续的优化,可以提升网络流量的管理效率,保证网络的稳定运行。
在PPO算法实例完成网络流量转发路径的预测后,预测结果需要转化为流表的形式。流表是可编程交换机节点用于转发网络流量的逻辑表,其中包含了一系列的流表项,每个流表项都指定了一种特定的流量转发规则。通过转化为流表的形式,PPO算法的预测结果可以直接用于指导可编程交换机节点的网络流量转发。
图2中P4Runtime实现了流表下发功能,PPO算法实例的预测结果生成的流表,需要通过P4Runtime下发,该方式应用到每个可编程交换机节点,在流表配置的过程中,每个可编程交换机节点会根据流表中的流表项,调整自己的网络流量转发规则。在流表下发的过程中,流表会被分发到网络中的其他可编程交换机节点,以便这些节点也能根据相同的规则进行网络流量转发。
每个可编程交换机节点根据自己维护的PPOAgent调整自己的网络流量转发规则,以改变不同链路的分流比例。具体来说,可编程交换机节点会根据流表中的流表项,确定每条链路的分流比例。然后,节点会根据这些分流比例,调整自己的网络流量转发策略,以实现数据中心网络流量的均衡和优化。
在网络运行过程中,由于网络状态的持续变化,需要对流表的配置和下发进行实时调整。这种调整是基于PPO算法实例的新的预测结果,以及新的网络状态表。通过实时调整流表的配置和下发,可以保证可编程交换机节点的网络流量转发策略始终能够满足当前的网络状态和流量需求。
通过持续运行PPO算法并更新网络状态表,每个节点上的PPO算法实例会逐渐优化其数据包转发策略,最终当每个节点上的PPO算法实例迭代次数达到预设值时,整个可编程数据中心将达到一个稳定的负载均衡状态。
通过这种方式,本发明实施例通过使用P4可编程交换机,实现了对数据中心网络的动态性能测量和分析。该技术方案可用于实现对网络状态的实时监控,为数据中心的网络管理提供了有效的工具。
在本发明实施例中,探针的周期被设置为2s,但这并不是绝对的。在实际应用中,可以根据实际需要调整探针的周期。例如,当网络流量较大时,可以将探针的周期调短,以便更频繁地获取网络状态。相反,当网络流量较小时,可以将探针的周期调长,以减少网络的额外负载。
通过上述方式,数据中心的可编程交换机可以通过一定的转发开销,动态地实现了数据中心的网络测量。这种方法利用了探针报文,提取其中的最大路径利用率和最大队列延迟字段,然后根据这些值更新存储在交换机寄存器中的网络状态表。这种设计利用了探针报文的周期性发送,使得网络状态的收集和更新可以定时进行,从而实现了对网络状态的实时监控和管理。
综上所述,本发明实施例提出了一种面向可编程交换机的动态网络负载均衡方法。通过构建PPO算法实例,实时获取和更新网络状态,动态调整预测策略,并根据网络流量的转发效果进行评估与优化,最后通过系统的持续维护与更新来优化网络流量的转发。该方法不仅能适应网络环境和流量需求的变化,实现网络流量的有序转发,而且可以进行自我评估和优化,提升网络性能。尤其是在大规模和复杂的网络环境中,本发明实施例的方法能够有效地均衡网络流量,保证网络的稳定运行,并提升网络的整体性能。此外,通过定期的系统维护和更新,可以保证网络流量管理的持续优化,提升网络的稳定性与效率。本发明提供的一种基于PPO算法的网络流量管理方法,对于解决传统网络流量管理方法在处理复杂网络环境和大量网络流量时存在的问题,具有显著的优势和效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.面向可编程交换机的动态网络负载均衡方法,其特征在于,具体包括以下步骤:
步骤1,每个ToR交换机均按照预设的时间间隔生成主动测量探针,生成的主动测量探针报文随后被发送至所有直接与该ToR交换机相连的邻居交换机,邻居交换机判断探针报文接收情况;
步骤2,在数据中心中,可编程交换机利用端口信息和步骤1中的主动测量探针携带的内容来维护一个网络状态表,同时,可编程交换机就端口信息对主动测量探针进行更新;
步骤3,每个可编程交换机都将自己的网络状态表作为输入,独立地通过PPO算法实例计算出不同网络流转发的最优概率,改变数据中心的网络分流配比,使整个可编程数据中心达到稳定的负载均衡状态。
2.根据权利要求1所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,所述步骤1中的主动测量探针使用IP协议中的Protocol和Option字段分别来标识和存储探针相关信息,可编程交换机在接收到报文后,通过解析Protocol字段鉴别并区分转发的数据包和探针的数据包;
Protocol字段用于标识探针报文;Option字段用于存储探针的详细信息;Option字段包括Src_Tor字段、Type字段、Step字段、Link_Util字段和Queue_Delay字段;
通过Src_Tor字段,接收设备准确识别出该报文的源交换机,并判断是否需要终止组播该探针;
在数据转发过程中,每个可编程交换机节点均读取并解析Type字段,用以鉴别并区分转发的数据包和探针的数据包;
Step字段在创建探针时还未经过任何交换机初始值为0,此后每当探针经过一个可编程交换机,Step字段自增,Step增加操作由可编程交换机完成;
Link_Util字段用于存储从初始发送可编程交换机节点到当前接收可编程交换机节点路径中所有可编程交换机端口的所有链路的最大利用率,在初始阶段,Link_Util字段的值被置为0,随着探针报文在网络中的传播,每当探针报文经过一个可编程交换机,都会触发一个操作:该交换机获取其经过端口的Link_Util值,与探针报文中的Link_Util字段值进行比较,若当前可编程交换机端口的Link_Util值更高,那么更新探针报文和该可编程交换机网络状态表中的Link_Util字段,使其反映出当前最大的链路利用率;
Queue_Delay字段存储从初始发送可编程交换机节点到当前可编程交换机接收节点路径中所有可编程交换机端口的最大队列延迟大小,在初始阶段,Queue_Delay字段的值被设为0,随着探针报文在网络中的传输,每当探针经过一个链路,系统获取当前可编程交换机端口的队列延迟值,并与探针报文中的Queue_Delay字段值进行对比,如果发现当前交换机的队列延迟值大于探针中记录的值,Queue_Delay字段的值被更新为该更高的队列延迟值,Queue_Delay字段在探针报文的传输过程中始终保持当前路径中的最大队列延迟大小的信息。
3.根据权利要求2所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,所述步骤1具体为:
ToR交换机定期生成主动测量探针报文并广播探针报文至所有与其直连的可编程交换机,在每个可编程交换机接收到探测报文后,首先检查报文中的Src_Tor字段并与其接收该探针的可编程交换机的ID进行对比;
交换机识别并记录端口接收对应Src_Tor字段的探测报文情况,若报文尚未到达其目标,接收交换机进一步将报文转发给部分邻居可编程交换机,当探针报文到达除Src_Tor字段记录的ToR交换机之外的任何其他ToR交换机时,接收该探针报文的交换机将停止对此报文的进一步转发。
4.根据权利要求2所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,所述步骤2中更新网络状态表具体为:可编程交换机接收到探针报文时,该交换机提取报文中的最大路径利用率和最大队列时延字段,提取到的字段值与交换机计算并存储在寄存器中的相应值进行比较,交换机根据结果更新网络状态表中对应的数据条目。
5.根据权利要求4所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,可编程交换机端口的利用率的估计方式具体包括以下步骤:
步骤2.1,Link_Util字段基于当前可编程交换机端口的端口利用率的值,可编程交换机的计数器记录周期(T)内从该端口传出的数据包的总大小(D);
步骤2.2,从步骤2.1的配置信息中,获取有关于该端口最大传输速率的常数(S),使用公式U=D/t*S计算端口传出数据包速率(U)。
6.根据权利要求2所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,所述步骤2中更新主动测量探针具体为:
可编程交换机根据Src_Tor字段判断是否有多个端口接到了相同ToR交换机节点发出的探针,若只有一个端口接收到了某个ToR交换机发送的测量探针,则根据接收探针的端口信息和探针信息更新探针中的Link_Util和Queue_Delay字段;
若可编程交换机在多个端口接收到了ToR交换机的信息,则该可编程交换机节点将多个端口信息和接收到的所有探针信息进行比较,且根据式(1)更新探针内容、更新后继续进行组播;
其中,式(1)为:W=α*Path_Util+β*Queue_Delay,
式(1)中,α和β为常数,Path_Util和Queue_Delay为可编程交换机网络状态表维护的字段。
7.根据权利要求2所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,所述步骤3具体为:
使用PPO算法计算数据中心各个可编程交换机上的不同数据流的链路分流配比:
可编程交换机节点在本地建立一个基于PPO的深度强化学习模型,模型分别从维护的网络状态表中获取其路径最大利用率和最大队列延迟信息;
PPO算法迭代中,算法首先根据当前的网络状态,利用深度强化学习模型计算出网络中所有预期流量分流比例,交换机根据这一新的分流策略进行流量调度,经过预设时间段T后,交换机收集新的网络状态信息,并将这些信息作为奖励函数的输入进行计算,更新PPO算法的网络模型参数,以最大化模型参数Reward;
在多次迭代和更新后,当模型训练完毕后,其中算法根据当前网络状态动态地决定不同网络流通过哪个端口转发,得到最优的每个端口的流量分流配比。
8.根据权利要求7所述的面向可编程交换机的动态网络负载均衡方法,其特征在于,改变数据中心的网络分流配比具体以流表的形式输出,可编程交换机基于流表转发,调整不同链路的分流比例,均衡和优化数据中心网络流量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410112352.XA CN118118425A (zh) | 2024-01-26 | 2024-01-26 | 面向可编程交换机的动态网络负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410112352.XA CN118118425A (zh) | 2024-01-26 | 2024-01-26 | 面向可编程交换机的动态网络负载均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118118425A true CN118118425A (zh) | 2024-05-31 |
Family
ID=91211464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410112352.XA Pending CN118118425A (zh) | 2024-01-26 | 2024-01-26 | 面向可编程交换机的动态网络负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118118425A (zh) |
-
2024
- 2024-01-26 CN CN202410112352.XA patent/CN118118425A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715414B2 (en) | Network communication methods and apparatus | |
Yao et al. | Machine learning aided load balance routing scheme considering queue utilization | |
US9503374B2 (en) | Apparatus for hybrid routing in SDN networks to avoid congestion and achieve good load balancing under fluctuating traffic load | |
US10103986B2 (en) | Method, apparatus and system for determining content acquisition path and processing request | |
Kim et al. | Ant colony based self-adaptive energy saving routing for energy efficient Internet | |
CN102714628A (zh) | 通信系统、控制装置、处理规则设置方法、分组传输方法和程序 | |
CA2554876A1 (en) | Method and apparatus for characterizing an end-to-end path of a packet-based network | |
US20110270972A1 (en) | Virtual topology adaptation for resource optimization in telecommunication networks | |
EP3090528A1 (en) | Network communication methods and apparatus | |
CN108366089B (zh) | 一种基于内容流行度和节点重要度的ccn缓存方法 | |
CN114500354B (zh) | 一种交换机控制方法、装置、控制设备及存储介质 | |
Paliwal et al. | Effective flow table space management using policy-based routing approach in hybrid sdn network | |
CN117294643B (zh) | 一种基于SDN架构的网络QoS保障路由方法 | |
CN114938374A (zh) | 跨协议负载均衡方法及系统 | |
Li et al. | Data-driven routing optimization based on programmable data plane | |
CN111901237B (zh) | 源路由选路方法及系统、相关设备及计算机可读存储介质 | |
CN111194090B (zh) | 一种面向边缘计算的多策略信道分配方法 | |
Li et al. | A data forwarding mechanism based on deep reinforcement learning for deterministic networks | |
CN118118425A (zh) | 面向可编程交换机的动态网络负载均衡方法 | |
CN115118326B (zh) | 基于双向跳跃式搜索的卫星通信路由选择方法、系统及装置 | |
EP3531622B1 (en) | Method of handling packet flow in software-defined network, computer program product, and software-defined network | |
Abushagur et al. | Hybrid software-defined network monitoring | |
CN113259263B (zh) | 一种深度报文检测集群中的数据包调度方法 | |
Herrero | Supervised classification for dynamic CoAP mode selection in real time wireless IoT networks | |
Lin et al. | Proactive multipath routing with a predictive mechanism in software‐defined networks |
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 |