电子通信装置的制造及其应用技术1.本发明涉及通信设备技术领域,具体涉及一种基于异构核心网的跨协议负载均衡方法及系统。背景技术:2.随着网络技术的不断发展,用户对网络业务的需求也变得更加多样,对于网络流量的需求也变得越来越大。巨大的网络需求带动网络基础设施的发展,新技术、新网络产品、新组网模式不断涌现,使得网络类型、服务种类和设备来源更加复杂化。传统的网络业务模式中网络服务与硬件设备耦合与其静态僵化的缺点不断涌现。3.在这种背景下,基于前期“标识网络”、“智慧标识网络”研究,北京交通大学下一代互联网国家工程实验室提出“智融标识网络”体系及其关键机制。其中多路径跨协议的“智融标识网络”体系通过全网多空间、多维度资源的智慧融合,实现个性化服务的按需供给与灵活化组网的有效支撑,为不同行业与用户提供高效的差异化、定制化通信网络服务,以普遍适用于各类迥异应用情景。4.而随着时下大数据、人工智能、云计算等概念的不断涌现,网络中的数据流量呈现爆炸式的增长,许多网络中其内部的通信带宽已经无法满足流量的传输需求,因此这些网络采用具有分层的多根网络拓扑的胖树结构,它能够为网络拓扑提供多条等价路径,并结合ecmp(equal cost multi-path)等价多路径负载均衡算法,进而提高带宽。而在多路径跨协议的“智融标识网络”体系中,也存在着类似的问题,而目前常见负载均衡算法,如ecmp算法以随机的哈希方式选择路径,没有考虑到跨协议网络体系的特点,只适用于单协议网络体系下,若适用于跨协议网络体系之中,无法充分利用网络中每一个交换节点的转发资源,造成资源浪费,并且存在着诸如哈希冲突,非对称性等缺点。5.目前sdn软件定义网络和p4数据平面可编程技术的不断演进和推广,为这方面提供了新的前景,2014年推出的高级数据平面编程语言p4遵循了定义可编程网络设备的数据包处理功能的主要目标。作为sdn网络的未来,p4与硬件和协议无关,用户可以直接使用该语言编写网络应用,之后经编译对底层设备进行配置使其完成用户的功能需求。p4让数据包的解析和转发流程也能通过编程控制,使得网络及设备自上而下地、真正地向用户开放。因此,p4绕过了硬件供应商的限制,在数据平面实现定义额外的头信息和设定边缘节点和转发节点中的新功能,能够克服传统网络状态监控的缺点,来进行网络资源的实时收集,目前常用的技术为基于p4的带内遥测技术(in-band network telemetry)。且int克服了传统网络监控的如约束性性强,速度慢等缺陷,使搜集网络数据的过程如今可以直接在实际流量中完成,给予了可以在虚拟或者物理的端到端网络中实时地发现和搜集网络状态的能力。6.现有的一种控制网络数据传输的方法,接收客户端发送的第一应用数据请求,第一应用数据请求支持第一网络协议;判断服务端是否存在支持第一网络协议的应用服务;若否,则判断服务端是否存在支持预设的第二网络协议的应用服务;若服务端存在支持预设的第二网络协议的应用服务,则对第一应用数据请求进行协议转换,以使第一应用数据请求支持第二网络协议;根据转换后的第一应用数据请求建立客户端与支持第二网络协议的应用服务之间的负载均衡连接。7.但是,上述方法在使用上并不能进行网络层及链路层的跨协议负载均衡,不能进行网络层及链路层的跨协议负载均衡,其主要针对应用层进行负载均衡,而在网络层协议中默认单协议场景,无法进行跨协议操作,而且其使用传统网络架构思想,控制平面与数据平面耦合,可编程性以及复用性较差,不够灵活。8.现有的另一种高效多链路数据传输实现方法,首先进行网络连接的建立,然后传输过程中的失效切换和传输过程中的负载均衡。该方法虽然可以建立多条链路,同时支持tcp/ip和fc协议,传输过程中的失效切换和负载均衡过程中可以利用tcp/ip和fc两个连接链表中的任意一个连接进行收发,并可以利用跨协议传输收发两个连续发送请求。但是,该方法在使用上有以下不足之处:9.(1)虽然为跨协议负载均衡功能的系统,但是协议指传输控制协议/网际协议tcp/ip和光纤通道fc协议。所以在针对一个传输控制协议/网际协议tcp/ip族中的不同网络层协议共存的异构环境,是无法进行网络层协议及ipv4、ipv6、sinet等协议之间的跨协议负载均衡的。10.(2)在进行负载均衡时,有两种负载均衡模式,参数超过阈值时,采用静态负载均衡;未超过阈值时,采用动态负载均衡。其中静态负载均衡,是指始终将数据发向第一个链接,直到达到所述阈值为止,然后再按顺序采用下一个链接。而动态负载均衡,是指数据发送初始阶段就循环利用链表中的各链路,当单一链路达到所述阈值时,网络总体负荷也趋向于饱和。而这两种负载均衡都只是单纯的换路,并没有考虑其他的链路状况。实际上,网络中各条路径的带宽、时延和可靠性等不一样,如果不考虑链路的实时状态,就进行轮询换路,不能充分的利用带宽,且负载均衡的效果也不够理想。11.总之,现有的当前负载均衡方案只针对单一网络层协议而进行局部的单协议负载均衡,而并未考虑异构网络下多种网络层协议如ipv4、ipv6、标识网络共存的情景,从而导致流量只能均衡至同种网络层协议设备上,而无法跨协议均衡至不同种网络层协议设备上,导致网络设备未被充分利用。技术实现要素:12.本发明的目的在于提供一种基于异构核心网的跨协议负载均衡方法及系统,以解决上述背景技术中存在的至少一项技术问题。13.为了实现上述目的,本发明采取了如下技术方案:14.一方面,本发明提供一种跨协议负载均衡方法,包括:15.在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;16.对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;17.将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。18.可选的,所述状态信息包括转发节点标号、出端口标号、节点处理时延、节点入包时队列长度、节点出包时队列长度。19.可选的,基于时序差分强化学习的跨协议负载均衡算法进行转发动作价值矩阵的收敛及计算,根据得到的转发动作价值矩阵,并依照价值量的大小选出价值量最大的一个或多个候选均衡路径,并将候选路径及其价值量比例生成负载均衡决策。20.可选的,根据价值矩阵选取最优均衡路径,包括:21.从int数据库中获取交换设备的协议栈信息、负载信息;22.初始化价值矩阵为数据包随机选取所处交换机位置,并随机选取下一跳位置进行发包;23.每隔一定时间调用时序差分强化学习算法,比较转发设备协议栈与数据包网络协议是否兼容,并结合int节点状态根据奖励函数更新奖励矩阵;其中,在时序差分强化学习算法中随机选择数据包位置,进行多次离线学习,完善价值矩阵;24.根据价值矩阵,依照noisy-greedy策略,选择若干个最优转发路径进行轮询发包,在到达目的终端的途中,根据实时的负载值,更新奖励矩阵,并更新价值矩阵,直至价值矩阵收敛,即可根据价值矩阵选取最优均衡路径。25.可选的,所述奖励函数为:[0026][0027]其中,a表示转发设备协议栈与数据包协议匹配程度对于奖励函数的影响程度;b表示转发设备协议栈与数据包协议负载程度对于奖励函数的影响程度;cij表示转发设备协议栈与数据包网络层协议的比较值,相同为0,不同为1;ti表示转发后所处节点的处理时延;tmin表示人为设置的节点处理时延最小值;tmax表示人为设置的节点处理时延最大值;li表示转发后所处节点的队列长度;lmin表示人为设置的节点队列长度最小值;lmax表示人为设置的节点队列长度最大值;bi表示转发后所处节点的剩余带宽;bmin表示人为设置的节点剩余带宽最小值;bmax表示人为设置的节点剩余带宽最大值;α、β、γ分别表示处理时延、队列深度、剩余带宽对奖励值的影响比重,其根据需求人为设定;分别表示ti、li、bi的归一化。[0028]可选的,将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点,包括:[0029]p4代码通过p4编译器前端生成p4info与p4中间码文件;[0030]将负载均衡决策模块所得到的流表决策写入java程序中,为pipeconf应用提供支持;[0031]利用java所编写的onos应用程序,结合p4.json文件以及onos控制器所收集的拓扑信息等资源,编译pipeconf应用至onos控制器;[0032]onos控制器根据pipeconf应用,把相应的p4程序及相应的流表,通过packet_out下发安装到的可编程转发设备上;[0033]转发设备根据p4程序及流表进行负载均衡的转发。[0034]可选的,在p4数据平面可编程中,若数据包需要进行跨协议转发,则将数据包通过隧道或协议转换的方式,进行跨协议操作,发向不同协议栈的转发设备。[0035]第二方面,本发明提供一种跨协议负载均衡系统,包括:[0036]网络状态收集模块,用于在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;[0037]负载均衡决策模块,用于对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0038]流表决策下发模块,用于将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0039]第三方面,本发明提供一种计算机设备,包括存储器和处理器,所述处理器和所述存储器相互通信,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令执行如上所述的跨协议负载均衡方法。[0040]第四方面,本发明提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器相互通信,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令执行如上所述的跨协议负载均衡方法。[0041]第五方面,本发明提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的跨协议负载均衡方法。[0042]术语解释:[0043]软件定义网络:software defined network,软件定义网络(software defined network,sdn)是由美国斯坦福大学clean-slate课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术openflow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。[0044]p4可编程数据平面(使用该语言的可编程路由节点为p4交换节点):programming protocol-independent packet processors,programming protocol-independent packet processors(p4)是一种用于网络设备的域特定语言,指定数据平面设备(交换机、nic、路由器、过滤器等)如何处理数据包。[0045]onos开放网络操作系统(使用该系统的网络控制器为onos网络控制器):opennetwork operating system,onos为软件定义网络(sdn)提供控制平面,管理网络组件,例如交换机和链路,并运行软件程序或模块以向终端主机和相邻网络提供通信服务。[0046]智融标识网络:是一种新型网络体系架构,由北京交通大学张宏科院士提出,其前身为标识网络和智慧标识网络。[0047]本发明有益效果:在同种网络层协议节点负载较低时将流量按比例分配至同种网络层协议节点,避免了跨协议均衡的操作,减少了跨协议处理的开销;而在同种网络层协议节点负载高时,可以将流量引入非同种网络协议的节点下,从而充分地利用异构网络下每一种网络协议的交换节点,使网络运行更加高效稳定,提升了网络性能。[0048]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明[0049]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0050]图1为本发明实施例所述的跨协议负载均衡方法流程示意图。[0051]图2为本发明实施例所述的跨协议负载均衡系统功能原理框图。[0052]图3为本发明实施例所述的网络状态收集模块功能原理框图。[0053]图4为本发明实施例所述的int网络遥测数据包格式示意图。[0054]图5为本发明实施例所述的网络状态收集模块工作流程图。[0055]图6为本发明实施例所述的跨协议负载均衡决策算法原理示意图。[0056]图7为本发明实施例所述的流表策略下发模块流程示意图。具体实施方式[0057]下面详细叙述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。[0058]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。[0059]还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。[0060]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件和/或它们的组。[0061]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。[0062]为便于理解本发明,下面结合附图以具体实施例对本发明作进一步解释说明,且具体实施例并不构成对本发明实施例的限定。[0063]本领域技术人员应该理解,附图只是实施例的示意图,附图中的部件并不一定是实施本发明所必须的。[0064]实施例1[0065]本实施例1提供了一种跨协议负载均衡系统,该系统包括:[0066]网络状态收集模块,用于在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;[0067]负载均衡决策模块,用于对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0068]流表决策下发模块,用于将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0069]本实施例1中,利用上述的跨协议负载均衡系统,实现了一种跨协议负载均衡方法,包括:[0070]使用网络状态收集模块在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;其中,所述状态信息包括转发节点标号、出端口标号、节点处理时延、节点入包时队列长度、节点出包时队列长度等。[0071]利用负载均衡决策模块对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0072]使用流表决策下发模块将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0073]在负载均衡决策模块中,基于时序差分强化学习的跨协议负载均衡算法进行转发动作价值矩阵的收敛及计算,根据得到的转发动作价值矩阵,并依照价值量的大小选出价值量最大的一个或多个候选均衡路径,并将候选路径及其价值量比例生成负载均衡决策。[0074]根据价值矩阵选取最优均衡路径,包括:[0075]从int数据库中获取交换设备的协议栈信息、负载信息;[0076]初始化价值矩阵为数据包随机选取所处交换机位置,并随机选取下一跳位置进行发包;[0077]每隔一定时间调用时序差分强化学习算法,比较转发设备协议栈与数据包网络协议是否兼容,并结合int节点状态根据奖励函数更新奖励矩阵;其中,在时序差分强化学习算法中随机选择数据包位置,进行多次离线学习,完善价值矩阵;[0078]根据价值矩阵,依照noisy-greedy策略,选择若干个最优转发路径进行轮询发包,在到达目的终端的途中,根据实时的负载值,更新奖励矩阵,并更新价值矩阵,直至价值矩阵收敛,即可根据价值矩阵选取最优均衡路径。[0079]所述奖励函数为:[0080][0081]其中,a表示转发设备协议栈与数据包协议匹配程度对于奖励函数的影响程度;b表示转发设备协议栈与数据包协议负载程度对于奖励函数的影响程度;cij表示转发设备协议栈与数据包网络层协议的比较值,相同为0,不同为1;ti表示转发后所处节点的处理时延;tmin表示人为设置的节点处理时延最小值;tmax表示人为设置的节点处理时延最大值;li表示转发后所处节点的队列长度;lmin表示人为设置的节点队列长度最小值;lmax表示人为设置的节点队列长度最大值;bi表示转发后所处节点的剩余带宽;bmin表示人为设置的节点剩余带宽最小值;bmax表示人为设置的节点剩余带宽最大值;α、β、γ分别表示处理时延、队列深度、剩余带宽对奖励值的影响比重,其根据需求人为设定;分别表示ti、li、bi的归一化。[0082]将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点,包括:[0083]p4代码通过p4编译器前端生成p4info与p4中间码文件;[0084]将负载均衡决策模块所得到的流表决策写入java程序中,为pipeconf应用提供支持;[0085]利用java所编写的onos应用程序,结合p4.json文件以及onos控制器所收集的拓扑信息等资源,编译pipeconf应用至onos控制器;[0086]onos控制器根据pipeconf应用,把相应的p4程序及相应的流表,通过packet_out下发安装到的可编程转发设备上;[0087]转发设备根据p4程序及流表进行负载均衡的转发。[0088]其中,在p4数据平面可编程中,若数据包需要进行跨协议转发,则将数据包通过隧道或协议转换的方式,进行跨协议操作,发向不同协议栈的转发设备。[0089]综上,本实施例1中提供的跨协议负载均衡系统及方法,在异构网络场景下,实现区分协议或跨协议的负载均衡。基于sdn架构,考虑网络中链路及节点的实时状态,并通过p4-based int,将收集链路实时状态,并利用model-free的强化学习算法实现跨网络层协议的负载均衡,以实现当负载较低时将流量按强化学习所生成的价值比例分配至同种网络层协议节点,避免了跨协议均衡的操作,减少了跨协议处理带来的开销;而在同种网络层协议节点负载高时,可以进行跨协议操作将流量引入非同种网络协议的节点下,从而充分地利用异构网络下每一种网络协议的交换节点,使网络运行更加高效稳定,提高网络性能。[0090]实施例2[0091]本实施例2中,针对当前负载均衡方案只针对单一网络层协议而进行局部的单协议负载均衡,而并未考虑异构网络下多种网络层协议如ipv4、ipv6、标识网络共存的情景,从而导致流量只能均衡至同种网络层协议设备上,而无法跨协议均衡至不同种网络层协议设备上,而出现的网络中网络设备未充分利用的问题,提出一种跨协议负载均衡系统及方法,以实现负载较低时进行区分协议的负载均衡,将流量按强化学习所生成的价值比例分配至同种网络层协议节点,避免了跨协议操作,减少了跨协议开销,而在同种网络层协议节点负载高时,可以将流量引入非同种网络协议的节点下,从而充分地利用异构网络下每一种网络协议的交换节点,使网络运行更加高效稳定。[0092]如图1所示,本实施例2中,负载均衡方法采用sdn新型网络架构,区别于传统网络架构,sdn新型网络架构将传统耦合的数据平面与控制平面相解耦,为用户开放了控制平面编程能力,以中央控制的方式用程序重新规划网络,为控制网络流量提供了新方案。[0093]本实施例2中,在数据平面采用p4语言对网络节点进行编程,进一步开放了数据平面编程能力,解放了转发设备的数据转发平面,让网络中的数据包的解析和转发等流程可以通过编程控制,使得网络中所有的设备真正地可编程化,并且完全对用户开放。[0094]其中programming protocol-independent packet processors(p4)是一种用于网络设备的域特定语言,指定数据平面设备(交换机、nic、路由器、过滤器等)如何处理数据包。控制平面采用onos控制平面控制器对数据平面进行灵活的配置与实时的控制。[0095]如图2所示,本实施例2中,负载均衡系统主要分为三个子模块,分别为网络状态收集模块、负载均衡决策模块、流表决策下发模块。[0096]其中,数据平面的网络状态收集模块在收集到int链路状态信息后,将int信息发向int监控服务器,int监控服务器通过int监控服务器以及scapy交互式数据包处理程序数据转发给负载均衡决策模块,在计算出负载均衡决策后,将决策的结果发向控制器层面的流表决策下发模块,流表决策下发模块下发流表给数据平面的转发设备。[0097]各模块功能具体如下:[0098]①网络状态收集模块的主要功能为在不发送主动探测探针的情况下,以最小的开销收集到网络中每一个节点的状态信息,包括转发节点标号、出端口标号、节点处理时延、节点入包时队列长度、节点出包时队列长度等,通过此模块信息的收集,为负载均衡决策提供数据支撑。[0099]②负载均衡决策模块通过对网络状态收集模块所收集得到的数据进行处理,将其作为原料进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器。[0100]③流表决策下发模块负责将负载均衡决策模块所得到的最佳决策,从网络控制器对应的发送给每一个可编程路由节点。[0101]可编程路由节点作为数据平面节点进一步对决策进行处理,来判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0102]如图3所示,网络状态收集模块的作用在于收集异构核心网中转发节点的网络状态信息,这些网络状态信息包括转发节点标号、转发节点协议栈标识等固定的节点信息,也包括数据包出端口号、包处理时延、流经此转发节点的字节数、转发节点队列信息等转发节点负载信息。[0103]在收集到上述信息之后,会将状态信息以数据包的形式经由int监控服务器发送至负载均衡决策模块,以支持后续的跨协议负载均衡决策。[0104]该模块利用基于p4的int技术思想,其中int意为in-band network telemetry,即带内遥测,此技术通过无需控制平面参与的思想,对数据平面进行监控并进行每个节点的状态收集,由于无需控制平面参与,减少了数据与控制的通信开销,使其十分高效。[0105]本实施例2中,将int header以及int data以报文头部的形式封装至原始报文中ipv4头部之后,并在传统int的基础上,对int header以及int data的结构进行了优化,使得int状态数据收集在随包传输的过程中的网络传输开销进一步减小,具体见下表1所示:[0106]表1[0107][0108]其中int头部的数据结构如图4所示,如图5所示,网络状态收集模块的工作流程为:[0109]①源交换节点(src)时,将本来要发送的数据包进行镜像处理,并将int头部插入此包,根据具体的遥测需求将int遥测信息封装成元数据(md),如将报文入端口port id、出端口port id、入端口时间、出端口时间、以及设备的device id封装成metadata,并将元数据插入到int头部之后。[0110]②报文转发至中间交换节点(trans)时,根据报文中int头部信息进行匹配,若成功匹配,则将此交换节点的状态信息封装至上一个int数据之后。[0111]③数据包转发至最后一个转发节点时(sink),设备匹配int头部,若匹配成功,则再插入本节点的int元数据。并且再报文的外部再封装一层ip头,此ip层的地址为负责监控处理int数据的服务器地址,这样可以将报文中的int信息取出并发送至int数据服务器。[0112]④服务器根据int数据可进行按需处理。[0113]本实施例2中,跨协议负载均衡决策模块主要负责将节点网络状态收集模块所收集到的节点负载信息进行处理,并通过基于时序差分强化学习的跨协议负载均衡算法进行转发动作价值矩阵的收敛及计算,根据得到的转发动作价值矩阵,并依照价值量的大小选出价值量最大的一个或多个候选均衡路径,并将候选路径及其价值量比例生成跨协议负载均衡决策,并根据比例进行多端口的轮询转发,最终实现跨协议的负载均衡。[0114]其中强化学习中的奖励函数中加入了协议对比的因素,这样的设计使本发明可以负载较低时进行区分协议的负载均衡,避免了跨协议操作,减少了跨协议操作的开销,而在同种网络层协议节点负载高时,可以进行跨协议操作将流量引入非同种网络协议的节点下,从而充分地利用异构网络下每一种网络协议的交换节点,使网络运行更加高效稳定,提高网络性能。[0115]如图6所示,本实施例2中,在负载均衡决策模块中将异构场景下的跨协议负载均衡问题抽象为mdp问题,在此问题基础上利用一种的model-free强化学习的方法进行求解,即onos控制器为数据包转发下达决策,这个动作决策影响到了当前网络环境,网络环境再向onos控制器反馈动作决策的优劣以及将环境中的状态进行更新,循环上述流程,使得onos熟知网络环境,并可以根据环境做出最优的转发决策。并在强化学习的基础上优化了奖励函数等公式中的参数和指标。具体抽象过程及模块具体流程如下:[0116]①转发问题抽象化:[0117]在sdn架构中,控制器可以获取来自数据平面中网络节点中的状态信息,并通过流表的形式提供给数据平面中如可编程交换机转发节点。根据上述场景,本实施例中将异构场景下的跨协议负载均衡问题抽象为mdp(markov decisionprocess)问题。mdp问题主要基于未来只取决与当前这一假设,即未来所会发生的变化与过去没有关系,只与眼前的状态有关。如公式所示:[0118]p(st+1|st)=p(st+1|st,st-1,...,s1,s0);其中,p(·)表示概率;st表示智能体之前所处的状态为st。[0119]并将此问题中数据包所处的节点位置抽象为mdp中的s(state);将sdn控制器在收集到足够的网络状态后,可以预测并指导之后的转发动作这一过程抽象为mdp中的a(action);将收到数据包之后的节点状态,包括交换机队列深度、处理时延等抽象为r(reward),并将此状态发送给负载均衡决策单元,用以评价这次转发动作的好坏,如交换机队列深度、处理时延较低,会使得r比较高,意味着这一次的转发动作较为理想。[0120]其中onos控制器作为负载决策单元,在强化学习中担任智能体(agent)的角色,用来决策使用哪一种a(action)、接收由于动作而产生的反馈并计算奖励r(reward)、并根据奖励反馈和新状态下的最高动作价值计算最优决策。问题的抽象结果如下表2所示:[0121]表2[0122][0123][0124]本实施例2中,sdn控制器(agent)为数据平面下达随机的转发包的转发策略,通过转发这一动作得到动作是好还是坏的反馈。如转发到的节点及链路网络层协议与数据本身的网络层协议不相匹配,或转发到的节点的负载很高,则sdn控制器(agent)所下达的动作的奖励很低,反之,奖励值很高。通过以上的方式完善奖励体系,将每个转发节点的价值收敛,并结合智能体实时获得的奖励,将数据包按比例轮询转发到多个最优的路径。[0125]②负载均衡决策模块具体流程[0126]根据针对负载均衡转发问题的抽象化,本实施例2中将sdn控制器抽象为智能体(agent),将决策后的转发动作抽象为动作(action)。将整体网络环境及其其中节点抽象为环境(environment)。每进行一个动作,智能体会更新状态且环境会给予智能体反馈以计算奖励根据奖励以及新状态下的最高动作价值,计算每个状态下每个动作的价值,并形成价值表,之后不断进行转发操作,更新价值表,直至收敛。需要注意的是,如果在上述收敛过程中,遇到转发设备协议栈与数据包网络层协议不匹配的情况,需要对数据包进行跨协议操作从而转发。[0127]其中奖励函数的设置为:[0128][0129]其中,cij表示转发设备协议栈与数据包网络层协议的比较值,相同为0,不同为1;ti表示转发后所处节点的处理时延;tmin表示人为设置的节点处理时延最小值;tmax表示人为设置的节点处理时延最大值;li表示转发后所处节点的队列长度;lmin表示人为设置的节点队列长度最小值;lmax表示人为设置的节点队列长度最大值;bi表示转发后所处节点的剩余带宽;bmin表示人为设置的节点剩余带宽最小值;bmax表示人为设置的节点剩余带宽最大值;α、β、γ分别表示处理时延、队列深度、剩余带宽对奖励值的影响比重,其根据需求人为设定;分别表示ti、li、bi的归一化。[0130]a表示转发设备协议栈与数据包协议匹配程度对于奖励函数的影响程度;b表示转发设备协议栈与数据包协议负载程度对于奖励函数的影响程度。其关系推导如下:[0131]假设转发至与数据包协议相匹配的转发设备的处理时延为队列长度为剩余带宽为转发至与数据包协议不相匹配的转发设备的处理时延为φt,队列长度为φl,剩余带宽为φb。[0132]当时为临界状态,即转发至与数据包协议相匹配的转发节点的奖励值和转发至与数据包协议不相匹配的转发节点的奖励值rewardφ相同。其中xt、xl、xb分别为两种转发情况下处理时延、队列长度以及剩余带宽的差值。若差值进一步增大,则会发生跨协议转发的可能。通过上述描述可以得到下式:[0133][0134]通过化简可得出:[0135][0136]其中等式右侧均为人为设置的常参数,通过改变其取值以及a的取值,即可确定a与b的具体取值。[0137]在计算出价值矩阵后,需要计算价值量v,用以确定某一时刻t,采取动作a的情况下,状态s的价值量,并使其作为决策的衡量标准。价值量更新函数为:[0138]vm(st|a)=va(si|a)+α[rewardt+1+δmaxava(st+1|a)-va(st|a)][0139]其中,va(st|a)为处于st时进行a动作所获得的价值量;rewardt+1是st向st+1转变所获得的奖励值;δ为学习率;maxava(st+1|a)表示处于st+1时所能获得的最高动作价值量。上述公式基于强化学习中时序差分公式td(0),其目的是更新va(st|a)值,也即估算a转发动作的价值量,而此时节点还有其余动作,也需进行更新,然后从中找出最高价值量来代表此节点的价值量,之后根据节点价值量进行转发。[0140]本实施例2中负载均衡决策模块的流程为:[0141]a、从int数据库中获取交换设备的协议栈信息、负载信息。[0142]b、初始化价值矩阵为数据包随机选取所处交换机位置,并随机选取下一跳位置进行发包。[0143]c、每隔一秒调用算法,比较转发设备协议栈与数据包网络协议是否兼容,并结合实时的int节点状态根据奖励函数更新奖励矩阵。[0144]d、在c的基础上在算法中随机选择数据包位置,进行数十次离线学习,完善价值矩阵。[0145]e、根据此时的价值矩阵,依照noisy-greedy策略,选择若干个最优转发路径进行轮询发包,在其到达目的终端的途中,根据实时的负载值,更新奖励矩阵,并更新价值矩阵。[0146]f、重复c至e过程,直至价值矩阵收敛。即可根据价值矩阵选取最优均衡路径进行后续均衡操作。[0147]如图7所示,本实施例2中,负载均衡决策下发模块主要负责把负载均衡决策,包括数据包的转发出端口、是否进行跨协议操作等信息,通过以流表的方式下发给数据平面的转发节点。[0148]由于本实施例2中选用sdn架构,控制平面采用onos控制器,数据平面采用p4数据平面可编程语言进行配置。流表决策下发模块其具体步骤如下:[0149]①p4代码通过p4编译器前端生成p4info与p4中间码文件。p4info与p4中间码文件一起作用于p4编译器后端。生成p4.json或bin文件。其中json配置文件主要作用于bmv2可编程转发节点。bin配置文件主要作用于tofino可编程转发节点。[0150]②将负载均衡决策模块所得到的流表决策写入java程序中,为pipeconf应用提供支持。[0151]③利用java所编写的onos应用程序,结合p4.json文件以及onos控制器所收集的拓扑信息等资源,编译pipeconf应用至onos控制器。[0152]④控制器根据pipeconf应用,把相应的p4程序及相应的流表,通过packet_out下发安装到的可编程转发设备上。[0153]⑤转发设备根据p4程序及流表进行负载均衡的转发。并在p4数据平面可编程中加入跨协议逻辑,若数据包需要进行跨协议转发,则将数据包通过隧道或协议转换的方式,进行跨协议操作,发向不同协议栈的转发设备。[0154]实施例3[0155]本发明实施例3提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器相互通信,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令执行跨协议负载均衡方法,该方法包括如下流程步骤:[0156]在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;[0157]对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0158]将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0159]实施例4[0160]本发明实施例4提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现跨协议负载均衡方法,该方法包括如下流程步骤:[0161]在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;[0162]对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0163]将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0164]实施例5[0165]本发明实施例5提供一种计算机设备,包括存储器和处理器,所述处理器和所述存储器相互通信,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令执行跨协议负载均衡方法,该方法包括如下步骤:[0166]在不发送主动探测探针的情况下,收集网络中每一个节点的状态信息;[0167]对收集的状态信息进行针对跨协议负载均衡的强化学习算法运算,并将算法得到的结果映射为负载均衡决策,并发送给网络控制器;[0168]将负载均衡决策从网络控制器对应的发送给每一个可编程路由节点;其中,可编程路由节点作为数据平面节点对负载均衡决策进行处理,判断是否需要跨协议操作,根据判断的结果,对应的生成节点转发策略,完成跨协议的负载均衡。[0169]综上所述,本发明实施例所述的基于异构核心网的跨协议负载均衡方法几系统,能够在当负载较低时,将网络流量均衡的分配至与数据包协议相匹配的转发节点中,而无需将数据包协议转换,省去跨协议处理开销。当负载较高时,能够做出将网络流量均衡至与数据包协议不相匹配的转发节点上的决策,从而充分利用每一个节点的转发资源。交换节点具备跨协议功能,能够在跨协议负载均衡的决策部署下,将数据包的协议进行转换,并进行转发。当转发设备的功能需要更新时,能够通过编程,快速并且低成本的进行功能的更新,并再次成功部署。能够将网络中的节点状态,以随包的形式进行收集,并发送至sdn中的控制与应用平面。并且在此信息采集过程中,无需控制平面参与,尽最大限度减小采集开销。[0170]其中,数据平面转发节点配置有p4数据平面可编程语言,能够按需定义数据包处理逻辑。数据平面转发节点配置有p4数据平面可编程语言,并配置int功能,能够随着数据包的转发过程进行节点网络状态的收集。数据平面转发节点配置有p4数据平面可编程语言,并配置协议转换功能,能够使数据包通过隧道等方式,将自身的网络层协议转换为其他网络层协议并进行转发。[0171]sdn应用层中的跨协议负载均衡应用搭载着model-free的强化学习算法,能够根据数据平面所收集到的int网络状态计算出最好的几条转发路径。sdn应用层中的跨协议负载均衡应用具有连接mysql数据库的功能,并可以将决策定时写入数据库。用以记录跨协议负载均衡决策。sdn应用层中的跨协议负载均衡应用具有将决策写入网络控制器配置文件的功能。sdn网络控制器具有读取配置文件中配置信息的功能。sdn网络控制器可以根据跨协议负载均衡,生成相应流表,并将流表下发至数据平面的可编程交换节点。[0172]通过本发明实施例所述的负载均衡方法,在异构网络场景,如标识网络、ipv4、ipv6等多种网络层协议共存的场景下,本发明方法所述数据交换节点会在传统的负载均衡方案的基础上,进行跨协议的操作。如当a网络层协议数据包接入至本发明方法所述入口转发节点,本发明方法所述节点会将此数据包尽可能的发送至a网络层协议的交换节点上,若所有a网络层协议的交换节点的负载都非常高,本发明方法所述节点会将此数据包进行跨协议的操作,而使其适配b类网络层协议,从而可以从b类网络层协议的交换节点进行转发。在同种网络层协议节点负载较低时避免了跨协议均衡的操作,减少了无用的开销,而在同种网络层协议节点负载高时,可以将流量引入非同种网络协议的节点下,从而充分地利用异构网络下每一种网络协议的交换节点,使网络运行更加高效稳定。且由于使用p4语言对交换节点进行配置,所以本发明方法具有重复配置性、平台无关性、协议无关性这三点特性。可重复配置性:使用者可以在不进行硬件更换的前提下灵活的堆数据平面处理行为进行定义。通过使用者对数据平面节点的不同转发需求,可以对p4代码做出更改,而无须更换设备和等待新设备开发。即支持转发逻辑代码经过编译部署到具体平台上之后动态修改报文的处理方式。协议无关性:指p4代码不与某些特定的网络协议进行绑定。可以使交换节点按需的进行网络协议的使用,将设备资源的使用率充分利用。平台无关性:开发人员可以独立于特定的底层运行平台来编写数据报文处理逻辑。代码能够通过设备相关的后端编译器快速地在硬件交换机、fpga、smartnic、软件交换机等不同平台之间移植,减轻了开发人员的负担,提高了开发效率。[0173]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0174]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0175]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0176]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0177]上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明公开的技术方案的基础上,本领域技术人员在不需要付出创造性劳动即可做出的各种修改或变形,都应涵盖在本发明的保护范围之内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
跨协议负载均衡方法及系统
作者:admin
2022-08-23 18:07:36
289
关键词:
电子通信装置的制造及其应用技术
专利技术
- 下一篇: 用于计算机的高端外设硬件安装展示装置的制作方法
- 上一篇: 一种智能化定时水龙头的制作方法