CN112751697B - 网络拓扑发现方法及节点设备 - Google Patents
网络拓扑发现方法及节点设备 Download PDFInfo
- Publication number
- CN112751697B CN112751697B CN201911053346.7A CN201911053346A CN112751697B CN 112751697 B CN112751697 B CN 112751697B CN 201911053346 A CN201911053346 A CN 201911053346A CN 112751697 B CN112751697 B CN 112751697B
- Authority
- CN
- China
- Prior art keywords
- port
- node device
- child node
- link
- message
- 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 79
- 230000004044 response Effects 0.000 claims abstract description 130
- 230000008859 change Effects 0.000 claims description 35
- 230000003993 interaction Effects 0.000 abstract description 9
- 101100448334 Arabidopsis thaliana GG1 gene Proteins 0.000 description 73
- 102100039164 Acetyl-CoA carboxylase 1 Human genes 0.000 description 34
- 101710190443 Acetyl-CoA carboxylase 1 Proteins 0.000 description 34
- 238000010586 diagram Methods 0.000 description 15
- 238000011144 upstream manufacturing Methods 0.000 description 13
- 102100021641 Acetyl-CoA carboxylase 2 Human genes 0.000 description 12
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 12
- 101000894929 Homo sapiens Bcl-2-related protein A1 Proteins 0.000 description 12
- 101100448337 Arabidopsis thaliana GG2 gene Proteins 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003542 behavioural effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 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
- 101000963440 Bacillus subtilis (strain 168) Biotin carboxylase 1 Proteins 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101000782621 Bacillus subtilis (strain 168) Biotin carboxylase 2 Proteins 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- 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/12—Discovery or management of network topologies
-
- 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
-
- 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
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- 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/26—Route discovery packet
-
- 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/42—Centralised routing
-
- 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/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种网络拓扑发现方法及节点设备。在本申请中,根节点设备通过第一端口向子节点设备发送链路发现消息;接收该子节点设备通过该子节点设备的第二端口发送的链路发现应答消息,该链路发现应答消息包括该子节点设备的标识和该第二端口的标识;以及基于该链路发现应答消息,确定第一链路,该第一链路为该第一端口与该第二端口之间的链路。采用本申请的方案,在节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种网络拓扑发现方法及节点设备。
背景技术
随着网络规模的增大,基于拓扑的网络应用场景越来越多,因此,拓扑是整个网络运营的核心。但随着网络节点数的增多,端口数量成倍增加,使用人工方式来配置或发现拓扑变得十分困难。
发明内容
本申请提供一种网络拓扑发现方法及节点设备,以实现拓扑发现。
第一方面,提供了一种网络拓扑发现方法,包括:通过第一端口向子节点设备发送链路发现消息;接收所述子节点设备通过所述子节点设备的第二端口发送的链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识;以及基于所述链路发现应答消息,确定第一链路,所述第一链路为所述第一端口与所述第二端口之间的链路。
在节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
在一个实现中,所述方法还包括:所述通过第一端口向子节点设备发送链路发现消息之前,所述方法还包括:检测到所述第一端口对应的链路已连接上。
链路的发现可以是根节点设备在检测到自身端口对应的链路已连接上而触发的,根节点设备无需时刻进行网络拓扑发现。
在又一个实现中,所述方法还包括:基于所述第一链路,指示所述子节点设备将所述第二端口设置为上行口。
对于发现的网络拓扑,需要指示子节点设备的至少一个端口为上行口,以便于与根节点设备进行通信。
在又一个实现中,所述基于所述第一链路,指示所述子节点设备将所述第二端口设置为上行口,包括:通过所述第一端口向所述子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;以及接收所述子节点设备通过所述第二端口发送的端口角色更新应答消息。
在又一个实现中,所述方法还包括:若所述子节点设备为首次发现设备,通过所述第一端口向所述子节点设备发送设备发现消息,所述设备发现消息包括所述子节点设备的标识;以及接收所述子节点设备通过所述第二端口发送的设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
通过设备发现,根节点设备可以了解该新设备的所有端口的标识、状态和端口能力,以便与该新设备进行通信。
在又一个实现中,第一子节点设备与所述根节点设备直连,第二子节点设备与所述根节点设备非直连,所述通过所述第一端口向所述子节点设备发送链路发现消息之前,所述方法还包括:接收所述第一子节点设备发送的端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
当直连设备检测到与非直连设备之间的端口状态发生变化时,直连设备上报给根节点设备,以使根节点设备发现与该非直连设备之间的拓扑关系。
在又一个实现中,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
由子节点设备(可以是直连设备或非直连设备)转发消息时,根节点设备在消息中携带至少一个出端口的标识,以表示该子节点设备按照出端口的标识进行转发,而无需自身处理该消息。
在又一个实现中,所述方法还包括:当检测到所述第一链路的状态发生变化时,确定需更新端口角色的子节点设备;通过所述第二链路向所述需要更新角色的子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述根节点设备与所述需要更新角色的子节点设备之间的中间子节点设备的出端口的标识;以及接收端口角色更新应答消息。
当根节点设备检测到链路状态发生变化时,可以通过计算重新修改链路上的子节点设备的端口的角色,刷新拓扑结构。
第二方面,提供了一种网络拓扑发现方法,包括:接收根节点设备发送的链路发现消息,所述链路发现消息包括第三端口的标识;通过所述第三端口向第二子节点设备转发所述链路发现消息;接收所述第二子节点设备通过第四端口发送的链路发现应答消息,所述链路发现应答消息包括所述第二子节点设备的标识和第四端口的标识;以及向所述根节点设备发送所述链路发现应答消息。
在一个实现中,所述方法还包括:检测到第一子节点设备的第三端口与第二子节点设备的第四端口之间存在链路连接;以及向根节点设备发送端口状态变化消息,所述端口状态变化消息用于指示所述第三端口存在链路连接
在又一个实现中,所述方法还包括:接收所述根节点设备发送的端口角色更新消息,所述端口角色更新消息包括所述第二子节点设备的标识,所述第三端口的标识,所述第四端口的标识和所述第四端口的角色信息,所述端口角色更新消息用于指示所述第二子节点设备根据所述第四端口的角色信息进行角色设置;通过所述第三端口向所述第二子节点设备发送所述端口角色更新消息;通过所述第四端口接收所述第二子节点设备发送的端口角色更新应答消息;以及向所述根节点设备发送所述端口角色更新应答消息。
在又一个实现中,所述方法还包括:若所述第二子节点设备为首次发现设备,接收所述根节点设备发送的设备发现消息,所述设备发现消息包括所述第二子节点设备的标识和所述第三端口的标识;通过所述第三端口向所述第二子节点设备发送所述设备发现消息;通过所述第四端口接收所述第二子节点设备发送的设备发现应答消息,所述设备发现应答消息包括所述第二子节点设备的标识,所述第二子节点设备的所有端口的标识、状态和端口能力;以及向所述根节点设备发送所述设备发现应答消息。
第三方面,提供了一种网络拓扑发现方法,包括:接收根节点设备通过第一端口发送的链路发现消息;以及通过第二端口向所述根节点设备发送链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识。
在一个实现中,所述方法还包括:接收所述根节点设备通过所述第一端口发送的端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;根据所述第二端口的角色信息,对所述第二端口进行角色设置;以及通过第二端口向所述根节点设备发送端口角色更新应答消息。
在又一个实现中,所述方法还包括:若所述子节点设备为首次发现设备,接收所述根节点设备通过所述第一端口发送的设备发现消息,所述设备发现消息包括所述子节点设备的标识;以及通过所述第二端口向所述根节点设备发送设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
在又一个实现中,第一子节点设备与所述根节点设备直连,第二子节点设备与所述根节点设备非直连,所述方法还包括:向所述根节点设备发送端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
在又一个实现中,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
第四方面,提供了一种节点设备,该节点设备用于实现上述第一方面或第一方面的任一个实现中的方法中根节点设备的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,提供了一种子节点设备,该子节点设备用于实现上述第二方面或第二方面的任一个实现中的方法中中间节点设备的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第六方面,提供了一种子节点设备,该子节点设备用于实现上述第三方面或第三方面的任一个实现中方法中子节点设备的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第七方面,提供了一种节点设备,包括:处理器和物理接口,所述处理器用于执行上述第一方面或第一方面的任一个实现中的方法。
第八方面,提供了一种节点设备,包括:处理器和物理接口,所述处理器用于执行上述第二方面或第二方面的任一个实现中的方法。
第九方面,提供了一种节点设备,包括:处理器和物理接口,所述处理器用于执行上述第三方面或第三方面的任一个实现中的方法。
第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第十二方面,提供了一种通信系统,包括上述的节点设备。
附图说明
图1为本申请实施例提供的一种网络拓扑架构示意图;
图2为具体示例的一种企业网络拓扑架构示意图;
图3为本申请实施例提供的一种网络拓扑发现方法的流程示意图;
图4为本申请实施例提供的直连场景下的一种网络拓扑发现方法的流程示意图;
图5为直连场景下的企业网络拓扑架构示意图;
图6为本申请实施例提供的非直连场景下的一种网络拓扑发现方法的流程示意图;
图7为非直连场景下的企业网络拓扑架构示意图;
图8为本申请实施例提供的又一种网络拓扑发现方法的流程示意图;
图9为示例的一种链路状态变化的示意图;
图10为示例的又一种链路状态变化的示意图;
图11为本申请实施例提供的一种节点设备的结构示意图;
图12为本申请实施例提供的一种子节点设备的结构示意图;
图13为本申请实施例提供的又一种子节点设备的结构示意图;
图14为本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
图1为本申请实施例提供的一种网络拓扑架构示意图,该网络拓扑架构包括根节点设备(ROOT)10、一个或多个第一子节点设备11(图中仅示例了一个第一子节点设备)、以及一个或多个第二子节点设备12(图中仅示例了一个第二子节点设备),当然,该网络拓扑架构还可以包括更多的子节点设备。其中,根节点设备、第一子节点设备和第二子节点设备具有一个或多个端口。在该示例中,根节点设备的第一端口连接第一子节点设备的第二端口,第一子节点设备的第三端口连接第二子节点设备的第四端口。根节点设备与第一子节点设备直连;第二子节点设备通过第一子节点设备连接至根节点设备,即第二子节点设备与根节点设备非直连。
本申请实施例的方法可应用于任何网络架构,例如企业网、园区网、数据中心网络等。
图2为具体示例的一种企业网络拓扑架构示意图,其中的核心交换机作为整网的ROOT交换机来发现整网拓扑。理论上网络内部任意一台交换机都可以作为ROOT,但一般最上层的核心交换机控制面能力最强,作为ROOT的节点对控制面有一定的要求,所以一般选择核心交换机作为ROOT。当有多个核心交换机时,可任意选择一台配置成ROOT,或者通过一些选举算法从多个核心交换机中选出作为ROOT的交换机。在该示例中,核心交换机通过端口4连接至汇聚交换机(aggregation switch,AGG)1的端口1,核心交换机通过端口5连接至汇聚交换机2的端口1,汇聚交换机1的端口4连接至接入交换机(access switch,ACC)1的端口1,汇聚交换机1的端口7连接至接入交换机2的端口1,汇聚交换机2的端口8连接至接入交换机2的端口2,终端设备A连接至接入交换机A的端口3,以及终端设备B连接至接入交换机2的端口6。以上网络拓扑仅为示例。
本申请实施例提供一种网络拓扑发现方案,以实现自动发现上述网络拓扑关系。
下面通过一些具体的实施例进行详细描述。
图3为本申请实施例提供的一种网络拓扑发现方法的流程示意图,该方法可以包括:
S101、根节点设备通过第一端口向子节点设备发送链路发现消息。
相应地,子节点设备接收该链路发现消息。
如前所示的系统架构图,根节点设备可以连接一个或多个直连子节点设备,也可以通过直连子节点设备连接一个或多个非直连子节点设备。待发现链路对端的子节点设备可以是根节点设备的直连子节点设备,也可以是根节点设备的非直连子节点设备。
在当存在待发现的根节点设备与子节点设备之间的链路时,根节点设备通过第一端口向子节点设备发送链路发现消息,以执行链路发现流程。
在S101之前,还可以包括:检测到所述第一端口对应的链路已连接上。当根节点设备检测到自身的第一端口对应的链路被连接上时,则根节点设备与直连子节点设备的链路连接上;当根节点设备接收到直连子节点设备上报的端口状态变化消息时,则该直连子节点设备对应的端口被连接上,该直连子节点设备与下一层的非直连子节点设备的链路连接上。根节点设备向该直连子节点设备发送链路发现消息,或通过已发现的直连子节点设备向非直连子节点设备发送链路发现消息。
S102、子节点设备通过子节点设备的第二端口发送链路发现应答消息。
相应地,根节点设备接收该链路发现应答消息。
子节点设备通过已连接的链路(具体是通过第二端口)接收到上述链路发现消息,解析该消息类型为链路发现消息。子节点设备构造链路发现应答消息,链路发现应答消息包括子节点设备的标识和第二端口的标识。子节点设备通过第二端口发送该链路发现应答消息。具体地,如果是直连子节点设备进行应答,则直连子节点设备通过第二端口发送该链路发现应答消息;如果是非直连子节点设备进行应答,则非直连子节点设备通过已发现的直连子节点设备发送该链路发现应答消息。
S103、根节点设备基于链路发现应答消息,确定第一链路,第一链路为第一端口与第二端口之间的链路。
根节点设备通过已连接的链路接收到上述链路发现应答消息,解析消息类型,识别为链路发现应答消息。解析出其中的子节点设备的标识和第二端口的标识,确定第一链路,第一链路为第一端口与第二端口之间的链路。
进一步地,根节点设备基于第一链路,指示子节点设备将第二端口设置为上行口。例如,当第一链路为从根节点设备到子节点设备的最短路径(shortest path firsh,SPF)中的链路时,根节点设备指示子节点设备将第二端口设置为上行口。即根节点设备通过最短路径计算出该第一链路在最短路径上,则需要设置第二端口为上行口。
具体地,在一个实现中,根节点设备可以在其它的交互消息中指示子节点设备将第二端口设置为上行口。
在又一个实现中,根节点设备也可以通过单独的交互消息子节点设备将第二端口设置为上行口。则该方法还可以包括S104~S106:
S104、根节点设备通过第一端口向子节点设备发送端口角色更新消息。
相应地,子节点设备接收该端口角色更新消息。
根节点设备向直连子节点设备发送端口角色更新消息,或通过已发现的直连子节点设备向非直连子节点设备发送端口角色更新消息。该端口角色更新消息包括子节点设备的标识,第二端口的标识和第二端口的角色信息,端口角色更新消息用于指示子节点设备根据第二端口的角色信息进行角色设置。在本实施例中,端口角色更新消息用于指示子节点设备设置第二端口为上行口。
S105、子节点设备根据第二端口的角色信息,对第二端口进行角色设置。
子节点设备接收到上述端口角色更新消息后,解析消息类型,识别该消息为端口角色更新消息。根据该消息中携带的第二端口的角色信息,将第二端口为上行端口。
S106、子节点设备通过第二端口发送端口角色更新应答消息。
相应地,根节点设备接收该端口角色更新应答消息。
具体地,如果进行应答的是直连子节点设备,则发送该端口角色更新应答消息给根节点设备;如果进行应答的是非连子节点设备,则通过直连节点设备转发该端口角色更新应答消息。该端口角色更新应答消息用于指示端口角色设置成功或失败。
若子节点设备为首次发现设备,则进一步地,该方法还可以包括S107~S108:
S107、根节点设备通过第一端口向子节点设备发送设备发现消息,设备发现消息包括子节点设备的标识。
相应地,子节点设备接收该设备发现消息。
根节点设备向直连子节点设备发送设备发现消息,或通过直连子节点设备转发该设备发现消息给非直连子节点设备。
S108、子节点设备通过第二端口发送设备发现应答消息,设备发现应答消息包括子节点设备的标识,子节点设备的所有端口的标识、状态和端口能力。
相应地,根节点设备接收该设备发现应答消息。
子节点设备收到设备发现消息后,解析消息类型,识别出消息类型为设备发现消息,构造设备发现应答消息,该设备应答消息携带子节点设备的标识,子节点设备的所有端口的标识、状态(up/down)和能力(例如链路带宽)等设备信息。子节点设备从第二端口发送该设备发送应答消息给根节点设备。
根据本申请实施例提供的一种网络拓扑发现方法,在节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
下面分别从直连场景和非直连场景对上述网络拓扑发现方法进行详细描述:
图4为本申请实施例提供的直连场景下的一种网络拓扑发现方法的流程示意图。本实施例结合图5所示的直连场景下的企业网络拓扑架构进行描述。在图5中,该根节点设备可以是核心交换机,该根节点设备下连接有AGG1和AGG2两个节点设备,AGG1下又连接有ACC1。其中,AGG1与根节点设备之间的链路、以及AGG2与根节点设备之间的链路连接上,但根节点设备尚未发现根节点设备与AGG1、AGG2之间的网络拓扑关系;ACC1和AGG1之间的链路尚未连接。
该网络拓扑发现包括两个阶段:链路发现阶段和设备发现阶段。
链路发现阶段:
根节点设备发现自身多个下行端口对应的链路被连接上,依照端口序号,逐一进行链路发现。具体以根节点设备与AGG1之间的单个链路的网络拓扑关系发现为例进行描述,根节点设备与AGG2之间的链路的网络拓扑发现与此相似。
其中,根节点设备通过端口1与AGG1的端口1连接。
S201、根节点设备从端口1发送链路发现消息。
由于根节点设备的端口1与AGG1的端口1之间的链路已连接上,因此,根节点设备可以通过该链路发送链路发现消息。相应地,该链路另一端的AGG1接收该链路发现消息。
具体地,根节点设备还可以从端口1发送链路发现消息后启动定时器,在计时时间内等待节点设备返回应答消息。
S202、AGG1通过AGG1的端口1发送链路发现应答消息。
AGG1接收到链路发现消息后,解析消息类型字段,若为链路发现消息,则构造链路发现应答消息,消息中携带AGG1的设备标识和接收端口AGG1.1的标识,从AGG1.1发出链路发现应答消息。
S203、根节点设备根据AGG1的端口1的标识和根节点设备的端口1的标识,发现链路:ROOT设备.1<->AGG1.1。
根节点设备接收到链路发现应答消息后,解析消息类型字段,判断为链路发现应答消息,获取该消息中携带的AGG1的设备标识和接收端口AGG1.1的标识,结合发送链路发现消息的根节点设备的端口ROOT设备.1,即发现了链路ROOT设备.1<->AGG1.1。
若根节点设备未收到链路发现应答消息,则可能的原因有:对端节点设备未收到链路发现消息,对端子节点设备不支持此种消息类型,子节点设备返回的链路发现应答消息未被根节点设备接收到。则根节点设备可以在计时时间到达之后重复发起该链路发现流程,直到接收到链路发现应答消息,或者超过重发次数失败为止,记录异常。
S204、根节点设备发送端口角色更新消息。
发现新链路后,根节点设备通过最短路径(shortest path firsh,SPF)算法,计算出新链路在最短路径上,则构造端口角色更新消息。该端口角色更新消息携带目标设备的标识(AGG1的标识),目标端口的标识(AGG1的端口AGG1.1的标识)以及目标端口(AGG1.1)的角色信息。根节点设备向AGG1发送该端口角色更新消息。
S205、AGG1根据上述角色信息设置端口AGG1.1为上行口。
AGG1接收到该端口角色更新消息后,解析消息类型字段,发现为端口角色更新消息,从消息中解析出AGG1的标识,AGG1的端口AGG1.1的标识以及AGG1.1的角色信息,将解析出来的设备标识与本设备标识进行比较,如不一致,则表示该消息不是发送给自身,作丢弃处理;否则,将该消息所指示的端口设置成指示的端口角色。本示例中,目标端口为AGG1.1,目标端口角色为上行口,则AGG1将AGG1.1设置成上行口。
S206、AGG1向根节点设备发送端口角色更新应答消息。
AGG1构造端口角色更新应答消息,从上述上行口AGG1.1发送该端口角色更新应答消息给根节点设备。
根节点设备收到该端口角色更新应答消息后,表示端口角色设置成功,记录设置成功的上行口。
S207、根节点设备判断链路对端的AGG1为新设备。
根节点设备判断链路对端子节点设备是否为首次发现的新设备,若否,则结束该网络拓扑发现流程;若是,进入设备发现阶段。在本实施例中,AGG1为首次发现的新设备。
设备发现阶段:
S208、根节点设备向AGG1发送设备发现消息。
根节点设备通过新发现链路的本端端口ROOT设备.1发送设备发现消息,并启动定时器,等待AGG1返回应答消息。
S209、AGG1向根节点设备发送设备发现应答消息。
AGG1收到设备发现消息后,解析消息类型,识别出消息类型为设备发现消息,构造设备发现应答消息,该设备应答消息携带AGG1的标识,AGG1的所有端口的标识、状态(up/down)和能力(例如链路带宽)等设备信息。AGG1从上行口AGG1.1发送该设备发送应答消息给根节点设备。
根节点设备接收到该设备应答消息后,解析消息类型,判断为设备发现应答消息后,解析消息中携带的上述设备信息,记录设备信息,完成设备发现,刷新拓扑。
若根节点设备未收到设备发现应答消息,则可能的原因有:对端节点设备未收到设备发现消息,对端子节点设备不支持此种消息类型,子节点设备返回的设备发现应答消息未被根节点设备接收到。则根节点设备可以在计时时间到达之后重复发起该设备发现流程,直到接收到设备发现应答消息,或者超过重发次数失败为止,记录异常。
根据本申请实施例提供的一种网络拓扑发现方法,在根节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
图6为本申请实施例提供的非直连场景下的一种网络拓扑发现方法的流程示意图。本实施例结合图7所示的非直连场景下的企业网络拓扑架构进行描述。在图7中,该根节点设备可以是核心交换机,该根节点设备下连接有AGG1和AGG2两个节点设备,AGG1下又连接有ACC1。其中,AGG1与根节点设备之间的链路、以及AGG2与根节点设备之间的链路连接上,根节点设备已发现根节点设备与AGG1、AGG2之间的网络拓扑关系;ACC1和AGG1之间的链路已连接,但根节点设备尚未发现根节点设备与ACC1之间的网络拓扑关系。
与直联场景下的网络拓扑发现不同,该网络拓扑发现除了包括链路发现阶段和设备发现阶段两个阶段,在链路发现阶段之间,中间节点设备还向根节点设备上报中间节点设备与下一层节点设备之间的链路被连接上。
在图7中,中间节点设备为AGG1。
S301、AGG1检测到自身端口AGG1.4对应的链路被连接上。
已经被发现的直连设备AGG1检测到端口状态变化(端口AGG1.4从down状态变为up状态),即检测到AGG1.4对应的链路被连接上。AGG1.4对应的链路被连接上有两种情况:一种是之前没连接上,现连接上;另一种情况是AGG1与ACC1之间的链路已连接上,但AGG1与根节点设备之间的链路未连接上,在上述实施例中,AGG1与根节点设备之间的链路现已连接上,因此,AGG1可以检测到AGG1.4对应的链路被连接上。
S302、AGG1向根节点设备发送端口状态变化消息。
AGG1通过一个上行口向根节点设备发送端口状态变化消息,该端口状态变化消息携带AGG1的标识,AGG1.4的标识,以及AGG1.4的状态(up)。
根节点设备收到上述端口状态变化消息后,解析消息类型,识别为端口状态变化消息,解析消息中携带的AGG1的标识,AGG1.4的标识,以及AGG1.4的状态(up),进入链路发现阶段。
链路发现阶段:
S303’、根节点设备发送链路发现消息。
与前述实施例中的链路发现不同的是,本实施例中,链路发现消息需要经过AGG1发往新设备,可采用源路由方式:根节点设备计算上报端口状态变化消息的设备(即AGG1)的最短路径(根节点设备也可以提前计算好该最短路径,如果存在多条最短路径,则选择一条最短路径作为默认路径收发控制面消息),从AGG1对应的端口发送链路发现消息,该链路发现消息携带出端口AGG1.4的标识,还可以携带消息类型。从根节点设备的ROOT设备.1端口发送该链路发现消息。
S303”、AGG1检测到链路发现消息有下一层出端口,剥离一层端口,并转发链路发现消息。
AGG1接收到链路发现消息后,检测到该链路发现消息携带了出端口号,去除出端口的标识,从解析出的该出端口转发该链路发现消息。
S304’、ACC1发现该链路发现消息发给自身,回复链路发现应答消息。
ACC1通过ACC1与AGG1已连接的链路接收到该链路发现消息,解析消息类型,如果消息中不携带出端口的标识,说明此消息应由它来处理,解析出消息类型为链路发现消息,构造链路发现应答消息,该链路发现应答消息包括ACC1的标识和ACC1的端口ACC1.1的标识。ACC1从接收端口发送该链路发现应答消息。
S304”、AGG1节点接收到上述链路发现应答消息后,按照默认端口转发该链路发现应答消息给根节点设备。
AGG1通过ACC1与AGG1已连接的链路接收到该链路发现应答消息后,按照默认的上行端口转发该链路发现应答消息给根节点设备。其中,根节点设备发现AGG1后,可以设置AGG1的一个或多个端口为上行口,并可以设置其中一个上行口为默认端口。
S305、根节点设备根据ACC1.1端口的标识以及已发现的链路ROOT设备.1<->AGG1.1,发现链路ROOT设备.1<->AGG1.1<->ACC1.1。
根节点设备接收到链路发现应答消息后,解析消息类型,识别出该消息为链路发现应答消息,解析出该链路发现应答消息携带的ACC1的标识和ACC1.1的端口标识,结合已经发现的拓扑(ROOT设备.1<->AGG1.1),则完成发现链路:ROOT设备.1<->AGG1.1<->ACC1.1。
若根节点设备未收到链路发现应答消息,则可能的原因有:对端节点设备未收到链路发现消息,对端子节点设备不支持此种消息类型,子节点设备返回的链路发现应答消息未被根节点设备接收到。则根节点设备可以在计时时间到达之后重复发起该链路发现流程,直到接收到链路发现应答消息,或者超过重发次数失败为止,记录异常。
S306、根节点设备计算出该链路在最短路径上。
根节点设备通过SPF算法计算出该链路在最短路径上(当前因为ACC1只有一条链路连接到已发现的网络,所以是最短路径),因此根节点设备需要设置ACC1的上行口。
S307’、根节点设备发送端口角色更新消息。
根节点设备构造端口角色更新消息,该端口角色更新消息携带ACC1的标识,ACC1.1的标识,以及ACC1.1的角色信息(此例中指示设置为上行口),再封装沿途出端口(AGG1.4的标识),通过源路由的方式发送该端口角色更新消息。
S307”、AGG1检测到链路发现消息有下一层出端口,剥离一层端口,并转发端口角色更新消息给ACC1。
AGG1接收到该端口角色更新消息后,检测到该消息中携带了出端口号,解析出端口号,去除出端口的标识,从解析出的出端口转发该端口角色更新消息。
S308、ACC1根据该端口角色更新消息,设置ACC1.1为上行口。
ACC1接收到该端口角色更新消息后,如果消息中不携带出端口的标识,说明此消息应由它来处理(本例中只有一个出端口的标识,已被AGG1去除,所以消息由ACC1处理)。ACC1解析出消息类型为端口角色更新消息,根据所指示更新的角色信息,设置ACC1.1为上行口。
S309’、ACC1发送端口角色更新应答消息。
ACC1构造端口角色更新应答消息,该消息用于指示已经设置成功,通过该上行口发送该消息。
S309”、AGG1节点接收到上述端口角色更新应答消息后,按照默认端口转发该端口角色更新应答消息。
根节点设备收到该端口角色更新应答消息后,记录上行口。
S310、根节点设备判断链路对端的ACC1为新设备。
根节点设备判断链路对端子节点设备是否为首次发现的新设备,若否,则结束该网络拓扑发现流程;若是,进入设备发现阶段。在本实施例中,ACC1为首次发现的新设备。
设备发现阶段:
S311’、根节点设备发送设备发现消息,该设备发现消息携带AGG1.4的标识。
由于该新设备为根节点的非直连设备,通过源路由的方式发送设备发现消息:根节点设备构造设备发现消息,再封装沿途出端口的标识(AGG1.4的标识),然后通过源路由的方式发送该设备发现消息。
S311”、AGG1检测到链路发现消息有下一层出端口,剥离一层端口,并转发设备发现消息。
AGG1接收到该设备发现消息后,发现消息中携带了出端口的标识,解析出端口的标识,去除出端口的标识,从解析的出端口转发该设备发现消息。
S312’、ACC1发送设备发现应答消息,该设备发现应答消息包括ACC1的标识,ACC1的所有端口的标识、状态和能力。
ACC1从上述出端口接收到设备发现消息后,检测到该消息中不携带出端口的标识,说明此消息应由它来处理(本示例中只有一个出端口的标识,已被AGG1去除,所以消息由ACC1处理)。ACC1解析出消息类型为设备发现消息,构造设备发现应答消息,携带设备信息:ACC1的标识,ACC1的所有端口的标识、状态(up/down)和能力(如链路带宽)等,从上述上行口ACC1.4发送该设备发现应答消息。
S312”、AGG1节点接收到ACC1的设备发现应答消息后,按照默认端口转发该设备发现应答消息。
S313、根节点设备记录设备信息,完成设备注册,刷新拓扑。
若根节点设备未收到设备发现应答消息,则可能的原因有:对端节点设备未收到设备发现消息,对端子节点设备不支持此种消息类型,子节点设备返回的设备发现应答消息未被根节点设备接收到。则根节点设备可以在计时时间到达之后重复发起该设备发现流程,直到接收到设备发现应答消息,或者超过重发次数失败为止,记录异常。
因此,在本实施例中,通过根节点设备集中发起拓扑发现,子节点设备只做简单的应答和最基础的状态报备,计算、状态维护都由根节点设备支持,子节点设备控制面极简。
根据本申请实施例提供的一种网络拓扑发现方法,在中间节点设备检测到与下一层节点设备的端口的链路被连接上时,上报给根节点设备,根节点设备通过消息的交互发现根节点设备与中间节点设备的下一层节点设备之间存在的拓扑关系,可以实现网络拓扑的发现。
当根节点设备检测到链路状态发生变化时,可以通过计算重新修改链路上的子节点设备的端口的角色。图8为本申请实施例提供的又一种网络拓扑发现方法的方法流程图,该方法可以包括:
S401、当检测到第一链路状态发生变化时,根节点设备确定需更新端口角色的子节点设备。
当根节点设备检测到自身端口对应的链路状态发生变化,或接收到上报的非直连子节点设备的端口对应的链路发生变化时,可以通过SPF计算确定新的最短路径。根节点设备确定可以到达链路状态发生变化的子节点设备的第二链路,并确定需更新端口角色的子节点设备。
S402、根节点设备发送端口角色更新消息。
由于重新确定了最短路径,变化前的直连节点设备可能更新为非直连节点设备,因此,需要通过其它直连节点设备和/或非直连节点设备(称为“中间节点设备”)转发端口角色更新消息。根节点设备构造端口角色更新消息,该端口角色更新消息携带中间子节点设备的出端口的标识,目标端口的标识以及目标端口的角色信息。该目标端口为待更新角色的端口。
S403、中间子节点设备检测到端口角色更新消息有下一层出端口,剥离一层端口,并转发端口角色更新消息给下一层的子节点设备。
中间节点设备接收到该端口角色更新消息,检测到该消息中包括出端口的标识,因此,解析出端口的标识,去除该中间节点设备的出端口的标识,从解析出的出端口转发该消息。
S404、子节点设备根据该端口角色更新消息,更新端口角色。
最终,子节点设备接收到该端口角色更新消息,检测到该消息中不包括出端口的标识,可以确定该消息应由自身处理。因此,根据该消息中携带的目标端口的角色信息,更新目标端口的角色。
S405、子节点设备发送端口角色更新应答消息。
子节点设备更新目标端口的角色后,构造端口角色更新应答消息。该应答消息用于指示角色更新成功或失败。
S406、中间节点设备接收到上述端口角色更新应答消息后,按照默认端口转发端口角色应答消息。
根节点设备收到应答后,记录端口角色为下行口。
具体地,如图9所示的一种链路状态变化的示意图,根节点设备检测到直连链路状态变化(ROOT.4<->AGG1.1的链路断开),使用SPF算法计算出最短路径。根节点设备通过计算发现最短路径上发生变化的设备是ACC1、ACC2、AGG1,需要修改端口角色的设备为ACC2、AGG1。
具体地,ROOT.4<—>AGG1.1、AGG1.7<—>ACC2.1为其中一条最短路径,ACC2可以通过上行口ACC2.1与根节点设备、AGG1进行交互,但现在ROOT.4<—>AGG1.1之间的链路断开,则需要重新计算根节点设备到ACC2的最短路径,而ACC2.1的角色需要更新。由于ACC2为根节点设备的非直连设备,则通过源路由的方式发送端口角色更新消息。根节点设备构造端口角色更新消息,该消息携带目标设备的标识(ACC2的标识)、目标端口的标识(ACC2.1的标识)和角色信息,再封装沿途出端口的标识(AGG2的出端口AGG2.8),通过源路由的方式发送给ACC2。AGG2收到消息后,发现消息中携带了出端口的标识,则解析出端口的标识,去除出端口的标识,从解析的出端口转发该消息。ACC2接收到该消息后,检测到该消息中不携带出端口的标识,说明此消息应由它来处理。ACC2解析出该消息的类型为端口角色更新消息,进一步解析出其中的目标端口和角色信息,将目标端口(ACC2.1)更新为下行口。ACC2构造端口角色更新应答消息,从上行口发送该消息。AGG2收到该消息,通过上行口转发该消息至根节点设备。该消息用于指示角色更新成功或失败。根节点设备接收该消息,如果该消息指示角色更新成功,则表示本次操作成功;如果该消息指示角色更新失败,则表示本次操作失败。
如图9所示,ACC2的端口位图中,包括端口状态的位图和链路连接的位图。其中,在端口状态的位图和链路连接的位图中,端口的标识从右到左依次为ACC2.1、ACC2.2…ACC2.10。其中,在端口状态的位图中,比特“0”表示该端口为下行口,比特“1”表示该端口为上行口。通过上述角色更新操作,ACC2.1由上行口更新为下行口,则ACC2.1的端口状态值由比特“1”更新为比特“0”;同样的,也可以对ACC2.2执行同样的角色更新操作,将ACC2.2由下行口更新为上行口,ACC2.2的端口状态值由比特“0”更新为比特“1”。在链路连接的位图中,比特“0”表示该端口对应的链路未连接,比特“1”表示该端口对应的链路已连接。当前,端口ACC2.1、ACC2.2、ACC2.6、ACC2.9的链路已连接,则这些端口对应的比特值为“1”。
如图10所示的又一种链路状态变化的示意图,ROOT.4<—>AGG1.1的链路端口,重新计算出的根节点设备到AGG1的最短路径为ROO.5<—>AGG2.1、AGG2.8<—>ACC2.2、ACC2.1<—>AGG1.7,而AGG1.7在链路断开前的角色为下行口。因此,根据计算出的新的最短路径,需要更新AGG1.7的角色。由于发生链路断开事件后,AGG1由直连设备变为根节点设备的非直连设备,因此,根节点设备通过源路由的方式发送端口角色更新消息。根节点设备构造端口角色更新消息,该消息携带目标设备的标识(AGG1的标识)、目标端口的标识(AGG1.7的标识)和角色信息。再封装沿途出端口的标识(AGG2.8、ACC2.1),通过源路由的方式发送该消息给AGG1。AGG2收到消息后,发现该消息携带了出端口的标识,解析出端口的标识,去除AGG2.8的标识,从解析出的出端口AGG2.8转发该消息。ACC2收到该消息后,发现该消息携带了出端口的标识,解析出端口的标识,去除ACC2.1的标识,从解析出的出端口ACC2.1转发该消息。AGG1接收到该消息,检测到该消息中不携带出端口的标识,说明此消息应由它来处理,并且解析出该消息的类型为端口角色更新消息,再解析出目标端口和角色信息,根据该角色信息,将AGG1.7更新为上行口。AGG1构造端口角色更新应答消息,从上行口发出;ACC2下行口接收到该应答消息,通过上行口转发至AGG2;AGG2下行口接收到该应答消息,通过上行口转发至根节点设备。该应答消息用于指示角色更新成功或失败。根节点设备接收该应答消息,如果该应答消息指示角色更新成功,则表示本次操作成功,刷新拓扑结构;如果该应答消息指示角色更新失败,则表示本次操作失败。
如图10所示,AGG1的端口位图中,包括端口状态的位图和链路连接的位图。其中,在端口状态的位图和链路连接的位图中,端口的标识从右到左依次为AGG1.1、AGG1.2…AGG1.10。其中,在端口状态的位图中,比特“0”表示该端口为下行口,比特“1”表示该端口为上行口。通过上述角色更新操作,AGG1.7的端口状态值由比特“0”更新为比特“1”,而AGG1.1对应的链路断开,也可以执行同样的角色更新操作,将AGG1.1由上行口更新为下行口,则AGG1.1的端口状态值由比特“1”更新为比特“0”。在链路连接的位图中,比特“0”表示该端口对应的链路未连接,比特“1”表示该端口对应的链路已连接。当前,端口AGG1.4、AGG1.7的链路已连接,则这些端口对应的比特值为“1”。
根据本申请实施例提供的一种网络拓扑发现方法,当根节点设备检测到链路状态发生变化时,可以通过计算重新修改链路上的子节点设备的端口的角色,刷新拓扑结构。
基于上述实施例中的网络拓扑发现方法的同一构思,如图11所示,本申请实施例还提供一种节点设备1000,该节点设备1000可应用于上述图3、图4、图6、图8所示的网络拓扑方法中,可以是上述网络拓扑发现方法中的根节点设备。该节点设备1000包括:发送单元11、接收单元12和确定单元13,还可以包括检测单元14、指示单元15。示例性的:
发送单元11,用于通过第一端口向子节点设备发送链路发现消息;
接收单元12,用于接收所述子节点设备通过所述子节点设备的第二端口发送的链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识;以及
确定单元13,用于基于所述链路发现应答消息,确定第一链路,所述第一链路为所述第一端口与所述第二端口之间的链路。
在一个实现中,检测单元14,用于检测到所述第一端口对应的链路已连接上。
在又一个实现中,指示单元15,用于基于所述第一链路,指示所述子节点设备将所述第二端口设置为上行口。
在又一个实现中,所述发送单元11,用于通过所述第一端口向所述子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;以及
所述接收单元12,用于接收所述子节点设备通过所述第二端口发送的端口角色更新应答消息。
在又一个实现中,所述发送单元11,用于若所述子节点设备为首次发现设备,通过所述第一端口向所述子节点设备发送设备发现消息,所述设备发现消息包括所述子节点设备的标识;以及
所述接收单元12,用于接收所述子节点设备通过所述第二端口发送的设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
在又一个实现中,第一子节点设备与所述根节点设备直连,第二子节点设备与所述根节点设备非直连,所述接收单元12,用于接收所述第一子节点设备发送的端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
在又一个实现中,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
在又一个实现中,所述确定单元13,还用于当检测到所述第一链路的状态发生变化时,确定需更新端口角色的子节点设备;
所述发送单元11,用于通过所述第二链路向所述需要更新角色的子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述根节点设备与所述需要更新角色的子节点设备之间的中间子节点设备的出端口的标识;以及
所述接收单元12,用于接收端口角色更新应答消息。
有关上述各单元更详细的描述可以参考上述图3、图4、图6、图8所示实施例中根节点设备的相关描述,这里不加赘述。
根据本申请实施例提供的一种节点设备,在根节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
基于上述实施例中的网络拓扑发现方法的同一构思,如图12所示,本申请实施例还提供一种子节点设备2000,该子节点设备2000可应用于上述图3、图4、图6、图8所示的网络拓扑方法中。该子节点设备2000包括:接收单元21、发送单元22,还可以包括检测单元23。
示例性的:
接收单元21,用于接收根节点设备发送的链路发现消息,所述链路发现消息包括第三端口的标识;
发送单元22,用于通过所述第三端口向第二子节点设备转发所述链路发现消息;
所述接收单元21,还用于接收所述第二子节点设备通过第四端口发送的链路发现应答消息,所述链路发现应答消息包括所述第二子节点设备的标识和第四端口的标识;以及
所述发送单元22,还用于向所述根节点设备发送所述链路发现应答消息。
在一个实现中,所述检测单元23,用于检测到第一子节点设备的第三端口与第二子节点设备的第四端口之间存在链路连接;以及
所述发送单元22,用于向根节点设备发送端口状态变化消息,所述端口状态变化消息用于指示所述第三端口存在链路连接
在又一个实现中,所述接收单元21,用于接收所述根节点设备发送的端口角色更新消息,所述端口角色更新消息包括所述第二子节点设备的标识,所述第三端口的标识,所述第四端口的标识和所述第四端口的角色信息,所述端口角色更新消息用于指示所述第二子节点设备根据所述第四端口的角色信息进行角色设置;
所述发送单元22,用于通过所述第三端口向所述第二子节点设备发送所述端口角色更新消息;
所述接收单元21,还用于通过所述第四端口接收所述第二子节点设备发送的端口角色更新应答消息;以及
所述发送单元22,还用于向所述根节点设备发送所述端口角色更新应答消息。
在又一个实现中,所述接收单元21,用于若所述第二子节点设备为首次发现设备,接收所述根节点设备发送的设备发现消息,所述设备发现消息包括所述第二子节点设备的标识和所述第三端口的标识;
所述发送单元22,用于通过所述第三端口向所述第二子节点设备发送所述设备发现消息;
所述接收单元21,还用于通过所述第四端口接收所述第二子节点设备发送的设备发现应答消息,所述设备发现应答消息包括所述第二子节点设备的标识,所述第二子节点设备的所有端口的标识、状态和端口能力;以及
所述发送单元22,还用于向所述根节点设备发送所述设备发现应答消息。
有关上述各单元更详细的描述可以参考上述图3、图4、图6、图8所示实施例中中间节点设备的相关描述,这里不加赘述。
根据本申请实施例提供的一种节点设备,在节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
基于上述实施例中的网络拓扑发现方法的同一构思,如图13所示,本申请实施例还提供一种节点设备3000,该节点设备3000可应用于上述图3、图4、图6、图8所示的网络拓扑方法中。该节点设备3000包括:接收单元31和发送单元32;还可以包括设置单元33。示例性的:
接收单元31,用于接收根节点设备通过第一端口发送的链路发现消息;
发送单元32,用于通过第二端口向所述根节点设备发送链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识。
在一个实现中,所述接收单元31,用于接收所述根节点设备通过所述第一端口发送的端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;
设置单元33,用于根据所述第二端口的角色信息,对所述第二端口进行角色设置;
发送单元32,用于通过第二端口向所述根节点设备发送端口角色更新应答消息。
在又一个实现中,所述接收单元31,用于若所述子节点设备为首次发现设备,接收所述根节点设备通过所述第一端口发送的设备发现消息,所述设备发现消息包括所述子节点设备的标识;
发送单元32,用于通过所述第二端口向所述根节点设备发送设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
在又一个实现中,第一子节点设备与所述根节点设备直连,第二子节点设备与所述根节点设备非直连,所述发送单元32,用于向所述根节点设备发送端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
在又一个实现中,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
有关上述各单元更详细的描述可以参考上述图3、图4、图6、图8所示实施例中子节点设备的相关描述,这里不加赘述。
根据本申请实施例提供的一种子节点设备,在节点设备检测到端口的链路被连接上时,通过消息的交互发现存在的拓扑关系,可以实现网络拓扑的发现。
本申请实施例还提供一种节点设备,图14为本申请实施例提供的一种节点设备的结构示意图。该节点设备4000包括物理接口41和处理器42。物理接口41用于收发消息。处理器42用于执行图3、图4、图6、图8中根节点设备、中间节点设备或目标子节点设备所执行的方法步骤。
物理接口41的数量可以为一个或多个。物理接口41可以包括无线接口和/或有线接口。例如,无线接口可以包括WLAN接口,蓝牙接口,蜂窝网络接口或其任意组合。有线接口可以包括以太网接口、异步传输模式接口、光纤通道接口或其任意组合。以太网接口可以为电接口或光接口。物理接口41并不一定包括(尽管通常包括)以太网接口。
处理器42的数量可以为一个或多个。处理器42包括中央处理器,网络处理器,图形处理器(graphics processing unit,GPU),专用集成电路,可编程逻辑器件或其任意组合。上述PLD可以是复杂可编程逻辑器件,现场可编程门阵列,通用阵列逻辑或其任意组合。处理器42可以包括控制面421和转发面422。控制面421和转发面422可以由独立的电路实现,也可以整合在一个电路中。例如,处理器42为多核CPU。多个核中的一个或一些实现控制面421,其他的核实现转发面422。又例如,控制面421由CPU实现,转发面422由NP,ASIC,FPGA或其任意组合实现。又例如,节点设备为框式网络设备,控制面421由主控卡实现,转发面422由线卡实现。又例如,控制面421和转发面422都由带控制面能力的NP实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (15)
1.一种网络拓扑发现方法,其特征在于,包括:
通过第一端口向子节点设备发送链路发现消息;
接收所述子节点设备通过所述子节点设备的第二端口发送的链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识;
基于所述链路发现应答消息,确定第一链路,所述第一链路为所述第一端口与所述第二端口之间的链路;
基于所述第一链路,指示所述子节点设备将所述第二端口设置为上行口;
所述基于所述第一链路,指示所述子节点设备将所述第二端口设置为上行口,包括:
通过所述第一端口向所述子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;
接收所述子节点设备通过所述第二端口发送的端口角色更新应答消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述子节点设备为首次发现设备,通过所述第一端口向所述子节点设备发送设备发现消息,所述设备发现消息包括所述子节点设备的标识;
接收所述子节点设备通过所述第二端口发送的设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
3.根据权利要求2所述的方法,其特征在于,第一子节点设备与根节点设备直连,第二子节点设备与所述根节点设备非直连,所述通过所述第一端口向所述子节点设备发送链路发现消息之前,所述方法还包括:
接收所述第一子节点设备发送的端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
4.根据权利要求3所述的方法,其特征在于,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当检测到所述第一链路的状态发生变化时,确定需要更新端口角色的子节点设备;
通过第二链路向所述需要更新端口角色的子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述根节点设备与所述需要更新角色的子节点设备之间的中间子节点设备的出端口的标识;
接收端口角色更新应答消息。
6.一种网络拓扑发现方法,其特征在于,包括:
接收根节点设备通过第一端口发送的链路发现消息;
通过第二端口向所述根节点设备发送链路发现应答消息,所述链路发现应答消息包括子节点设备的标识和所述第二端口的标识;
接收所述根节点设备通过所述第一端口发送的端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;
根据所述第二端口的角色信息,对所述第二端口进行角色设置;
通过第二端口向所述根节点设备发送端口角色更新应答消息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述子节点设备为首次发现设备,接收所述根节点设备通过所述第一端口发送的设备发现消息,所述设备发现消息包括所述子节点设备的标识;
通过所述第二端口向所述根节点设备发送设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
8.根据权利要求7所述的方法,其特征在于,第一子节点设备与所述根节点设备直连,第二子节点设备与所述根节点设备非直连,所述方法还包括:
向所述根节点设备发送端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
9.根据权利要求8所述的方法,其特征在于,所述链路发现消息包括至少一个出端口的标识,所述端口角色更新消息包括至少一个出端口的标识,以及所述设备发现消息包括至少一个出端口的标识。
10.一种节点设备,其特征在于,包括:
发送单元,用于通过第一端口向子节点设备发送链路发现消息;
接收单元,用于接收所述子节点设备通过所述子节点设备的第二端口发送的链路发现应答消息,所述链路发现应答消息包括所述子节点设备的标识和所述第二端口的标识;
确定单元,用于基于所述链路发现应答消息,确定第一链路,所述第一链路为所述第一端口与所述第二端口之间的链路;
所述发送单元,用于通过所述第一端口向所述子节点设备发送端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;
所述接收单元,用于接收所述子节点设备通过所述第二端口发送的端口角色更新应答消息。
11.根据权利要求10所述的节点设备,其特征在于:
所述发送单元,用于若所述子节点设备为首次发现设备,通过所述第一端口向所述子节点设备发送设备发现消息,所述设备发现消息包括所述子节点设备的标识;
所述接收单元,用于接收所述子节点设备通过所述第二端口发送的设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
12.根据权利要求10或11所述的节点设备,其特征在于,第一子节点设备与根节点设备直连,第二子节点设备与所述根节点设备非直连;
所述接收单元,用于接收所述第一子节点设备发送的端口状态变化消息,所述端口状态变化消息用于指示所述第一子节点设备的第三端口与所述第二子节点设备的第四端口之间存在链路连接。
13.根据权利要求10或11所述的节点设备,其特征在于,所述节点设备还包括:
所述确定单元,还用于当检测到所述第一链路的状态发生变化时,确定需要更新端口角色的子节点设备;
所述发送单元,用于通过第二链路向所述需要更新端口角色的子节点设备发送端口角色更新消息,所述端口角色更新消息包括根节点设备与所述需要更新端口角色的子节点设备之间的中间子节点设备的出端口的标识;
所述接收单元,用于接收端口角色更新应答消息。
14.一种节点设备,其特征在于,包括:
接收单元,用于接收根节点设备通过第一端口发送的链路发现消息;
发送单元,用于通过第二端口向所述根节点设备发送链路发现应答消息,所述链路发现应答消息包括子节点设备的标识和所述第二端口的标识;
所述接收单元,用于接收所述根节点设备通过所述第一端口发送的端口角色更新消息,所述端口角色更新消息包括所述子节点设备的标识,第二端口的标识和所述第二端口的角色信息,所述端口角色更新消息用于指示所述子节点设备根据所述第二端口的角色信息进行角色设置;
设置单元,用于根据所述第二端口的角色信息,对所述第二端口进行角色设置;
所述发送单元,用于通过第二端口向所述根节点设备发送端口角色更新应答消息。
15.根据权利要求14所述的节点设备,其特征在于:
所述接收单元,用于若所述子节点设备为首次发现设备,接收所述根节点设备通过所述第一端口发送的设备发现消息,所述设备发现消息包括所述子节点设备的标识;
所述发送单元,用于通过所述第二端口向所述根节点设备发送设备发现应答消息,所述设备发现应答消息包括所述子节点设备的标识,所述子节点设备的所有端口的标识、状态和端口能力。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911053346.7A CN112751697B (zh) | 2019-10-31 | 2019-10-31 | 网络拓扑发现方法及节点设备 |
EP20880534.1A EP4047877A4 (en) | 2019-10-31 | 2020-10-28 | METHOD AND DEVICE FOR DISCOVERING A NETWORK TOPOLOGY |
PCT/CN2020/124378 WO2021083208A1 (zh) | 2019-10-31 | 2020-10-28 | 网络拓扑发现方法及节点设备 |
US17/731,686 US11855875B2 (en) | 2019-10-31 | 2022-04-28 | Network topology discovery method and node device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911053346.7A CN112751697B (zh) | 2019-10-31 | 2019-10-31 | 网络拓扑发现方法及节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112751697A CN112751697A (zh) | 2021-05-04 |
CN112751697B true CN112751697B (zh) | 2023-11-21 |
Family
ID=75645064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911053346.7A Active CN112751697B (zh) | 2019-10-31 | 2019-10-31 | 网络拓扑发现方法及节点设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11855875B2 (zh) |
EP (1) | EP4047877A4 (zh) |
CN (1) | CN112751697B (zh) |
WO (1) | WO2021083208A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422798B (zh) * | 2021-05-11 | 2022-09-16 | 华为技术有限公司 | 一种网络数据传输方法、装置、系统以及计算机 |
CN114024859B (zh) * | 2021-11-24 | 2024-03-26 | 山西合力创新科技股份有限公司 | 基于设备和链路发现的网路拓扑生成方法、存储介质及终端 |
CN114338413B (zh) * | 2021-12-30 | 2024-01-26 | 中国工商银行股份有限公司 | 网络中设备的拓扑关系的确定方法、装置以及存储介质 |
CN116456422A (zh) * | 2022-01-10 | 2023-07-18 | 中兴通讯股份有限公司 | 微波网络根节点查询方法及装置、微波系统和存储介质 |
CN115208767B (zh) * | 2022-05-12 | 2023-10-27 | 哈尔滨工业大学(深圳) | 基于仿真技术的以太坊网络探测方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916884A (zh) * | 2012-10-26 | 2013-02-06 | 江苏华丽网络工程有限公司 | 一种交换设备的拓扑发现方法 |
CN105376164A (zh) * | 2015-11-25 | 2016-03-02 | 青岛信合一工贸有限公司 | 交换设备拓扑方式 |
CN105991435A (zh) * | 2015-02-05 | 2016-10-05 | 华为技术有限公司 | 用于获取端口路径的方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506838A (en) * | 1994-12-29 | 1996-04-09 | Emc Corporation | Packet propagation and dynamic route discovery apparatus and techniques |
US6847614B2 (en) * | 1998-04-20 | 2005-01-25 | Broadcom Corporation | Apparatus and method for unilateral topology discovery in network management |
GB2372400B (en) * | 2001-02-19 | 2003-05-28 | 3Com Corp | Network management apparatus and method for determining the topology of a network |
US8605623B2 (en) * | 2002-05-31 | 2013-12-10 | Koninklijke Philips N.V. | Determining and configuring a communication path in a network |
US9210073B2 (en) * | 2004-04-30 | 2015-12-08 | Hewlett-Packard Development Company, L.P. | System and method for message routing in a network |
US7542432B2 (en) * | 2005-10-27 | 2009-06-02 | Alcatel Lucent | Resource matched topology database synchronization in communications networks having topology state routing protocols |
JP5229343B2 (ja) * | 2011-03-15 | 2013-07-03 | オムロン株式会社 | 接続異常検出方法、ネットワークシステムおよびマスター装置 |
US9736065B2 (en) * | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
JP5821815B2 (ja) * | 2012-09-11 | 2015-11-24 | 日立金属株式会社 | 通信システムおよび通信システムの処理方法 |
GB201219292D0 (en) * | 2012-10-26 | 2012-12-12 | Vodafone Ip Licensing Ltd | Use of ORI interface to perform data and control word forwarding through REs in a multihop configuration |
CN103905221A (zh) * | 2012-12-26 | 2014-07-02 | 成都勤智数码科技股份有限公司 | 通用的拓扑链接准确发现方法 |
US9325608B2 (en) * | 2012-12-28 | 2016-04-26 | Dell Products L.P. | Systems and methods for reducing information loss in an aggregated information handling system |
US9094285B2 (en) * | 2013-01-25 | 2015-07-28 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Automatic discovery of multiple controllers in Software Defined Networks (SDNs) |
CN105827439B (zh) * | 2016-03-11 | 2019-02-01 | 范晓东 | 实现无线设备自组网的方法 |
US10771372B2 (en) * | 2016-06-16 | 2020-09-08 | Oracle International Corporation | Transmitting test traffic on a communication link |
CN110545194B (zh) * | 2018-05-28 | 2021-06-01 | 华为技术有限公司 | 网络拓扑的生成方法及装置 |
CN108919762B (zh) * | 2018-07-06 | 2021-05-25 | 东莞市李群自动化技术有限公司 | 基于工业以太网的控制方法及装置 |
-
2019
- 2019-10-31 CN CN201911053346.7A patent/CN112751697B/zh active Active
-
2020
- 2020-10-28 WO PCT/CN2020/124378 patent/WO2021083208A1/zh unknown
- 2020-10-28 EP EP20880534.1A patent/EP4047877A4/en active Pending
-
2022
- 2022-04-28 US US17/731,686 patent/US11855875B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102916884A (zh) * | 2012-10-26 | 2013-02-06 | 江苏华丽网络工程有限公司 | 一种交换设备的拓扑发现方法 |
CN105991435A (zh) * | 2015-02-05 | 2016-10-05 | 华为技术有限公司 | 用于获取端口路径的方法及装置 |
CN105376164A (zh) * | 2015-11-25 | 2016-03-02 | 青岛信合一工贸有限公司 | 交换设备拓扑方式 |
Non-Patent Citations (1)
Title |
---|
邵曦等.基于音乐内容和歌词的音乐情感分类研究.《计算机技术与发展》. * |
Also Published As
Publication number | Publication date |
---|---|
US20220255836A1 (en) | 2022-08-11 |
CN112751697A (zh) | 2021-05-04 |
EP4047877A4 (en) | 2022-11-16 |
EP4047877A1 (en) | 2022-08-24 |
WO2021083208A1 (zh) | 2021-05-06 |
US11855875B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112751697B (zh) | 网络拓扑发现方法及节点设备 | |
US9648548B1 (en) | WiFi mesh configuration | |
EP2472795A1 (en) | Method and system for re-building single ring network topology | |
CN113872868B (zh) | 通知消息传输方法、装置及系统、存储介质 | |
EP3713161B1 (en) | Data transmission method, relevant device and network | |
WO2022082724A1 (en) | Method and apparatus for multicast service support in time sensitive network | |
CN112865943A (zh) | 一种控制信息的传输方法、电子设备和存储介质 | |
EP2811698B1 (en) | Construction method, node and system of trill network | |
WO2022062568A1 (zh) | 一种交换机的配置方法及相关设备 | |
CN113037883B (zh) | 一种mac地址表项的更新方法及装置 | |
CN109803272B (zh) | 一种通信方法、装置及系统 | |
KR20190108255A (ko) | Sdn 기반 이동 애드혹 네트워크 제어 방법 및 장치 | |
CN110536187B (zh) | 转发数据的方法和接入层交换设备 | |
WO2022105325A1 (zh) | 重路由方法、通信装置及存储介质 | |
EP4002779B1 (en) | Method and apparatus for sharing information in redundant network, and computer storage medium | |
CN114760719A (zh) | 发现和连接到软接入设备的方法、装置、设备及存储介质 | |
CN110139304B (zh) | 基于孤立度和非mpr节点的mpr集合选择方法 | |
CN114143853A (zh) | 通信链路选择方法、装置及存储介质 | |
CN113872787B (zh) | 网络拓扑发现方法、装置和计算机可读存储介质 | |
CN115051949A (zh) | 数据路由方法及装置 | |
KR100775691B1 (ko) | 통신 네트웍에서의 메쉬 그룹 설정 방법 | |
US11303324B2 (en) | Radio transmission apparatus, transmission system, transmission method, and non-transitory computer readable medium storing program | |
CN112887164B (zh) | 广播风暴诊断方法、装置和计算机存储介质 | |
CN113365325B (zh) | 数据传输方法、装置、存储介质及电子设备 | |
CN109451520B (zh) | 无线设备PIPE互联的Mesh节点堆叠多通道通信扩展方法 |
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 |