拓扑发现方法及装置的制作方法

文档序号:7753192阅读:86来源:国知局
专利名称:拓扑发现方法及装置的制作方法
技术领域
本发明涉及通信领域,尤其涉及拓扑发现方法及装置。
背景技术
城域网和企业网大多采用环形网络构建。环形网络采用的技术一般是 RPR(Resilient Packet Ring,弹性分组环)或以太网环。RPR需要专用硬件,因此成本较 高,应用较少;以太网环成本低廉,应用广泛。一般的环形网络如图1所示,包括主节点和传输节点,并且,主节点上包括一主端 口和一备端口 ;其具有如下的工作机制主节点的主端口定时向外发送协议报文,通过环 形网络上的传输节点传输到主节点的备端口,当备端口能够在规定时间内接收到所述协议 报文时,则认为环形网络完整,否则,说明环形网络存在故障。但是,以上的工作机制下,不管是作为主节点的网络设备还是作为传输节点的网 络设备,均不支持环形网络的拓扑发现,进而,也不能对环形网络上的网络设备进行准确的 故障判断、阻塞端口指定等操作。

发明内容
有鉴于此,本发明要解决的技术问题是,提供一种拓扑发现方法及装置,能够在每 一网络设备上实现所属环形网络的拓扑发现。为此,本发明实施例采用如下技术方案—种拓扑发现方法,其特征在于,该方法应用于环形网络,该环形网络上包括第一 设备及与该第一设备相邻的第一邻居设备,该方法包括确定进行第一设备的邻居协商时,通过第一设备的第一端口向与第一端口连接的 第一邻居设备发送邻居协商报文;所述第一邻居设备的第二端口与所述第一端口连接;接收第一邻居设备返回的邻居协商应答报文,所述邻居协商应答报文由第一邻居 设备根据邻居协商报文进行第二端口的链路状态信息更新后,根据第二端口的链路状态信 息更新结果生成;根据所述邻居协商应答报文更新第一设备中第一端口的链路状态信息;根据第一端口的链路状态信息更新结果,将第一设备的链路状态信息库按照预定 配置向环形网络上第一设备之外的其他设备广播,以便所述其他设备根据第一端口的链路 状态信息进行本地链路状态信息库的更新;所述链路状态信息库包括环形网络上各个端口 的链路状态信息。一种拓扑发现装置,其特征在于,该装置应用于环形网络,该环形网络上 包括第一设备及与该第一设备相邻的第一邻居设备,该装置包括发送单元,用于确定进行所述第一设备的邻居协商时,通过所述第一设备的第一 端口向与第一端口连接的第一邻居设备发送邻居协商报文;所述第一邻居设备的第二端口 与所述第一端口连接;接收单元,用于接收所述第一邻居设备返回的邻居协商应答报文,所述邻居协商应答报文由第一邻居设备根据邻居协商报文进行第二端口的链路状态信息更新后,根据第 二端口的链路状态信息更新结果生成;第一更新单元,用于根据所述邻居协商应答报文更新第一设备中第一端口的链路 状态信息;广播单元,用于根据第一端口的链路状态信息更新结果,将第一设备的链路状态 信息库按照预定配置向环形网络上第一设备之外的其他设备广播,以便所述其他设备根据 第一端口的链路状态信息进行本地链路状态信息库的更新;所述链路状态信息库包括环形 网络上各个端口的链路状态信息。根据本发明实施例的技术方案,通过第一设备与邻居设备之间的邻居协商,完成 环形网络上每一设备各个端口的链路状态信息确认;并且,通过将各个设备的链路状态信 息库向环形网络上的其他设备广播,从而使得环形网络上每个设备都能够获得最新且同步 的环形网络上每一端口的链路状态信息,从而使得环形网络的每一网络设备上均实现了所 属环形网络的拓扑发现。


图1为现有技术环形网络结构示意图;图2为本发明实施例一种拓扑发现方法流程示意图;图3为本发明实施例另一种拓扑发现方法流程示意图;图4为本发明实施例环形网络端口连接示意图;图5为本发明实施例封闭环结构示意图;图6为本发明实施例一种开放环的结构示意图;图7为本发明实施例另一种开放环的结构示意图;图8为本发明实施例一种拓扑发现装置结构示意图。
具体实施例方式以下,结合附图详细说明本发明实施例拓扑发现方法及装置的实现。图2为本发明实施例一种拓扑发现方法流程示意图,该方法可以适用于以太网环 或者RI^R等环形网络中,该环形网络上包括第一设备及与该第一设备相邻的第一邻居设 备,如图2所示,该拓扑发现方法包括步骤201 确定进行第一设备的邻居协商时,通过第一设备的第一端口向与第一 端口连接的第一邻居设备发送邻居协商报文;所述第一邻居设备的第二端口与所述第一端 口连接;步骤202 接收第一邻居设备返回的邻居协商应答报文,所述邻居协商应答报文 由第一邻居设备根据邻居协商报文进行第二端口的链路状态信息更新后,根据第二端口的 链路状态信息更新结果生成;步骤203 根据所述邻居协商应答报文更新第一设备中第一端口的链路状态信 息;步骤204:根据第一端口的链路状态信息更新结果,将第一设备的链路状态信息 库按照预定配置向环形网络上第一设备之外的其他设备广播,以便所述其他设备根据第一端口的链路状态信息进行本地链路状态信息库的更新;所述链路状态信息库包括环形网络 上各个端口的链路状态信息。图2所示的本发明实施例中,通过第一设备与邻居设备之间的邻居协商,完成环 形网络上每一设备各个端口的链路状态信息确认;并且,通过将各个设备的链路状态信息 库向环形网络上的其他设备广播,从而使得环形网络上每个设备都能够获得最新且同步的 环形网络上每一端口的链路状态信息,从而使得环形网络的每一网络设备上均实现了所属 环形网络的拓扑发现。在图2的基础上,通过图3对本发明实施例拓扑发现方法进行更为详细的说明,该 方法同样也适用于以太网环或者RI3R等环形网络中,如图3所示,本发明实施例拓扑发现方 法包括步骤301 第一设备确定进行邻居协商时,通过第一设备的第一端口向与第一端 口连接的第一邻居设备发送邻居协商报文;所述第一邻居设备的第二端口与所述第一端口 连接。所述邻居协商报文的内容包括第一端口 ID(标识)、第一端口的邻居端口信息。 另外,所述邻居协商报文中还可以包括第一设备的MAC (Media Access Control,媒体接入控制)地址、第一邻居设备的 MAC地址;协议版本号、SEP (Smart Ethernet Protection,智能以太保护)协议ID、协议类 型(邻居协商协议)、协议子类型(协议使能);第一端口加入网段的网段ID、第一端口优先级等信息。所述第一端口的邻居端口信息一般为空,或者,为第一端口的邻居端口 ID。其中,对于所述兄弟端口 每台设备最多有两个口在同一个环形网络上,则这两个 端口互为兄弟端口。如图4所示的环形网络上,设备A的端口 1和设备A的端口 2互为兄 弟端口 ;对于所述邻居端口 环形网络上的不同设备相互连接的两个端口互为邻居端口。 例如,如图4所示的设备A的端口 2和设备B的端口 3互为邻居端口。对于所述端口 ID 为了标识环形网络上的不同端口,需要给每个端口定义一个端 口 ID。在本发明实施例中,所述端口 ID可以区分不同设备的端口,也可以区分同一个设备 上的不同端口,因此所述端口 ID可以采用两维信息表示,具体的,可以包括(1)端口所在 设备的MAC地址;(2)端口在设备上的编号。例如,对于图4所示的环形网络,假设设备A的 MAC地址为0001-AAAA-AAAA,则设备A的端口 1的端口 ID可以表示为(0001-AAAA-AAAA, 1)。其中,第一设备确定进行邻居协商的时机可以为第一设备的第一端口使能SEP 协议,并且第一端口所在的物理链路正常时。步骤302 所述第一邻居设备从第二端口接收所述邻居协商报文,进行本地第二 端口的链路状态信息更新,根据更新结果从所述第二端口向所述第一设备返回邻居协商应 答报文;其中,本步骤中所述第一邻居设备进行链路状态信息更新可以包括判断接收到所述邻居协商报文的第二端口是否存在邻居端口信息,如果否,根据接收到的邻居协商报文更新该第二端口的邻居端口信息;如果是,判断第二端口的邻居端口信息与邻居协商报文中的第一设备的第一端口 的端口信息是否相同,如果不同,则确定该第二端口的邻居端口产生冲突;如果相同,则表 明第一邻居设备中已经存储了第一设备的第一端口作为邻居端口的信息,可以不进行更新 操作。其中,当第二端口的邻居端口未产生冲突时,所述邻居协商应答报文中携带的内 容与邻居协商报文的内容相似,区别仅在于邻居协商应答报文中第二端口的邻居端口信息 是确定的,而邻居协商报文中第一端口的邻居端口则可能缺省。当第二端口的邻居端口产生冲突时,所述邻居协商应答报文中可以不携带该第二 端口的邻居端口信息,其他信息可以跟初始状态时发送的邻居协商报文的信息相同。步骤303 第一设备接收所述邻居协商应答报文,根据所述邻居协商应答报文判 断是否需要更新第一端口的链路状态信息,如果是,执行步骤304 ;否则,执行步骤305。其中,本步骤中的所述判断是否需要更新第一端口的链路状态信息包括将所述邻居协商应答报文中携带的链路状态信息与第一设备中存储的第一端口 的链路状态信息进行对比,如果一致时,不进行第一端口链路状态信息的更新;不一致时, 则进行第一端口链路状态信息的更新。步骤304 第一设备根据所述邻居协商应答报文更新第一端口的链路状态信息, 并且,将第一设备的链路状态信息库通过该第一设备在环路上的端口向第一设备所属环形 网络上的其他设备进行广播;执行步骤306。其中,根据步骤303,第一设备接收到的邻居协商应答报文中可能携带第二端口的 邻居端口信息,也可以不携带第二端口的邻居端口信息,但是,不管所述应答报文中是否携 带第二端口的邻居端口信息,对于第一端口来说,可以确定其邻居端口必然为第一邻居设 备的第二端口;因此,在步骤303中,可以根据应答报文中的第二端口 ID来判断第一端口的 邻居端口信息是否需要更新,如果第一端口的邻居端口信息不为第二端口 ID时,则确定更 新第一端口的链路状态信息,因此,本步骤中将根据第二端口 ID来更新第一端口的邻居端 口 fn 息 ο以上的第一设备与第一邻居设备之间邻居协商报文以及邻居协商应答报文的交 互并不意味着第一设备与第一邻居设备之间完成了邻居协商,只有第一邻居设备中不发生 邻居端口的冲突时,第一设备和第一邻居设备才确定两设备之间的邻居协商成功;否则,第 一设备和第一邻居设备一般需要继续一直或者周期性的进行上述邻居协商报文以及邻居 协商应答报文的交互,直到邻居协商成功。但是,这里邻居协商过程并不影响以下步骤305 以及后续步骤的执行,对于第一设备以及第一邻居设备等设备而言,当邻居协商中链路状 态信息发生了更新或者到达了预设的广播时刻,进行本设备上链路状态信息库的广播。步骤305 第一设备判断到达预设的广播时刻时,将第一设备的链路状态信息库 向环形网络上的其他设备进行广播;执行步骤306。其中,对于环形网络上的每个网络设备而言,会分别设置起始广播时刻以及广播 周期,在每个广播时刻到来时,各个网络设备将会把自己保存的环形网络上本网段内所有 端口的链路状态信息扩散到其他各个以太网环上的设备上,从而保证网络上每个端口保存 的链路状态信息一致。这里,每个网络设备中所保存的环形网络上本网段内所有端口的链路状态信息称为链路状态信息库。步骤306 环形网络上的其他设备接收所述第一设备发来的链路状态信息,更新 自身的链路状态信息库。另外,对于第一设备而言,环形网络上的其他设备也会按照预设的配置发送其他 设备本地的链路状态信息库中的信息,从而使得第一设备也能够实时更新第一设备的链路 状态信息库,并进行后续的拓扑显示等。第一设备的更新过程和显示拓扑结构的过程与所 述其他设备更新和显示拓扑结构的过程可以相同,这里不再赘述。其中,本步骤中所述其他设备更新自身的链路状态信息库可以包括接收环形网络上除自身之外其他设备广播的链路状态信息,从链路状态信息中获 取端口 ID和端口所在的网段ID ;根据端口 ID和网段ID查找本地链路状态信息库中是否存在对应的链路状态信 息,如果没有,则直接保存收到的链路状态信息;如果有,则比较本地保存的链路状态信息与收到的链路状态信息是否一致,如果 不一致,则,从其他设备广播的该端口的链路状态信息和本地保存的该端口的链路状态信 息中选择该端口最新的链路状态信息,将本地保存的该端口的链路状态信息更新为所述最 新的链路状态信息。通过这一更新过程,环形网络上的每一设备都将能够获得最新且同步的环形网络 上各个端口的链路状态信息。其中,对于每个端口的链路状态信息,可以设置一序列号字段,端口的链路状态信 息每更新一次,则序列号加1,从而,本步骤中比较哪个链路状态信息最新时,只要比较序列 号即可实现;或者,也可以设置一更新时间字段,从而本步骤中比较哪个链路状态信息最新 则可以通过比较更新时间实现。步骤307 所述其他设备根据更新后的链路状态信息数据库进行网络拓扑显示。具体的显示方法可以包括步骤A 从所有端口中确定起点端口 ;具体的,本步骤的实现可以为判断所有端口中是否存在运行状态为主边缘端口的端口,如果所有端口中存在运 行状态为主边缘端口的端口,则将运行状态为主边缘端口的端口确定为起点端口 ;如果所有端口中不存在运行状态为主边缘端口的端口,则判断所有端口中是否存 在运行状态为备边缘端口的端口,如果所有端口中存在运行状态为备边缘端口的端口,则 将备边缘端口中端口 ID最小的端口确定为起点端口 ; 如果所有端口中既不存在运行状态为主边缘端口的端口,也不存在运行状态为备 边缘端口的端口,则将所有端口中端口 ID最小的端口确定为起点端口。步骤B、显示该起点端口 ;步骤C、判断起点端口是否存在邻居端口且邻居端口未显示,如果该起点端口存在 邻居端口且邻居端口未显示,将该起点端口的邻居端口作为下一个起点端口,返回步骤B ; 否则,进入步骤D ;步骤D、判断起点端口是否存在兄弟端口且兄弟端口未显示,如果该起点端口存在 兄弟端口且兄弟端口未显示,将起点端口的兄弟端口作为下一个起点端口,返回步骤B;否则,拓扑显示结束。其中,所述端口的运行状态可以分为主边缘端口、备边缘端口、普通端口等。实际应用中,环形网络可以分为两种形式封闭环,如图5所示;开放环,如图6和 图7所示。环形网络上面的端口共有两种角色边缘端口和普通端口。其中,对于如图6和 7所示的开放环来说,边缘端口是指不与环路上其他设备相连接的端口,而对于如图5所示 的封闭环来说,则可以由用户指定或者预先按照某种预设配置(例如端口 ID最小的一个或 两个端口配置为边缘端口等)确定环上的边缘端口。具体的,边缘端口可以划为两种主边 缘端口和备边缘端口。每一个环形网络(包括开放环和封闭环)都有两个边缘端口,所述 主边缘端口即是由两个边缘端口中选举出一个端口作为主边缘端口,普通端口不参与主边 缘端口选举。边缘端口的角色存在管理状态和运行状态两种,管理状态由配置来决定,运行 状态由主边缘端口选举来决定,其选举逻辑可以如下表1所示表权利要求
1.一种拓扑发现方法,其特征在于,该方法应用于环形网络,该环形网络上包括第一设 备及与该第一设备相邻的第一邻居设备,该方法包括确定进行第一设备的邻居协商时,通过第一设备的第一端口向与第一端口连接的第一 邻居设备发送邻居协商报文;所述第一邻居设备的第二端口与所述第一端口连接;接收第一邻居设备返回的邻居协商应答报文,所述邻居协商应答报文由第一邻居设备 根据邻居协商报文进行第二端口的链路状态信息更新后,根据第二端口的链路状态信息更 新结果生成;根据所述邻居协商应答报文更新第一设备中第一端口的链路状态信息;根据第一端口的链路状态信息更新结果,将第一设备的链路状态信息库按照预定配置 向环形网络上第一设备之外的其他设备广播,以便所述其他设备根据第一端口的链路状态 信息进行本地链路状态信息库的更新;所述链路状态信息库包括环形网络上各个端口的链 路状态信息。
2.根据权利要求1所述的方法,其特征在于,所述将第一设备的链路状态信息库按照 预定配置向环形网络上第一设备之外的其他设备广播包括当第一端口的链路状态信息发生更新时,将第一设备的链路状态信息库通过该第一设 备在环路上的端口向网络上的其他设备进行广播;当第一端口的链路状态信息未发生更新时,判断到达预设的广播时刻时,将本地的链 路状态信息库通过该第一设备在环路上的端口向网络上的其他设备进行广播。
3.根据权利要求1所述的方法,其特征在于,还包括接收其他设备根据预定配置发来的链路状态信息,更新第一设备的链路状态信息库。
4.根据权利要求3所述的方法,其特征在于,所述更新第一设备的链路状态信息库包括对于每个端口的链路状态信息,比较第一设备中该端口的链路状态信息是否与其他设 备发来的该端口的链路状态信息不相同时,确定该端口的最新链路状态信息,将第一设备 中该端口的链路状态信息更新为该最新的链路状态信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括根据第一设备的链路状态信息库中各个端口的链路状态信息进行环形网络拓扑显示。
6.根据权利要求5所述的方法,其特征在于,所述进行环形网络拓扑显示包括从环形网络的所有端口中确定起点端口;显示所述起点端口;判断起点端口是否存在邻居端口且邻居端口未显示,如果是,将该邻居端口作为下一 个起点端口,返回显示起点端口的步骤;否则,判断起点端口存在兄弟端口且兄弟端口未显示时,将该兄弟端口作为下一个起点端 口,返回显示起点端口的步骤。
7.根据权利要求6所述的方法,其特征在于,所述从网络中所有端口中确定起点端口 包括判断所有端口中是否存在运行状态为主边缘端口的端口,如果存在运行状态为主边缘 端口的端口,将运行状态为主边缘端口的端口确定为起点端口 ;如果所有端口中不存在运行状态为主边缘端口的端口,则判断所有端口中是否存在运行状态为备边缘端口的端口,如果所有端口中存在运行状态为备边缘端口的端口,将备边 缘端口中端口 ID最小的端口确定为起点端口 ;如果所有端口中既不存在运行状态为主边缘端口的端口,也不存在运行状态为备边缘 端口的端口,则将所有端口中端口 ID最小的端口确定为起点端口。
8.一种拓扑发现装置,其特征在于,该装置应用于环形网络,该环形网络上包括第一设 备及与该第一设备相邻的第一邻居设备,该装置包括发送单元,用于确定进行所述第一设备的邻居协商时,通过所述第一设备的第一端口 向与第一端口连接的第一邻居设备发送邻居协商报文;所述第一邻居设备的第二端口与所 述第一端口连接;接收单元,用于接收所述第一邻居设备返回的邻居协商应答报文,所述邻居协商应答 报文由第一邻居设备根据邻居协商报文进行第二端口的链路状态信息更新后,根据第二端 口的链路状态信息更新结果生成;第一更新单元,用于根据所述邻居协商应答报文更新第一设备中第一端口的链路状态 fn息;广播单元,用于根据第一端口的链路状态信息更新结果,将第一设备的链路状态信息 库按照预定配置向环形网络上第一设备之外的其他设备广播,以便所述其他设备根据第一 端口的链路状态信息进行本地链路状态信息库的更新;所述链路状态信息库包括环形网络 上各个端口的链路状态信息。
9.根据权利要求8所述的装置,其特征在于,所述广播单元包括第一广播子单元,用于当第一端口的链路状态信息发生更新时,将第一设备的链路状 态信息库通过该第一设备在环路上的端口向网络上的其他设备进行广播;第二广播子单元,用于当第一端口的链路状态信息未发生更新时,判断到达预设的广 播时刻时,将本地的链路状态信息库通过该第一设备在环路上的端口向网络上的其他设备 进行广播。
10.根据权利要求8所述的装置,其特征在于,还包括第二更新单元,用于接收其他设备根据预定配置发来的链路状态信息,更新所述第一 设备的链路状态信息库。
11.根据权利要求10所述的装置,其特征在于,第二更新单元具体用于接收其他设备根据预定配置发来的链路状态信息;对于每个端口的链路状态信息,比 较第一设备中该端口的链路状态信息是否与其他设备发来的该端口的链路状态信息不相 同时,确定该端口的最新链路状态信息,将第一设备中该端口的链路状态信息更新为该最 新的链路状态信息。
12.根据权利要求8至11任一项所述的装置,其特征在于,还包括显示单元,用于根据第一设备的链路状态信息库中各个端口的链路状态信息进行环形 网络拓扑显示。
13.根据权利要求12所述的装置,其特征在于,显示单元包括起点确定子单元,用于从环形网络的所有端口中确定起点端口 ;显示子单元,显示所述起点端口 ;第一判断子单元,用于判断起点端口是否存在邻居端口且邻居端口未显示,如果是,将该邻居端口作为下一个起点端口,进入显示子单元;否则,进入第二判断子单元;第二判断子单元,用于判断起点端口存在兄弟端口且兄弟端口未显示时,将该兄弟端 口作为下一个起点端口,进入显示子单元。
14.根据权利要求13所述的装置,其特征在于,起点确定子单元具体用于判断所有端 口中是否存在运行状态为主边缘端口的端口,如果所有端口中存在运行状态为主边缘端口 的端口,则将运行状态为主边缘端口的端口确定为起点端口 ;如果所有端口中不存在运行 状态为主边缘端口的端口,则判断所有端口中是否存在运行状态为备边缘端口的端口,如 果所有端口中存在运行状态为备边缘端口的端口,则将运行状态为备边缘端口的端口中端 口 ID最小的端口确定为起点端口 ;如果所有端口中既不存在运行状态为主边缘端口的端 口,也不存在运行状态为备边缘端口的端口,则将所有端口中端口 ID最小的端口确定为起 点端口。
全文摘要
本发明公开了一种拓扑发现方法和装置,通过第一设备与邻居设备之间的邻居协商,完成环形网络上每一设备各个端口的链路状态信息确认;并且,通过将各个设备的链路状态信息库向环形网络上的其他设备广播,从而使得环形网络上每个设备都能够获得最新且同步的环形网络上每一端口的链路状态信息,从而使得环形网络的每一网络设备上均实现了所属环形网络的拓扑发现。
文档编号H04L12/24GK102136928SQ20101021757
公开日2011年7月27日 申请日期2010年7月2日 优先权日2010年7月2日
发明者温华锋, 王文海, 覃力 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1