CN114465904A - 网络拓扑构建方法和计算设备 - Google Patents
网络拓扑构建方法和计算设备 Download PDFInfo
- Publication number
- CN114465904A CN114465904A CN202011130827.6A CN202011130827A CN114465904A CN 114465904 A CN114465904 A CN 114465904A CN 202011130827 A CN202011130827 A CN 202011130827A CN 114465904 A CN114465904 A CN 114465904A
- Authority
- CN
- China
- Prior art keywords
- switch
- port
- target network
- mac address
- terminal device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 35
- 230000002452 interceptive effect Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 9
- 230000006855 networking Effects 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 33
- 238000010586 diagram Methods 0.000 description 23
- 238000009795 derivation Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 239000012792 core layer Substances 0.000 description 10
- 239000000523 sample Substances 0.000 description 10
- 230000009191 jumping Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了网络拓扑构建方法和计算设备,包括:确定待进行网络拓扑构建的目标网络,其中,目标网络包括交换机、终端设备和I/O设备。由于交换机需要通过网络进行通信,而I/O设备通常不具有联网功能,因此,交换机之间以及终端设备与交换机之间通过网线连接,终端设备与I/O设备之间通过I/O总线连接。通过交换机获取终端设备上存储的目标网络中的I/O设备的标识;针对目标网络中的每一个终端设备,确定该终端设备上存储的标识所指示的I/O设备与该终端设备具有第一连接关系;根据目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及第一连接关系生成目标网络的网络拓扑。本方案能够提高构建网络拓扑的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及网络拓扑构建方法和计算设备。
背景技术
随着科技的发展,设备所能实现的功能也越来越多样化。由于不同功能的设备的作用不同,因此,不同功能的设备所放置的位置通常也不相同。
目前,网络拓扑构建方法中,通常采用人工现场逐一确定不同设备之间的连接关系。比如,在某区域内设置有多台通过网络与其他设备通信的交换机和终端设备,以及多台通过输入/输出(Input/Output,I/O)总线与其他设备通信的I/O设备。终端设备如服务器、防火墙、环境监控设备以及网络监控设备等,I/O设备如打印机、麦克风、音响以及照明设备等。而不同的交换机、终端设备和I/O设备通常设置在不同的位置。因此,要人工确认每台设备通过线缆所连接的其他设备。
但是,当所要管理的区域面积较大、设备数量较多时,通过人工确定设备之间的连接关系以构建网络拓扑需要耗费大量的时间,从而降低构建网络拓扑的效率。
发明内容
有鉴于此,本发明提供的网络拓扑构建方法和计算设备,能够提高构建网络拓扑的效率。
第一方面,本发明实施例提供了一种网络拓扑构建方法,包括:
确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识;
针对所述目标网络中的每一个终端设备,确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑。
第二方面,本发明实施例还提供了一种计算设备,包括:
一个网络确定模块,用于确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
一个标识获取模块,用于通过所述交换机获取所述终端设备上存储的所述网络确定模块确定的所述目标网络中的I/O设备的标识;
一个关系确定模块,用于针对所述目标网络中的每一个终端设备,确定所述标识获取模块获取的该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
一个拓扑处理模块,用于根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述关系确定模块确定的所述第一连接关系,生成所述目标网络的网络拓扑。
第三方面,本发明实施例还提供了网络拓扑构建装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述第一方面所提供的方法。
第四方面,本发明实施例还提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述第一方面所提供的方法。
根据上述第一方面至第四方面所提供的技术方案可知,通过确定待进行网络拓扑构建的目标网络,可以确定出位于该目标网络内的交换机、通过网线与其他设备进行交互的终端设备以及通过I/O总线与其他设备进行交互的I/O设备。由于终端设备与I/O设备相连接,而交换机直接或间接与终端设备相连接,因此,通过交换机可以获取到终端设备所连接的I/O设备的标识,进而基于获取到的标识确定目标网络中的终端设备与I/O设备之间的第一连接关系。再基于目标网络中的交换机与终端设备之间的第二连接关系、交换机之间的第三连接关系,即可生成目标网络的网络拓扑。无需人工现场判断设备之间的连接关系,因此,不仅减少网络拓扑构建过程中人工参与的程度,还可以避免人工识别各设备间物理连接关系出错进而导致构建网络拓扑错误的情况出现,又可以提高构建网络拓扑的效率。
在第一种可能的实现方式中,结合上述的任一方面,在获取目标网络中I/O设备的标识时,可以通过目标网络中的交换机获取。具体可以通过如下方式来获取I/O设备的标识:
对所述目标网络中的至少一个交换机进行监听,以确定每一个被监听的交换机与所述目标网络之外的设备进行通信时的数据传输路径;
确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机;
通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识。
在本发明实施例中,通过对目标网络中的一个或多个交换机进行监听,可以确定出被监听的交换机与目标网络内的设备进行通信时的数据传输路径,也可以确定出被监听的交换机与目标网络之外的设备进行通信时的数据传输路径。确定出的与目标网络内的设备进行通信的数据传输路径中可能包括一个或多个交换机节点,而此交换机节点若不与目标网络之外的设备进行通信,则此交换机节点通常与目标网络内的部分设备进行通信,这样通过此交换机节点无法更全面的获取目标网络中的每个终端设备所连接的I/O设备的标识。因此,需要可以通过与目标网络之外的设备进行通信时的数据传输路径中所包括的交换机节点,确定出能够与目标网路之外的设备进行通信的主交换机。该主交换机直接或间接与目标网络内的终端设备或交换机进行通信,因此,可以通过该主交换机获取终端设备上的I/O设备的标识。
在第二种可能的实现方式中,结合上述第一种可能的实现方式,在对目标网路中的交换机进行监听时,可以通过计算设备来实现,具体可以通过如下方式对交换机进行监听:
与所述目标网络中接入层包括的每一个交换机连接的计算设备对所述目标网络中的至少一个交换机进行监听;
所述确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机,包括:
所述计算设备确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机;
所述通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
所述计算设备通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识。
在本发明实施例中,目标网络中的交换机可以划分为接入层、汇聚层和核心层,接入层的交换机用于连接终端设备,汇聚层的交换机用于连接接入层的交换机,同时也可以连接终端设备,核心层的交换机用于连接汇聚层的交换机,同时也可以连接终端设备,而且通常情况下接入层交换机的数量大于汇聚层交换机的数量,汇聚层交换机的数量大于核心层交换机的数量。将计算设备与目标网络接入层的交换机相连接,可以通过计算设备对其所连接的交换机设备进行监听,进而确定被监听的交换机的数据传输路径,从中确定出能够与目标网络之外的设备进行通信的主交换机,最后通过主交换机获取目标网络中的I/O设备的标识。
在第三种可能的实现方式中,结合上述第一方面,在确定待进行网络拓扑构建时,可以通过计算设备来实现,具体可以通过如下方式确定目标网络:
与所述目标网络中接入层包括的每一个交换机连接的计算设备确定待进行网络拓扑构建的目标网络;
所述通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
所述计算设备通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识;
所述针对所述目标网络中的每一个终端设备,确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系,包括:
所述计算设备针对所述目标网络中的每一个终端设备,所述计算设备确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
所述根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑,包括:
所述计算设备根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑。
在第四种可能的实现方式中,结合上述第一方面,在构建目标网络的网络拓扑之前,可先确定目标网络中的终端设备与I/O设备之间的第一连接关系、交换机与终端设备之间的第二连接关系以及交换机之间的第三连接关系,具体可以通过如下方式确定第二连接关系和第三连接关系:
针对所述目标网络中交换机的每一个端口,均执行:
如果从该端口获取到的MAC地址表中仅包括所述目标网络中的一个第一终端设备的一个MAC地址,且从该端口之外的端口获取到的MAC地址表与从该端口获取到的MAC地址表不同,则确定该端口与所述第一终端设备相连接;
如果从该端口获取到的MAC地址表中包括所述目标网络中的一个第二终端设备的至少两个MAC地址,则确定该端口与所述第二终端设备相连接;
根据所述目标网络中的终端设备与交换机的端口之间的连接关系和所述目标网络中的每个交换机所包括的端口,确定所述目标网络中的交换机与终端设备之间的第二连接关系;
判断所述目标网络中每一个交换机上的每个端口是否均具有MAC地址;
如果所述目标网络中每一个交换机上的每一个端口均具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的交换机的端口的MAC地址,确定所述目标网络中的所述第三连接关系;
如果所述目标网络中的各交换机的至少一个端口不具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的终端设备的MAC地址,确定所述目标网络中的所述第三连接关系。
在本发明实施例中,在确定第二连接关系时,如果一个MAC地址表中仅包括一个第一终端设备的一个MAC地址,而且不存在与该MAC地址表所包括MAC地址完全相同的其他MAC地址表,此时可以唯一确定该MAC地址表所属的交换机端口与第一终端设备相连接。如果一个MAC地址表中包括一个第二终端设备的至少两个MAC地址,此时也可以确定该MAC地址表所属的交换机端口与第二终端设备相连接,由于对于支持PROFIENT的PLC、通信模块或上位机,通常一个端口对应有多个MAC地址,其中一个MAC地址用于与IP地址绑定(此MAC地址会出现在其他交换机的MAC地址表中),其他的MAC地址则用于LLDP/PN-PTCP/MRP等通信,因此当交换机端口的MAC地址表中包括对应于同一终端设备的多个MAC地址时,可以确定终端设备与交换机端口的连接关系。
在该实施例中,在确定第三连接关系时,交换机存在两种情况,一种是交换机各端口自身没有MAC地址(如果交换机提供管理端口,则该管理端口存在MAC地址),另一种是交换机的每一个端口均分配有MAC地址。当目标网络中的交换机为上述第一种交换机时,则可以根据各第一端口的MAC地址表包括的终端设备的MAC地址来确定第三连接关系,当目标网络中的交换机为上述第二种交换机时,则可以根据各第一端口的MAC地址表包括的交换机端口的MAC地址来确定第三连接关系,当然也可以根据各第一端口的MAC地址表包括的终端设备的MAC地址来确定第三连接关系。如果各交换机的各端口均有MAC地址,此时第一端口的MAC地址表包括的交换机端口的MAC地址可以更加直接反应交换机之间的连接关系,从而可以快速确定出第三连接关系,保证构建网络拓扑的速率。如果各交换机的端口并非全部都具有MAC地址,此时可以根据第一端口的MAC地址表包括的终端设备的MAC地址来推导交换机之间的连接关系,该方式具有通用性,即使在各交换机的各端口均具有MAC地址时也可以采用才方式来确定第三连接关系。
在第五种可能的实现方式中,结合上述第四种可能的实现方式,在根据各第一端口的MAC地址表中包括的交换机端口的MAC地址确定第三连接关系时,可以先将目标网络中冗余管理器(Redundancy Manager)的各端口的MAC地址从各第一端口的MAC地址表中删除,以排除冗余管理器的干扰,之后根据各第一端口的MAC地址表包括的交换机端口的MAC地址来确定第二连接关系。具体可以通过如下方式来确定第三连接关系:
针对所述目标网络中的任意一个交换机,如果该交换机上的至少两个端口的MAC地址位于所述目标网络中另一个交换机的同一端口的MAC地址表中,则确定该交换机为所述目标网络中的冗余管理器,并将该交换机上所有端口的MAC地址从各个所述第一端口的MAC地址表中删除;
针对所述目标网络中的每一个所述第一端口,如果该第一端口的MAC地址表中包括所述目标网络中的一个第二端口的MAC地址,则确定该第一端口与所述第二端口相连接,其中,该第一端口与所述第二端口位于所述目标网络中不同的交换机上;
根据所述目标网络中每一个所述第一端口与所述第二端口之间的连接关系以及所述第一端口和所述第二端口所属的交换机,确定所述目标网络中的所述第三连接关系。
在本发明实施例中,作为冗余管理器的交换机上的至少两个端口的MAC地址会出现在另一个交换机的同一端口的MAC地址表中,根据该特点可以从各个交换机中筛选出作为冗余管理器的交换机,在将冗余管理器上各个端口的MAC地址从各第一端口的MAC地址表中删除后,两个交换机上相连接端口的MAC地址会出现在彼此的MAC地址表中,依据该特点可以根据各第一端口的MAC地址表中包括的交换机端口的MAC地址确定出第三连接关系。由于各个MAC地址表中包括的交换机端口的MAC地址可以更加直观的反应交换机之间的连接关系,因此根据交换机端口的MAC地址可以快速确定出目标网络中交换机之间的连接关系,提升构建网络拓扑的效率。
在第六种可能的实现方式中,结合上述第四种可能的实现方式,在根据各第一端口的MAC地址表中包括的终端设备的MAC地址确定第三连接关系时,可以根据各第一端口的MAC地址表中所包括终端设备的MAC地址的数量以及不同第一端口的MAC地址表中所包括相同终端设备的MAC地址的数量,来确定第三连接关系。具体可以通过如下方式来确定第三连接关系:
针对所述目标网络中的每一个所述第一端口,均执行:
从所述目标网络中除该第一端口之外的其他所述第一端口中筛选第三端口,其中,所述第三端口的MAC地址表与该第一端口的MAC地址表包括有至少一个相同的MAC地址;
获取该第一端口对应的第一MAC地址集合,其中,所述第一MAC地址集合中的元素为该第一端口的MAC地址表中包括的终端设备的MAC地址;
针对每一个所述第三端口,获取该第三端口对应的第二MAC地址集合,其中,所述第二MAC地址集合中的元素为该第三端口的MAC地址表中包括的终端设备的MAC地址;
根据所述第一MAC地址集合与每一个所述第二MAC地址集合之间的包含关系,以及所述第一MAC地址集合的子集与每一个所述第二MAC地址集合之间的包含关系,确定该第一端口与所述第三端口之间的连接关系;
根据所述目标网络中每一个所述第一端口与所述第三端口之间的连接关系以及所述第一端口和所述第三端口所属的交换机,确定所述目标网络中的所述第三连接关系。
在本发明实施例中,与下层交换机相连接的终端设备的MAC地址会出现上层交换机的端口的MAC地址表中,因此由下层交换机的端口的MAC地址表所包括MAC地址构成的集合为由上层交换机的端口的MAC地址表所包括MAC地址构成的集合的子集,依据该特点可以根据各第一端口的MAC地址表中包括的终端设备的MAC地址来推导第三连接关系。由于各种类型的交换机均能够获得包括有终端设备的MAC地址表,进而该第三连接关系确定方法可以适用于各种类型的网络,因此具有较强的适用性。
在第七种可能的实现方式中,结合上述任一方面、第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式或第六种可能的实现方式,可基于终端设备所遵从的网络协议,确定终端设备是否连接有I/O设备,若确定终端设备连接有I/O设备,则可获取其所连接的I/O设备的标识,具体可以通过下述方式获取I/O设备的标识:
针对所述目标网络中每一个终端设备,均执行:
通过所述目标网络中与该终端设备连接的交换机获取该终端设备所遵从的至少一种网络协议;
如果该终端设备所遵从的所述至少一种网络协议包括预设的管理协议,则确定该终端设备连接有I/O设备,并获取与该终端设备连接的I/O设备的标识,其中,所述管理协议为该终端设备与连接的I/O设备进行交互时所遵从的网络协议。
在本发明实施例中,为了确定该终端设备是否与I/O设备相连接,可先确定该终端设备遵从何种网络协议,若该终端设备遵从的网络协议中包含有该终端设备与I/O设备交互时所遵从的网络协议,则表征该终端设备是具有管理功能的设备,在该终端设备的下端还连接有I/O设备,因此,可以从该终端设备中获取到用于识别该终端设备所连接的I/O设备的标识。由于终端设备存储的信息较多,如果逐个从终端设备存储的大量信息中查找其是否存储有连接的I/O设备的标识,会耗费大量的时间。而基于终端设备所遵从的协议来识别终端设备是否连接I/O设备,可以简化从终端设备中查找该设备是否存储有标识的操作,提高获取终端设备上存储的标识的效率。
附图说明
图1是本发明一个实施例提供的一种网络拓扑构建方法的流程图;
图2是本发明一个实施例提供的一种包括交换机和终端设备的网络拓扑的示意图;
图3是本发明一个实施例提供的一种初始化后的网络拓扑的示意图;
图4是本发明一个实施例提供的一种确定部分交换机与终端设备之间连接关系后的网络拓扑的示意图;
图5是本发明一个实施例提供的一种确定部分交换机与终端设备之间连接关系后的网络拓扑的示意图;
图6是本发明一个实施例提供的一种确定部分交换机之间连接关系的网络拓扑的示意图;
图7是本发明一个实施例提供的一种网络拓扑的示意图;
图8是本发明一个实施例提供的一种初始化后的网络拓扑的示意图;
图9是本发明一个实施例提供的一种确定部分交换机与终端设备之间连接关系后的网络拓扑的示意图;
图10是本发明一个实施例提供的一种等价网络拓扑的示意图;
图11是本发明一个实施例提供的一种网络拓扑的示意图;
图12是本发明一个实施例提供的一种初始化后的网络拓扑的示意图;
图13是本发明一个实施例提供的一种确定交换机与终端设备之间连接关系后的网络拓扑的示意图;
图14是本发明一个实施例提供的包括I/O设备的网络拓扑的示意图;
图15是本发明一个实施例提供的一种计算设备与目标网络中的交换机相连接的示意图;
图16是本发明一个实施例提供的一种计算设备的示意图;
图17是本发明一个实施例提供的另一种计算设备的示意图;
图18是本发明一个实施例提供的又一种计算设备的示意图;
图19是本发明一个实施例提供的又一种计算设备的示意图;
图20是本发明一个实施例提供的又一种计算设备的示意图;
图21是本发明一个实施例提供的又一种计算设备的示意图;
图22是本发明一个实施例提供的又一种计算设备的示意图。
附图标记列表:
101:确定待进行网络拓扑构建的目标网络
102:确定目标网络中的I/O设备的标识
103:确定终端设备与I/O设备之间的第一连接关系
104:根据交换机之间的连接关系、交换机与终端设备之间的连接关系以及I/O设备与终端
设备之间的连接关系,生成网络拓扑
21:网络确定模块 22:标识获取模块 23:关系确定模块
24:拓扑处理模块 25:存储器 26:处理器
221:监听单元 222:获取单元 223:协议确定单元
224:第二处理子单元 231:第二关系确定单元 232:第三关系确定单元
2321:地址删除子单元 2322:第一处理子单元 2323:第一整合子单元
2324:端口筛选子单元 2325:第一集合构建子单元 2326:第二集合构建子单元
2327:第二关系确定子单元 2328:第二整合子单元
具体实施方式
如前所述,目前的构建网络拓扑时,需要人工现场逐一确定不同设备之间的物理连接关系,比如,通过人工识别交换机与交换机之间的连接关系以及交换机与终端设备之间的连接关系,再根据识别出的连接关系构建网络拓扑。但是,设备之间连接较为复杂,人工识别过程中很容易出错,影响网络拓扑构建的准确性。并且当所要识别的设备数量较多,且不同设备间的位置相对较远时,通过人工识别设备连接关系会耗费大量的时间,从而降低构建网络拓扑的效率。
本发明实施例中,由于交换机端口的MAC地址表包含有终端设备的MAC地址以及交换机的MAC地址,而MAC地址表中所包括的MAC地址不仅能够反映交换机之间的连接关系,还能反映交换机与终端设备之间的连接关系。而且从终端设备所存储的I/O设备的标识,也能够反映终端设备与I/O设备之间的连接关系。因此可以从交换机上获取存储的MAC地址表,并从终端设备上获取I/O设备的标识,再根据获取的MAC地址表中的MAC地址确定交换机之间的连接关系以及终端设备与交换机之间的连接关系,并根据I/O设备的标识确定终端设备与I/O设备之间的连接关系,最后根据确定的连接关系构建目标网络中的交换机、终端设备以及I/O设备的网络拓扑。由于目标网络内的设备之间的连接关系不需要通过人工现场来确定,所以不仅可以减少人工参与,还可以缩短确定设备之间连接关系的时间,提高构建网络拓扑的效率。
下面结合附图对本发明实施例提供的换气系统进行详细说明。
如图1所示,本发明实施例提供了网络拓扑构建方法,包括:
步骤101:确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
步骤102:通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识;
步骤103:针对所述目标网络中的每一个终端设备,确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
步骤104:根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑。
在本发明实施例中,通过确定待进行网络拓扑构建的目标网络,可以确定出位于该目标网络内的交换机、通过网线与其他设备进行交互的终端设备以及通过I/O总线与其他设备进行交互的I/O设备。由于终端设备与I/O设备相连接,而交换机直接或间接与终端设备相连接,因此,通过交换机可以获取到终端设备所连接的I/O设备的标识,进而基于获取到的标识确定目标网络中的终端设备与I/O设备之间的第一连接关系。再基于目标网络中的交换机与终端设备之间的第二连接关系、交换机之间的第三连接关系,即可生成目标网络的网络拓扑。通过上述可见,设备之间的连接关系无需人工现场确认,因此,不仅减少网络拓扑构建过程中人工参与的程度,还可以避免人工识别各设备间物理连接关系出错进而导致构建网络拓扑错误的情况出现,又可以提高构建网络拓扑的效率。
本发明实施例中,目标网络可以是一个独立的网络,也可以是由多个网络组成的。比如,交换机a、终端设备b和I/O设备c位于同一个局域网x内,交换机d和终端设备e位于局域网z内,但是,交换机a与交换机d之间进行数据交互,所以目标网络可以由局域网x和局域网z构成。
本发明实施例中,终端设备可以是直接数字控制(Direct Digital Control,DDC)控制器、工作站、IP网关、台式电脑、笔记本电脑、PLC、通信模块或者上位机等具有网络通信功能的设备。I/O设备可以是打印机、鼠标、键盘、空调、加湿器等需要通过总线进行数据传输的设备。
在本发明实施例中,在获取目标网络中的交换机的端口的MAC地址时,可以通过简单网络管理协议(SNMP)、地址解析协议(ARP)以及链路层发现协议(LLDP)等,对目标网络中的任意一个交换机进行监听,确定该交换机与其他的交换机进行数据传输时的数据传输路径,然后从目标网络中确定一个或多个能够与目标网络中的所有的交换机进行数据传输的主交换机,通过对主交换机进行监听,确定目标网络中存在的每一个交换机。再获取交换机各端口的MAC地址表。例如,可以通过SNMP获取符合管理信息库(Management InformatI/OnBase,MIB)框架的配置信息,进而从所获取的配置信息中提取交换机各端口的MAC地址表。
在本发明实时例中,在通过交换机获取终端设备上存储的I/O设备的标识时,可以先通过楼控协议BACnet/IP以及网关协议KNX/IP协议等,判断每一个终端设备的所遵从的协议,进而判断该终端设备是否与I/O设备相连接,若该终端设备与I/O设备相连接,则会存储有相连接的I/O设备的标识,即可逐步获取到目标网络中的I/O设备的标识。
可选地,在图1所示网络拓扑构建方法的基础上,在获取终端设备上存储的I/O设备的标识时,可通过如下两种方式获得:
方式一:通过对目标网络中任意一个或多个交换机进行监听,可以确定被监听的交换机与其他设备进行的数据传输路径,通过数据传输路径从目标网络中确定出能够与目标网络之外的设备进行交互的主交换机,然后通过该主交换机获取目标网络中I/O设备的标识。
方式二:由于I/O设备与终端设备相连接,因此,通过判断终端设备所遵循的协议可以确定该终端设备是否连接有I/O设备。若是,则从终端设备中获取其连接的I/O设备的标识。
可选地,在图1所示网络拓扑构建方法的基础上,在根据各个MAC地址表中所包括的终端设备的MAC地址确定用于表征目标网络中终端设备与交换机之间连接关系的第二连接关系时,可以基于如下三个规则来确定目标网络中各终端设备与交换机之间的连接关系:
(1)当交换机某个端口(port)直接连接一个终端设备(而非交换机时)时,则该交换机的MAC地址表中,对应端口对应的MAC地址集合中应当只有一个MAC地址。
(2)对于支持PROFIENT的设备(例如PLC、通信模块、上位机等),通常一个端口对应着多个MAC地址,一个用于与IP地址绑定(此MAC地址会出现在其他交换机的MAC地址表中),另外的则用于LLDP/PN-PTCP/MRP等通信。通过SNMP,访问ifPhysAddress.1可以获得绑定IP的MAC地址,而访问ifPhysAddress.2/3…等则可获得对应于其他的MAC地址。
因此,根据交换机端口的MAC地址表中是否包含对应于同一终端设备的多个MAC地址,可判断出连接到交换机端口的终端设备。
(3)通过判断交换机端口的MAC地址表中是否同时含有某个终端设备的MAC地址和其他交换机的端口的MAC地址,可判断出该终端设备并没有直接连接到第一个交换机的端口上。
可选地,根据目标网络中各交换机的端口是否具有MAC地址,可以采用两种不同的方式来确定用于表征交换机之间连接关系的第三连接关系。当目标网络中各交换机的端口均具有MAC地址时,可以根据所获取到的各MAC地址表中包括的交换机端口的MAC地址来确定第三连接关系,当目标网络中存在部分或全部交换机的端口没有MAC地址时,可以根据所获取到的各MAC地址表中包括的终端设备的MAC地址来确定第三连接关系。
下面通过实施例一对根据各MAC地址表中包括终端设备的MAC地址来确定第二连接关系的方法进行详细说明,并通过实施例二对根据各MAC地址表中包括的交换机端口的MAC地址来确定第二连接关系的方法进行详细说明。
实施例一:
1、初始化
初始化MAC地址集合列表list_of_mac_set=[];
初始化终端设备与交换机的(直接)连接的列表switch_to_endpoint=[];
初始化交换机之间连接的端口switch_to_switch=[];
初始网络拓扑图topology,包含全部n个交换机Si及所有的终端设备,并且交换机及终端设备之间没有任何连接。
2、对输入的数据进行预处理,整理出各个交换机的各个端口的MAC地址表list_of_mac_set。MAC地址表list_of_mac_set如下表1所示。
表1
3、针对list_of_mac_set中的数据,识别交换机与终端设备的连接(非交换机与交换机之间的连接),将该连接保存到switch_to_endpoint列表中。
1)当交换机某个端口(port)直接连接是一个IT设备(而非交换机时)时,则该交换机的MAC地址表中,对应端口对应的MAC地址集合中应当只有一个地址。
2)而对支持PROFIENT的设备(包括PLC,通信模块或上位机),通常一个端口对应着多个MAC地址,一个用于与IP地址绑定(此MAC地址会出现在其他交换机的MAC地址表中),另外的则用于LLDP/PN-PTCP/MRP等通信。通过SNMP,访问ifPhysAddress.1可以获得绑定IP的地址,而ifPhysAddress.2/3…等则对应于其他的MAC地址。
因此,根据交换机端口的MAC地址表中是否包含对应于同一设备的多个MAC地址,可判断出连接到交换机端口的终端设备。
3)通过判断交换机端口的MAC地址表中是否同时含有某个终端设备的MAC地址(如S623)和其他交换机的端口的MAC地址,可判断出该终端设备并没有直接连接到第一个交换机的端口上;
将识别出的终端设备连接到网络拓扑图topology中对应的交换机上,并将交换机直连的终端设备的集合Si={Dj,Dk,...}添加到列表switch_to_endpoint中。
如果某一个终端设备出现在多个交换机端口的MAC地址表,并且该端口MAC地址表只包含此终端设备的MAC地址(如SiPj={Dk}),则暂时无法确定该设备连接到那个交换机上。在这种情况下,将所有这样的交换机端口的MAC地址表组成一个(等价)集合{SiPj={Dk},...},添加到列表switch_to_endpoint的后面。
4、从表1中抽取出各交换机中并非连接到终端设备的接口的MAC地址集合,将其标记为SiPj,其中Si为交换机编号,而Pj为交换机的端口编号。将形如SiPj={Dk,Dl,...}添加到列表switch_to_switch。
现有的交换机中存在两种情况,一种是交换机各端口自身没有MAC地址(如果交换机提供管理接口,则该管理接口存在MAC地址);另一种交换机则为每一个网络接口都分配了MAC地址,通过SNMP,访问交换机的OIDifPhysAddress(1.3.6.1.2.1.2.2.1.6).1可以类似地获得各个端口的MAC地址。因此,本算法实现需要在在构造switch_to_switch过滤掉这些地址。
5、基于等价关系进行交换机之间连接关系的推导。
1)从switch_to_endpoint中取出(同时删除)第一个Sx
2)如Sx为形如Sx={...}的交换机设备集合,则:
2.1)在switch_to_switch中搜索Sx(所包含的设备集合)
2.2)如果switch_to_switch中存在唯一的SyPz(所包含的设备集合)与Sx相同,也即SyPz=Sx,则从switch_to_switch表中删除SyPz={Di,…},并检测当前网络拓扑中交换机Sx与Sy之间的连接是否已经确定,
如果没有,跳转到步骤4);
如果已经推导出了关系,跳转到步骤6);
2.4)如果在中对Sx进行全集合匹配没有获得结果,则需要进一步进行子集匹配;
如果switch_to_switch中存在唯一的SyPz(所包含的设备集合)与S′相同,也即SyPz=S′,则跳转到2.2)进行类似的处理;
如果switch_to_switch中匹配上两个以上的元素,则跳转到步骤2.3)进行类似的处理;
2.5)如在switch_to_switch中没有Sx(及其子集合)对应的元素,则将Sx放回switch_to_endpoint的尾部,跳转到步骤6)。
3)如Sx为形如{SyPz={Di}/Si,SuPv={Dj}/Si,...}的等价类集合,则:
3.1)等价类集合中的第一个等价关系开始,逐一进行尝试:
3.2)检查当前等价关系,如果在当前网络拓扑中,此关系已经得到满足,就跳过此关系,返回3.1)选择下一等价关系
3.3)对当前等价关系SyPz={Di}/Si,尝试将目标设备或交换机Di/Si连接到交换机Sy的Pz端口;
3.4)根据list_of_mac_set检查当前假设是否合理,具体包括:
Sy的Pz端口是否已经被其他连接所占用,因而无法用于连接Di/Si;
Sy是否还拥有(或者已经有)连接其他交换机Su的接口,从而能够形成此等价类;
3.5)如果假设不合理,则跳转到步骤3.1)尝试下一假设;
3.6)如果当前假设合理,则:
保存等价类选择的现场(包括当前的网络拓扑、switch_to_endpoint、switch_to_switch、当前的等价类集合,以及当前所做的选择);
从该等价类集合中删除已经处理(包括跳过和选择)过的假设关系;
对剩下的等价类集合:如果为空,直接跳转到步骤4);如果等价类集合中只剩下一个关系,就将该关系添加到switch_to_switch中,否则将修改后的等价类集合放回switch_to_endpoint的尾部。然后跳转到步骤4);
3.7)如果等价类集合中的所有等价关系都无法成立,则将此等价关系放回switch_to_endpoint的尾部,等通过进一步的推导获得了更多的信息后再行推导。跳转到步骤6)。
4)在网络拓扑中,将交换机Sx连接到交换机Sy的Pz端口。并根据list_of_mac_set中Sx交换机各端口对应的MAC地址集合,判断Sy的Pz连接在Sx的那个端口上(可能无法判断出来);
5)更新交换机所连接的设备集合。
将Sx连接的设备集合合并到Sy中。如果switch_to_endpoint已经存在Sy,更新此Sy(=原先的Sy+Sx);如果switch_to_endpoint没有Sy,则将合并后的Sy添加到switch_to_endpoint的尾部;
同样也将Sy连接的设备集合合并到Sx中,如果switch_to_endpoint已经存在Sx,更新此Sx(=原先的Sx+Sy);如果switch_to_endpoint没有Sx,则将合并后的Sx添加到switch_to_endpoint的尾部;
6)如果当前网络拓扑中各交换机已经连接为一个完整的图,则算法结束;否则,返回步骤1)继续进行处理。
如果当switch_to_endpoint为空时,仍未将各交换机连接为一个完整的图,则取出最近一次等价类集合选择所保存的现场,放弃当时所做的选择,改选之后等价关系进行尝试。如果还是无法构造出一个图,就再回退到更早的一个等价类集合的选择,直到构造出一个完整的图,或者所有等价类集合的各种可能都已经尝试,也无法得到一个完整的图,此时算法亦结束。
需要说明的是,上述实施例一所提供的网络拓扑构建方法中,当接入交换机至少连接有两个以上的终端设备时,本算法能够精确、完整地构造出与实际网络连接情况一致的网络拓扑(实例1);但当接入交换机只连接了一个(甚至没有连接任何)终端设备时,本算法仍能够推导出一个完整的网络拓扑(实例2),但此网络拓扑可能与实际的网络连接情况并不一致,而是一个等价的网络拓扑。
实施例二:
1、初始化
初始化MAC地址集合列表list_of_mac_set=[];
初始网络拓扑图topology,包含全部n个交换机Si及所有的终端设备,并且交换机及终端设备之间没有任何连接;
2、对输入的数据(通过SNMP采集的各交换机端口的MAC地址表,以及端口自身的MAC地址)进行预处理,整理出各个交换机的(各个端口的)MAC地址表list_of_mac_set。
3、根据每一交换机的每一端口的MAC地址表,判断交换机与终端设备之间的连接情况:
1)交换机端口的MAC地址表中是否包含对应于同一设备的多个MAC地址,可判断出连接到交换机端口的终端设备。
2)通过判断交换机端口的MAC地址表中是否同时含有某个终端设备的MAC地址和其他交换机的端口的MAC地址,可判断出该终端设备并没有直接连接到第一个交换机的端口上;
4、从list_of_mac_set清除掉所有除交换机端口MAC地址之外的MAC地址,包括:
1)终端设备的MAC地址;
2)交换机管理接口的MAC地址;
3)及其他无关的MAC地址。
然后得到只与交换机之间的连接相关的list_of_mac_set。
5、根据交换机端口MAC地址表中的地址推导交换机之间的连接关系。
在工业控制网络中,为了实现网络的高可靠性,往往支持用多个交换机构成一个环形网络。尽管在正常工作时网络在逻辑上并不是一个环(环中有一个链接没有用于实际通信),但当网络中的某一点发生中断时,用于备份的链接就会被启用恢复交换机之间的连接。要构造和维护这样的环网,环网中有一个交换机需要被配置为管理节点(冗余管理器),其端口的MAC地址会被广播到环网中所有交换机的不同端口的MAC地址表中。根据这一特点,可以很容易地将这种MAC地址排除。
因此,根据第4步清洗后生产list_of_mac_set,对其中的交换机逐一进行下述分析:
1)对当前交换机的各端口对应的MAC地址表进行分析,如果发现其不同端口上都有同一交换机的(不同)端口的MAC地址,则可判断此交换机为冗余管理器,可以将其端口的MAC地址排除;
2)对当前交换机的端口上的MAC地址表不为空(此时也只有含有1个MAC地址)每一端口,可直接推导出,当前交换机的当前接口连接到这一个MAC地址对应(另一交换机的)端口上。
循环进行上述处理,直到list_of_mac_set中所有交换机的所有端口都处理完毕。至此,所有交换机都连接成了一个完整的图。
下面结合具体实例,对上述实施例一和实施例二所提供的网络构建方法进行进一步详细说明。其中,实施例三、实施例四和实施例五与实施例一相对应,在网络拓扑构建过程中根据各MAC地址表中终端设备的MAC地址来确定第二连接关系,实施例六与实施例二相对应,在网络拓扑构建过程中根据各MAC地址表中交换机端口的MAC地址来确定第二连接关系。
实施例三:
在本实例中,假定所监测的网络拓扑如图2所示,其中,圆形表示交换机,方形表示终端设备。
通过(SNMP)探测,预先获得了每一交换机的MAC地址表,则其网络拓扑的推导过程如下:
1、初始化list_of_access_switch=[],switch_to_endpoint=[],switch_to_switch=[],并初始化网络拓扑图topology如图3所示。
2、对SNMP探测获得的交换机端口MAC地址表数据进行整理后,可获得list_of_mac_set如下表2所示。
表2
3、识别出终端设备Di,i=1…11,并将其连接到网络拓扑Topology中的对应交换机上,如下图4所示。
构造接入交换机的MAC地址集合的列表switch_to_endpoint=[S1={D1,D2},S2={D3,D4},S3={D5,D6},S4={D7,D8},S5={D9,D10},S6={D13,D14},S8={D12},{S2P3={D11},S7P2={D11}}]
4、构造交换机之间的MAC地址集合列表switch_to_switch如下,
switch_to_switch=[S1P3={D11,D12,D13,D14},S3P3={D11,D13,D14},S4P3={D12,D13,D14},S5P3={D11,D12},S6P3={D1,D2,D5,D6,D7,D8,D11,D12},S7P1={D1,D2},S7P3={D3,D4},S7P4={D5,D6},S7P5={D12,D13,D14},S8P2={D7,D8},S8P3={D9,D10},S8P4={D11,D13,D14},S9P1={D13,D14},S9P2={D1,D2,D5,D6,D7,D8,D11,D12},S10P1={D1,D2,D5,D6,D11},S10P2={D7,D8,D9,D10,D12},S10P3={D13,D14}]
5、基于等价关系进行交换机之间连接关系的推导。
(1)从switch_to_endpoint中取出S1={D1,D2},先在switch_to_switch中搜索等价于{D1,D2}的元素,找到唯一的一个S7P1={D1,D2},则:
在网络拓扑中,将交换机S1连接到交换机S7的P1端口,同时根据S1的端口(根据list_of_mac_set),S7的P1端口只可能连接在S1的P3端口;
从switch_to_switch表中删除S7P1={D1,D2};
由于switch_to_endpoint表中原先并不包含S7,因此将S7={D1,D2}添加到switch_to_endpoint表的尾部;
(2)从switch_to_endpoint中依次取出S2={D3,D4},S3={D5,D6},S4={D7,D8},S5={D9,D10},类似地进行相应的处理(所不同的是,switch_to_endpoint中已经有S7,此时是将新的设备添加到已有的S7集合中),得到的网络拓扑如图5所示。
(3)从switch_to_endpoint中取出S6={D13,D14},在switch_to_switch中搜索等价于{D13,D14}的元素,匹配上两个元素:S9P1={D13,D14},S10P3={D13,D14}。此时,无法判断交换机S6是连接在交换机S9上,还是连接在交换机S10上。因此只能创建等价集合{S9P1=S6,S10P3=S6},并将其添加到switch_to_endpoint表的尾部。
此时,
switch_to_endpoint=[S8={D12,D7,D8,D9,D10},{S2P3={D11},S7P2={D11}},S7={D1,D2,D3,D4,D5,D6},{S9P1=S6,S10P3=S6}];
switch_to_switch=[S1P3={D11,D12,D13,D14},S3P3={D11,D13,D14},S4P3={D12,D13,D14},S5P3={D11,D12},S6P3={D1,D2,D5,D6,D7,D8,D11,D12},S7P5={D12,D13,D14},S8P4={D11,D13,D14},S9P2={D1,D2,D5,D6,D7,D8,D11,D12},S10P1={D1,D2,D5,D6,D11},S10P2={D7,D8,D9,D10,D12},S9P1={D13,D14},S10P3={D13,D14}]。
(4)从switch_to_endpoint中取出S8={D12,D7,D8,D9,D10},在switch_to_switch中搜索对应的等价元素,匹配上唯一的S10P2={D7,D8,D9,D10,D12}。
在网络拓扑中,将交换机S8连接到交换机S10的P2端口;
从switch_to_switch表中删除S10P2={D7,D8,D9,D10,D12};
由于switch_to_endpoint表中原先并不包含S7,因此将S10={D7,D8,D9,D10,D12}添加到switch_to_endpoint表的尾部。
(5)从switch_to_endpoint中取出等价集合{S2P3={D11},S7P2={D11}},依次进行推断:
先假设D11连接在交换机S2的P3端口上,由于根据之前的推断可知,该端口已经用于连接交换机S7,因此该假设不可行;
再假设D11连接在交换机S7的P2端口上,由于之前已经推断出交换机S2的P3端口连接在交换机S7的P3端口上,很自然地可以得出S2P3={D11},因此假设成立。
基于上述推导,
在网络拓扑中,将设备D11连接到交换机S7的P2端口;
将D11添加到switch_to_endpoint表的S7中;
(6)从switch_to_endpoint中取出S7={D1,D2,D3,D4,D5,D6,D11},在switch_to_switch中搜索对应的等价元素,没有匹配上任意一个元素。
进一步,用S7的子集合(按集合大小从大到小的顺序)搜索switch_to_switch,可以匹配上唯一的S10P1={D1,D2,D5,D6,D11};
在网络拓扑中,将交换机S7连接到交换机S10的P1端口;
从switch_to_switch表中删除S10P1={D1,D2,D5,D6,D11};
将{D1,D2,D5,D6,D11}添加到switch_to_endpoint表中的S10集合中;
此时的网络拓扑如图6所示。
(7)从switch_to_endpoint中取出等价关系{S9P1=S6,S10P3=S6},依次进行推断:
先假设S6连接在交换机S10的P3端口上,则S9仍需要连接到S10上,才有可能出现等价关系{S9P1=S6,S10P3=S6}。但根据list_of_mac_set,S10总共有3个网络接口,一个连接了S7,一个连接了S8,剩下的一个网口无法同时直接连接S6和S9,因此此假设无法成立;
假设S6连接在交换机S9的P1端口上,没有证据表明此假设有矛盾。
基于上述推导,
在网络拓扑中,将设备D6连接到交换机S9的P1端口;
将S9={D13,D14}添加到switch_to_endpoint表的尾部。
(8)从switch_to_endpoint中取出S10={D1,D2,D5,D6,D11,D7,D8,D9,D10,D12},在switch_to_switch中搜索对应的等价元素,没有匹配上任意一个元素。
进一步,用S10的子集合(按集合大小从大到小的顺序)搜索switch_to_switch。其中,子集{D1,D2,D5,D6,D7,D8,D11,D12}可以匹配上两个元素,S6P3={D1,D2,D5,D6,D7,D8,D11,D12}和S9P2={D1,D2,D5,D6,D7,D8,D11,D12}。
分析后发现这两个集合体现的是第7步中已经分析出来的S9与S6之间的连接关系。因此,从switch_to_switch表中删除S6P3={D1,D2,D5,D6,D7,D8,D11,D12}和S9P2={D1,D2,D5,D6,D7,D8,D11,D12}。
(9)从switch_to_endpoint中取出S9={D13,D14},在switch_to_switch中搜索等价于{D13,D14}的元素,(再次)匹配上两个元素:S9P1={D13,D14},S10P3={D13,D14}。其中,S9P1={D13,D14}即是当前S9={D13,D14}的体现,因而跳过。因此,
在网络拓扑中,将交换机S9连接到交换机S10的P3端口,从switch_to_switch表中删除S9P1={D13,D14},S10P3={D13,D14};
此时,switch_to_endpoint为空,所有交换机都已经彼此相连(构成了一个任意可达的图),算法终止。可见算法准确推导出了原始的网络拓扑。
实施例四:
在本实例中,假定所监测的网络拓扑如图7所示,其中,圆形表示交换机,方形表示终端设备。
由于交换机的MAC地址表与设备之间是否有通信相关联,因此在此实例中,做如下假定:
D1~D4只与D10通信;
D5~D7只于D11通信;
而D8、D9、D10、D11则互相之间都有通信。
假定通过(SNMP)探测,获得了每一交换机的MAC地址表,则其网络拓扑的推导过程如下:
1.初始化list_of_mac_set=[],switch_to_endpoint=[],switch_to_switch=[],并初始化网络拓扑图topology如图8所示。
2.对SNMP探测获得的交换机端口MAC地址表数据进行整理后,可获得list_of_mac_set如下表3所示。
表3
3.识别出终端设备Di,i=1…11,并将其连接到网络拓扑Topology中的对应交换机上,如图9所示。
构造介入交换机的MAC地址集合的列表switch_to_endpoint=[S2={D2,D3},S4={D5,D6},S6={D8,D9},{S7P1={D1},S1P1={D1}},{S1P2={D10},S2P3={D10},S3P2={D10},S7P2={D10},S10P1={D10}},{S3P1={D4},S7P4={D4}},{S5P1={D7},S8P3={D7}},{S4P3={D11},S5P2={D11},S8P1={D11},S10P2={D11}]
对其他设备,如D1、D4等,由于同时出现在多个交换机的端口上,所以暂时无法判断其直连的交换机。
4.构造交换机之间的MAC地址集合列表switch_to_switch如下,
switch_to_switch=[S6P3={D10,D11},S7P3={D2,D3},S8P2={D5,D6},S8P4={D8,D9,D10},S9P1={D8,D9},S9P2={D10,D11},S10P3={D8,D9}]。
5.基于等价关系进行交换机之间连接关系的推导。
(1)从switch_to_endpoint中取出S2={D2,D3},先在switch_to_switch中搜索等价于{D1,D2}的元素,找到唯一的一个S7P3={D2,D3},则:
在网络拓扑中,将交换机S2连接到交换机S7的P3端口,同时根据S2的端口(根据list_of_mac_set),S7的P3端口只可能连接在S2的P3端口;
从switch_to_switch表中删除S7P1={D1,D2};
由于switch_to_endpoint表中原先并不包含S7,因此将S7={D2,D3}添加到switch_to_endpoint表的尾部;
(2)从switch_to_endpoint中取出S4={D5,D6},先在switch_to_switch中搜索等价于{D5,D6}的元素,找到唯一的一个S8P2={D5,D6},则:
在网络拓扑中,将交换机S4连接到交换机S8的P2端口,同时根据S4的端口(根据list_of_mac_set),S8的P2端口只可能连接在S4的P3端口;
从switch_to_switch表中删除S8P2={D5,D6};
由于switch_to_endpoint表中原先并不包含S8,因此将S8={D5,D6}添加到switch_to_endpoint表的尾部;
(3)从switch_to_endpoint中取出S6={D8,D9},在switch_to_switch中搜索等价于{D8,D9}的元素,匹配上两个元素:S9P1={D8,D9},S10P3={D8,D9}。此时,无法判断交换机S6是连接在交换机S9上,还是连接在交换机S10上。因此只能创建等价集合{S9P1=S6,S10P3=S6},并将其添加到switch_to_endpoint表的尾部,同时从switch_to_switch中删除S9P1={D8,D9},S10P3={D8,D9}。
(4)从switch_to_endpoint中取出等价类集合{S7P1={D1},S1P1={D1}},依次进行推断:
先假设D1连接在交换机S7的P1端口上,根据list_of_mac_set判断,此假设目前可以成立。因此保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的S1P1={D1}保存到switch_to_switch中;
在网络拓扑中,将设备D1连接到交换机S7的P1端口;
将D1添加到switch_to_endpoint表的S7中;
(5)从switch_to_endpoint中取出等价类集合{S1P2={D10},S2P3={D10},S3P2={D10},S7P2={D10},S10P1={D10}},依次进行推断:
先假设D10连接在交换机S1的P2端口上,根据list_of_mac_set判断,此假设目前可以成立。
然后,保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的{S2P3={D10},S3P2={D10},S7P2={D10},S10P1={D10}}保存到switch_to_endpoint表的尾部
在网络拓扑中,将设备D10连接到交换机S1的P2端口;
由于switch_to_endpoint表中原先并不包含S1,因此将S1={D10}添加到switch_to_endpoint表的尾部;
(6)从switch_to_endpoint中取出等价关系{S3P1={D4},S7P4={D4}},,依次进行推断:
先假设D4连接在交换机S3的P1端口上,根据list_of_mac_set判断,此假设目前可以成立。因此保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的S7P4={D4}保存到switch_to_switch中;
在网络拓扑中,将设备D4连接到交换机S3的P1端口;
由于switch_to_endpoint表中原先并不包含S3,因此将S3={D4}添加到switch_to_endpoint表的尾部;
(7)从switch_to_endpoint中取出等价关系{S5P1={D7},S8P3={D7}},依次进行推断:
先假设D7连接在交换机S5的P1端口上,根据list_of_mac_set判断,此假设目前可以成立。因此保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的S8P3={D7}保存到switch_to_switch中;
在网络拓扑中,将设备D7连接到交换机S5的P1端口;
由于switch_to_endpoint表中原先并不包含S5,因此将S5={D7}添加到switch_to_endpoint表的尾部;
(8)从switch_to_endpoint中取出等价关系{S4P3={D11},S5P2={D11},S8P1={D11},S10P2={D11}},依次进行推断:
先假设D11连接在交换机S4的P3端口上,根据list_of_mac_set判断,交换机S4的P3端口已经连接了S8,因此此假设不成立。
再假设D11连接在交换机S5的P2端口上,根据list_of_mac_set判断,S5只有两个相关端口,P1已经连接了D7,如果P2再与(另一个终端设备)D11相连,就不再有网络接口与其他交换机相连,从而形成当前的等价类集合。因此,此假设也不成立。
再假设D11连接在交换机S8的P1端口上,根据list_of_mac_set判断,此假设成立。因此保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的{S4P3={D11},S5P2={D11},S10P2={D11}}保存到switch_to_endpoint表的尾部
在网络拓扑中,将设备D11连接到交换机S8的P1端口;
将S8={D11}合并到switch_to_endpoint表中的S1集合中;
(9)从switch_to_endpoint中取出S7={D2,D3,D1},先在switch_to_switch中搜索等价于{D2,D3,D1}的元素,没有找到;
因此,开始按集合从大到小的顺序,构造{D2,D3,D1}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{D1}找到唯一的一个S1P1={D1},则:
在网络拓扑中,将交换机S7连接到交换机S1的P1端口,同时根据S7的端口(根据list_of_mac_set),S1的P1端口只可能连接在S7的P2端口;
由于S1={D10},自然可以扩展S7={D2,D3,D1,D10},将其保存到switch_to_endpoint尾部;
从switch_to_switch表中删除S1P1={D1};
将D1合并到switch_to_endpoint表中的S1中。
(10)从switch_to_endpoint中取出S8={D5,D6,D11},先在switch_to_switch中搜索等价于{D5,D6,D11}及其子集的元素,没有找到,因此将S8={D5,D6,D11}放回switch_to_endpoint的尾部;
(11)从switch_to_endpoint中取出等价关系{S9P1=S6,S10P3=S6},依次进行推断:
先假设S6连接在交换机S9的P1端口上,根据list_of_mac_set判断,此假设成立。因此保存现有的选择现场。
基于上述推导,
将等价类集合中剩下的S10P3={D8,D9}保存到switch_to_switch表中;
在网络拓扑中,将设备S6连接到交换机S9的P1端口;
将S9={D8,D9}添加到switch_to_endpoint表中的尾部;
(12)从switch_to_endpoint中取出等价关系{S2P3={D10},S3P2={D10},S7P2={D10},S10P1={D10}},依次进行推断:
由于已经推断出D10连接在交换机S1,根据现有的网络拓扑,S1连接着S7,S7连接着S2,因此S2P3={D10}已经得到满足,可以跳过;
对S3P2={D10}
先假设其与S1直连,根据list_of_mac_set判断,此假设不成立。
在假设其与S7,在现有的信息下假设成立。并可根据list_of_mac_set推导出S3连接在S7的P4端口。
基于上述推导,
将等价类集合中剩下的S10P1={D10}保存到switch_to_switch表中;从switch_to_switch删除S7P4={D4},
在网络拓扑中,将设备S3连接到交换机S7的P4端口;
将S3={D4,D10}和S3={D4}补充到switch_to_endpoint表中的尾部;
(13)从switch_to_endpoint中取出S1={D10,D1},先在switch_to_switch中搜索等价于{D10,D1}及其子集的元素,没有找到,因此将S1={D10,D1}放回switch_to_endpoint的尾部;
(14)从switch_to_endpoint中取出等价关系{S4P3={D11},S5P2={D11},S10P2={D11}},依次进行推断:
由于已经推断出D11连接在交换机S8,根据现有的网络拓扑,S4连接着S8,因此S4P3={D11}已经得到满足,可以跳过;
对S5P2={D11},
先假设其与S8直连,根据list_of_mac_set判断,此假设成立。并可根据list_of_mac_set推导出S5连接在S8的P3端口。
基于上述推导,
将等价类集合中剩下的S10P2={D11}保存到switch_to_switch表中;
在网络拓扑中,将设备S5连接到交换机S8的P3端口;
将S5={D7,D11}和S8={D7}补充到switch_to_endpoint表中;
(15)从switch_to_endpoint中取出等价关系{S4P3={D11},S5P2={D11},S10P2={D11}},依次进行推断:
由于已经推断出D11连接在交换机S8,根据现有的网络拓扑,S4连接着S8,因此S4P3={D11}已经得到满足,可以跳过;
同样根据现有的网络拓扑,S5连接着S8,因此S5P2={D11}已经得到满足,可以跳过;
对S10P2={D11}
先假设其与S8直连,根据list_of_mac_set判断,此假设成立。并可根据list_of_mac_set推导出S10连接在S8的P4端口。
基于上述推导,
在网络拓扑中,将设备S10P2连接到交换机S8的P4端口;
将S10={D5,D6,D11,D7}补充到switch_to_endpoint表中;
(16)从switch_to_endpoint中取出S7={D2,D3,D1,D4,D10},,先在switch_to_switch中搜索等价于{D2,D3,D1,D4,D10}的元素,没有找到;
因此,开始按集合从大到小的顺序,构造{D2,D3,D1,D4,D10}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{D11}找到唯一的一个S10P2={D11},则:
在网络拓扑中,将交换机S7连接到交换机S10的P1端口,同时根据S7的端口(根据list_of_mac_set),S10的P1端口只可能连接在S7的P4端口;
因此可以扩展S10={D2,D3,D1,D4,D10}到switch_to_endpoint中;
从switch_to_switch表中删除S10P2={D11};
将D1合并到switch_to_endpoint表中的S1中;
(17)从switch_to_endpoint中取出S8={D5,D6,D11,D7},先在switch_to_switch中搜索等价于{D5,D6,D11,D7}的元素,没有找到;
因此,开始按集合从大到小的顺序,构造={D5,D6,D11,D7}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{D11}找到唯一的一个S8P3={D7},则:
在网络拓扑中,交换机S8已经连接到了S10,因此可以跳过。
(18)从switch_to_endpoint中取出S9={D8,D9},先在switch_to_switch中搜索等价于{D8,D9}的元素,匹配上唯一的S10P3={D8,D9},则:
在网络拓扑中,将交换机S9连接到交换机S10的P3端口,
同时根据S9的端口(根据list_of_mac_set),S190的P1端口只可能连接在S10的P3端口;
因此可以扩展S10={D8,D9}到switch_to_endpoint中;
从switch_to_switch表中删除S10P3={D8,D9};
至此,所有的交换机都相连成为了一个整体,算法结束。得到的网络拓扑如图10所示。
此拓扑与原始拓扑是等价的,差别仅在于D1和D10连接的交换机不同。这一差别很容易通过手工调整,而得到精确的原始拓扑。
实施例五:
本实例采用的是OT网络中常见的由多交换机构成的网络,其网络拓扑如图11所示,其中,圆形表示交换机,方形表示终端设备。
1.初始化list_of_mac_set=[],switch_to_endpoint=[],switch_to_switch=[],并初始化网络拓扑图topology如图12所示。
2.对SNMP探测获得的交换机端口MAC地址表数据进行整理后,可获得list_of_mac_set如下表4所示,并将其映射为(通过SNMP获得的)对应的设备的符号。
在此实例中,各交换机的端口以及交换机的管理端口都拥有自己的MAC地址,也出现在各交换机端口的MAC地址表中,形如“XX-XX-XX-XX-XX-XX SmPn”的MAC地址表征交换机m上端口n的MAC地址。
表4
尽管本算法并不利用交换机的端口MAC地址来进行交换机间连接关系的推导,而是更一般地利用交换机MAC地址表中的终端设备来进行分析,但这些交换机端口信息却有利于确定终端设备是否直连在某个交换机上。例如,尽管S623出现在每个交换机的某个端口上,但只有在S6P3端口上是只有S623的MAC地址,而其他出现S623的端口上都还有其他端口MAC地址出现,因此可以推断S623直接连接在S6P3端口上。
在此,清除掉交换机(自身)的MAC地址后得到的list_of_mac_set如下表5所示。
表5
3.识别出终端设备Di,i=1…11,并将其连接到网络拓扑Topology中的对应交换机上,如图13所示。
构造接入交换机的MAC地址集合的列表:
switch_to_endpoint=[S1={CP443(1),CP443(2)},S2={CP1543},S3={CP343(1)},S4={HP,CP343(2)},S5={1214},S6={S623}]。
4.构造交换机之间的MAC地址集合列表switch_to_switch如下,
switch_to_switch=[S1P1={S623},S1P2={1214,HP},S2P1={S623},S2P2={CP443(1),CP443(2),1214,HP},S3P1={S623},S3P2={CP1543,CP443(1),CP443(2),1214,HP},S4P1={S623},S5P1={S623},S5P2={HP},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}。
5.基于等价关系进行交换机之间连接关系的推导。
(1)从switch_to_endpoint中取出S1={CP443(1),CP443(2)},先在switch_to_switch中搜索等价于{CP443(1),CP443(2)}及其子集合的元素,没有找到,因此将S1={CP443(1),CP443(2)}放回switch_to_endpoint的尾部;
(2)从switch_to_endpoint中取出S2={CP1543},先在switch_to_switch中搜索等价于{CP1543}的元素,没有找到,因此将S2={CP1543}放回switch_to_endpoint的尾部;
(3)从switch_to_endpoint中取出S3={CP343(1)},先在switch_to_switch中搜索等价于{CP343(1)}的元素,没有找到,因此将S3={CP343(1)}放回switch_to_endpoint的尾部;
此时,
switch_to_endpoint=[S4={HP,CP343(2)},S5={1214},S6={S623},S1={CP443(1),CP443(2)},S2={CP1543},S3={CP343(1)}]
switch_to_switch=[S1P1={S623},S1P2={1214,HP},S2P1={S623},S2P2={CP443(1),CP443(2),1214,HP},S3P1={S623},S3P2={CP1543,CP443(1),CP443(2),1214,HP},S4P1={S623},S5P1={S623},S5P2={HP},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}
(4)从switch_to_endpoint中取出S4={HP,CP343(2)},先在switch_to_switch中搜索等价于{HP,CP343(2)}的元素,没有找到。
因此,开始按集合从大到小的顺序,构造{HP,CP343(2)}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{HP}找到唯一的S5P2={HP},则:
在网络拓扑中,将交换机S4连接到交换机S5的P2端口;
因此可以扩展S5={1214,HP,CP343(2)}到switch_to_endpoint中;
从switch_to_switch表中删除S5P2={HP};
此时,
switch_to_endpoint=[S5={1214,HP,CP343(2)},S6={S623},S1={CP443(1),CP443(2)},S2={CP1543},S3={CP343(1)}]
switch_to_switch=[S1P1={S623},S1P2={1214,HP},S2P1={S623},S2P2={CP443(1),CP443(2),1214,HP},S3P1={S623},S3P2={CP1543,CP443(1),CP443(2),1214,HP},S4P1={S623},S5P1={S623},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}]
(5)从switch_to_endpoint中取出S5={1214,HP,CP343(2)},先在switch_to_switch中搜索等价于{1214,HP,CP343(2)}的元素,没有找到。
因此,开始按集合从大到小的顺序,构造{1214,HP,CP343(2)}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{1214,HP}找到唯一的S1P2={1214,HP},则:
在网络拓扑中,将交换机S5连接到交换机S1的P2端口;
因此可以扩展S5={CP443(1),CP443(2),1214,HP,CP343(2)}到switch_to_endpoint中;
从switch_to_switch表中删除S1P2={1214,HP};
根据算法5.5步骤中描述的操作,应该为扩展S1,删除S5,执行之后如下:
switch_to_endpoint=[S6={S623},S1={CP443(1),CP443(2),1214,HP,CP343(2},S2={CP1543},S3={CP343(1)}];
switch_to_switch=[S1P1={S623},S2P1={S623},S2P2={CP443(1),CP443(2),1214,HP},S3P1={S623},S3P2={CP1543,CP443(1),CP443(2),1214,HP},S4P1={S623},S5P1={S623},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}];
(6)从switch_to_endpoint中取出S6={S623},先在switch_to_switch中搜索等价于{S623}的元素,匹配上多个元素:S1P1={S623},S2P1={S623},S3P1={S623},S4P1={S623},S5P1={S623}。
此时,无法根据S623判断交换机之间的连接关系。因此只能创建等价集合{S1P1={S623},S2P1={S623},S3P1={S623},S4P1={S623},S5P1={S623}},并将其添加到switch_to_endpoint表的尾部,同时从switch_to_switch中删除S1P1={S623},S2P1={S623},S3P1={S623},S4P1={S623},S5P1={S623}。
根据算法5.2.3中描述的步骤,生成等价{S1P1=S6,S2P1=S6,,S3P1=S6,S4P1=S6,S5P1=S6},此时,
switch_to_endpoint=[S1={CP443(1),CP443(2),1214,HP,CP343(2},S2={CP1543},S3={CP343(1)},{S1P1=S6,S2P1=S6,,S3P1=S6,S4P1=S6,S5P1=S6}];
switch_to_switch=[S2P2={CP443(1),CP443(2),1214,HP},S3P2={CP1543,CP443(1),CP443(2),1214,HP},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}];
(7)从switch_to_endpoint中取出S1={CP443(1),CP443(2),1214,HP,CP343(2)},先在switch_to_switch中搜索等价于{CP443(1),CP443(2),1214,HP,CP343(2)}的元素,没有找到。
因此,开始按集合从大到小的顺序,构造{CP443(1),CP443(2),1214,HP,CP343(2)}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{CP443(1),CP443(2),1214,HP}找到唯一的S2P2={CP443(1),CP443(2),1214,HP},则:
在网络拓扑中,将交换机S1连接到交换机S2的P2端口;
因此可以扩展S2={CP443(1),CP443(2),1214,HP,CP343(2)}到switch_to_endpoint中;
从switch_to_switch表中删除S2P2={CP443(1),CP443(2),1214,HP};
此时,
switch_to_endpoint=[S2={CP1543,CP443(1),CP443(2),1214,HP,CP343(2)},S3={CP343(1)},{S1P1=S6,S2P1=S6,,S3P1=S6,S4P1=S6,S5P1=S6}];
switch_to_switch=[S3P2={CP1543,CP443(1),CP443(2),1214,HP},S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}];
(8)从switch_to_endpoint中取出S2={CP1543,CP443(1),CP443(2),1214,HP,CP343(2)},先在switch_to_switch中搜索等价于{CP1543,CP443(1),CP443(2),1214,HP,CP343(2)}的元素,没有找到。
因此,开始按集合从大到小的顺序,构造{CP1543,CP443(1),CP443(2),1214,HP,CP343(2)}的子集,并在在switch_to_switch中搜索对应的子集。最后,根据{CP1543,CP443(1),CP443(2),1214,HP}找到唯一的S3P2={CP1543,CP443(1),CP443(2),1214,HP},则:
在网络拓扑中,将交换机S2连接到交换机S3的P2端口;
因此可以扩展S3={CP1543,CP443(1),CP443(2),1214,HP}到switch_to_endpoint中;
从switch_to_switch表中删除S2P2={CP443(1),CP443(2),1214,HP};
此时,
switch_to_endpoint=[S3={CP1543,CP443(1),CP443(2),1214,HP,CP343(2),CP343(1)},{S1P1=S6,S2P1=S6,,S3P1=S6,S4P1=S6,S5P1=S6}];
switch_to_switch=[S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}];
(9)从switch_to_endpoint中取出S3={CP1543,CP443(1),CP443(2),1214,HP,CP343(1)},先在switch_to_switch中搜索等价于{CP1543,CP443(1),CP443(2),1214,HP,CP343(1)}的元素,匹配上唯一的S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP},则:
在网络拓扑中,将交换机S3连接到交换机S6的P2端口;
因此可以扩展S6={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}到switch_to_endpoint中;
从switch_to_switch表中删除S6P2={CP1543,CP343(1),CP443(1),CP443(2),1214,HP}。
至此,所有交换机都连接成了一个完整的图,算法结束。算法得到网络拓扑与实际的网络拓扑完全一致。
实施例六:
本实施例采用的网络与实施例五所采用的网络相同,其网络拓扑如图11所示,其中,圆形表示交换机,方形表示终端设备。
1.首先初始化网络拓扑图topology如12图所示。
2.对SNMP探测获得的交换机端口MAC地址表数据进行整理后,可获得list_of_mac_set如实施例五中表4所示,并将其映射为(通过SNMP获得的)对应的设备的符号。
3.确定终端设备的连接情况。
与实施例五类似,通过如下规则,
1)交换机端口的MAC地址表中是否包含对应于同一设备的多个MAC地址,可判断出连接到交换机端口的终端设备;
2)通过判断交换机端口的MAC地址表中是否同时含有某个终端设备的MAC地址(如S623)和其他交换机的端口的MAC地址,可判断出该终端设备并没有直接连接到第一个交换机的端口上;
据此可以推导出如图13所示的网络拓扑。
4.从list_of_mac_set清除掉所有除交换机端口MAC地址之外的MAC地址,包括:
1)终端设备的MAC地址;
2)交换机管理接口的MAC地址;
3)及其他无关的MAC地址。
然后得到如下表6所示的list_of_mac_set。
表6
5.根据交换机端口MAC地址表中的MAC地址推导交换机之间的连接关系。
根据上述list_of_mac_set可以推导交换机之间的连接关系如下:
1)先分析交换机S1的端口MAC地址,发现其端口P1和端口P2上都含有交换机S4,在一般情况下不会出现这种情况,因此判断S4为环网的管理节点(冗余管理器),可以将其端口的MAC地址排除。
根据剩下的MAC地址可以直接推断出:
交换机S1的端口P1连接在交换机S2的端口P2上;
交换机S1的端口P2连接在交换机S5的端口P1上;
2)对交换机S2的端口MAC地址表,类似地排除S4端口的MAC地址,根据剩下的MAC地址可以直接推断出:
交换机S2的端口P1连接在交换机S3的端口P2上;
交换机S2的端口P2连接在交换机S1的端口P1上;
3)对交换机S3的端口MAC地址表,类似地排除S4端口的MAC地址,根据剩下的MAC地址可以直接推断出:
交换机S3的端口P1连接在交换机S6的端口P2上;
交换机S3的端口P2连接在交换机S2的端口P1上;
4)对交换机S4的端口MAC地址表,其为管理交换机,根据其端口上的MAC地址可以直接推断出:
交换机S4的端口P1连接在交换机S5的端口P2上;
5)对交换机S5的端口MAC地址表,类似地排除S4端口的MAC地址,根据剩下的MAC地址可以直接推断出:
交换机S5的端口P1连接在交换机S1的端口P2上;
另外,根据第4)步,可知交换机S5的端口P2连接在交换机S4的端口P1上
6)对交换机S6的端口MAC地址表,类似地排除S4端口的MAC地址,根据剩下的MAC地址可以直接推断出:
交换机S6的端口P2连接在交换机S3的端口P1上;
至此,所有交换机都连接成了一个完整的图,算法结束。算法得到网络拓扑与实际的网络拓扑完全一致。
另外,在获取目标网络中每一个交换机上的每一个端口的MAC地址表时,可以从位于目标网络的汇聚层和/或核心层的交换机获取目标网络中每个交换机上每个端口的MAC地址表。
网络中的交换机可以划分为接入层、汇聚层和核心层,接入层的交换机用于连接终端设备,汇聚层的交换机用于连接接入层的交换机,同时也可以连接终端设备,核心层的交换机用于连接汇聚层的交换机,同时也可以连接终端设备,而且通常情况下接入层交换机的数量大于汇聚层交换机的数量,汇聚层交换机的数量大于核心层交换机的数量。
当从位于网络的接入层的交换机获取端口的MAC地址表时,如图13所示,需要在交换机S1-S6中每一个交换机上设置探针,进而利用所设置的探针获取位于接入层的交换机的每个端口的MAC地址表。
当从位于网络的汇聚层的交换机获取端口的MAC地址表时,如图7所示,需要在交换机S7-S9中每一个交换机上设置探针,进而利用所设置的探针获取位于汇聚层和接入层的交换机的每个端口的MAC地址表。
当从位于网络核心层的交换机获取端口的MAC地址表时,如图7所示,仅需在交换机S10上设置探针,进而利用所设置的探针获取位于核心层、汇聚层和接入层的各个交换机的每个端口的MAC地址表。
由上述对比分析可知,在位于汇聚层和/或核心层的交换机获取端口的MAC地址表,相交于在接入层的交换机获取端口的MAC地址表,仅需要在较少数量的交换机上设置探针,便可以获取目标网络中每个交换机的每个端口的MAC地址,使得MAC地址表获取更加方便,同时也能够降低获取MAC地址表过程的成本。
实施例七:
在本实施例中,基于图2,还包括I/O设备的网络拓扑如图14所示,
1、通过BACnet/IP、KNX/IP或其他第三部分协议,获取I/O设备的地址信息,进而获得list_io_to_endpoint如下述表3所示:
2、由于标识T1.0.1所表征的是I/O设备T1.0,标识T2.0.1所表征的是I/O设备T2.1,标识T2.0.2所表征的是I/O设备T2.2,标识T3.0.1所标识的是I/O设备T3.0,标识T4.0.1所表征的是I/O设备T4.0。而标识T1.0.1是从终端设备D1中获得的,所以,可以将I/O设备T1.0与D1相连接,标识T2.0.1、T2.0.2、T3.0.1以及T4.0.1连接原理与标识T1.0.1和D1连接方式相似。由此,推导出了原始的网络拓扑。
基于图14所示的网络拓扑构建方法,如图15所示,本实施例示出了计算设备与目标网络中的主交换机相连接的示意图;其中,图15中的C表征计算设备,S10表征主交换机,S7、S8和S9表征目标网络中汇聚层的交换机,S1-S6表征目标网络中接入层的交换机。
若计算设备与目标网络中接入层的交换机相连接,则计算设备C与交换机S1-S6相连接。
如图16所示,本发明一个实施例提供了一种计算设备,包括:
一个网络确定模块21,用于确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
一个标识获取模块22,用于通过所述交换机获取位于所述网络确定模块21确定出的所述终端设备上存储的所述目标网络中的I/O设备的标识;
一个关系确定模块23,用于针对所述目标网络中的每一个终端设备,确定所述标识获取模块22获取的该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
一个拓扑处理模块24,用于根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述关系确定模块23确定的所述第一连接关系,生成所述目标网络的网络拓扑。
可选地,在图16所示的计算设备的基础上,如图17所示,所述标识获取模块22,包括:
一个监听单元221,用于对所述目标网络中的至少一个交换机进行监听,以确定每一个被监听的交换机与所述目标网络之外的设备进行通信时的数据传输路径;
一个获取单元222,用于确定所述监听单元221确定出的各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机;通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识。
可选地,所述计算设备与所述目标网络中的主交换机连接。
可选地,所述计算设备与所述目标网络中的接入层包括的每一个交换机连接。
可选地,在图16所示的计算设备的基础上,如图18所示,所述关系确定模块23还包括:
一个第二关系确定单元231,用于针对所述目标网络中交换机的每一个端口,均执行:如果从该端口获取到的MAC地址表中仅包括所述目标网络中的一个第一终端设备的一个MAC地址,且从该端口之外的端口获取到的MAC地址表与从该端口获取到的MAC地址表不同,则确定该端口与所述第一终端设备相连接;如果从该端口获取到的MAC地址表中包括所述目标网络中的一个第二终端设备的至少两个MAC地址,则确定该端口与所述第二终端设备相连接;根据所述目标网络中的终端设备与交换机的端口之间的连接关系和所述目标网络中的每个交换机所包括的端口,确定所述目标网络中的交换机与终端设备之间的第二连接关系;
一个第三关系确定单元232,用于判断所述目标网络中每一个交换机上的每个端口是否均具有MAC地址;如果所述目标网络中每一个交换机上的每一个端口均具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的交换机的端口的MAC地址,确定所述目标网络中的所述第三连接关系;如果所述目标网络中的各交换机的至少一个端口不具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的终端设备的MAC地址,确定所述目标网络中的所述第三连接关系。
可选地,在图18所示的计算设备的基础上,如图19所示,所述第三关系确定单元232包括:
一个地址删除子单元2321,用于针对所述目标网络中的任意一个交换机,如果该交换机上的至少两个端口的MAC地址位于所述目标网络中另一个交换机的同一端口的MAC地址表中,则确定该交换机为所述目标网络中的冗余管理器,并将该交换机上所有端口的MAC地址从各个所述第一端口的MAC地址表中删除;
一个第一处理子单元2322,用于针对所述目标网络中的每一个所述第一端口,如果该第一端口的MAC地址表中包括所述目标网络中的一个第二端口的MAC地址,则确定该第一端口与所述第二端口相连接,其中,该第一端口与所述第二端口位于所述目标网络中不同的交换机上;
一个第一整合子单元2323,用于根据由所述第一处理子单元2322确定出的所述目标网络中每一个所述第一端口与所述第二端口之间的连接关系以及所述第一端口和所述第二端口所属的交换机,确定所述目标网络中的所述第三连接关系。
可选地,在图18所示的计算设备的基础上,如图20所示,所述第三关系确定单元232包括:
一个端口筛选子单元2324,用于针对所述目标网络中的每一个所述第一端口,从所述目标网络中除该第一端口之外的其他所述第一端口中筛选第三端口,其中,所述第三端口的MAC地址表与该第一端口的MAC地址表包括有至少一个相同的MAC地址;
一个第一集合构建子单元2325,用于针对所述目标网络中的每一个所述第一端口,获取该第一端口对应的第一MAC地址集合,其中,所述第一MAC地址集合中的元素为该第一端口的MAC地址表中包括的终端设备的MAC地址;
一个第二集合构建子单元2326,用于针对所述端口筛选子单元2324筛选出的每一个所述第三端口,获取该第三端口对应的第二MAC地址集合,其中,所述第二MAC地址集合中的元素为该第三端口的MAC地址表中包括的终端设备的MAC地址;
一个第二关系确定子单元2327,用于根据所述第一集合构建子单元2325获取的所述第一MAC地址集合与所述第二集合构建子单元2326获取的每一个所述第二MAC地址集合之间的包含关系,以及所述第一集合构建子单元2325获取的所述第一MAC地址集合的子集与所述第二集合构建子单元2326获取的每一个所述第二MAC地址集合之间的包含关系,确定该第一端口与所述第三端口之间的连接关系;
一个第二整合子单元2328,用于根据所述第二关系确定子单元2327确定出的所述目标网络中每一个所述第一端口与所述第三端口之间的连接关系以及所述第一端口和所述第三端口所属的交换机,确定所述目标网络中的所述第三连接关系。
可选地,在图16所示的计算设备的基础上,如图21所示,所述标识获取模块22包括:
一个协议确定单元223,用于通过所述目标网络中与该终端设备连接的交换机获取该终端设备所遵从的至少一种网络协议;
一个第二处理子单元224,用于如果所述协议确定单元223确定出该终端设备所遵从的所述至少一种网络协议包括预设的管理协议,则确定该终端设备连接有I/O设备,并获取与该终端设备连接的I/O设备的标识,其中,所述管理协议为该终端设备与连接的I/O设备进行交互时所遵从的网络协议。
如图22所示,本发明一实施例还提供了一种计算设备,包括:至少一个存储器25和至少一个处理器26;
所述至少一个存储器25,被配置为存储可执行指令;
所述至少一个处理器26,与所述至少一个存储器25耦合,当执行所述可执行指令时,被配置为如本文所述的网络拓扑构建方法。
本发明还提供了计算机可读介质,存储用于使一机器执行如本文所述的网络拓扑构建方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (11)
1.网络拓扑构建方法,其特征在于,包括:
确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识;
针对所述目标网络中的每一个终端设备,确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑。
2.根据权利要求1所述的方法,其特征在于,所述通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
对所述目标网络中的至少一个交换机进行监听,以确定每一个被监听的交换机与所述目标网络之外的设备进行通信时的数据传输路径;
确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机;
通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识。
3.根据权利要求2所述的方法,其特征在于,
所述对所述目标网络中的至少一个交换机进行监听,包括:
与所述目标网络中接入层包括的每一个交换机连接的计算设备对所述目标网络中的至少一个交换机进行监听;
所述确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机,包括:
所述计算设备确定各数据传输路径中与所述目标网络之外的设备连接的交换机节点为主交换机;
所述通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
所述计算设备通过所述主交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识。
4.根据权利要求1所述的方法,其特征在于,
所述确定待进行网络拓扑构建的目标网络,包括:
与所述目标网络中接入层包括的每一个交换机连接的计算设备确定待进行网络拓扑构建的目标网络;
所述通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
所述计算设备通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识;
所述针对所述目标网络中的每一个终端设备,确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系,包括:
所述计算设备针对所述目标网络中的每一个终端设备,所述计算设备确定该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
所述根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑,包括:
所述计算设备根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述第一连接关系,生成所述目标网络的网络拓扑之前,进一步包括:
针对所述目标网络中交换机的每一个端口,均执行:
如果从该端口获取到的MAC地址表中仅包括所述目标网络中的一个第一终端设备的一个MAC地址,且从该端口之外的端口获取到的MAC地址表与从该端口获取到的MAC地址表不同,则确定该端口与所述第一终端设备相连接;
如果从该端口获取到的MAC地址表中包括所述目标网络中的一个第二终端设备的至少两个MAC地址,则确定该端口与所述第二终端设备相连接;
根据所述目标网络中的终端设备与交换机的端口之间的连接关系和所述目标网络中的每个交换机所包括的端口,确定所述目标网络中的交换机与终端设备之间的第二连接关系;
判断所述目标网络中每一个交换机上的每个端口是否均具有MAC地址;
如果所述目标网络中每一个交换机上的每一个端口均具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的交换机的端口的MAC地址,确定所述目标网络中的所述第三连接关系;
如果所述目标网络中的各交换机的至少一个端口不具有MAC地址,则根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的终端设备的MAC地址,确定所述目标网络中的所述第三连接关系。
6.根据权利要求5所述的方法,其特征在于,
所述根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的交换机的端口的MAC地址,确定所述目标网络中的所述第三连接关系,包括:
针对所述目标网络中的任意一个交换机,如果该交换机上的至少两个端口的MAC地址位于所述目标网络中另一个交换机的同一端口的MAC地址表中,则确定该交换机为所述目标网络中的冗余管理器,并将该交换机上所有端口的MAC地址从各个所述第一端口的MAC地址表中删除;
针对所述目标网络中的每一个所述第一端口,如果该第一端口的MAC地址表中包括所述目标网络中的一个第二端口的MAC地址,则确定该第一端口与所述第二端口相连接,其中,该第一端口与所述第二端口位于所述目标网络中不同的交换机上;
根据所述目标网络中每一个所述第一端口与所述第二端口之间的连接关系以及所述第一端口和所述第二端口所属的交换机,确定所述目标网络中的所述第三连接关系。
7.根据权利要求5所述的方法,其特征在于,所述根据所述目标网络中的每一个所述第一端口的MAC地址表中所包括的终端设备的MAC地址,确定所述目标网络中的所述第三连接关系,包括:
针对所述目标网络中的每一个所述第一端口,均执行:
从所述目标网络中除该第一端口之外的其他所述第一端口中筛选第三端口,其中,所述第三端口的MAC地址表与该第一端口的MAC地址表包括有至少一个相同的MAC地址;
获取该第一端口对应的第一MAC地址集合,其中,所述第一MAC地址集合中的元素为该第一端口的MAC地址表中包括的终端设备的MAC地址;
针对每一个所述第三端口,获取该第三端口对应的第二MAC地址集合,其中,所述第二MAC地址集合中的元素为该第三端口的MAC地址表中包括的终端设备的MAC地址;
根据所述第一MAC地址集合与每一个所述第二MAC地址集合之间的包含关系,以及所述第一MAC地址集合的子集与每一个所述第二MAC地址集合之间的包含关系,确定该第一端口与所述第三端口之间的连接关系;
根据所述目标网络中每一个所述第一端口与所述第三端口之间的连接关系以及所述第一端口和所述第三端口所属的交换机,确定所述目标网络中的所述第三连接关系。
8.根据权利要求1至7中任一所述的方法,其特征在于,所述通过所述交换机获取所述终端设备上存储的所述目标网络中的I/O设备的标识,包括:
针对所述目标网络中每一个终端设备,均执行:
通过所述目标网络中与该终端设备连接的交换机获取该终端设备所遵从的至少一种网络协议;
如果该终端设备所遵从的所述至少一种网络协议包括预设的管理协议,则确定该终端设备连接有I/O设备,并获取与该终端设备连接的I/O设备的标识,其中,所述管理协议为该终端设备与连接的I/O设备进行交互时所遵从的网络协议。
9.计算设备,其特征在于,包括:
一个网络确定模块(21),用于确定待进行网络拓扑构建的目标网络,其中,所述目标网络包括至少两个交换机、至少一个终端设备和至少一个输入/输出I/O设备,其中,所述交换机之间以及所述终端设备与所述交换机之间通过网线连接,所述终端设备与所述I/O设备之间通过I/O总线连接;
一个标识获取模块(22),用于通过所述交换机获取位于所述网络确定模块(21)确定出的所述终端设备上存储的所述目标网络中的I/O设备的标识;
一个关系确定模块(23),用于针对所述目标网络中的每一个终端设备,确定所述标识获取模块(22)获取的该终端设备上存储的所述标识所指示的I/O设备与该终端设备具有第一连接关系;
一个拓扑处理模块(24),用于根据所述目标网络中交互机与终端设备之间的第二连接关系、交换机之间的第三连接关系以及所述关系确定模块(23)确定的所述第一连接关系,生成所述目标网络的网络拓扑。
10.计算设备,其特征在于,包括:至少一个存储器(25)和至少一个处理器(26);
所述至少一个存储器(25),用于存储机器可读程序;
所述至少一个处理器(26),用于调用所述机器可读程序,执行权利要求1至8中任一所述的方法。
11.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011130827.6A CN114465904A (zh) | 2020-10-21 | 2020-10-21 | 网络拓扑构建方法和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011130827.6A CN114465904A (zh) | 2020-10-21 | 2020-10-21 | 网络拓扑构建方法和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114465904A true CN114465904A (zh) | 2022-05-10 |
Family
ID=81404202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011130827.6A Pending CN114465904A (zh) | 2020-10-21 | 2020-10-21 | 网络拓扑构建方法和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465904A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827801A (zh) * | 2023-08-25 | 2023-09-29 | 武汉吧哒科技股份有限公司 | 网络拓扑构建方法、装置、计算机设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030076788A1 (en) * | 2001-10-19 | 2003-04-24 | Sun Microsystems, Inc. | Method, system, and program for discovering devices communicating through a switch |
US20130080610A1 (en) * | 2010-06-01 | 2013-03-28 | Hitachi, Ltd. | I/o device management method, computer system, and i/o device management program product |
CN106161103A (zh) * | 2016-08-18 | 2016-11-23 | 上海帝联信息科技股份有限公司 | 交换机拓扑构建方法及装置 |
CN107294797A (zh) * | 2017-08-24 | 2017-10-24 | 广东电网有限责任公司电力科学研究院 | 网络拓扑结构识别方法和系统 |
CN108282362A (zh) * | 2017-12-29 | 2018-07-13 | 武汉璞华大数据技术有限公司 | 一种网络拓扑生成方法、装置和设备 |
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
DE102017209428A1 (de) * | 2017-06-02 | 2018-12-06 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Identifikation in einem Rechnernetzwerk |
CN109150640A (zh) * | 2018-11-08 | 2019-01-04 | 中国电子科技集团公司第二十八研究所 | 一种基于二层网络协议的网络拓扑发现方法及系统 |
CN111600762A (zh) * | 2020-06-02 | 2020-08-28 | 山东中创软件商用中间件股份有限公司 | 一种网络拓扑结构生成方法、装置、设备及介质 |
-
2020
- 2020-10-21 CN CN202011130827.6A patent/CN114465904A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030076788A1 (en) * | 2001-10-19 | 2003-04-24 | Sun Microsystems, Inc. | Method, system, and program for discovering devices communicating through a switch |
US20130080610A1 (en) * | 2010-06-01 | 2013-03-28 | Hitachi, Ltd. | I/o device management method, computer system, and i/o device management program product |
CN106161103A (zh) * | 2016-08-18 | 2016-11-23 | 上海帝联信息科技股份有限公司 | 交换机拓扑构建方法及装置 |
DE102017209428A1 (de) * | 2017-06-02 | 2018-12-06 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Identifikation in einem Rechnernetzwerk |
CN107294797A (zh) * | 2017-08-24 | 2017-10-24 | 广东电网有限责任公司电力科学研究院 | 网络拓扑结构识别方法和系统 |
CN108282362A (zh) * | 2017-12-29 | 2018-07-13 | 武汉璞华大数据技术有限公司 | 一种网络拓扑生成方法、装置和设备 |
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
CN109150640A (zh) * | 2018-11-08 | 2019-01-04 | 中国电子科技集团公司第二十八研究所 | 一种基于二层网络协议的网络拓扑发现方法及系统 |
CN111600762A (zh) * | 2020-06-02 | 2020-08-28 | 山东中创软件商用中间件股份有限公司 | 一种网络拓扑结构生成方法、装置、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827801A (zh) * | 2023-08-25 | 2023-09-29 | 武汉吧哒科技股份有限公司 | 网络拓扑构建方法、装置、计算机设备及可读存储介质 |
CN116827801B (zh) * | 2023-08-25 | 2023-12-15 | 武汉吧哒科技股份有限公司 | 网络拓扑构建方法、装置、计算机设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7292541B1 (en) | Methods and systems for unnumbered network link discovery | |
US7376724B2 (en) | Dynamic reconfiguration of nodes in a cluster file system | |
WO2021243524A1 (zh) | 网络拓扑构建方法、装置和计算机可读介质 | |
CN113452561B (zh) | 一种拓扑生成方法、装置、设备及可读存储介质 | |
US11075814B2 (en) | Sub-topology discovery for operating hybrid solutions | |
KR20040034703A (ko) | 분산형 프로세싱 네트워크의 토폴로지 발견 방법 및 시스템 | |
US10097424B2 (en) | Route display method and route display apparatus | |
CN108206792B (zh) | 交换机的拓扑结构发现方法及装置 | |
JP2001320393A (ja) | 集線装置およびこれを用いたネットワーク管理装置 | |
CN112532408B (zh) | 提取故障传播条件的方法、装置及存储介质 | |
CN105141449A (zh) | 监控配置的添加方法及装置 | |
US11700182B2 (en) | Automatic classification of network devices in a network | |
CN113542015B (zh) | 一种自动绘制网络物理链路方法 | |
CN112311571A (zh) | 网络拓扑生成方法及装置、电子设备和非暂态存储介质 | |
CN104219153A (zh) | 基于mac 地址定向搜索的网络拓扑自发现方法和装置 | |
CN108400922B (zh) | 虚拟局域网络配置系统与方法及其计算机可读存储介质 | |
CN114465904A (zh) | 网络拓扑构建方法和计算设备 | |
US7321561B2 (en) | Verification of connections between devices in a network | |
US20040158780A1 (en) | Method and system for presenting neighbors of a device in a network via a graphical user interface | |
CN110730093B (zh) | 城域网网络拓扑测绘方法及装置 | |
JP4890916B2 (ja) | ネットワークに接続された通信装置の管理方法、機器認識装置及びコンピュータプログラム | |
CN112039696B (zh) | 一种网络拓扑结构的生成方法、装置、设备及介质 | |
JP2003032257A (ja) | Lan構成装置の設置場所の特定方法および検索装置 | |
JP2019145893A (ja) | トポロジ決定装置、トポロジ決定方法、トポロジ決定プログラムおよび通信システム | |
CN108566388B (zh) | 基于布鲁姆过滤器的sdn流规则冲突检测方法及系统 |
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 |