CN104641604A - 确定最短路径的方法及装置 - Google Patents

确定最短路径的方法及装置 Download PDF

Info

Publication number
CN104641604A
CN104641604A CN201380000359.2A CN201380000359A CN104641604A CN 104641604 A CN104641604 A CN 104641604A CN 201380000359 A CN201380000359 A CN 201380000359A CN 104641604 A CN104641604 A CN 104641604A
Authority
CN
China
Prior art keywords
node
path
expense
shortest path
paths
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.)
Granted
Application number
CN201380000359.2A
Other languages
English (en)
Other versions
CN104641604B (zh
Inventor
朱明明
夏寅贲
涂伯颜
闫长江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haimen Chuanghao Industrial Design Co ltd
Shenzhen Shangge Intellectual Property Service Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104641604A publication Critical patent/CN104641604A/zh
Application granted granted Critical
Publication of CN104641604B publication Critical patent/CN104641604B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种确定最短路径的方法及装置,包括:确定第一节点到第二节点的第一最短路径;以及确定第三节点到第二节点的第二最短路径;其中,所述确定第三节点到第二节点的第二最短路径包括:将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。此外,还提供了相应的装置。上述技术方案有助于降低生成最短路径优先树对资源的消耗。

Description

确定最短路径的方法及装置
技术领域
本发明实施例涉及通信技术,尤其涉及确定最短路径的方法及装置。
背景技术
现网中包括多个网络设备。每个网络设备以自身为根节点计算自身到其他网络设备最短路径,从而生成最短路径优先树(shortest path first tree,SPFtree)。现网中生成最短路径优先树是分布式实现的。举例来说,所述多个网络设备可以是多个路由器。每个路由器只生成自身的最短路径优先树,不生成其他路由器的最短路径优先树。
目前尚未发现现网中存在集中式生成最短路径优先树的情形。理论上,集中式生成最短路径优先树可以通过如下途径实现:一个网络设备多次运行最短路径优先算法(shortest path first algorithm,SPF algorithm),从而生成多个网络设备的最短路径优先树。集中式生成最短路径优先树消耗的资源较多。
发明内容
本发明实施例提供确定最短路径的方法及装置,有助于降低生成最短路径优先树对资源的消耗。
第一方面,提供一种确定最短路径的方法,包括:
确定第一节点到第二节点的第一最短路径;以及
确定第三节点到第二节点的第二最短路径;
其中,所述确定第三节点到第二节点的第二最短路径包括:
将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
上述技术方案中,先确定所述第一节点到所述第二节点的所述第一最短路径,然后确定所述第三节点到所述第二节点的所述第二最短路径。确定所述第二最短路径时,当计算至所述第一节点为所述第三节点的子节点时,可以将已确定的所述第一节点到所述第二节点的所述第一最短路径作为所述第二最短路径的一部分,避免了通过运行所述最短路径优先算法计算所述第一节点的子节点的操作。因此,上述技术方案有助于降低生成最短路径优先树对资源的消耗。
第一方面的第一种可能的实现方式中,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
第一方面的第二种可能的实现方式中,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
第一方面的第三种可能的实现方式中,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
根据第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式中或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
第二方面,提供一种确定最短路径的装置,包括:
第一单元,用于确定第一节点到第二节点的第一最短路径;以及
第二单元,用于确定第三节点到第二节点的第二最短路径;
其中,所述第二单元具体用于将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
上述技术方案中,先确定所述第一节点到所述第二节点的所述第一最短路径,然后确定所述第三节点到所述第二节点的所述第二最短路径。确定所述第二最短路径时,当计算至所述第一节点为所述第三节点的子节点时,可以将已确定的所述第一节点到所述第二节点的所述第一最短路径作为所述第二最短路径的一部分,从而避免了通过运行所述最短路径优先算法计算所述第一节点的子节点的操作。因此,上述技术方案有助于降低生成最短路径优先树对资源的消耗。
第二方面的第一种可能的实现方式中,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
第二方面的第二种可能的实现方式中,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
第二方面的第三种可能的实现方式中,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
根据第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式中或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种组网架构的示意图;
图2为本发明实施例提供的一种确定最短路径的方法的流程示意图;
图3是本发明实施例提供的一种确定最短路径的装置的结构示意图;
图4是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种组网架构的示意图。参见图1,所述组网架构包括第一开放流交换机(OpenFlow Switch)101、第二开放流交换机102、第三开放流交换机103以及开放流控制器(OpenFlow Controller)104。所述开放流控制器104分别通过第一控制通道、第二控制通道以及第三控制通道对所述第一开放流交换机101、所述第二开放流交换机102以及所述第三开放流交换机103进行控制。所述第一开放流交换机101到所述第二开放流交换机102的最短路径为第一链路。所述第三开放流交换机103到所述第一开放流交换机101的最短路径为第三链路。所述第三开放流交换机103到所述第二开放流交换机102的最短路径为第二链路。
关于开放流交换机,可以参考标准制定组织(Standard SettingOrganization,SSO)开放网络基础(Open Networking Foundation,ONF)发布的《开放流交换机规范》版本1.0(OpenFlow Switch Specification1.0)。
关于开放流控制器可以参考《开放流交换机规范》版本1.0。
控制通道具体实现时,可以是安全通道(Secure Channel)。关于安全通道,可以参考《开放流交换机规范》版本1.0。
图2为本发明实施例提供的一种确定最短路径的方法的流程示意图。参见图2,所述方法包括:
S202、确定第一节点到第二节点的第一最短路径。
S204、确定第三节点到第二节点的第二最短路径。
其中,所述确定第三节点到第二节点的第二最短路径包括:
将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
举例来说,所述方法的执行主体可以是网络设备。所述网络设备可以是开放流控制器。具体地,所述方法的执行主体也可以是所述网络设备的处理器。所述处理器可以是中央处理器(central processing unit,CPU)。所述CPU可以承载在所述网络设备的主控板(main processing unit,MPU)上。
举例来说,所述网络设备可以包括存储器。所述存储器可以与所述处理器耦合。所述存储器可以用于存储计算机程序。所述处理器可以通过访问所述计算机程序执行所述方法。
举例来说,所述开放流控制器可以对网络进行管辖。所述被管辖的网络包括所述第一节点、所述第二节点以及所述第三节点。所述第一节点可以是开放流交换机。所述第二节点可以是开放流交换机。所述第三节点可以是开放流交换机。
上述技术方案中,将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,则表明已计算出所述第三节点到所述第一节点的路径。此时尚未计算至所述第二节点。所述第二最短路径尚未生成。
上述技术方案中,将所述第一最短路径作为所述第二最短路径的一部分前,已计算出所述第三节点到所述第一节点的路径。执行将所述第一最短路径作为所述第二最短路径的一部分的操作有助于将所述第三节点到所述第一节点的路径与所述第一最短路径合并。上述合并有助于生成述第二最短路径。
上述技术方案中,先确定所述第一节点到所述第二节点的所述第一最短路径,然后确定所述第三节点到所述第二节点的所述第二最短路径。确定所述第二最短路径时,当计算至所述第一节点为所述第三节点的子节点时,可以将已确定的所述第一节点到所述第二节点的所述第一最短路径作为所述第二最短路径的一部分,从而避免了通过运行所述最短路径优先算法计算所述第一节点的子节点的操作。因此,上述技术方案有助于降低生成最短路径优先树对资源的消耗。有助于加快生成最短路径优先树的速度。
可选地,S202之前,所述方法还可以包括:获取第一网络的拓扑信息。
举例来说,所述第一网络可以是所述被管辖的网络。
举例来说,所述第一网络的拓扑信息可以包括第一接口的标识和第二接口的标识。所述第一网络中任意两个具有直连关系的节点中的一个节点通过所述第一接口以及另一个节点的所述第二接口连接到所述另一个节点。
所述获取第一网络的拓扑信息可以包括:所述网络设备通过运行扩展的链路层发现协议(Link Layer Discovery Protocol,LLDP)获得所述第一网络的拓扑信息。
所述网络设备通过运行扩展的LLDP获得所述第一网络的拓扑信息可以通过如下操作实现:
所述网络设备与被管辖的节点建立传输控制协议(Transfer ControlProtocol,TCP)连接后,所述网络设备能够知道所述被管辖的节点具有的接口。所述网络设备向所述被管辖的节点发送扩展的LLDP消息。所述扩展的LLDP消息中携带所述被管辖的节点的标识以及所述被管辖的节点的接口的标识。
当所述被管辖的节点具有多个接口时,所述网络设备向所述被管辖的节点发送多个扩展的LLDP消息。所述多个扩展的LLDP消息分别对应所述多个接口。所述多个扩展的LLDP消息中每个扩展的LLDP消息中携带了对应的接口的标识。所述被管辖的节点收到所述扩展的LLDP消息后,通过所述被管辖的节点的接口,将与该接口对应的扩展的LLDP消息转发至邻居节点。邻居节点收到扩展的LLDP消息后,在扩展的LLDP消息中添加所述邻居节点的标识,从而生成新的扩展的LLDP消息。所述邻居节点通过控制通道将所述新的扩展的LLDP消息发送到所述网络设备。
通过上述机制,所述网络设备能够根据所述新的扩展的LLDP消息得到所述被管辖的节点通过哪个接口和所述邻居节点进行连接。
基于同样的机制,所述网络设备能够进一步得到所述邻居节点通过哪个接口和所述邻居节点的邻居节点进行连接。
通过重复上述操作,所述网络设备能够得到所述第一网络的拓扑信息。
举例来说,S202可以包括,以所述第一节点为根节点,根据所述第一网络的拓扑信息,运行最短路径优先算法执行逐跳计算所述第一节点的最短路径优先树的操作。所述第一节点的最短路径优先树包含所述第一最短路径。
举例来说,所述第一最短路径可以只包括两个节点。也就是说,所述第一节点和所述第二节点可以直连。
举例来说,所述第一最短路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
举例来说,所述第三节点到所述第一节点的路径可以只包括两个节点。也就是说,所述第三节点到所述第一节点可以直连。
举例来说,所述第三节点到所述第一节点的路径可以包括一个或多个中间节点。所述中间节点可以是开放流交换机。所述中间节点可以是所述第一网络中的节点。所述多个中间节点可以是开放流交换机。所述多个中间节点可以是所述第一网络中的节点。
可选地,图2所示的方法中,所述确定第三节点到第二节点的第二最短路径,还可以包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图2所示的方法中,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图2所示的方法中,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图2所示的方法中,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
举例来说,图2所示的方法可以应用于图1所示的组网架构。其中,图2所示的方法的执行主体可以是图1所示的开放流控制器104。图2所示的方法中的第一节点、第二节点、第三节点可以分别是图1所示的第一开放流交换机101、第二开放流交换机102以及第三开放流交换机103。图2所示的方法中的第一最短路径和第二最短路径可以分别是图1所示的第一链路和第二链路。图2所示的方法涉及的所述第三节点到所述第一节点的路径可以是图1所示的第三链路。
具体地,图1中的所述开放流控制器可以执行如下操作:
计算所述第一开放流交换机101到第二开放流交换机102的第一最短路径。所述第一最短路径为所述第一链路。
计算第三开放流交换机103到第二开放流交换机102的第二最短路径。所述第二最短路径为所述第二链路。
其中,所述确定第三开放流交换机103到第二开放流交换机102的第二最短路径包括:
将所述第三开放流交换机103作为根节点运行最短路径优先算法执行逐跳计算所述第三开放流交换机103的最短路径优先树的操作,当计算至所述第一开放流交换机101为所述第三开放流交换机103的子节点时,如果所述第三开放流交换机103只能通过所述第一开放流交换机101到达所述第二开放流交换机102,则避免执行通过运行所述最短路径优先算法计算所述第一开放流交换机101的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
上述技术方案中,将所述第三开放流交换机103作为根节点运行最短路径优先算法执行逐跳计算所述第三开放流交换机103的最短路径优先树的操作,当计算至所述第一开放流交换机101为所述第三开放流交换机103的子节点时,则表明已计算出所述第三开放流交换机103到所述第一开放流交换机101的路径。此时尚未计算至所述第二开放流交换机102。所述第二最短路径尚未生成。
上述技术方案中,将所述第一链路作为所述第二链路的一部分前,已计算出所述第三开放流交换机103到所述第一开放流交换机101的路径,也就是所述第三链路。执行将所述第一链路作为所述第二链路的一部分的操作,有助于将所述第三链路与所述第一链路合并。上述合并有助于生成所述第二最短路径。也就是说,上述合并有助于生成所述第二链路。
图3是本发明实施例提供的一种确定最短路径的装置。所述装置可以用于执行图2所示的方法。参见图3,所述装置包括:
第一单元302,用于确定第一节点到第二节点的第一最短路径。以及
第二单元304,用于确定第三节点到第二节点的第二最短路径。
其中,所述第二单元304具体用于将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
参见图4,所述装置可以是网络设备。所述网络设备可以是开放流控制器。具体地,所述方法的执行主体也可以是所述网络设备的处理器402。所述处理器402可以是CPU。所述CPU可以承载在所述网络设备的MPU上。
参见图4,所述网络设备可以包括存储器404。所述存储器404可以与所述处理器402耦合。所述存储器404可以用于存储计算机程序406。所述处理器402可以访问所述计算机程序406。所述计算机程序406包括所述第一单元302以及所述第二单元304。
举例来说,所述开放流控制器可以对网络进行管辖。所述被管辖的网络包括所述第一节点、所述第二节点以及所述第三节点。所述第一节点可以是开放流交换机。所述第二节点可以是开放流交换机。所述第三节点可以是开放流交换机。
上述技术方案中,将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,则表明已计算出所述第三节点到所述第一节点的路径。此时尚未计算至所述第二节点。所述第二最短路径尚未生成。
上述技术方案中,将所述第一最短路径作为所述第二最短路径的一部分前,已计算出所述第三节点到所述第一节点的路径。执行将所述第一最短路径作为所述第二最短路径的一部分的操作有助于将所述第三节点到所述第一节点的路径与所述第一最短路径合并。上述合并有助于生成述第二最短路径。
上述技术方案中,先确定所述第一节点到所述第二节点的所述第一最短路径,然后确定所述第三节点到所述第二节点的所述第二最短路径。确定所述第二最短路径时,当计算至所述第一节点为所述第三节点的子节点时,可以将已确定的所述第一节点到所述第二节点的所述第一最短路径作为所述第二最短路径的一部分,从而避免了通过运行所述最短路径优先算法计算所述第一节点的子节点的操作。因此,上述技术方案有助于降低生成最短路径优先树对资源的消耗。有助于加快生成最短路径优先树的速度。
可选地,图3所示的装置还可以包括获取单元。所述获取单元用于获取第一网络的拓扑信息。
举例来说,所述第一网络可以是所述被管辖的网络。
举例来说,所述第一网络的拓扑信息可以包括第一接口的标识和第二接口的标识。所述第一网络中任意两个具有直连关系的节点中的一个节点通过所述第一接口以及另一个节点的所述第二接口连接到所述另一个节点。
所述获取第一网络的拓扑信息可以包括:所述网络设备通过运行扩展的LLDP获得所述第一网络的拓扑信息。
所述网络设备通过运行扩展的LLDP获得所述第一网络的拓扑信息可以通过如下操作实现:
所述网络设备与被管辖的节点建立TCP连接后,所述网络设备能够知道所述被管辖的节点具有的接口。所述网络设备向所述被管辖的节点发送扩展的LLDP消息。所述扩展的LLDP消息中携带所述被管辖的节点的标识以及所述被管辖的节点的接口的标识。
当所述被管辖的节点具有多个接口时,所述网络设备向所述被管辖的节点发送多个扩展的LLDP消息。所述多个扩展的LLDP消息分别对应所述多个接口。所述多个扩展的LLDP消息中每个扩展的LLDP消息中携带了对应的接口的标识。所述被管辖的节点收到所述扩展的LLDP消息后,通过所述被管辖的节点的接口,将与该接口对应的扩展的LLDP消息转发至邻居节点。邻居节点收到扩展的LLDP消息后,在扩展的LLDP消息中添加所述邻居节点的标识,从而生成新的扩展的LLDP消息。所述邻居节点通过控制通道将所述新的扩展的LLDP消息发送到所述网络设备。
通过上述机制,所述网络设备能够根据所述新的扩展的LLDP消息得到所述被管辖的节点通过哪个接口和所述邻居节点进行连接。
基于同样的机制,所述网络设备能够进一步得到所述邻居节点通过哪个接口和所述邻居节点的邻居节点进行连接。
通过重复上述操作,所述网络设备能够得到所述第一网络的拓扑信息。
举例来说,所述确定第一节点到第二节点的第一最短路径可以包括,以所述第一节点为根节点,根据所述第一网络的拓扑信息,运行最短路径优先算法执行逐跳计算所述第一节点的最短路径优先树的操作。所述第一节点的最短路径优先树包含所述第一最短路径。
举例来说,所述第一最短路径可以只包括两个节点。也就是说,所述第一节点和所述第二节点可以直连。
举例来说,所述第一最短路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
举例来说,所述第三节点到所述第一节点的路径可以只包括两个节点。也就是说,所述第三节点到所述第一节点可以直连。
举例来说,所述第三节点到所述第一节点的路径可以包括一个或多个中间节点。所述中间节点可以是开放流交换机。所述中间节点可以是所述第一网络中的节点。所述多个中间节点可以是开放流交换机。所述多个中间节点可以是所述第一网络中的节点。
可选地,图3所示的装置中,所述第二单元304还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图3所示的装置中,所述第二单元304还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图3所示的装置中,所述第二单元304还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
举例来说,所述其他路径可以是所述第三节点到所述第二节点的直连路径。
举例来说,所述其他路径可以包括至少一个中间节点。所述至少一个中间节点可以是开放流交换机。所述至少一个中间节点可以是所述第一网络中的节点。
可选地,图3所示的装置中,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
举例来说,图3所示的装置可以应用于图1所示的组网架构。其中,图3所示的装置可以是图1所示的开放流控制器104。
图3所示的装置涉及的第一节点、第二节点、第三节点可以分别是图1所示的第一开放流交换机101、第二开放流交换机102以及第三开放流交换机103。图3所示的装置涉及的第一最短路径和第二最短路径可以分别是图1所示的第一链路和第二链路。图3所示的装置涉及的所述第三节点到所述第一节点的路径可以是图1所示的第三链路。
具体地,图1中的所述开放流控制器可以包括处理器和存储器。所述处理器和存储器耦合。所述存储器用于存储计算机程序。所述处理器通过访问所述计算机程序执行如下操作:
计算所述第一开放流交换机101到第二开放流交换机102的第一最短路径。所述第一最短路径为所述第一链路。
计算第三开放流交换机103到第二开放流交换机102的第二最短路径。所述第二最短路径为所述第二链路。
其中,所述确定第三开放流交换机103到第二开放流交换机102的第二最短路径包括:
将所述第三开放流交换机103作为根节点运行最短路径优先算法执行逐跳计算所述第三开放流交换机103的最短路径优先树的操作,当计算至所述第一开放流交换机101为所述第三开放流交换机103的子节点时,如果所述第三开放流交换机103只能通过所述第一开放流交换机101到达所述第二开放流交换机102,则避免执行通过运行所述最短路径优先算法计算所述第一开放流交换机101的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
上述技术方案中,将所述第三开放流交换机103作为根节点运行最短路径优先算法执行逐跳计算所述第三开放流交换机103的最短路径优先树的操作,当计算至所述第一开放流交换机101为所述第三开放流交换机103的子节点时,则表明已计算出所述第三开放流交换机103到所述第一开放流交换机101的路径。此时尚未计算至所述第二开放流交换机102。所述第二最短路径尚未生成。
上述技术方案中,将所述第一链路作为所述第二链路的一部分前,已计算出所述第三开放流交换机103到所述第一开放流交换机101的路径,也就是所述第三链路。执行将所述第一链路作为所述第二链路的一部分的操作,有助于将所述第三链路与所述第一链路合并。上述合并有助于生成所述第二最短路径。也就是说,上述合并有助于生成所述第二链路。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种确定最短路径的方法,其特征在于,包括:
确定第一节点到第二节点的第一最短路径;以及
确定第三节点到第二节点的第二最短路径;
其中,所述确定第三节点到第二节点的第二最短路径包括:
将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
2.根据权利要求1所述的方法,其特征在于,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
3.根据权利要求1所述的方法,其特征在于,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
4.根据权利要求1所述的方法,其特征在于,所述确定第三节点到第二节点的第二最短路径,还包括:
如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
6.一种确定最短路径的装置,其特征在于,包括:
第一单元,用于确定第一节点到第二节点的第一最短路径;以及
第二单元,用于确定第三节点到第二节点的第二最短路径;
其中,所述第二单元具体用于将所述第三节点作为根节点运行最短路径优先算法执行逐跳计算所述第三节点的最短路径优先树的操作,当计算至所述第一节点为所述第三节点的子节点时,如果所述第三节点只能通过所述第一节点到达所述第二节点,则避免执行通过运行所述最短路径优先算法计算所述第一节点的子节点的操作,将所述第一最短路径作为所述第二最短路径的一部分。
7.根据权利要求6所述的装置,其特征在于,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销大于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分。
8.根据权利要求6所述的装置,其特征在于,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销小于所述第一开销,则避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
9.根据权利要求6所述的装置,其特征在于,所述第二单元还包括:
比较单元,用于如果所述第三节点到所述第二节点存在其他路径,所述其他路径不经过所述第一节点,则比较所述其他路径的开销与第一开销,所述第一开销为第一路径的开销与第二路径的开销的和,所述第一路径为所述第一最短路径,所述第二路径为执行逐跳计算所述第三节点的所述最短路径优先树的操作得到的所述第三节点到所述第一节点的路径;以及
确定单元,用于如果所述其他路径的开销等于所述第一开销,则将所述第一最短路径作为所述第二最短路径的一部分,或者避免执行将所述第一最短路径作为所述第二最短路径的一部分的操作,将所述其他路径作为所述第二最短路径。
10.根据权利要求6至9中任一所述的装置,其特征在于,所述第一节点的邻居节点的数量大于所述最短路径优先树中所述第一节点以外的每个节点的邻居节点的数量。
CN201380000359.2A 2013-04-08 2013-04-08 确定最短路径的方法及装置 Expired - Fee Related CN104641604B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013073871 2013-04-08

Publications (2)

Publication Number Publication Date
CN104641604A true CN104641604A (zh) 2015-05-20
CN104641604B CN104641604B (zh) 2017-12-15

Family

ID=53218601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000359.2A Expired - Fee Related CN104641604B (zh) 2013-04-08 2013-04-08 确定最短路径的方法及装置

Country Status (1)

Country Link
CN (1) CN104641604B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005628A (zh) * 2015-08-07 2015-10-28 上海交通大学 基于集中式平台的最短路径关键节点查询方法
CN105515977A (zh) * 2015-12-21 2016-04-20 腾讯科技(深圳)有限公司 获取网络中传输路径的方法、装置和系统
CN106161230A (zh) * 2016-06-29 2016-11-23 杭州华三通信技术有限公司 一种备份链路确定方法及装置
CN114143249A (zh) * 2021-11-24 2022-03-04 深圳前海微众银行股份有限公司 确定路由信息的方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007015822A1 (en) * 2005-07-20 2007-02-08 Firetide, Inc. Route optimization for on-demand routing protocols for mesh networks
CN101179485A (zh) * 2006-11-10 2008-05-14 中兴通讯股份有限公司 新增组播成员的路径选择方法
CN101965715A (zh) * 2007-12-26 2011-02-02 北方电讯网络有限公司 最短路径确定中的打破平局
CN102210127A (zh) * 2008-11-19 2011-10-05 日本电信电话株式会社 路径计算方法、程序以及计算装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007015822A1 (en) * 2005-07-20 2007-02-08 Firetide, Inc. Route optimization for on-demand routing protocols for mesh networks
CN101179485A (zh) * 2006-11-10 2008-05-14 中兴通讯股份有限公司 新增组播成员的路径选择方法
CN101965715A (zh) * 2007-12-26 2011-02-02 北方电讯网络有限公司 最短路径确定中的打破平局
CN102210127A (zh) * 2008-11-19 2011-10-05 日本电信电话株式会社 路径计算方法、程序以及计算装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005628A (zh) * 2015-08-07 2015-10-28 上海交通大学 基于集中式平台的最短路径关键节点查询方法
CN105515977A (zh) * 2015-12-21 2016-04-20 腾讯科技(深圳)有限公司 获取网络中传输路径的方法、装置和系统
CN105515977B (zh) * 2015-12-21 2020-05-12 腾讯科技(深圳)有限公司 获取网络中传输路径的方法、装置和系统
CN106161230A (zh) * 2016-06-29 2016-11-23 杭州华三通信技术有限公司 一种备份链路确定方法及装置
CN106161230B (zh) * 2016-06-29 2020-10-30 新华三技术有限公司 一种备份链路确定方法及装置
CN114143249A (zh) * 2021-11-24 2022-03-04 深圳前海微众银行股份有限公司 确定路由信息的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN104641604B (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN104333511B (zh) 确定业务传输路径的方法、装置及系统
US10341141B2 (en) Flow entry generating method and apparatus
EP2974172B1 (en) Dynamically enabling selective routing capability
CN103004147B (zh) 报文转发路径确定方法及网络设备、控制设备
EP2369793B1 (en) Method and system for NIC-centric hyper-channel distributed network management
US9418340B2 (en) Fast learning to train learning machines using shadow joining
CN105429811B (zh) 网络管理系统及方法
CN103259718A (zh) 一种流表转换方法和装置
CN104641604A (zh) 确定最短路径的方法及装置
CN102868619B (zh) 一种lsa的传输方法和设备
US8675523B2 (en) Optimized spanning tree construction based on parameter selection
CN103023777B (zh) 一种获取全域最小最大传输单元值的方法和设备
CN103493439B (zh) 接收信息的方法、发送信息的方法及装置
US20160241469A1 (en) Multi-layer network control method and device
US10250477B2 (en) Method and controller for announcing bandwidth of cluster system
CN105450524A (zh) 一种媒体转发路由优化算法
US10305792B2 (en) Network detection method and controller using the method
CN107977310A (zh) 一种遍历测试命令生成方法及装置
US10812368B2 (en) Method and apparatus for controlling network traffic path
CN105763411A (zh) 一种建立组播隧道的方法及装置
EP3148209B1 (en) Data processing method and apparatus
EP3043521B1 (en) Method and device for sending crossover command
CN104852849A (zh) 一种ospf配置方法以及相关装置
CN105162843B (zh) 一种基于动态规划的快速数据同步方法
CN105577435A (zh) 一种p圈的配置方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201111

Address after: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20201111

Address after: Haimen City Jiangsu city of Nantong province is more than 226100 Zhenan Bridge Village nine Group No. 101

Patentee after: Haimen Chuanghao Industrial Design Co.,Ltd.

Address before: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171215