CN112671588B - 网络拓扑的生成方法、装置、介质及网络控制设备 - Google Patents
网络拓扑的生成方法、装置、介质及网络控制设备 Download PDFInfo
- Publication number
- CN112671588B CN112671588B CN202011617640.9A CN202011617640A CN112671588B CN 112671588 B CN112671588 B CN 112671588B CN 202011617640 A CN202011617640 A CN 202011617640A CN 112671588 B CN112671588 B CN 112671588B
- Authority
- CN
- China
- Prior art keywords
- detected
- fdb
- forwarding
- queue
- equipment
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种网络拓扑的生成方法,包括:根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑。有效解决现有技术中无法生成非标准SDN设备的连接关系,具有较大的局限性的问题。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种网络拓扑的生成方法、装置、介质及网络控制设备。
背景技术
网络拓扑(Network Topology)结构是指用传输介质互连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。SDN网络架构主要分为协同应用层、控制层、转发层三层。在现有技术中,为了保证转发设备的转发特性不受影响,则通过获取网络设备的物理连接信息以及性能参数信息,根据物理连接信息和性能参数信息生成网络设备的逻辑拓扑,但是生成的逻辑拓扑只适用于标准的SDN设备和控制器组成的网络,无法生成非标准SDN设备的连接关系,具有较大的局限性,使得逻辑拓扑的准确性较低。
发明内容
本发明实施例提供一种网络拓扑的生成方法、装置、介质及网络控制设备,能有效解决现有技术中无法生成非标准SDN设备的连接关系,具有较大的局限性的问题。
本发明一实施例提供一种网络拓扑的生成方法,包括:
根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;
根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;
当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;
当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;
根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息。
作为上述方案的改进,根据获取到的设备信息和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备,具体包括:
通过获取到的设备列表确定当前的设备类型;其中,所述设备类型包括以下至少一种:网络控制设备、FDB转发设备;
当所述设备类型中存在网络控制设备时,则选择网络控制设备作为网络拓扑的顶层设备;
当所述设备类型中不存在网络控制设备且存在FDB转发设备时,则选择FDB转发设备作为网络拓扑的顶层设备。
作为上述方案的改进,所述方法还包括:
当获取到的所述设备类型中只存在非FDB转发设备时,则根据直连终端补充信息连接非FDB转发设备,以生成网络拓扑。
作为上述方案的改进,所述当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理,具体包括:
当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待生成队列的待生成转发设备存在连接关系时,则将所述待检测端口与所述待生成转发设备的上行端口连接,并在待检测转发设备的下行端口列表中删除所述待检测端口,在待生成队列中删除所述待生成转发设备;
当待检测队列中的待检测转发设备的所有下行端口列表中不存在待检测端口时,则将待检测转发设备添加至待生成队列中;
当待检测队列中的待检测转发设备的下行端口列表中与至少一个待检测队列的待检测转发设备存在连接关系时,则将待检测转发设备保留至待检测队列中。
作为上述方案的改进,所述根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列,具体包括:
当获取到的FDB转发设备的所有端口对应的FDB表均完整时,判断获取到的FDB转发设备是否所有下行端口的FDB表都不包含其他转发设备的MAC地址;
当判断结果为是时,将FDB转发设备添加至待生成队列;
当判断结果为否时,将FDB转发设备添加至待检测队列。
作为上述方案的改进,在所述当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理之后,在当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接之前,还包括:
判断分类后的待检测队列中的转发设备的数量是否少于待检测队列中的转发设备的数量;
当判断结果为不少于待检测队列中的转发设备的数量后,则将待检测队列中的转发设备均添加至待生成队列;
当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类。
作为上述方案的改进,所述当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类,具体包括:
当分类后的待检测队列转发设备的数量少于待检测队列中的转发设备的数量且转发设备的数量不为0后,则继续对分类后的待检测队列进行分类,以获取分类后的待检测队列的端口的连接关系。
作为上述方案的改进,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之前,所述方法还包括
获取各个转发设备的上报信息,所述上报信息包括MAC信息、FDB表信息、ARP表信息和直连终端补充信息。
作为上述方案的改进,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之后,在根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列之前,还包括:
根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表。
作为上述方案的改进,在所述根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表之后,还包括:
当FDB转发设备下行端口列表中只与非FDB转发设备存在连接关系,则将FDB转发设备下行端口与非FDB转发设备连接,并从非FDB转发设备表中删除与FDB转发设备下行端口连接的非FDB转发设备。
本发明另一实施例提供一种网络拓扑的生成装置,包括:
顶层设备选择模块,用于根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;
第一分类模块,用于根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;
第二分类模块,用于当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;
第一生成模块,用于当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;
第二生成模块,用于根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息。
本发明另一实施例提供了一种网络控制设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述发明实施例所述的网络拓扑的生成方法。
本发明另一实施例提供了一种存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述发明实施例所述的网络拓扑的生成方法。
与现有技术相比,本发明实施例公开的网络拓扑的生成方法、装置、设备及存储介质,根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑。由此可见,本发明实施例的网络拓扑生成方法能够准确识别多种拓扑关系,使得生成的拓扑网络既能够连接标准的SDN设备(即FDB转发设备),还能够连接非FDB转发设备,使得网络拓扑更加完整,从而提高逻辑拓扑的准确性,同时,增加网络拓扑的应用范围。
附图说明
图1是本发明一实施例提供的一种网络拓扑的生成方法的流程示意图;
图2是本发明一实施例提供的一种网络拓扑的生成方法步骤S10的流程示意图;
图3是本发明一实施例提供的一种网络拓扑的生成方法步骤S20的流程示意图;
图4是本发明一实施例提供的一种网络拓扑的生成方法步骤S30的流程示意图;
图5是本发明一实施例提供的一种网络拓扑的生成装置的结构示意图;
图6是本发明一实施例提供的一种网络控制设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1-4,是本发明一实施例提供的一种网络拓扑的生成方法的流程示意图。
本发明一实施例提供一种网络拓扑的生成方法,包括:
S10,根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备。
S20,根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列。
S30,当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理。
S40,当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接。
S50,根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息。
其中,所述设备类型包括以下至少一种:网络控制设备、FDB转发设备。预设的顶层设备选择策略为根据设备类型的优先级选择顶层设备,例如,网络控制设备的优先级高于FDB转发设备。需要说明的是,在本实施例中,网络拓扑的生成方法的执行主体为网络控制设备,具体可以为网络控制终端(SDN Controller)。
需要说明的是,预设的分类规则可以为:网络拓扑的根节点称为顶层设备;节点的端口的FDB表中存在顶层设备MAC的端口,且每个转发设备只有一个上行端口,则称为上行端口;活动的非上行端口称为下行端口;在FDB表完整的前提下,若其中一个FDB转发设备所有下行端口的FDB表都不包含其他转发设备的MAC地址,则称为叶节点;在FDB表完整的前提下,若FDB转发设备的其中一个下行端口不包含其他FDB转发设备的MAC地址,则该端口称为该FDB转发设备的叶端口。可以理解的是,根据分类规则能够将FDB转发设备分为叶节点、非叶节点,将FDB转发设备的端口分为上行端口、下行端口。在本实施例中,将叶节点压入待生成队列,非叶节点压入待检测队列。
需要说明的是,FDB转发设备的FDB表中有可能有非FDB转发设备的MAC,因此需要通过非FDB设备信息得到FDB转发设备下行端口与非FDB转发设备连接关系。在本实施例中,转发设备包括但不局限于网关、交换机、无线接入点等设备,非FDB转发设备包含但不限于各类网关和无线设备等设备,直连终端补充信息包含但不限于各类转发设备的Mesh信息、Client信息等信息。
综上所述,根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑。由此可见,本发明实施例的网络拓扑生成方法能够准确识别多种拓扑关系,使得生成的拓扑网络既能够连接标准的SDN设备(即FDB转发设备),还能够连接非FDB转发设备,使得网络拓扑更加完整,从而提高逻辑拓扑的准确性,同时,增加网络拓扑的应用范围。
作为上述方案的改进,根据获取到的设备信息和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备,步骤S10具体包括:
S100,通过获取到的设备列表确定当前的设备类型;其中,所述设备类型包括以下至少一种:网络控制设备、FDB转发设备。
S101,当所述设备类型中存在网络控制设备时,则选择网络控制设备作为网络拓扑的顶层设备。
S102,当所述设备类型中不存在网络控制设备且存在FDB转发设备时,则选择FDB转发设备作为网络拓扑的顶层设备。
具体地,网络控制设备用于控制,因此优先选择网络控制设备作为顶层设备,当不存在网络控制设备时,选择转发设备为顶层设备。需要说明的是,每次进行拓扑网络的生成时均需要选择顶层设备。
作为上述方案的改进,所述方法还包括:
当获取到的所述设备类型中只存在非FDB转发设备时,则根据直连终端补充信息连接非FDB转发设备,以生成网络拓扑。
具体地,若设备类型只存在非FDB转发设备,则无需选择顶层设备,只需根据直连终端补充信息连接非FDB转发设备,生成网络拓扑。需要说明的是,不支持FDB表的非FDB转发设备可以将连接信息上报直连终端信息,控制***将上报的连接关系补充到拓扑结构中,提高不支持FDB表的非FDB转发设备连接关系的完整性。既不支持FDB表也不支持上报直连终端信息的非FDB转发设备可以将连接关系上报ARP表,控制器***将ARP表与当前拓扑中已识别出的设备取差集,补充该非FDB转发设备的直连终端信息。
作为上述方案的改进,所述根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列,步骤S20具体包括:
S200,当获取到的FDB转发设备的所有端口对应的FDB表均完整时,判断获取到的FDB转发设备是否所有下行端口的FDB表都不包含其他转发设备的MAC地址。
S201,当判断结果为是时,将FDB转发设备添加至待生成队列。
S202,当判断结果为否时,将FDB转发设备添加至待检测队列。
具体地,若FDB转发设备的端口对应的FDB表中信息是完整的情况下,当FDB转发设备所有下行端口的FDB表都不包含其他转发设备的MAC地址时,则说明此FDB转发设备属于叶节点,叶节点添加至待生成队列;当FDB转发设备存在多个端口的FDB表包含其他FDB转发设备的MAC地址时,则说明此FDB转发设备属于非叶节点,非叶节点添加至待生成队列。
作为上述方案的改进,所述当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理,步骤S30具体包括:
S300,当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待生成队列的待生成转发设备存在连接关系时,则将所述待检测端口与所述待生成转发设备的上行端口连接,并在待检测转发设备的下行端口列表中删除所述待检测端口,在待生成队列中删除所述待生成转发设备。
S301,当待检测队列中的待检测转发设备的所有下行端口列表中不存在待检测端口时,则将待检测转发设备添加至待生成队列中。
S302,当待检测队列中的待检测转发设备的下行端口列表中与至少一个待检测队列的待检测转发设备存在连接关系时,则将待检测转发设备保留至待检测队列中。
在本实施例中,非叶节点压入待检测队列,遍历待检测队列中非叶节点的下行端口列表,将下行端口列表为空的节点(即下行端口列表中不存在待检测端口)压入待生成队列,并从FDB转发设备表移除;当待检测队列中的非叶节点的下行端口列表中的端口只与一个待生成队列的叶节点存在连接关系时,将该端口与该叶节点的上行端口连接,并在非叶节点的下行端口列表中删除该端口,在待生成队列中删除已连接的叶节点;待检测队列中的非叶节点的下行端口列表中的端口与至少两个待生成队列中的叶节点存在连接关系时,将该端口通过集线器(Hub)与至少两个叶节点的上行端口连接,并在非叶节点的下行端口列表中删除该端口,在待生成队列中删除已连接多个的叶节点。由此可见,通过检测待检测列表中与待生成列表中端口的关系进行拓扑连接,并减少待检测列表中与待生成列表中未连接的转发设备。而当待检测队列中的非叶节点的下行端口列表中存在待检测队列中转发设备,则继续将该非叶节点保存至当前待检测队列中,可以理解的是,当非叶节点的下行端口列表中存在待检测队列中转发设备说明待检测列表中的非叶节点彼此连接,为了保证拓扑网络的准确性,需要继续进行拓扑关系识别。
作为上述方案的改进,在所述当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理之后,在当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接之前,还包括:
判断分类后的待检测队列中的转发设备的数量是否少于待检测队列中的转发设备的数量。
当判断结果为不少于待检测队列中的转发设备的数量后,则将待检测队列中的转发设备均添加至待生成队列。
当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类。
进一步地,所述当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类,具体包括:
当分类后的待检测队列转发设备的数量少于待检测队列中的转发设备的数量且转发设备的数量不为0后,则继续对分类后的待检测队列进行分类,以获取分类后的待检测队列的端口的连接关系。
具体地,分类后的待检测队列中的转发设备的数量是否少于待检测队列中的转发设备的数量,若未减少,说明于待检测队列中出现了环路,已经得到整个待检测队列中的转发设备的连接关系,则将所有转发设备加入待生成队列。若减少,则判断分类后待检测队列是否为空(即转发设备减少至0),不为空则将分类后的待检测队列重新进行分类;为空则将待生成队列中转发设备还未连接其他设备的上行端口与顶层设备的下行端口相连,再判断FDB转发设备表是否为空,为空则结束分类;不为空则重新选取顶层节点(优先选取网络控制设备,若本轮顶层节点已为网络控制设备,则从FDB转发设备表中随机选择一个FDB转发设备为顶层节点)并将剩余的转发设备重新分类(即重新将转发设备分为叶节点或非叶节点),进行新一轮的队列处理。
作为上述方案的改进,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之前,所述方法还包括
S1,获取各个转发设备的上报信息,所述上报信息包括MAC信息、FDB表信息、ARP表信息和直连终端补充信息。
具体地,网络控制设备(网络控制终端)获取各个转发设备的上报信息,所述上报信息包括MAC信息、FDB表信息、ARP表信息和直连终端补充信息,根据MAC信息转发设备、网络控制设备等设备进行标识,使得更好的对转发设备进行分类,从而更快速的生成网络拓扑。
作为上述方案的改进,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之后,在根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列之前,还包括:
根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表。
需要说明的是,根据上报信息分别创建FDB转发设备表及非FDB转发设备表存储对应的转发设备,在生成网络拓扑时,每确定一个FDB转发设备的连接关系时即从FDB转发设备表中删除该转发设备,从而更快速的生成网络拓扑、
进一步地,在所述根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表之后,还包括:
当FDB转发设备下行端口列表中只与非FDB转发设备存在连接关系,则将FDB转发设备下行端口与非FDB转发设备连接,并从非FDB转发设备表中删除与FDB转发设备下行端口连接的非FDB转发设备。
具体地,若FDB转发设备的任一下行端口的FDB表中只包含非FDB转发设备,将FDB转发设备下行端口与非FDB转发设备连接,并将该非FDB转发设备从非FDB转发设备总表中删除,从而得到非FDB转发设备与FDB转发设备的连接关系。
需要说明的是,当FDB转发设备的下行端口列表为空时,则所述FDB转发设备的全部下行端口与其他FDB转发设备的连接关系都已明确,直接将所述FDB转发设备压入待生成队列,将FDB转发设备从FDB转发设备表中移除。
参见图5,是本发明一实施例提供的一种网络拓扑的生成装置的结构示意图。
本发明一实施例提供一种网络拓扑的生成装置,包括:
顶层设备选择模块10,用于根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;
第一分类模块20,用于根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;
第二分类模块30,用于当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;
第一生成模块40,用于当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;
第二生成模块50,用于根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息。
本发明实施例提供了一种网络拓扑的生成装置,根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;当待检测队列中转发设备的下行端口列表的端口满足预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑。由此可见,本发明实施例的网络拓扑生成方法能够准确识别多种拓扑关系,使得生成的拓扑网络既能够连接标准的SDN设备(即FDB转发设备),还能够连接非FDB转发设备,使得网络拓扑更加完整,从而提高逻辑拓扑的准确性,同时,增加网络拓扑的应用范围。
参见图6,是本发明一实施例提供的一种网络控制设备的结构示意图。
本发明一实施例提供了一种网络控制设备,包括处理器11、存储器12以及存储在所述存储器12中且被配置为由所述处理器11执行的计算机程序,所述处理器11执行所述计算机程序时实现上述发明实施例所述的网络拓扑的生成方法。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述网络控制设备中的执行过程。
所述网络控制设备可以是无线路由器、交换机等计算设备。所述网络控制设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是网络控制设备的示例,并不构成对网络控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述网络控制设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器11可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述网络控制设备的控制中心,利用各种接口和线路连接整个网络控制设备的各个部分。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述网络控制设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述网络控制设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (11)
1.一种网络拓扑的生成方法,其特征在于,包括:
根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;
根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;
当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;
当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;
根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息;
所述当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理,具体包括:
当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待生成队列的待生成转发设备存在连接关系时,则将所述待检测端口与所述待生成转发设备的上行端口连接,并在待检测转发设备的下行端口列表中删除所述待检测端口,在待生成队列中删除所述待生成转发设备;
当待检测队列中的待检测转发设备的所有下行端口列表中不存在待检测端口时,则将待检测转发设备添加至待生成队列中;
当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待检测队列的待检测转发设备存在连接关系时,则将待检测转发设备保留至待检测队列中;
所述根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列,具体包括:
当获取到的FDB转发设备的所有端口对应的FDB表均完整时,判断获取到的FDB转发设备是否所有下行端口的FDB表都不包含其他转发设备的MAC地址;
当判断结果为是时,将FDB转发设备添加至待生成队列;
当判断结果为否时,将FDB转发设备添加至待检测队列。
2.如权利要求1所述的网络拓扑的生成方法,其特征在于,根据获取到的设备信息和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备,具体包括:
通过获取到的设备列表确定当前的设备类型;其中,所述设备类型包括以下至少一种:网络控制设备、FDB转发设备;
当所述设备类型中存在网络控制设备时,则选择网络控制设备作为网络拓扑的顶层设备;
当所述设备类型中不存在网络控制设备且存在FDB转发设备时,则选择FDB转发设备作为网络拓扑的顶层设备。
3.如权利要求1所述的网络拓扑的生成方法,其特征在于,所述方法还包括:
当获取到的所述设备类型中只存在非FDB转发设备时,则根据直连终端补充信息连接非FDB转发设备,以生成网络拓扑。
4.如权利要求1所述的网络拓扑的生成方法,其特征在于,在所述当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理之后,在当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接之前,还包括:
判断分类后的待检测队列中的转发设备的数量是否少于待检测队列中的转发设备的数量;
当判断结果为不少于待检测队列中的转发设备的数量后,则将待检测队列中的转发设备均添加至待生成队列;
当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类。
5.如权利要求4所述的网络拓扑的生成方法,其特征在于,所述当判断结果为少于待检测队列中的转发设备的数量后,根据剩余的转发设备的数量控制分类后的待检测队列是否继续进行分类,具体包括:
当分类后的待检测队列转发设备的数量少于待检测队列中的转发设备的数量且转发设备的数量不为0后,则继续对分类后的待检测队列进行分类,以获取分类后的待检测队列的端口的连接关系。
6.如权利要求1所述的网络拓扑的生成方法,其特征在于,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之前,所述方法还包括
获取各个转发设备的上报信息,所述上报信息包括MAC信息、FDB表信息、ARP表信息和直连终端补充信息。
7.如权利要求6所述的网络拓扑的生成方法,其特征在于,在所述根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备之后,在根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列之前,还包括:
根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表。
8.如权利要求7所述的网络拓扑的生成方法,其特征在于,在所述根据所述上报信息,将FDB转发设备添加至FDB转发设备表,将非FDB转发设备添加至非FDB转发设备表之后,还包括:
当FDB转发设备下行端口列表中只与非FDB转发设备存在连接关系,则将FDB转发设备下行端口与非FDB转发设备连接,并从非FDB转发设备表中删除与FDB转发设备下行端口连接的非FDB转发设备。
9.一种网络拓扑的生成装置,其特征在于,包括:
顶层设备选择模块,用于根据获取到的设备类型和预设的顶层设备选择策略,选择对应的设备作为网络拓扑的顶层设备;
第一分类模块,用于根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列;
第二分类模块,用于当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理;
第一生成模块,用于当判断出分类后的待检测队列中不存在转发设备后,则将待生成队列中的转发设备按照预设的拓扑关系进行连接;
第二生成模块,用于根据接收到的所述FDB转发设备中的FDB表、ARP表及直连终端补充信息连接非FDB转发设备,以生成网络拓扑,其中,所述FDB表包括:FDB设备信息及非FDB设备信息;
所述当待检测队列中转发设备的下行端口列表的端口满足了预设的FDB条件后,获取对应端口的连接关系,并对待检测队列中转发设备进行分类处理,具体包括:
当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待生成队列的待生成转发设备存在连接关系时,则将所述待检测端口与所述待生成转发设备的上行端口连接,并在待检测转发设备的下行端口列表中删除所述待检测端口,在待生成队列中删除所述待生成转发设备;
当待检测队列中的待检测转发设备的所有下行端口列表中不存在待检测端口时,则将待检测转发设备添加至待生成队列中;
当待检测队列中的待检测转发设备的下行端口列表中的待检测端口与至少一个待检测队列的待检测转发设备存在连接关系时,则将待检测转发设备保留至待检测队列中;
所述根据预设的分类规则将获取到的FDB转发设备分类为待检测队列及待生成队列,具体包括:
当获取到的FDB转发设备的所有端口对应的FDB表均完整时,判断获取到的FDB转发设备是否所有下行端口的FDB表都不包含其他转发设备的MAC地址;
当判断结果为是时,将FDB转发设备添加至待生成队列;
当判断结果为否时,将FDB转发设备添加至待检测队列。
10.一种网络控制设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的网络拓扑的生成方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至8中任意一项所述的网络拓扑的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617640.9A CN112671588B (zh) | 2020-12-30 | 2020-12-30 | 网络拓扑的生成方法、装置、介质及网络控制设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011617640.9A CN112671588B (zh) | 2020-12-30 | 2020-12-30 | 网络拓扑的生成方法、装置、介质及网络控制设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671588A CN112671588A (zh) | 2021-04-16 |
CN112671588B true CN112671588B (zh) | 2023-10-17 |
Family
ID=75411565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011617640.9A Active CN112671588B (zh) | 2020-12-30 | 2020-12-30 | 网络拓扑的生成方法、装置、介质及网络控制设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671588B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579978A (zh) * | 2014-12-30 | 2015-04-29 | 国网安徽省电力公司芜湖供电公司 | 一种动态网络链路层拓扑发现方法 |
WO2016045275A1 (zh) * | 2014-09-28 | 2016-03-31 | 中兴通讯股份有限公司 | 一种软件定义网络实现方法、主控制器和计算机存储介质 |
CN107733713A (zh) * | 2017-10-18 | 2018-02-23 | 北京德塔精要信息技术有限公司 | 混合网络中网络拓扑的获取方法、***、设备及存储介质 |
CN108900318A (zh) * | 2018-05-23 | 2018-11-27 | 南京南瑞继保工程技术有限公司 | 一种网络拓扑的确定方法及计算机可读存储介质 |
CN110474816A (zh) * | 2019-09-24 | 2019-11-19 | 珠海格力电器股份有限公司 | 网络拓扑发现的方法及存储介质 |
CN111953507A (zh) * | 2019-05-17 | 2020-11-17 | 中移(苏州)软件技术有限公司 | 一种网络拓扑发现方法、装置以及计算机存储介质 |
-
2020
- 2020-12-30 CN CN202011617640.9A patent/CN112671588B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045275A1 (zh) * | 2014-09-28 | 2016-03-31 | 中兴通讯股份有限公司 | 一种软件定义网络实现方法、主控制器和计算机存储介质 |
CN104579978A (zh) * | 2014-12-30 | 2015-04-29 | 国网安徽省电力公司芜湖供电公司 | 一种动态网络链路层拓扑发现方法 |
CN107733713A (zh) * | 2017-10-18 | 2018-02-23 | 北京德塔精要信息技术有限公司 | 混合网络中网络拓扑的获取方法、***、设备及存储介质 |
CN108900318A (zh) * | 2018-05-23 | 2018-11-27 | 南京南瑞继保工程技术有限公司 | 一种网络拓扑的确定方法及计算机可读存储介质 |
CN111953507A (zh) * | 2019-05-17 | 2020-11-17 | 中移(苏州)软件技术有限公司 | 一种网络拓扑发现方法、装置以及计算机存储介质 |
CN110474816A (zh) * | 2019-09-24 | 2019-11-19 | 珠海格力电器股份有限公司 | 网络拓扑发现的方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112671588A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10673760B2 (en) | Method, apparatus, and system for load balancing of service chain | |
US11641308B2 (en) | Software defined networking orchestration method and SDN controller | |
US20190281503A1 (en) | Management Method, Management Unit, and System | |
WO2016107152A1 (zh) | 虚拟机实例的部署方法和装置及设备 | |
US20210058292A1 (en) | Network configuration method, device, and system | |
CN112953774B (zh) | 一种网络拓扑生成方法、***、设备及计算机存储介质 | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
CN106357542B (zh) | 提供组播业务的方法和软件定义网络控制器 | |
WO2019075662A1 (zh) | 一种网关多连接的方法及装置 | |
US11468329B2 (en) | Techniques to manage training or trained models for deep learning applications | |
EP3200416A1 (en) | Sas system, traversal method and device thereof | |
WO2018085973A1 (zh) | 一种网络切片的管理方法、单元和*** | |
WO2019062995A1 (zh) | 网络管理方法、设备及*** | |
CN114157633B (zh) | 一种报文转发方法及装置 | |
CN112671588B (zh) | 网络拓扑的生成方法、装置、介质及网络控制设备 | |
CN112953739B (zh) | 基于k8s平台纳管sdn的方法、***以及存储介质 | |
CN110581800B (zh) | 一种创建虚拟路由器接口的方法及装置、存储介质和设备 | |
CN111416732A (zh) | 一种sdn中网络设备扩容自动配置业务的方法及装置 | |
CN115292061A (zh) | 一种动态切换业务的方法及装置 | |
CN111769992B (zh) | 一种网络数据的管理方法、云平台及存储介质 | |
WO2017215381A1 (zh) | 虚拟扩展端口的指示方法和装置、存储介质 | |
CN110620811B (zh) | 一种vOLT集群架构下ONU管理方法及*** | |
CN111314198B (zh) | 一种白盒交换机设置端口ip的方法和设备 | |
CN112492643A (zh) | 基于多链路的数据转发方法、装置及终端设备 | |
CN110891028B (zh) | 确定负载均衡策略的方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |