CN112383482B - 基于数据平面的动态q值路由计算方法及装置 - Google Patents
基于数据平面的动态q值路由计算方法及装置 Download PDFInfo
- Publication number
- CN112383482B CN112383482B CN202011282235.6A CN202011282235A CN112383482B CN 112383482 B CN112383482 B CN 112383482B CN 202011282235 A CN202011282235 A CN 202011282235A CN 112383482 B CN112383482 B CN 112383482B
- Authority
- CN
- China
- Prior art keywords
- data packet
- switch
- value
- packet
- port
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
Abstract
本发明提供了一种基于数据平面的动态Q值路由计算方法及装置,涉及通信的技术领域,包括:先获取本交换机上用于与其他交换机相连的端口;然后在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;最后基于数据包类型和应用在数据平面上的Q‑learning算法,更新本交换机的Q值。本发明中的Q‑learning算法可以通过与网络环境的不断交互从而学***面是可编程数据平面,可以实现在数据平面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种基于数据平面的动态Q值路由计算方法及装置。
背景技术
OSPF(Open Shortest Path First,开放的最短路径优先协议)是一种基于IP协议的路由协议,也是大中型网络上使用较为广泛的IGP(Interior Gateway Protocol,内部网关协议)协议。当前路由协议(如OSPF)运行于控制平面,当面对高动态性网络时,频繁的路由更新和链路状态改变会对控制平面的处理造成非常大的压力。并且现有的最短路径算法,如Dijkstra算法,Bellman-Ford算法,以带宽和跳数进行路由的选择和收敛,收敛速度慢,且无法对网络拥塞状态进行及时的响应。
发明内容
本发明的目的在于提供一种基于数据平面的动态Q值路由计算方法及装置,以缓解了现有技术中存在的频繁的路由更新和链路状态改变会对控制平面的处理造成非常大的压力,以及现有的最短路径算法收敛速度慢,且无法对网络拥塞状态进行及时的响应的技术问题。
第一方面,本发明提供的一种基于数据平面的动态Q值路由计算方法,其中,包括:获取本交换机上用于与其他交换机相连的端口;在所述本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
进一步的,所述相邻端包括:源主机、上一跳交换机和下一跳交换机;收到相邻端发送的数据包,并确定数据包类型,包括:当所述相邻端为源主机时,所述数据包为正常IP数据包;当所述相邻端为上一跳交换机时,所述数据包为Q数据包;当所述相邻端为下一跳交换机时,所述数据包为Clone数据包;将所述正常IP数据包、所述Q数据包或所述Clone数据包确定为数据包类型。
进一步的,在收到相邻端发送的数据包,并确定数据包类型之后,方法还包括:当所述数据包类型为所述正常IP数据包时,为所述正常IP数据包添加包头,生成Q数据包。
进一步的,基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:当所述数据包类型为所述Q数据包时,判断所述本交换机与目的主机是否直接相连;若否,则基于所述Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
进一步的,基于所述Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:判断位于所述本交换机上的packet_count计数器的数值是否小于预设阈值;若是,则按照预设端口选择规则从所述端口中选取目标端口,并通过所述目标端口将所述Q数据包发送至所述下一跳交换机,以使所述下一跳交换机返回Q值;根据所述下一跳交换机返回的Q值和Q值更新公式,更新本交换机中目标端口的Q值;若位于所述本交换机上的packet_count计数器的数值不小于预设阈值,则读取位于所述本交换机上的q_value寄存器,并将所述Q数据包通过q_value值最小的端口发送至下一跳交换机,以使所述下一跳交换机返回包含Q值的Clone数据包;根据所述下一跳交换机返回的Clone数据包中的Q值和Q值更新公式,更新本交换机中目标端口的Q值。
进一步的,在判断所述本交换机与目的主机是否直接相连之后,方法还包括:若所述本交换机与所述目的主机直接相连,则删除所述Q数据包中添加的包头,得到复原的正常IP数据包。
进一步的,方法还包括:当所述数据包类型为Clone数据包时,根据所述Clone数据包中的信息对本交换机的Q值进行更新。
第二方面,本发明提供的一种基于数据平面的动态Q值路由计算装置,其中,包括:获取单元,用于获取本交换机上用于与其他交换机相连的端口;确定单元,用于在所述本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;更新单元,用于基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
第三方面,本发明还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现的所述的基于数据平面的动态Q值路由计算方法的步骤。
第四方面,本发明还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行所述的基于数据平面的动态Q值路由计算方法。
本发明提供的一种基于数据平面的动态Q值路由计算方法及装置,先获取本交换机上用于与其他交换机相连的端口;然后在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;最后基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。一方面,本发明中的Q-learning算法可以通过与网络环境的不断交互从而学***面是可编程数据平面,可以实现在数据平面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于数据平面的动态Q值路由计算方法的流程图;
图2为基于数据平面的动态路由算法计算Q值的流程图;
图3为图1中步骤S103的流程图;
图4为数据包的格式以及数据包的发送过程;
图5为本发明实施例中的算法在简单拓扑情况下的收敛效果图;
图6为本发明实施例中的算法在复杂拓扑情况下的收敛效果图;
图7为本发明实施例提供的一种基于数据平面的动态Q值路由计算装置的结构示意图。
图标:
11-获取单元;12-确定单元;13-更新单元。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
OSPF是一种基于IP协议的路由协议,它是大中型网络上使用较为广泛的IGP协议。OSPF是对链路状态路由协议的一种实现,运作于自治***内部。OSPF协议路由的计算过程可简单描述如下:1.建立邻接关系,过程如下:本端设备通过接口向外发送Hello报文与对端设备建立邻居关系,两端设备进行主/从关系协商和DD报文交换,两端设备通过更新LSA完成链路数据库LSDB的同步。此时,邻接关系建立成功;2.路由计算,OSPF采用SPF(Shortest Path First,最短路径优先)算法计算路由,可以达到路由快速收敛的目的。目前通用的最短路径计算方法主要为Dijkstra算法,Bellman-Ford算法。这两种算法都是运行在控制平面上的算法。其中,以Dijkstra算法为例,设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径,就将加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。现有的最短路径算法,如Dijkstra算法,Bellman-Ford算法,是以带宽和跳数进行路由的选择和收敛,收敛速度慢,且无法对网络拥塞状态进行及时的响应。该种算法常常会造成最短路径中数据包的大量拥塞,而其他路径非常空闲,使得网络利用率低,极易造成最短路径上的拥塞甚至丢包发生。
综上所述,本申请所要解决的技术问题是:1、当前路由协议(如OSPF等)运行于控制平面,当面对高动态性网络时,频繁的路由更新和链路状态改变会对控制平面的处理造成非常大的压力;2、当前路由协议对网络状态的感知不足,只能基于带宽和跳数进行路由的选择和收敛,无法及时响应网络拥塞状态。
基于此,本发明的目的在于提供一种基于数据平面的动态Q值路由计算方法及装置,可以与网络环境的不断交互从而学***面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于数据平面的动态Q值路由计算方法进行详细描述。
实施例1:
根据本发明实施例,提供了一种基于数据平面的动态Q值路由计算方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例提供的一种基于数据平面的动态Q值路由计算方法的流程图。如图1所示,该方法包括如下步骤:
步骤S101,获取本交换机上用于与其他交换机相连的端口;
步骤S102,在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;
在本发明实施例中,相邻端包括:源主机、上一跳交换机和下一跳交换机;收到相邻端发送的数据包,并确定数据包类型,包括:当相邻端为源主机时,数据包为正常IP数据包;当相邻端为上一跳交换机时,数据包为Q数据包;当相邻端为下一跳交换机时,数据包为Clone数据包;将正常IP数据包、Q数据包或Clone数据包确定为数据包类型。
正常IP数据包是正常IP类型的数据包,是从源主机接收到的数据包,只有与源主机直接相连的交换机才有可能收到这种数据包,经过该交换机之后,正常IP类型的数据包就被转换成了一个Q数据包,简称为q_packet,q_packet还可以是从上一跳交换机中接到的数据包,Clone数据包(clone packet)是从下一跳交换机接收到的数据包,可以理解为,本交换机将数据包发送到下一跳交换机后,那么下一跳交换机会返回一个clone packet。
一般根据包头的内容对数据包类型进行判断,IP头部中有一个协议字段,当这个字段值为0x8F时,该数据包为q_packet,当这个字段值为0x91时,该数据包为clone packet(这只是一个自定协议,所以只要和现有的通用协议不冲突就行,例如0x92,0x93也是可以的)。
步骤S103,基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
本发明实施例提出的一种基于数据平面的动态Q值路由计算方法,采用了一种基于Q-learning的路由动态计算方法,其中,Q-learning是一种动态自适应的强化学习算法,该算法可以通过与网络环境的不断交互从而学习到最优路策略,相比于传统最短路径算法,Q-learning能够动态调整路由策略,实现对网络状态的最优响应。Q-learning算法通过如下公式(Q值更新公式)实现对最优策略的学习:
Qn+1(d,a)=αQn(d,a)+βQnext hop(d,a)+γ*delay*hops
其中,Q(d,a)表示当前路由器(即本交换机),在路由目的节点是d的情况下,选择egress port的动作的收益Q值(需要注意的是,强化学习就是通过该公式不断的学习真实Q值来获得最优策略);a表示Q-learning算法中的动作,在本算法中表现为选择一个端口将数据包发出,这个端口就是这个数据包的egress port;
Qn+1表示本交换机在n+1时刻的新Q值,Qn表示n时刻的旧Q值,Qnext hop为当前路由器的下一跳节点的目的地是d的情况下选择egress port对应的Q值。此外,delay表示当前节点到下一跳节点的时延,其计算方法为当前节点发出数据包到下一跳节点后,下一跳节点回传一个克隆数据包(即clone数据包),当源节点收到该回传数据包时,将往返时间除以2,也就是当前节点到下一跳节点的时延(包含链路时延和节点处理时延),hops表示这个数据包从源节点发出之后一共经过了多少跳,例如在源节点时,数据包的hops值为0,当从源节点发出到下一跳节点时,数据包的hops值为1,以此类推…其主要目的是为了防止环路;而α、β、γ均为超参数,用于调剂学习速率。
此外,本发明实施例还引入了可编程数据平面(简称为数据平面),通过可编程数据平面可以实现对数据包的灵活处理能力,实现了在数据平面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。需要注意的是,由于Q-learning算法复杂度十分低,所以可以将Q-learning算法迭代公式转化成简单的加减运算,从而直接部署在数据平面的pipeline结构中)。如图2所示,给出了基于数据平面的动态路由算法进行Q值计算的流程图。具体的,在本交换机启动并初始化之后(即图2中的初始化寄存器),有可能接收到三种类型的数据包,第一种是正常IP数据包,这种数据包没有打上q_routing的Header(定义为q_header),因此无法执行q_routing协议,本交换机此时进行的第一步就是给他加上q_header,此时这个数据包就成为了一个普通的q_packet。
本发明实施例提供的一种基于数据平面的动态Q值路由计算方法,先获取本交换机上用于与其他交换机相连的端口;然后在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;最后基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。一方面,本发明实施例中的Q-learning算法可以通过与网络环境的不断交互从而学***面是可编程数据平面,可以实现在数据平面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。
在一个可选的实施例中,如图2所示,在步骤S102收到相邻端发送的数据包,并确定数据包类型之后,方法还包括:
当数据包类型为正常IP数据包时,为正常IP数据包添加包头,生成Q数据包。
与数据包中有IP头部就能执行路由、有TCP头部就能建立TCP连接是一个道理,在本交换机中针对q_packet可以定义一系列的动作,当识别到这是一个q_packet时,就会执行相应的动作。
在一个可选的实施例中,如图3所示,基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:
步骤S201,当数据包类型为Q数据包时,判断本交换机与目的主机是否直接相连;
步骤S202,若否,则基于Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
在本发明实施例中,如图2所示,当本交换机接收到一个普通的q_packet时,首先需要判断这个数据包的目的主机是否与本交换机直接相连,假如不是直接相连,那么就执行q_routing的算法,在本发明实施例中,q_routing的算法可以指Q-learning算法。
在一个可选的实施例中,如图3所示,在步骤S201判断本交换机与目的主机是否直接相连之后,包括以下步骤:
步骤S203,若本交换机与目的主机直接相连,则删除Q数据包中添加的包头,得到复原的正常IP数据包。
也就是说,当目的主机与本交换机直接相连时,本交换机会取下数据包的q_header,将数据包恢复为原样,因此该协议对于发包收包的目的主机是透明的。
在一个可选的实施例中,步骤S202,基于Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:
步骤1:判断位于本交换机上的packet_count计数器的数值是否小于预设阈值;
在本发明实施例中,packet_count计数器可以指图2中的packet_count寄存器,其中packet_count寄存器和q_value寄存器是位于本路由交换机上的,也就是说,每一个交换机都有上述这两个寄存器。clone packet的作用是将本交换机的q_value通知给上一跳交换机,那么本交换机将数据包从egress port发出时,就需要将egress port所对应的q_value值存到clone packet中。
步骤2:若是,则按照预设端口选择规则从端口中选取目标端口,并通过目标端口将Q数据包发送至下一跳交换机,以使下一跳交换机返回Q值;
步骤3:根据下一跳交换机返回的Q值和Q值更新公式,更新本交换机中目标端口的Q值;
步骤4:若位于本交换机上的packet_count计数器的数值不小于预设阈值,则读取位于本交换机上的q_value寄存器,并将Q数据包通过q_value值最小的端口发送至下一跳交换机,以使所述下一跳交换机返回包含Q值的Clone数据包;
步骤5:根据下一跳交换机返回的Clone数据包中的Q值和Q值更新公式,更新本交换机中目标端口的Q值。
如果packet_count计数器小于预设阈值(图2中的预设阈值为8),那么就执行探索过程,即,顺序选择本交换机上的端口作为目标端口,将数据包从这个端口发出。其中,顺序选择本交换机上的端口的意思是,假如上一个数据包是从本交换机的1号端口发出,那么这个数据包就可以从本交换机的2号端口发出。如果packet_count计数器大于预设阈值,那么可以选择q_value值最小的端口,将这个数据包发出。本交换机在发出数据包之后,需要返回一个包含q_value值的数据包给上一跳交换机,这里的q_value值设定为发出端口(egress_port)所对应的q_value值,其中,发出端口是本交换机上的端口。这个数据包可以被标记为一个clone packet。标记为clone packet的目的是clone packet不是源主机发出的数据包,而是交换机产生的数据包,用于在交换机之间沟通Q值,标记为clone packet的原因是它的处理逻辑和普通数据包的处理逻辑不一样,详情参考图2。本发明实施例在收到q_packet之后,先判断目的主机与本交换机是否直接相连,若直接相连,则将数据包直接发送到目的主机上,否则进行packet count判断。
在一个可选的实施例中,如图2所示,方法还包括:当数据包类型为Clone数据包时,根据Clone数据包中的信息对本交换机的Q值进行更新。
数据包中的q_value值用于更新上一跳交换机的Q值,具体参见下述更新公式。Clone数据包中的信息包括:时间戳timestamp,跳数hops,Q值q_value值,这些信息均用于对本交换机的Q值进行更新。
当本交换机接收到一个clone packet时,可以根据clone packet中的上述信息进行更新。将Q值更新公式进行量化,量化后的Q值更新公式如下:
如图4所示,给出了数据包的格式以及数据包的发送过程。若S13为本交换机,那么S14向S13发送的就是一个clone packet。如图4可知,S13发送的q_packet包括:IP,Ts,Hop和UDP等,而S14发送的clone packet包含:IP,Ts,Hop+1,Q_value和UDP等。需要注意的是,上述IP和UDP在三种类型的数据包中都存在,然而Ts、Hop只有在q_packet和clone packet中存在。
举例说明:
图5给出了本发明实施例中的算法在简单拓扑情况下的收敛效果图;其中,纵坐标rtt表示Round trip time。通过图5可以看到,当拓扑较为简单(即,存在一条时延明显较短的路径)时,应用在数据平面上的Q-learning算法的收敛效果非常好,大约在不到100个数据包内就可以收敛。
图6给出了本发明实施例中的算法在复杂拓扑情况下的收敛效果图,通过图6可以看到,本实施例提供的算法大约在400个数据包内就可以收敛,且收敛之后两个节点间的时延非常稳定。
本发明实施例提供的基于数据平面的动态Q值路由计算方法具有以下优势:
(1)本发明实施例中的Q-learning算法完全运行于数据平面,是一种基于可编程数据平面的路由算法,不需要控制平面的参与,极大提高了网络响应速度;
(2)本发明实施例中的路由算法基于Q-learning的强化学习机制,在面对高动态性拓扑时仍能较好的收敛,同时能够及时响应网络中的拥塞情况等。
实施例2:
本发明实施例提供了一种基于数据平面的动态Q值路由计算装置,该基于数据平面的动态Q值路由计算装置主要用于执行实施例1上述内容所提供的基于数据平面的动态Q值路由计算方法,以下对本发明实施例提供的基于数据平面的动态Q值路由计算装置做具体介绍。
图7为本发明实施例提供的一种基于数据平面的动态Q值路由计算装置的结构示意图。如图7所示,该基于数据平面的动态Q值路由计算装置,主要包括:获取单元11,确定单元12和更新单元13,其中:
获取单元11,用于获取本交换机上用于与其他交换机相连的端口;
确定单元12,用于在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;
更新单元13,用于基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
本发明实施例提供的一种基于数据平面的动态Q值路由计算装置,先利用获取单元11获取本交换机上用于与其他交换机相连的端口;然后利用确定单元12在本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;最后利用更新单元13基于数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值。一方面,本发明实施例中的Q-learning算法可以通过与网络环境的不断交互从而学***面是可编程数据平面,可以实现在数据平面直接进行路由计算,避免了与控制平面的交互,提高了对网络状态的响应速度。
可选地,相邻端包括:源主机、上一跳交换机和下一跳交换机;确定单元12包括:当相邻端为源主机时,数据包为正常IP数据包;当相邻端为上一跳交换机时,数据包为Q数据包;当相邻端为下一跳交换机时,数据包为Clone数据包;将正常IP数据包、Q数据包或Clone数据包确定为数据包类型。
可选地,所述装置还包括添加单元,其中:
添加单元,用于当数据包类型为正常IP数据包时,为正常IP数据包添加包头,生成Q数据包。
可选地,更新单元包括:判断模块和更新模块,其中:
判断模块,用于当数据包类型为Q数据包时,判断本交换机与目的主机是否直接相连;
更新模块,用于若否,则基于Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
可选地,更新模块,用于判断位于本交换机上的packet_count计数器的数值是否小于预设阈值;若是,则按照预设端口选择规则从端口中选取目标端口,并通过目标端口将Q数据包发送至下一跳交换机,以使下一跳交换机返回Q值;根据下一跳交换机返回的Q值和Q值更新公式,更新本交换机中目标端口的Q值;若位于本交换机上的packet_count计数器的数值不小于预设阈值,则读取位于本交换机上的q_value寄存器,并将Q数据包通过q_value值最小的端口发送至下一跳交换机,以使下一跳交换机返回包含Q值的Clone数据包;根据下一跳交换机返回的Clone数据包中的Q值和Q值更新公式,更新本交换机中目标端口的Q值。
可选地,装置还包括删除单元、发送单元和确定单元,其中:
删除单元,用于若本交换机与目的主机直接相连,则删除Q数据包中添加的包头,得到复原的正常IP数据包。
可选地,更新单元,还用于:当数据包类型为Clone数据包时,根据Clone数据包中的信息对本交换机的Q值进行更新。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在一个可选的实施例中,本实施例还提供一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法实施例方法的步骤。
在一个可选的实施例中,本实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行上述方法实施例方法。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“相连”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本实施例的描述中,需要说明的是,术语“中”、“上”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本实施例的限制。
在本实施例所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于数据平面的动态Q值路由计算方法,其特征在于,包括:
获取本交换机上用于与其他交换机相连的端口;
在所述本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;
基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值;所述Q-learning算法的公式为:
Qn+1(d,a)=αQn(d,a)+βQnexthop(d,a)+γ*delay*hops
其中,Qn(d,a)表示所述本交换机在路由目的节点是d的情况下,选择egress port的动作的收益Q值,a表示所述Q-learning算法中的动作,在所述Q-learning算法中表现为选择一个端口将所述数据包发出,所述端口是所述数据包的egressport,Qn+1表示所述本交换机在n+1时刻的新Q值,Qn表示n时刻的旧Q值,Qnexthop为所述本交换机的下一跳节点的目的节点是d的情况下选择egress port对应的Q值,delay表示所述本交换机到下一跳节点的时延,hops表示所述数据包从源节点发出之后一共经过的总跳数,α、β、γ均为超参数,用于调剂学习速率;
所述相邻端包括:源主机、上一跳交换机和下一跳交换机;
收到相邻端发送的数据包,并确定数据包类型,包括:
当所述相邻端为源主机时,所述数据包为正常IP数据包;
当所述相邻端为上一跳交换机时,所述数据包为Q数据包;
当所述相邻端为下一跳交换机时,所述数据包为Clone数据包;
将所述正常IP数据包、所述Q数据包或所述Clone数据包确定为数据包类型。
2.根据权利要求1所述的方法,其特征在于,在收到相邻端发送的数据包,并确定数据包类型之后,还包括:
当所述数据包类型为所述正常IP数据包时,为所述正常IP数据包添加包头,生成Q数据包。
3.根据权利要求2所述的方法,其特征在于,基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:
当所述数据包类型为所述Q数据包时,判断所述本交换机与目的主机是否直接相连;
若否,则基于所述Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值。
4.根据权利要求3所述的方法,其特征在于,基于所述Q数据包和应用在数据平面上的Q-learning算法,更新本交换机的Q值,包括:
判断位于所述本交换机上的packet_count计数器的数值是否小于预设阈值;
若是,则按照预设端口选择规则从所述端口中选取目标端口,并通过所述目标端口将所述Q数据包发送至所述下一跳交换机,以使所述下一跳交换机返回Q值;
根据所述下一跳交换机返回的Q值和Q值更新公式,更新本交换机中目标端口的Q值;
若位于所述本交换机上的packet_count计数器的数值不小于预设阈值,则读取位于所述本交换机上的q_value寄存器,并将所述Q数据包通过q_value值最小的端口发送至下一跳交换机,以使所述下一跳交换机返回包含Q值的Clone数据包;
根据所述下一跳交换机返回的Clone数据包中的Q值和Q值更新公式,更新本交换机中目标端口的Q值。
5.根据权利要求3所述的方法,其特征在于,在判断所述本交换机与目的主机是否直接相连之后,还包括:
若所述本交换机与所述目的主机直接相连,则删除所述Q数据包中添加的包头,得到复原的正常IP数据包。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述数据包类型为Clone数据包时,根据所述Clone数据包中的信息对本交换机的Q值进行更新。
7.一种基于数据平面的动态Q值路由计算装置,其特征在于,包括:
获取单元,用于获取本交换机上用于与其他交换机相连的端口;
确定单元,用于在所述本交换机启动并初始化之后,收到相邻端发送的数据包,并确定数据包类型;
更新单元,用于基于所述数据包类型和应用在数据平面上的Q-learning算法,更新本交换机的Q值;所述Q-learning算法的公式为:
Qn+1(d,a)=αQn(d,a)+βQnexthop(d,a)+γ*delay*hops
其中,Qn(d,a)表示所述本交换机在路由目的节点是d的情况下,选择egress port的动作的收益Q值,a表示所述Q-learning算法中的动作,在所述Q-learning算法中表现为选择一个端口将所述数据包发出,所述端口是所述数据包的egressport,Qn+1表示所述本交换机在n+1时刻的新Q值,Qn表示n时刻的旧Q值,Qnexthop为所述本交换机的下一跳节点的目的节点是d的情况下选择egress port对应的Q值,delay表示所述本交换机到下一跳节点的时延,hops表示所述数据包从源节点发出之后一共经过的总跳数,α、β、γ均为超参数,用于调剂学习速率;
所述相邻端包括:源主机、上一跳交换机和下一跳交换机;
所述确定单元,包括:
当所述相邻端为源主机时,所述数据包为正常IP数据包;
当所述相邻端为上一跳交换机时,所述数据包为Q数据包;
当所述相邻端为下一跳交换机时,所述数据包为Clone数据包;
将所述正常IP数据包、所述Q数据包或所述Clone数据包确定为数据包类型。
8.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现如权利要求1至6任一项所述的方法。
9.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011282235.6A CN112383482B (zh) | 2020-11-16 | 2020-11-16 | 基于数据平面的动态q值路由计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011282235.6A CN112383482B (zh) | 2020-11-16 | 2020-11-16 | 基于数据平面的动态q值路由计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383482A CN112383482A (zh) | 2021-02-19 |
CN112383482B true CN112383482B (zh) | 2021-10-08 |
Family
ID=74585598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011282235.6A Active CN112383482B (zh) | 2020-11-16 | 2020-11-16 | 基于数据平面的动态q值路由计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383482B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713143A (zh) * | 2016-12-06 | 2017-05-24 | 天津理工大学 | 一种面向车联网的自适应可靠路由方法 |
CN108540384A (zh) * | 2018-04-13 | 2018-09-14 | 西安交通大学 | 软件定义网络中基于拥塞感知的智能重路由方法和装置 |
CN109901994A (zh) * | 2019-01-21 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 一种基于强化学习的测试脚本生成方法和装置 |
CN110768906A (zh) * | 2019-11-05 | 2020-02-07 | 重庆邮电大学 | 一种面向sdn网络基于q学习的节能路由方法 |
CN111065105A (zh) * | 2019-12-30 | 2020-04-24 | 电子科技大学 | 一种面向无人机网络切片的分布式智能路由方法 |
-
2020
- 2020-11-16 CN CN202011282235.6A patent/CN112383482B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713143A (zh) * | 2016-12-06 | 2017-05-24 | 天津理工大学 | 一种面向车联网的自适应可靠路由方法 |
CN108540384A (zh) * | 2018-04-13 | 2018-09-14 | 西安交通大学 | 软件定义网络中基于拥塞感知的智能重路由方法和装置 |
CN109901994A (zh) * | 2019-01-21 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 一种基于强化学习的测试脚本生成方法和装置 |
CN110768906A (zh) * | 2019-11-05 | 2020-02-07 | 重庆邮电大学 | 一种面向sdn网络基于q学习的节能路由方法 |
CN111065105A (zh) * | 2019-12-30 | 2020-04-24 | 电子科技大学 | 一种面向无人机网络切片的分布式智能路由方法 |
Non-Patent Citations (1)
Title |
---|
《Machine Learning Aided Load Balance Routing Scheme Considering Queue Utilization》;Haipeng Yao等;《IEEE》;20190831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112383482A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108781182B9 (zh) | 利用bgp协议的sdn控制器之间的通信方法和网元 | |
KR101956408B1 (ko) | 분할된 아키텍쳐 네트워크들에서 ospf의 구현 | |
US8792384B2 (en) | System and method for intelligently maintaining connectivity in a network environment | |
JP5644775B2 (ja) | 通信システムおよびトポロジー情報作成方法 | |
EP3065353A1 (en) | Symmetric routing enforcement | |
KR20010070255A (ko) | 패킷 기반의 데이터 네트워크에서 라우팅 정보를 교환하는방법 및 장치 | |
WO2012073409A1 (en) | Communication system, control device, communication method, and program | |
JP2015136168A (ja) | ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減 | |
CN103354988A (zh) | 用于计算穿过多个域的点对点标签交换路径的***和方法 | |
US8842517B2 (en) | System and method for maintaining connectivity in a single-hop network environment | |
US11095553B2 (en) | Method, apparatus and system for controlling routing information advertising | |
EP1757026A2 (en) | Method and apparatus for forwarding data in a data communications network | |
EP3598704A1 (en) | Method and apparatus for establishing domain-level topology and network system | |
EP3229393A1 (en) | Error code information transfer method, network device and communication system | |
KR20130087535A (ko) | 라우팅 정보의 룩헤드 계산 | |
JP5723334B2 (ja) | ネットワークトポロジの推定方法及びトポロジ推定装置 | |
CN111464440A (zh) | 一种通信方法及装置 | |
Nazumudeen et al. | Performance Analysis of Dynamic Routing Protocols Using Packet Tracer | |
CN112383482B (zh) | 基于数据平面的动态q值路由计算方法及装置 | |
CN111464441A (zh) | 一种通信方法及装置 | |
KR101913745B1 (ko) | 소프트웨어 정의 네트워크에서 데이터 평면 애플리케이션을 활용하여 전송 경로를 설정하는 장치 및 방법 | |
AU2004306884B2 (en) | Method and apparatus for generating routing information in a data communications network | |
Metz | At the core of IP networks: link-state routing protocols | |
Geng et al. | Dynamic distributed algorithm for computing multiple next-hops on a tree | |
CN116248627A (zh) | 通信方法及装置 |
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 |