专利名称:一种交换设备的拓扑发现方法
技术领域:
本发明涉及一种交换设备的拓扑发现方法,使用设备间信息交互机制达到快速收敛网络中设备拓扑形成,在极短时间内即可实现局域网网络设备的拓扑发现。
背景技术:
随着局域网的快速发展及应用,局域网中交换设备的数量也越来越多,点对点式的设备管理方式已经越来越适应不了管理人员对交换设备的管理需求,交换机的集群管理要求其核心基础是对整个网络环境中的设备部署发现策略,用于形成当前网络环境中各种设备之间的连接与设备信息定位,使得网络管理员对当前网络中的网络状况,如定位链路故障、分析链路质量、设备集中管理、网络合理布局规划均具有非常重要的意义。
现有公开的各种拓扑发现方法均使用了大量复杂的设备嗅探方式,使用大量的信息报文以及记录跳数方式进行拓扑信息采集,资源消耗大,路径损耗严重,且拓扑形成时间长,收敛效率低等诸多缺点。发明内容
本发明的目的在于克服上述不足,提供一种全网公告,快速收敛的拓扑发现方法, 及时反应正确的设备连接顺序和当前的网络环境。
本发明的目的是这样实现的一种交换设备的拓扑发现方法,所述方法包括以下步骤步骤一、root设备发送广播报文;步骤二、root设备在内部建立一张全局拓扑结构表;步骤三、交换设备接收到root设备发送的广播报文后,交换设备将向其它激活端口转发该广播报文,同时执行下述步骤(O向接收广播报文的端口发送反馈报文,该反馈报文包含本设备的设备号和来源端口,同时将来源端口记录到本机设备信息表的本机端口中;(2)root设备接收到反馈报文时,判断该反馈报文如果是从接收广播报文的端口接收, 则丢弃该反馈报文;否则记录接收该反馈报文的接收端口及反馈报文内容到本机设备信息表中;(3)向IOOt设备发送本机记录的下联设备信息的拓扑报文;步骤四、root设备收到反馈报文以及拓扑报文后,将交换设备的信息记录到全局拓扑结构表中;步骤五、root设备根据收到的反馈报文以及拓扑报文维护更新全局拓扑结构表。
上述方法中所有报文的发送、接收和处理均基于二层协议实现,除广播报文外,其它报文均为定点报文。
上述方法中所有网络设备均使用唯一关键编号作为设备的单一识别。
上述方法中设备信息结构体包含以下内容设备编号,下联设备个数,父端端口,本机端口,下联设备指针,同级设备指针。
步骤一中的root设备不限定为核心交换机或网关设备或集中管理服务器,步骤二中的全局拓扑结构表中所维护的是树型链表,步骤三中的交换设备不关心其上联设备的接口情况,而下联设备是指与当前设备直接相连的距离root设备更远的交换设备。
在步骤三(I)中所使用的二层数据包为避免错误识别,在数据包内添加关键字,且接收的交换设备在协议栈对该类型数据包做重定向到CPU处理,以保证不会被接收交换机错误转发至其它交换设备。
在步骤三(I)中的反馈报文,其中只包括本机设备编号和接收广播报文的端口,步骤三(2)中记录下联设备信息的步骤如下(BI)将本机设备编号记录到本机设备信息结构体设备编号中;(B2)将接收到广播报文的端口记录到本机设备信息结构体本机端口中;(B3)接收到第一个反馈报文时创建下联设备结构体;(B4)将反馈报文中的设备编号写入下联设备信息结构体的设备编号中;(B5)将接收到该反馈报文的端口记录到下联设备信息结构体的父端端口中;(B6)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(B7)将本机设备信息结构体的下联设备指针指向第一个设备信息结构体;(B8)更新下联设备个数内容;(B9)下联设备结构体的下联设备指针为空;(BlO)下联设备结构体的同级设备指针为空;(Bll)接收到下一个反馈报文时创建下联设备结构体;(B12)将反馈报文中的设备编号写入下联设备信息结构体的设备编号中;(B13)将接收到该反馈报文的端口记录到下联设备信息结构体的父端端口中;(B14)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(B15)将上一个下联设备结构体的同级设备指针指向本下联设备信息结构体;(B16)本下联设备结构体的下联设备指针为空;(B17)本下联设备结构体的同级设备指针为空;(B18)更新本机下联设备个数内容;(B19)循环(Bll) — (B18)依次处理收到的所有下联设备的反馈报文。
(B20)本机结构体中的同级设备指针为空。
步骤三(3)中的设备如果下联设备指针为空,则不发送拓扑报文,此外,由于设备是在接收到广播报文才发送拓扑报文,因此可以根据网络环境设定是由root定时自动进行拓扑发现,还是人工手动进行自动拓扑发现,优化网络性能,减少收敛次数,提高效率。
步骤四中将设备信息记录到全局拓扑结构表中步骤为(Cl)将本机root设备编号记录到结构体中;。
(C2)父端端口、本机端口均为空,root同级设备指针为空;(C3)将下联设备指针指向收到的第一个反馈报文所创建的设备信息结构体的设备编号;5(C4)将接收到该反馈报文的端口记录到创建的下联设备信息结构提的父端端口中; (C5)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(C5)更新下联设备个数内容;(C6)将第一个下联设备信息结构体(非root设备)的同级设备指针指向收到的下一个反馈报文中设备信息结构体的设备编号;(C7)循环(C4) — (C6)依次处理收到的所有下联设备的反馈报文;(CS)将收到的拓扑报文中的设备编号取出,在下联设备中找到该编号记录,然后将该编号结构体的下联设备指针指向该结构体;步骤五中对拓扑发现的更新基于上述步骤四中对树型链表的更新,使用常规链表更新策略即可主动实时维护当前拓扑结构。
与现有技术相比,本发明的有益效果是本发明采用了非常简单,易于编程实现的基于二层协议的网络交换设备拓扑发现方法。root设备可以是一台核心交换机,也可以是一台网管设备,或者是一台集中管理服务器,便于网络灵活架设,而且整个拓扑发现方法所需数据包极少,且处理信息很少,通过高效链表操作,可以提高系统处理性能,比其它网络拓扑发现方法占用设备系统资源和网络资源都有极大的优势。
图I是本发明实施例交换设备拓扑发现方法总体流程图。
图2是本发明实施例全局拓扑树型链表结构图。
图3是本发明实施例SWl记录下联设备信息的流程图。
图4是本发明实施例一种树状拓扑图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步介绍,但不作为本发明的限定,它只是起到解释和帮助理解的作用。
图I是本实施例拓扑发现方法总体流程图,包括以下步骤步骤10, root设备发送Topology_Find广播报文,该设备的直联交换设备将收获该报文。
步骤20,整体方法都是以步骤10作为启动,因此root在步骤10启动后,如果发现当前系统中还没有全局拓扑结构表,那么root将建立该表。
步骤30,交换设备接收到T0p0l0gy_Find广播报文,交换设备将向其它激活端口转发该广播报文,同时执行下列步骤。
步骤40,交换设备向Topology_Find广播报文来源端口发送dev_info反馈报文, 该报文包含本设备的设备号和来源端口,同时将来源端口记录到本机设备管理表的本机端口中。因为有可能本机没有下联设备,该设备将不会发送topologyjnfo拓扑报文,所以需要将来源端口告知父端设备。
步骤50,如果收到T0p0l0gy_Find广播报文的设备有下联端口,则该设备在接收到下联设备的devjnfo反馈报文后,维护本机的下联设备信息。
此步骤以图4拓扑图中的SWl交换设备维护其下联设备信息为例,参照图3做说明步骤500,Sffl的下联设备信息维护是从接收到T0p0l0gy_Find广播报文开始,此时判断SWl设备中是否已存在本机设备管理表。该表中的每个值以结构体形式表示,如果不存在,则执行下一步。
步骤510,Sffl将创建本机设备管理表
权利要求
1.一种交换设备的拓扑发现方法,其特征在于所述方法包括以下步骤步骤一、root设备发送广播报文;步骤二、root设备在内部建立一张全局拓扑结构表;步骤三、交换设备接收到root设备发送的广播报文后,交换设备将向其它激活端口转发该广播报文,同时执行下述步骤(O向接收广播报文的端口发送反馈报文,该反馈报文包含本设备的设备号和来源端口,同时将来源端口记录到本机设备信息表的本机端口中;(2)root设备接收到反馈报文时,判断该反馈报文如果是从接收广播报文的端口接收, 则丢弃该反馈报文;否则记录接收该反馈报文的接收端口及反馈报文内容到本机设备管理表中;(3)向IOOt设备发送本机记录的下联设备信息的拓扑报文;步骤四、root设备收到反馈报文以及拓扑报文后,将交换设备的信息记录到全局拓扑结构表中;步骤五、root设备根据收到的反馈报文以及拓扑报文维护更新全局拓扑结构表。
2.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于上述方法中所有报文的发送、接收和处理均基于二层协议实现,除广播报文外,其它报文均为定点报文。
3.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于上述方法中所有网络设备均使用唯一关键编号作为设备的单一识别。
4.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于上述方法中设备信息结构体包含以下内容设备编号,下联设备个数,父端端口,本机端口,下联设备指针, 同级设备指针。
5.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于步骤一中的root 设备不限定为核心交换机或网关设备或集中管理服务器,步骤二中的全局拓扑结构表中所维护的是树型链表,步骤三中的交换设备不关心其上联设备的接口情况,而下联设备是指与当前设备直接相连的距离root设备更远的交换设备。
6.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于在步骤三(I)中所使用的二层数据包为避免错误识别,在数据包内添加关键字,且接收的交换设备在协议栈对该类型数据包做重定向到CPU处理,以保证不会被接收交换机错误转发至其它交换设备。
7.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于在步骤三(I)中的反馈报文,其中只包括本机设备编号和接收广播报文的端口,步骤三(2)中记录下联设备信息的步骤如下(BI)将本机设备编号记录到本机设备信息结构体设备编号中;(B2)将接收到广播报文的端口记录到本机设备信息结构体本机端口中;(B3)接收到第一个反馈报文时创建下联设备结构体;(B4)将反馈报文中的设备编号写入下联设备信息结构体的设备编号中;(B5)将接收到该反馈报文的端口记录到下联设备信息结构体的父端端口中;(B6)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(B7)将本机设备信息结构体的下联设备指针指向第一个设备信息结构体;(B8)更新下联设备个数内容;(B9)下联设备结构体的下联设备指针为空;(BlO)下联设备结构体的同级设备指针为空;(Bll)接收到下一个反馈报文时创建下联设备结构体;(B12)将反馈报文中的设备编号写入下联设备信息结构体的设备编号中;(B13)将接收到该反馈报文的端口记录到下联设备信息结构体的父端端口中;(B14)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(B15)将上一个下联设备结构体的同级设备指针指向本下联设备信息结构体;(B16)本下联设备结构体的下联设备指针为空;(B17)本下联设备结构体的同级设备指针为空;(B18)更新本机下联设备个数内容;(B19)循环(Bll) — (B18)依次处理收到的所有下联设备的反馈报文;(B20)本机结构体中的同级设备指针为空。
8.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于步骤三(3)中的设备如果下联设备指针为空,则不发送拓扑报文,此外,由于设备是在接收到广播报文才发送拓扑报文,因此可以根据网络环境设定是由root定时自动进行拓扑发现,还是人工手动进行自动拓扑发现,优化网络性能,减少收敛次数,提高效率。
9.如权利要求I所述的一种交换设备的拓扑发现方法,其特征在于步骤四中将设备信息记录到全局拓扑结构表中步骤为(Cl)将本机root设备编号记录到结构体中;(C2)父端端口、本机端口均为空,root同级设备指针为空;(C3)将下联设备指针指向收到的第一个反馈报文所创建的设备信息结构体的设备编号;(C4)将接收到该反馈报文的端口记录到创建的下联设备信息结构提的父端端口中; (C5)将接收到的反馈报文中用于接收广播报文的端口记录到下联设备结构体的本机端口中;(C5)更新下联设备个数内容;(C6)将第一个下联设备信息结构体(非root设备)的同级设备指针指向收到的下一个反馈报文中设备信息结构体的设备编号;(C7)循环(C4) — (C6)依次处理收到的所有下联设备的反馈报文;(CS)将收到的拓扑报文中的设备编号取出,在下联设备中找到该编号记录,然后将该编号结构体的下联设备指针指向该结构体。
10.如权利要求I所述的一种交换设备拓扑发现方法,其特征在于步骤五中对拓扑发现的更新基于上述步骤四中对树型链表的更新,使用常规链表更新策略即可主动实时维护当前拓扑结构。
全文摘要
本发明涉及一种交换设备拓扑发现方法,首先root设备发送关键字为Topology_Find的广播数据包并在内部建立一张全局拓扑结构链表;其它交换设备向接收数据包端口发送dev_info的数据,同时维护本机设备管理表,并将该表向root设备发送topology_info数据包;root设备根据dev_info数据包以及topology_info数据包将设备信息维护到全局拓扑结构表中。本发明所需数据包及信息内容极少,且拓扑收敛速度及运算消耗极小,可以提高整个拓扑系统处理性能,比其它网络拓扑发现方法占用设备系统资源和网络资源具有极大的优势。
文档编号H04L12/751GK102916884SQ20121041382
公开日2013年2月6日 申请日期2012年10月26日 优先权日2012年10月26日
发明者冉宇晖, 王光移, 潘月红, 丁贤根, 胡建鹤 申请人:江苏华丽网络工程有限公司