CN112714061B - 路由方法和装置 - Google Patents
路由方法和装置 Download PDFInfo
- Publication number
- CN112714061B CN112714061B CN201911019137.0A CN201911019137A CN112714061B CN 112714061 B CN112714061 B CN 112714061B CN 201911019137 A CN201911019137 A CN 201911019137A CN 112714061 B CN112714061 B CN 112714061B
- Authority
- CN
- China
- Prior art keywords
- node
- value
- message
- next hop
- new
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000013598 vector Substances 0.000 claims abstract description 70
- 238000013528 artificial neural network Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
本申请提供一种路由方法和装置。本申请路由方法,包括:接收报文,所述报文包括报文标识,所述报文标识用于指示所述报文的目的地址;根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,所述第一特征向量和所述本节点对应;获取至少一个第二值,所述至少一个第二值和至少一个邻节点对应;将所述第一值分别和所述至少一个第二值比较确定下一跳节点;将所述报文发送给所述下一跳节点。本申请保证报文在连通网络条件下的无环可达,消除路由环路和黑洞的问题。
Description
技术领域
本申请涉及通信技术,尤其涉及一种路由方法和装置。
背景技术
用户通过网络访问互联网(Internet)资源,网络中的路由器之间基于路由协议发现邻居,再生成和维护路由表,沿途设备(路由器、交换机等)根据路由表转发报文,完成用户和服务器之间的数据交互。传统的路由技术主要包括内部网关协议(Interior GatewayProtocol,IGP)和边界网关协议(Border Gateway Protocol,BGP),这两种协议都基于最短路径规划路由,但这会导致网络负载不均衡的问题。流量工程(Traffic Engineering,TE)(例如多协议标签交换(Multi-Protocol Label Switching,MPLS)TE)在不进行硬件升级的情况下对现有网络资源进行合理调配和利用,并对网络流量提供带宽和服务质量(Qualityof Service,QoS)保证,解决网络中的流量拥塞和资源分配不均的问题。
软件定义网络(Software Defined Networking,SDN)分段路由(SegmentRouting,SR)是将SDN技术和SR技术结合起来,SDN中的控制平面负责集中汇总拓扑信息,集中算路,隧道下发,记录当前网络中所有转发设备资源状态等,SDN中的转发平面一方面收集网络拓扑信息,上报到控制平面,另一方面负责分配标签(节点标签、邻接标签等),并将分配的标签上报给控制平面。当控制平面规划好路径后,转发平面根据控制平面规划的路径转发报文。
相关技术提出一套基于机器学习的分布式路由方法图查询神经网路(GraphQueuing Neural Network,GQNN)技术,其具体思想是:基于图神经网络(Graph NeuralNetwork,GNN)迭代学习网络特征生成各网络节点的特征向量,将报文的标识(packet ID)和相应的特征向量输入神经网络输出该报文的出端口。
但是,上述GQNN技术中基于神经网络直接输出报文的出端口,可能导致部分报文在转发过程中出现环路、黑洞等不可预知的问题。
发明内容
本申请提供一种路由方法和装置,以保证报文在连通网络条件下的无环可达,消除路由环路和黑洞的问题。
第一方面,本申请提供一种路由方法,包括:
接收报文,所述报文包括报文标识,所述报文标识用于指示所述报文的目的地址;根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,所述第一特征向量和所述本节点对应;获取至少一个第二值,所述至少一个第二值和至少一个邻节点对应;将所述第一值分别和所述至少一个第二值比较确定下一跳节点;将所述报文发送给所述下一跳节点。
本申请通过得到网络节点和邻节点的参考值确定下一跳节点,可以保证报文在连通网络条件下的无环可达,消除路由环路和黑洞的问题。
在一种可能的实现方式中,所述将所述第一值分别和所述至少一个第二值比较确定下一跳节点,包括:将所述第一值分别和所述至少一个第二值进行比较;当存在第五值时,将所述第五值对应的邻节点加入下一跳可选节点集合,所述第五值为所述至少一个第二值中小于所述第一值者;当不存在所述第五值时,根据所述至少一个第二值中最大者确定新的第一值,并将所述新的第一值分别和所述至少一个第二值进行比较,所述新的第一值大于所述至少一个第二值中最大者;将第六值对应的邻节点加入所述下一跳可选节点集合,所述第六值为所述至少一个第二值中小于所述新的第一值者;根据所述下一跳可选节点集合确定所述下一跳节点。
本申请通过得到网络节点和邻节点的参考值确定下一跳节点集合,可以保证下一跳节点集合中存在第二值小于第一值的节点的邻节点,在连通网络条件下的无环可达,消除路由环路和黑洞的问题。
在一种可能的实现方式中,所述方法还包括:获取至少一个第四值,所述至少一个第四值和所述至少一个邻节点对应;所述根据所述下一跳可选节点集合确定所述下一跳节点,包括:将所述下一跳可选节点集合中对应所述至少一个第四值中最小者的邻节点确定为所述下一跳节点。
在一种可能的实现方式中,所述根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,包括:根据所述报文标识和所述第一特征向量通过第一神经网络计算得到所述第一值。
在一种可能的实现方式中,所述获取至少一个第二值,包括:根据所述报文标识和预先得到的第二特征向量通过第一神经网络计算得到第一邻节点的第二值,所述第一邻节点为所述至少一个邻节点中的任意一个,所述第二特征向量和所述第一邻节点对应。
本申请通过神经网络可以根据LR图论原理保障报文无环可达。
在一种可能的实现方式中,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;所述方法还包括:根据所述节点标识判断所述至少一个第一节点中是否包括第二节点,所述第二节点为所述本节点和所述至少一个邻节点中的任意一个;若所述至少一个第一节点中包括所述第二节点,则将所述第二节点的所述第一值替换为所述报文中的所述第二节点的第一值。
在一种可能的实现方式中,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;所述方法还包括:当根据所述至少一个第二值中最大者确定了新的第一值时,根据所述节点标识判断所述至少一个第一节点中是否包括所述本节点;若所述至少一个第一节点中包括所述本节点,则将所述报文中的所述本节点的第一值修改为所述新的第一值;若所述至少一个第一节点中不包括所述本节点,则在所述报文中添加所述本节点的节点标识和所述新的第一值。
在一种可能的实现方式中,所述方法还包括:当维护的第二特征向量发生变化时,根据变化后的第二特征向量通过第二神经网络计算所述第一特征向量,所述第二特征向量和第一邻节点对应,所述第一邻节点为所述至少一个邻节点中的任意一个。
第二方面,本申请提供一种路由装置,该装置具有实现上述第一方面中任一项所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的模块。
第三方面,本申请提供一种网络节点,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
可选的,该网络节点可以是路由器、交换机等,也可以是芯片。
第四方面,本申请提供一种计算机可读存储介质,包括指令,当其在计算机上执行时,使得所述计算机执行上述第一方面中任一项所述的方法。
第五方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面中任一项所述的方法。
附图说明
图1示例性的示出了本申请路由方法所适用的一个应用场景的示意图;
图2为本申请路由方法实施例的流程图;
图3-6示例性的示出了一个数据通信网络的示意图;
图7为本申请路由装置实施例的结构示意图;
图8为本申请提供的网络节点800的示意性结构图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
图1示例性的示出了本申请路由方法所适用的一个应用场景的示意图,如图1所示,本申请的应用场景可以运用到各种不同类型的数据通信网络中,例如,广域网、城域网、企业内部局域网、移动通信网络等。在网络中部署的网络节点,例如路由器、交换机等,均可以采用计算转发的方式转发报文。用户的终端设备通过网络访问内容分发网络(ContentDelivery Network,CDN)服务器,沿途要经过多个网络节点,这些网络节点均部署了神经导向路由(Neural Guided Routing,NGR)算法,收到报文的网络节点基于已经训练好的神经网络和链路翻转路由(Link Reversal Routing,LRR)算法确定下一跳节点,转发报文。
图2为本申请路由方法实施例的流程图,如图2所示,本实施例的方法的执行主体可以是图1所示应用场景中的任意一个网络节点。路由方法可以包括:
步骤201、接收报文。
该报文包括报文标识,报文标识用于指示报文的目的地址,报文标识例如可以是目的网络协议(Internet Protocol,IP)地址、五元组、虚拟专用网络(Virtual PrivateNetwork,VPN)标签等。
步骤202、根据报文标识和预先得到的第一特征向量得到本节点的第一值。
第一特征向量和网络节点对应,可以反映出网络节点的拓扑结构,该拓扑结构可以只表征和网络节点相关的拓扑信息,也可以表征全网的拓扑结构。另外,第一特征向量还可以包括例如端口队列状态、剩余带宽等信息,本申请对此不做具体限定。网络节点可以根据报文标识和第一特征向量通过第一神经网络计算得到第一值(例如Prime value)。本申请中第一神经网络可以在网络的控制器中集中式训练,训练成功后部署到网路节点中,也可以在各个网络节点中分布式训练。网络节点向第一神经网络输入报文标识和第一特征向量,第一神经网络输出第一值,该第一值可以根据链路翻转(Link Reversal,LR)图论原理保障报文无环可达。
需要说明的是,本申请中网络节点除第一神经网络外,还可以采用预先设置的计算公式、算法等得到上述第一值,对此不作具体限定。
步骤203、获取至少一个第二值。
至少一个第二值和至少一个邻节点对应。网络节点可以根据报文标识和预先得到的第二特征向量通过第一神经网络计算得到第一邻节点的第二值(例如Prime value),第一邻节点为至少一个邻节点中的任意一个,第二特征向量和第一邻节点对应。即网络节点可以将报文标识和某个邻节点的第二特征向量输入第一神经网络,第一神经网络输出该邻节点的第二值,该第二值同样可以根据LR图论原理保障报文无环可达。
需要说明的是,本申请中网络节点除第一神经网络外,还可以采用其他方法得到邻节点的第二值,例如,直接获取先前计算得到的第二值,或者采用预先设置的计算公式、算法等得到邻节点的第二值,对此不作具体限定。
步骤204、将第一值分别和至少一个第二值比较确定下一跳节点。
网络节点将第一值分别和至少一个第二值进行比较。
当存在第五值时,将第五值对应的邻节点加入下一跳可选节点集合,第五值为至少一个第二值中小于第一值者。即至少一个邻节点中,只有第二值小于第一值的节点才能入选下一跳节点的备选集合。
当不存在第五值时,根据至少一个第二值中最大者确定新的第一值,并将新的第一值分别和至少一个第二值进行比较,新的第一值大于至少一个第二值中最大者;将第六值对应的邻节点加入下一跳可选节点集合,第六值为至少一个第二值中小于新的第一值者。即至少一个邻节点中,如果没有第二值小于第一值的节点,那么就无法得到下一跳节点的备选集合,此时网络节点需要对第一值进行翻转,可以根据至少一个第二值中最大者确定新的第一值,例如,新的第一值=至少一个第二值中最大者+1,或者新的第一值=至少一个第二值中最大者×1.5,这样至少一个邻节点中的所有节点的第二值均小于新的第一值。需要说明的是,网络节点对第一值进行翻转的目的是确保至少一个邻节点中存在第二值小于第一值的节点,因此还可以采用其他算法的到新的第一值,本申请对此不做具体限定。网络节点得到新的第一值后,至少一个邻节点中必然存在第二值小于新的第一值的节点,此时将前述第六值对应的邻节点加入下一跳可选节点集合。
网络节点可以从下一跳可选节点集合中随机选取一个节点作为下一跳节点,也可以根据设定的规则从下一跳可选节点集合中随机选取一个节点作为下一跳节点,本申请对此不做具体限定。
在一种可能的实现方式中,网络节点可以获取至少一个第四值,该至少一个第四值和至少一个邻节点对应,将下一跳可选节点集合中对应至少一个第四值中最小者的邻节点确定为下一跳节点。
网络节点可以根据报文标识和第二特征向量通过第一神经网络计算得到第一邻节点的第四值(例如Secondary value),第一邻节点为至少一个邻节点中的任意一个,第二特征向量和第一邻节点对应。即网络节点可以将报文标识和某个邻节点的第二特征向量输入第一神经网络,第一神经网络输出该邻节点的第四值。基于LR原理可以生成路径,基于神经网络(Neural Network,NN)计算LR的值(value,相当于第四值)可以持续优化选择的路径,使得路径选择更优,更接近自定义的目标,如网络利用率更高,路径时延更低等。需要说明的是,本申请中网络节点除第一神经网络外,还可以采用其他方法得到邻节点的第四值,例如,直接获取先前计算得到的第四值,或者采用预先设置的计算公式、算法等得到邻节点的第四值,对此不作具体限定。然后网络节点比较下一跳可选节点集合中的所有节点的第四值,将其中第四值最小者对应的节点作为下一跳节点。
步骤205、将报文发送给下一跳节点。
本申请通过得到网络节点和邻节点的参考值确定下一跳节点,可以保证报文在连通网络条件下的无环可达,消除路由环路和黑洞的问题。
在一种可能的实现方式中,报文还包括至少一个第一节点的节点标识和第一值,至少一个第一节点包括报文已经过的所有节点,或者至少一个第一节点包括报文已经过且确定过新的第一值的节点。
网络节点在报文经过本地时,可以在报文中添加本节点的信息,例如本节点的节点标识和第一值,这样报文中就记录了其所经过的所有节点。网络节点也可以只在对第一值进行翻转时才将本节点的信息添加至经过的报文中,这样报文中就只需要记录已经过且确定过新的第一值的节点,可以减少报文的大小。
在一种可能的实现方式中,当根据至少一个第二值中最大者确定了新的第一值时,网络节点可以根据节点标识判断至少一个第一节点中是否包括本节点;若至少一个第一节点中包括本节点,则将报文中的本节点的第一值修改为新的第一值;若至少一个第一节点中不包括本节点,则在报文中添加本节点的节点标识和新的第一值。
在上述步骤204中,如果至少一个邻节点中没有第二值小于第一值的节点,网络节点对第一值进行了翻转得到新的第一值,确保至少一个邻节点中存在第二值小于新的第一值的节点。此时网络节点可以将新的第一值写入报文中,如果报文中已经携带了网络节点的第一值,那么就用新的第一值替换报文中的第一值,如果报文中没有携带网络节点的第一值,那么就在报文头中添加网络节点的节点标识和新的第一值。
在一种可能的实现方式中,网络节点可以根据节点标识判断至少一个第一节点中是否包括第二节点,第二节点为本节点和至少一个邻节点中的任意一个;若至少一个第一节点中包括第二节点,则将第二节点的第一值替换为报文中的第二节点的第一值。
在上述步骤203之后,如果报文经过的节点中已经包括了本节点和邻节点中的任意一个,那么网络节点就需要将对应节点的第一值替换为报文中携带的第一值。
在一种可能的实现方式中,网络节点接收第一邻节点发送的第二特征向量,根据第二特征向量通过第二神经网络计算第一特征向量,第一邻节点为至少一个邻节点中的任意一个;或者,当确定本节点的链路状态发生变化时,网络节点根据现有处于连接状态的邻节点的第二特征向量通过第二神经网络计算第一特征向量。
网络中的每个网络节点可以维护一个第一特征向量和至少一个第二特征向量,其中,第二特征向量来自对应的邻节点,第一特征向量可以根据至少一个第二特征向量通过第二神经网络计算得到。通常邻节点会在第二特征向量发生变化时向网络节点发送新的第二特征向量,此时网络节点根据新获取和之前已获取到的第二特征向量重新计算第一特征向量。或者网络节点感知到链路状态发生变化(例如,和某个邻节点之间的链路断开、新创建和某个节点之间的链路等)时,根据现有处于连接状态的邻节点的第二特征向量重新计算第一特征向量。
本申请中第二神经网络用于计算网络节点的特征向量,其可以采用例如GNN的技术,本申请对此不做具体限定。
以下采用具体的实施例对本申请的路由方法进行描述,图3示例性的示出了一个数据通信网络的示意图,如图3所示,该网络中包括6个网络节点(A-F),假设报文从节点A出发,要到达节点F。针对任意一个节点,其作为处理报文的节点时的第一值和其作为处理报文的节点的邻节点时的第二值均指该节点的Prime value,而其作为处理报文的节点的邻节点时的第四值是指该节点的Secondary value。
实例1:①节点A收到报文,将Prime value(5)分别和邻节点B的Prime value(3)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{B,D},然后比较下一跳可选节点集合{B,D}中的两个节点的Secondary value,即邻节点B的Secondary value(2)和邻节点D的Secondary value(4),选择对应较小者的节点B作为下一跳节点。
②节点B收到报文,将Prime value(3)分别和邻节点A的Prime value(5)、邻节点C的Prime value(1)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{C},由于下一跳可选节点集合中只有一个节点,因此可以直接确定节点C作为下一跳节点。
③节点C收到报文,将节点F作为下一跳节点。
因此得到A->B->C->F的路由路径,如图4所示。
案例2:与实例1的区别在于,节点C的Prime value由1变为6。
①节点A收到报文,将Prime value(5)分别和邻节点B的Prime value(3)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{B,D},然后比较下一跳可选节点集合{B,D}中的两个节点的Secondary value,即邻节点B的Secondary value(2)和邻节点D的Secondary value(4),选择对应较小者的节点B作为下一跳节点。
②节点B收到报文,将Prime value(3)分别和邻节点A的Prime value(5)、邻节点C的Prime value(6)、邻节点D的Prime value(4)进行比较,无法得到下一跳可选节点集合,因此节点B对Prime value进行翻转,即用邻节点中的Prime value最大者(邻节点C的Primevalue(6))加1得到新的Prime value(7)。然后再将Prime value(7)分别和邻节点A的Primevalue(5)、邻节点C的Prime value(6)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{A,C,D},再比较下一跳可选节点集合{A,C,D}中的三个节点的Secondaryvalue,即邻节点A的Secondary value(5)、邻节点C的Secondary value(5)和邻节点D的Secondary value(4),选择对应最小者的节点D作为下一跳节点。节点B发送报文时在报文头中插入节点标识和新的Prime value(7)。
③节点D收到报文,将Prime value(4)分别和邻节点A的Prime value(5)、邻节点B的Prime value(7)、邻节点E的Prime value(2)进行比较,得到下一跳可选节点集合{E},选择节点E作为下一跳节点。
④节点E收到报文,将节点F作为下一跳节点。
因此得到A->B->D->E->F的路由路径,如图5所示。
案例3:与实例1的区别在于,节点B和节点C之间的链路,以及节点E和节点F之间的链路发生故障。
①节点A收到报文,将Prime value(5)分别和邻节点B的Prime value(3)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{B,D},然后比较下一跳可选节点集合{B,D}中的两个节点的Secondary value,即邻节点B的Secondary value(2)和邻节点D的Secondary value(4),选择对应较小者的节点B作为下一跳节点。
②节点B收到报文,将Prime value(3)分别和邻节点A的Prime value(5)、邻节点D的Prime value(4)进行比较,无法得到下一跳可选节点集合,因此节点B对Prime value进行翻转,即用邻节点中的Prime value最大者(邻节点A的Prime value(5))加1得到新的Prime value(6)。然后再将Prime value(6)分别和邻节点A的Prime value(5)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{A,D},再比较下一跳可选节点集合{A,D}中的两个节点的Secondary value,即邻节点A的Secondary value(5)和邻节点D的Secondary value(4),选择对应最小者的节点D作为下一跳节点。节点B发送报文时在报文头中插入节点标识和新的Prime value(6)。
③节点D收到报文,将Prime value(4)分别和邻节点A的Prime value(5)、邻节点B的Prime value(6)、邻节点E的Prime value(2)进行比较,得到下一跳可选节点集合{E},选择节点E作为下一跳节点。
④节点E收到报文,将Prime value(2)分别和邻节点C的Prime value(3)、邻节点D的Prime value(4)进行比较,无法得到下一跳可选节点集合,因此节点E对Prime value进行翻转,即用邻节点中的Prime value最大者(邻节点D的Prime value(4))加1得到新的Prime value(5)。然后再将Prime value(5)分别和邻节点C的Prime value(3)、邻节点D的Prime value(4)进行比较,得到下一跳可选节点集合{C,D},再比较下一跳可选节点集合{C,D}中的两个节点的Secondary value,即邻节点C的Secondary value(3)和邻节点D的Secondary value(4),选择对应最小者的节点C作为下一跳节点。节点E发送报文时在报文头中插入节点标识和新的Prime value(5)。
⑤节点C收到报文,将节点F作为下一跳节点。
因此得到A->B->D->E->C->F的路由路径,如图6所示。
图7为本申请路由装置实施例的结构示意图,如图7所示,本实施例的装置可以包括:接收模块701、处理模块702和发送模块703,其中,接收模块701,用于接收报文,所述报文包括报文标识,所述报文标识用于指示所述报文的目的地址;处理模块702,用于根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,所述第一特征向量和所述本节点对应;获取至少一个第二值,所述至少一个第二值和至少一个邻节点对应;将所述第一值分别和所述至少一个第二值比较确定下一跳节点;发送模块703,用于将所述报文发送给所述下一跳节点。
在一种可能的实现方式中,所述处理模块702,具体用于将所述第一值分别和所述至少一个第二值进行比较;当存在第五值时,将所述第五值对应的邻节点加入下一跳可选节点集合,所述第五值为所述至少一个第二值中小于所述第一值者;当不存在所述第五值时,根据所述至少一个第二值中最大者确定新的第一值,并将所述新的第一值分别和所述至少一个第二值进行比较,所述新的第一值大于所述至少一个第二值中最大者;将第六值对应的邻节点加入所述下一跳可选节点集合,所述第六值为所述至少一个第二值中小于所述新的第一值者;根据所述下一跳可选节点集合确定所述下一跳节点。
在一种可能的实现方式中,所述处理模块702,还用于获取至少一个第四值,所述至少一个第四值和所述至少一个邻节点对应;将所述下一跳可选节点集合中对应所述至少一个第四值中最小者的邻节点确定为所述下一跳节点。
在一种可能的实现方式中,所述处理模块702,具体用于根据所述报文标识和所述第一特征向量通过第一神经网络计算得到所述第一值。
在一种可能的实现方式中,所述处理模块702,具体用于根据所述报文标识和预先得到的第二特征向量通过第一神经网络计算得到第一邻节点的第二值,所述第一邻节点为所述至少一个邻节点中的任意一个,所述第二特征向量和所述第一邻节点对应。
在一种可能的实现方式中,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;所述处理模块702,还用于根据所述节点标识判断所述至少一个第一节点中是否包括第二节点,所述第二节点为所述本节点和所述至少一个邻节点中的任意一个;若所述至少一个第一节点中包括所述第二节点,则将所述第二节点的所述第一值替换为所述报文中的所述第二节点的第一值。
在一种可能的实现方式中,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;所述处理模块702,还用于当根据所述至少一个第二值中最大者确定了新的第一值时,根据所述节点标识判断所述至少一个第一节点中是否包括所述本节点;若所述至少一个第一节点中包括所述本节点,则将所述报文中的所述本节点的第一值修改为所述新的第一值;若所述至少一个第一节点中不包括所述本节点,则在所述报文中添加所述本节点的节点标识和所述新的第一值。
在一种可能的实现方式中,所述处理模块702,还用于当维护的第二特征向量发生变化时,根据变化后的第二特征向量通过第二神经网络计算所述第一特征向量,所述第二特征向量和第一邻节点对应,所述第一邻节点为所述至少一个邻节点中的任意一个。
本实施例的装置,可以用于执行图2-6任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请提供的网络节点800的示意性结构图。如图8所示,网络节点800包括处理器801和通信端口802。
可选地,网络节点800还包括存储器803。其中,处理器801、通信端口802和存储器803之间可以通过内部连接通路互相通信,传递控制信号和/或数据信号。
其中,存储器803用于存储计算机程序。处理器801用于执行存储器803中存储的计算机程序,从而实现上述装置实施例的功能。
具体地,处理器801可以用于执行装置实施例(例如,图7)中描述的由处理模块702执行的操作和/或处理,而通信端口802用于执行由接收模块701和发送模块703执行操作和/处理。
可选地,存储器803也可以集成在处理器801中,或者独立于处理器801。
可选地,网络节点800还可以包括电源804,用于给网络节点中的各种器件或电路提供电源。
上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种路由方法,其特征在于,包括:
接收报文,所述报文包括报文标识,所述报文标识用于指示所述报文的目的地址;
根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,所述第一特征向量和所述本节点对应;
获取至少一个第二值,所述至少一个第二值和至少一个邻节点对应;
将所述第一值分别和所述至少一个第二值比较确定下一跳节点;
将所述报文发送给所述下一跳节点;
其中,所述将所述第一值分别和所述至少一个第二值比较确定下一跳节点,包括:
将所述第一值分别和所述至少一个第二值进行比较;
当存在第五值时,将所述第五值对应的邻节点加入下一跳可选节点集合,所述第五值为所述至少一个第二值中小于所述第一值者;
当不存在所述第五值时,根据所述至少一个第二值中最大者确定新的第一值,并将所述新的第一值分别和所述至少一个第二值进行比较,所述新的第一值大于所述至少一个第二值中最大者;将第六值对应的邻节点加入所述下一跳可选节点集合,所述第六值为所述至少一个第二值中小于所述新的第一值者;
根据所述下一跳可选节点集合确定所述下一跳节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取至少一个第四值,所述至少一个第四值和所述至少一个邻节点对应;
所述根据所述下一跳可选节点集合确定所述下一跳节点,包括:
将所述下一跳可选节点集合中对应所述至少一个第四值中最小者的邻节点确定为所述下一跳节点。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,包括:
根据所述报文标识和所述第一特征向量通过第一神经网络计算得到所述第一值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述获取至少一个第二值,包括:
根据所述报文标识和预先得到的第二特征向量通过第一神经网络计算得到第一邻节点的第二值,所述第一邻节点为所述至少一个邻节点中的任意一个,所述第二特征向量和所述第一邻节点对应。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;
所述方法还包括:
根据所述节点标识判断所述至少一个第一节点中是否包括第二节点,所述第二节点为所述本节点和所述至少一个邻节点中的任意一个;
若所述至少一个第一节点中包括所述第二节点,则将所述第二节点的所述第一值替换为所述报文中的所述第二节点的第一值。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;
所述方法还包括:
当根据所述至少一个第二值中最大者确定了新的第一值时,根据所述节点标识判断所述至少一个第一节点中是否包括所述本节点;
若所述至少一个第一节点中包括所述本节点,则将所述报文中的所述本节点的第一值修改为所述新的第一值;
若所述至少一个第一节点中不包括所述本节点,则在所述报文中添加所述本节点的节点标识和所述新的第一值。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
当维护的第二特征向量发生变化时,根据变化后的第二特征向量通过第二神经网络计算所述第一特征向量,所述第二特征向量和第一邻节点对应,所述第一邻节点为所述至少一个邻节点中的任意一个。
8.一种路由装置,其特征在于,包括:
接收模块,用于接收报文,所述报文包括报文标识,所述报文标识用于指示所述报文的目的地址;
处理模块,用于根据所述报文标识和预先得到的第一特征向量得到本节点的第一值,所述第一特征向量和所述本节点对应;获取至少一个第二值,所述至少一个第二值和至少一个邻节点对应;将所述第一值分别和所述至少一个第二值比较确定下一跳节点;
发送模块,用于将所述报文发送给所述下一跳节点;
其中,所述处理模块,具体用于将所述第一值分别和所述至少一个第二值进行比较;当存在第五值时,将所述第五值对应的邻节点加入下一跳可选节点集合,所述第五值为所述至少一个第二值中小于所述第一值者;当不存在所述第五值时,根据所述至少一个第二值中最大者确定新的第一值,并将所述新的第一值分别和所述至少一个第二值进行比较,所述新的第一值大于所述至少一个第二值中最大者;将第六值对应的邻节点加入所述下一跳可选节点集合,所述第六值为所述至少一个第二值中小于所述新的第一值者;根据所述下一跳可选节点集合确定所述下一跳节点。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,还用于获取至少一个第四值,所述至少一个第四值和所述至少一个邻节点对应;将所述下一跳可选节点集合中对应所述至少一个第四值中最小者的邻节点确定为所述下一跳节点。
10.根据权利要求8-9中任一项所述的装置,其特征在于,所述处理模块,具体用于根据所述报文标识和所述第一特征向量通过第一神经网络计算得到所述第一值。
11.根据权利要求8-10中任一项所述的装置,其特征在于,所述处理模块,具体用于根据所述报文标识和预先得到的第二特征向量通过第一神经网络计算得到第一邻节点的第二值,所述第一邻节点为所述至少一个邻节点中的任意一个,所述第二特征向量和所述第一邻节点对应。
12.根据权利要求8-11中任一项所述的装置,其特征在于,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;
所述处理模块,还用于根据所述节点标识判断所述至少一个第一节点中是否包括第二节点,所述第二节点为所述本节点和所述至少一个邻节点中的任意一个;若所述至少一个第一节点中包括所述第二节点,则将所述第二节点的所述第一值替换为所述报文中的所述第二节点的第一值。
13.根据权利要求8-11中任一项所述的装置,其特征在于,所述报文还包括至少一个第一节点的节点标识和第一值,所述至少一个第一节点包括所述报文已经过的所有节点,或者所述至少一个第一节点包括所述报文已经过且确定过新的第一值的节点;
所述处理模块,还用于当根据所述至少一个第二值中最大者确定了新的第一值时,根据所述节点标识判断所述至少一个第一节点中是否包括所述本节点;若所述至少一个第一节点中包括所述本节点,则将所述报文中的所述本节点的第一值修改为所述新的第一值;若所述至少一个第一节点中不包括所述本节点,则在所述报文中添加所述本节点的节点标识和所述新的第一值。
14.根据权利要求8-13中任一项所述的装置,其特征在于,所述处理模块,还用于当维护的第二特征向量发生变化时,根据变化后的第二特征向量通过第二神经网络计算所述第一特征向量,所述第二特征向量和第一邻节点对应,所述第一邻节点为所述至少一个邻节点中的任意一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911019137.0A CN112714061B (zh) | 2019-10-24 | 路由方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911019137.0A CN112714061B (zh) | 2019-10-24 | 路由方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112714061A CN112714061A (zh) | 2021-04-27 |
CN112714061B true CN112714061B (zh) | 2024-06-28 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337157A (zh) * | 2017-12-22 | 2018-07-27 | 华为技术有限公司 | 一种网络中传输报文的方法和节点 |
CN109257279A (zh) * | 2018-10-26 | 2019-01-22 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337157A (zh) * | 2017-12-22 | 2018-07-27 | 华为技术有限公司 | 一种网络中传输报文的方法和节点 |
CN109257279A (zh) * | 2018-10-26 | 2019-01-22 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10218610B2 (en) | MPLS segment routing | |
US10097469B2 (en) | Network traffic shaping for low power and lossy networks | |
Wang et al. | An overview of routing optimization for internet traffic engineering | |
US8630177B2 (en) | Dynamic directed acyclic graph (DAG) root bypass for computer networks | |
CN110661711B (zh) | 生成标签转发表的方法、报文发送方法、装置及设备 | |
US8447849B2 (en) | Negotiated parent joining in directed acyclic graphs (DAGS) | |
US8406153B2 (en) | Affecting node association through load partitioning | |
CN101606341A (zh) | 用于在穿过提供商网络的ce-ce路径上高效路由ip流量的技术 | |
WO2015181650A1 (en) | Enhanced procedure to compute lfas with igp max metric | |
CN110890994A (zh) | 一种报文转发路径的确定方法、设备和系统 | |
EP3754914B1 (en) | Class-based traffic engineering in an ip network | |
EP3985941A2 (en) | Path switching method, device, and system | |
CN103166848A (zh) | 选择多协议标签交换流量工程旁路隧道的方法及节点 | |
US11750495B2 (en) | Congruent bidirectional segment routing tunnels | |
CN112714061B (zh) | 路由方法和装置 | |
CN112714061A (zh) | 路由方法和装置 | |
CN114531398A (zh) | 一种报文转发的方法及相关装置 | |
US20240146644A1 (en) | Routing self-organizing networks using application quality of experience metrics | |
Rassaki et al. | Quality of service in MPLS networks | |
US20140269737A1 (en) | System, method and apparatus for lsp setup using inter-domain abr indication | |
Shandilya | Understanding network routing problem and study of routing algorithms and heuristics through implementation | |
CN113676406A (zh) | 一种网络流量控制方法及装置 | |
CN114513445A (zh) | 一种发送报文的方法及装置 | |
CN116866014A (zh) | 通信方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |