发明名称 一种确定点到多点路径的方法和装置
摘要 本发明实施例提供一种确定点到多点路径的方法和装置,包括:利用候选列表来提供路径中的可选元素以及其相关信息,利用路径列表来提供确定出的从源地址到各目的地址的每条最短路径以及其相关信息,并通过利用不同的颜色标识来区分各目的地址对应的最短路径,可以同时确定一个源地址到达多个目的地址的最短路径。从而相对于现有技术,每次只能确定一个源地址到达一个目的地址的最短路径,可以快速确定出一个源地址到达多个目的地址的最短路径,提高了最短路径的确定效率。
申请公布号 CN103036791A 申请公布日期 2013.04.10
申请号 CN201210506634.5 申请日期 2012.11.30
申请人 福建星网锐捷网络有限公司 发明人 吕长生
分类号 H04L12/733(2013.01)I;H04L12/741(2013.01)I;H04L12/763(2013.01)I 主分类号 H04L12/733(2013.01)I
代理机构 北京同达信恒知识产权代理有限公司 11291 代理人 黄志华
主权项 一种确定点到多点路径的方法,其特征在于,所述方法包括:将源地址对应的元素的信息作为候选列表中的第一个元素的信息写入候选列表,候选列表中一个元素的信息包括该元素的名称、类型、该元素的路径下一跳信息,其中,路径下一跳信息针对每个路径下一跳,包括该路径下一跳的名称、本地地址、远端地址和路径信息,路径信息针对每条路径,包括该路径的名称、颜色标识集合、链路属性值cost和经该路径到达该元素需经过的下一跳信息;确定候选列表中cost最小的路径;在确定从源地址到达每个目的地址的路径均已确定,且本次确定出的路径的cost大于上一次确定出的路径的cost时,路径确定结束,否则,继续执行以下步骤:将本次确定出的路径写入路径列表,并在候选列表中删除该路径;针对该路径所属的元素,确定该元素的类型;若该元素为节点,确定该节点连接的链路;针对每一条链路,确定该链路是否满足流量工程的约束条件;若该链路不满足流量工程的约束条件,结束对该链路的处理;若该链路满足流量工程的约束条件,则设置该链路的颜色标识集合与该节点cost最小的路径的颜色标识集合相同,确定该链路是否满足该颜色标识集合表示的各目的地址的路径约束条件,首次写入候选列表的源地址对应的元素第一个路径下一跳对应的第一条路径的颜色标识集合为各目的地址对应的颜色标识的集合;若该链路不满足该颜色标识集合表示的至少一个目的地址的路径约束条件,则将该至少一个目的地址的颜色标识集合从该链路的颜色标识集合中去除,且若去除颜色标识集合后,该链路的颜色标识集合为空,则结束对该链路的处理,若去除颜色标识集合后,该链路的颜色标识集合非空,则设置该链路 的cost为该节点cost最小的路径的cost与该链路的cost之和,根据该链路的名称查找路径列表,确定路径列表中是否存在该链路,首次写入候选列表的源地址对应的元素第一个路径下一跳对应的第一条路径的cost为零,路径列表中保存有元素的信息,且一个元素的信息包括该元素的名称、类型、该元素的路径下一跳信息,其中,路径下一跳信息针对每个路径下一跳,包括该路径下一跳的名称、本地地址、远端地址和路径信息,路径信息针对每条路径,包括该路径的名称、颜色标识集合、链路属性值cost和经该路径到达该元素需经过的下一跳信息;若路径列表中存在该链路,则确定路径列表中该链路的所有路径下一跳中的路径中,是否有路径的cost值小于该链路的cost值:若有路径的cost值小于该链路的cost值,则将该链路的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该链路的颜色标识集合为空,则结束对该链路的处理,若该链路的颜色标识集合非空,根据该链路的名称查找候选列表,确定候选列表中是否存在该链路;若没有路径的cost值小于该链路的cost值,则根据该链路的名称查找候选列表,确定候选列表中是否存在该链路;若该链路满足该颜色标识集合表示的各目的地址的路径约束条件,则设置该链路的cost为该节点cost最小的路径的cost与该链路的cost之和,根据该链路的名称查找路径列表,确定路径列表中是否存在该链路;若路径列表中存在该链路,则确定路径列表中该链路的所有路径下一跳中的路径中,是否有路径的cost值小于该链路的cost值:若有路径的cost值小于该链路的cost值,则将该链路的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该链路的颜色标识集合为空,则结束对该链路的处理,若去除颜色标识集合后,该链路的颜色标识集合非空,根据该链路的名称查找候选列表,确定候选列表中是否存在该链路;若没有路径的cost值小于该链路的cost值,则根据该链路的名称查找候选 列表,确定候选列表中是否存在该链路;若候选列表中存在该链路,将候选列表中该链路的所有路径下一跳中的路径中,路径的cost值与该链路的cost值进行比较;若有路径的cost值大于该链路的cost值,则在该路径的颜色标识集合中去除该链路的颜色标识集合,若去除颜色标识集合后,该路径的颜色标识集合为空,则在候选列表中删除该路径,若去除颜色标识集合后,该路径的颜色标识集合非空,则根据该链路的本地地址和远端地址,查找候选列表,确定候选列表中是否存在与该链路的本地地址和远端地址对应的路径下一跳:若候选列表中存在与该链路的本地地址和远端地址对应的路径下一跳,则在该路径下一跳中创建路径,将利用该节点作为下一跳,并根据该节点的cost最小的路径中,经该路径到达该节点需经过的下一跳信息,确定出的到达该链路需经过的下一跳信息、该链路的颜色标识集合和cost,确定为该路径的经该路径到达该链路需经过的下一跳信息、颜色标识集合和cost;若候选列表中不存在与该链路的本地地址和远端地址对应的路径下一跳,则在候选列表中存在的该链路中创建路径下一跳,并在该路径下一跳中创建路径,将利用该节点作为下一跳,并根据该节点的cost最小的路径中,经该路径到达该节点需经过的下一跳信息,确定出的到达该链路需经过的下一跳信息、该链路的颜色标识集合和cost,确定为该路径的经该路径到达该链路需经过的下一跳信息、颜色标识集合和cost;若有路径的cost值小于该链路的cost值,则在该链路的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该链路的颜色标识集合为空,则结束对该链路的处理,若去除颜色标识集合后,该链路的颜色标识集合非空,则根据该链路的本地地址和远端地址,查找候选列表,确定候选列表中是否存在与该链路的本地地址和远端地址对应的路径下一跳:若候选列表中存在与该链路的本地地址和远端地址对应的路径下一跳,则在该路径下一跳中创建路径,将利用该节点作为下一跳,并根据该节点的cost 最小的路径中,经该路径到达该节点需经过的下一跳信息,确定出的到达该链路需经过的下一跳信息、该链路的颜色标识集合和cost,确定为该路径的经该路径到达该链路需经过的下一跳信息、颜色标识集合和cost;若候选列表中不存在与该链路的本地地址和远端地址对应的路径下一跳,则在候选列表中存在的该链路中创建路径下一跳,并在该路径下一跳中创建路径,将利用该节点作为下一跳,并根据该节点的cost最小的路径中,经该路径到达该节点需经过的下一跳信息,确定出的到达该链路需经过的下一跳信息、该链路的颜色标识集合和cost,确定为该路径的经该路径到达该链路需经过的下一跳信息、颜色标识集合和cost;若候选列表中不存在该链路,在候选列表中创建该链路,在该链路中创建路径下一跳,并在该路径下一跳中创建路径,将利用该节点作为下一跳,并根据该节点的cost最小的路径中,经该路径到达该节点需经过的下一跳信息,确定出的到达该链路需经过的下一跳信息、该链路的颜色标识集合和cost,确定为该路径的经该路径到达该链路需经过的下一跳信息、颜色标识集合和cost;若该元素为链路,确定该链路相邻的节点;针对每一节点,确定该节点是否满足流量工程的约束条件;若该节点不满足流量工程的约束条件,结束对该节点的处理;若该节点满足流量工程的约束条件,则设置该节点的颜色标识集合与该链路cost最小的路径的颜色标识集合相同,确定该节点是否满足该颜色标识集合表示的各目的地址的路径约束条件;若该节点不满足该颜色标识集合表示的至少一个目的地址的路径约束条件,则将该至少一个目的地址的颜色标识集合从该节点的颜色标识集合中去除,且若去除颜色标识集合后,该节点的颜色标识集合为空,则结束对该节点的处理,若去除颜色标识集合后,该节点的颜色标识集合非空,则设置该节点的cost为该链路cost最小的路径的cost,根据该节点的名称查找路径列表,确定路径列表中是否存在该节点;若路径列表中存在该节点,则确定路径列表中该节点的所有路径下一跳中的路径中,是否有路径的cost值小于该节点的cost值:若有路径的cost值小于该节点的cost值,则将该节点的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该节点的颜色标识集合为空,则结束对该节点的处理,若该节点的颜色标识集合非空,根据该节点的名称查找候选列表,确定候选列表中是否存在该节点;若没有路径的cost值小于该节点的cost值,则根据该节点的名称查找候选列表,确定候选列表中是否存在该节点;若该节点满足该颜色标识集合表示的各目的地址的路径约束条件,则设置该节点的cost为该链路cost最小的路径的cost,根据该节点的名称查找路径列表,确定路径列表中是否存在该节点;若路径列表中存在该节点,则确定路径列表中该节点的所有路径下一跳中的路径中,是否有路径的cost值小于该节点的cost值:若有路径的cost值小于该节点的cost值,则将该节点的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该节点的颜色标识集合为空,则结束对该节点的处理,若去除颜色标识集合后,该节点的颜色标识集合非空,根据该节点的名称查找候选列表,确定候选列表中是否存在该节点;若没有路径的cost值小于该节点的cost值,则根据该节点的名称查找候选列表,确定候选列表中是否存在该节点;若候选列表中存在该节点,将候选列表中该节点的所有路径下一跳中的路径中,路径的cost值与该节点的cost值进行比较;若有路径的cost值大于该节点的cost值,则在该路径的颜色标识集合中去除该节点的颜色标识集合,若去除颜色标识集合后,该路径的颜色标识集合为空,则在候选列表中删除该路径,若去除颜色标识集合后,该路径的颜色标识集合非空,则根据该节点的本地地址和远端地址,查找候选列表,确定候选列表中是否存在与该节点的本地地址和远端地址对应的路径下一跳:若候选列表中存在与该节点的本地地址和远端地址对应的路径下一跳,则在该路径下一跳中创建路径,将利用该链路作为下一跳,并根据该链路的cost最小的路径中,经该路径到达该链路需经过的下一跳信息,确定出的到达该节点需经过的下一跳信息、该节点的颜色标识集合和cost,确定为该路径的经该路径到达该节点需经过的下一跳信息、颜色标识集合和cost;若候选列表中不存在与该节点的本地地址和远端地址对应的路径下一跳,则在候选列表中存在的该节点中创建路径下一跳,并在该路径下一跳中创建路径,将利用该链路作为下一跳,并根据该链路的cost最小的路径中,经该路径到达该链路需经过的下一跳信息,确定出的到达该节点需经过的下一跳信息、该节点的颜色标识集合和cost,确定为该路径的经该路径到达该节点需经过的下一跳信息、颜色标识集合和cost;若有路径的cost值小于该节点的cost值,则在该节点的颜色标识集合中去除该路径的颜色标识集合,若去除颜色标识集合后,该节点的颜色标识集合为空,则结束对该节点的处理,若去除颜色标识集合后,该节点的颜色标识集合非空,则根据该节点的本地地址和远端地址,查找候选列表,确定候选列表中是否存在与该节点的本地地址和远端地址对应的路径下一跳:若候选列表中存在与该节点的本地地址和远端地址对应的路径下一跳,则在该路径下一跳中创建路径,将利用该链路作为下一跳,并根据该链路的cost最小的路径中,经该路径到达该链路需经过的下一跳信息,确定出的到达该节点需经过的下一跳信息、该节点的颜色标识集合和cost,确定为该路径的经该路径到达该节点需经过的下一跳信息、颜色标识集合和cost;若候选列表中不存在与该节点的本地地址和远端地址对应的路径下一跳,则在候选列表中存在的该节点中创建路径下一跳,并在该路径下一跳中创建路径,将利用该链路作为下一跳,并根据该链路的cost最小的路径中,经该路径到达该链路需经过的下一跳信息,确定出的到达该节点需经过的下一跳信息、该节点的颜色标识集合和cost,确定为该路径的经该路径到达该节点需经过的 下一跳信息、颜色标识集合和cost;若候选列表中不存在该节点,在候选列表中创建该节点,在该节点中创建路径下一跳,并在该路径下一跳中创建路径,将利用该链路作为下一跳,并根据该链路的cost最小的路径中,经该路径到达该链路需经过的下一跳信息,确定出的到达该节点需经过的下一跳信息、该节点的颜色标识集合和cost,确定为该路径的经该路径到达该节点需经过的下一跳信息、颜色标识集合和cost;并返回执行针对候选列表中第一个元素,确定该元素的第一个路径下一跳对应的第一条路径的操作。
地址 350002 福建省福州市仓山区金山大道618号桔园州工业园19#楼