CN112100533A - 一种基于区域划分的标签压缩方法 - Google Patents
一种基于区域划分的标签压缩方法 Download PDFInfo
- Publication number
- CN112100533A CN112100533A CN202010620689.3A CN202010620689A CN112100533A CN 112100533 A CN112100533 A CN 112100533A CN 202010620689 A CN202010620689 A CN 202010620689A CN 112100533 A CN112100533 A CN 112100533A
- Authority
- CN
- China
- Prior art keywords
- path
- nodes
- node
- key
- 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
Links
- 230000006835 compression Effects 0.000 title claims abstract description 37
- 238000007906 compression Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 5
- 238000007670 refining Methods 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 2
- 230000008859 change Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9562—Bookmark management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于区域划分的标签压缩方法,该方法包括以下步骤:步骤一:确定关键节点与普通节点;步骤二:划分区域,将节点按照直连关系划分区域,当关键节同时属于多个区域时,充当连接区域的媒介;步骤三:计算属于同一区域内任意两普通节点间的路径;步骤四:计算关键节点间的路径;步聚五:拼接除关键节点间以外的路径;该方法还针对拓扑中没有关键节点及没有普通节点的情况,提出了相应的路径计算方法,完成路径计算之后,只保留路径中的关键节点和中继节点,即完成了标签压缩,无需二次计算。该标签压缩方法降低了计算量,提供了灵活、轻便的动态更新能力,适用于拓扑复杂、拓扑变化频繁、实时性要求高、存在订制化需求等标签压缩场景。
Description
技术领域
本发明涉及Segment Routing标签压缩领域,具体涉及一种基于区域划分的标签压缩方法。
背景技术
Segment Routing (SR)是一种利用源路由机制来增强网络中分组转发的新体系结构,它从根本上简化了MPLS网络的操作和管理。SR使用源路由描述报文转发路径,将路径描述作为标签堆栈直接编码到数据包的报文头中,根据堆栈中的标签逐跳指定转发路径。但是在实际应用中,标签栈的深度受到设备硬件最大堆栈深度(Maximum Stack Depth,MSD)的限制。目前,根据设备制造商的不同,MSD从3到5不等。因此,MSD极大地限制了设备推送到数据包上的最大标签数量,从而导致网络资源利用率低下,并可能导致拥塞。
目前,为了解决或降低MSD对SR标签栈的限制,有两种主流的研究方向:标签压缩和粘连标签。标签压缩是指在不影响路径表达的前提下降低标签栈的深度,粘连标签是指在标签栈中加入一种可扩展的特殊标签,该标签到达设备后被替换为多个标签,重新压入数据包的报文头中,继续转发。即便使用粘连标签技术,在粘连之前先通过标签压缩降低标签栈的总深度也是很有必要的。本发明只涉及标签压缩方向。
常见的标签压缩方法是SR-LEA,该算法在已知拓扑结构和待压缩路径的前提下,计算待压缩路径中包含的多段最短路径,对于每段最短路径,用一个节点标签替换多个邻接标签,从而达到压缩标签的目的。该算法依赖于外界提供转发路径,当拓扑发生任何细微变化时,算路和标签压缩都需要全部重新计算。其次,对于订制化目标,例如转发路径不能经过某个节点等,算路计算和最短路径计算需要同步感知并重新计算,计算量大且不够灵活。
发明内容
针对上述现有技术中存在的问题,本发明提供了一种基于区域划分的标签压缩方法,解决SR-LEA标签压缩方法计算量大、实现订制化目标不够灵活的问题。
一种基于区域划分的标签压缩方法按以下步聚实现:
步骤一:确定关键节点与普通节点。根据拓扑结构,直连链路个数大于2 的节点为关键节点,直连链路个数小于等于2 的为普通节点。如果不存在关键节点,转至步骤六;如果不存在普通节点,转至步骤七。
步骤二:划分区域。
1)计算普通节点的直连关键节点列表keyList。直连关键节点是指,普通节点与关键节点之间存在一条不经过其他关键节点的路径。
2)如果多个普通节点的keyList完全相同,则这些普通节点以及keyList中的关键节点组成一个区域。
3)一对邻接的关键节点,如果没有普通节点与它们组成一个区域,则它们组成一个只包含两个关键节点的区域。
4)关键节点可以同时属于多个区域,充当连接区域的媒介。
5)每个区域有1到2个关键节点,不会出现第3个。
步骤三:计算区域内任意两点中间只包含普通节点的路径。
1)区域内任意两节点间,利用K-Path算法计算全路径,存于pathList中。
2)除去pathList中路径中间包含关键节点的路径,路径中间专指路径除去起点和终点的中间部分,如果路径中只有起点或终点是关键节点,不需要删除。
3)针对pathList中非唯一最短路径,根据中继算法标注中继节点。
4)针对pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则,删掉。
5)表示路径,相临节点间(邻接标签)用“-”表示,非相临节点间(节点标签)用“*”表示。
步骤四:计算关键节点间路径。
1)简化拓扑:去掉所有的边和所有的普通节点,处于同一区域的两个关键节点,用一条边连接。2)在简化后的拓扑中,用K-Path算法计算任意两关键节点间的路径列表keyPathList。
3)表示路径,由于都是相临的关键节点,都用“-”连接,表示完整路径。
4)回归原始拓扑,对于keyPathList中的每条路径,使用步骤三得到的同一区域内两关键节点间路径进行细化与拼接。
步聚五:拼接除关键节点间以外的路径。
1)取起点和终点所在区域的关键节点列表:startKeyList和endKeyList,如果起点或终点本身是关键节点,则其keyList只包含自身。
2)取startKeyList和endKeyList中的节点,随机对应组合,全部组合存于组合列表pairList中。
3)对于pairList中每组组合,分别获取三段路径:
路径1:起点到关键节点,中间不含关键节点的路径。
路径2:关键节点到关键节点的路径。
路径3:关键节点到终点,中间不含关键节点的路径。
其中,路径1中要去除包含终点的路径,路径3中要去除包含起点的路径,路径2中要去除包含起点或终点的路径。
4)拼接路径:路径1——路径2——路径3。拼接路径的数量为三段路径数量的乘积。如果有任何一段的路径数量为0,则最终路径数量为0。
5)如果起点与终点之间原本存在路径,则与新拼接的路径合并去重。
步骤六:处理没有关键节点的情况
拓扑中没有关键节点,此拓扑只有两种情况:一条线或者一个环。如果是一条线,两点之间有且只有一条路径;如果是一个环,两点之间有且只有两条路径。
1)拓扑中任意两点间,用K-Path算法计算全路径,存于pathList中。
2)对于pathList中非唯一最短路径,根据中继算法标注中继节点。
3)对于pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则,去掉。
4)表示路径,相临节点间(邻接标签)用“-”表示,非相临节点间(节点标签)用“*”表示。
步骤七:处理没有普通节点的情况
拓扑中没有普通节点,全部为关键节点,因此每一跳都走邻接标签,此时标签压缩率为0。
1)拓扑中任意两点间,用K-Path算法计算全路径,存于pathList中。
2)表示路径,对于pathList中每条路径,用“-”连接表示完整路径。
对于上述方法中用到的中继算法的说明如下:
场景说明:起点A,终点B。
概念说明:
1)中继节点:表达一条路径,最简单的是仅使用首尾两节点,最复杂的是用上路径中的所有节点。在路径中选一些中间节点进行过度,可以达到既能简化路径表示又能唯一表示一条路径的目的。称这些中间过度节点为中继节点。
2)算法说明:计算中继节点的算法。
3)算法目的:使用尽可能少的节点唯一表示一条路径。
(P、Q节点定义来自TiLFA)
4)P节点:满足起点(A)到该节点不经过终点(B)。包含两种情况:P与A邻接,或者 A->P< A->B + B->P。其中A->P表示A到P的路径权重,可以是跳数、Cost等,下同。
5)Q节点:满足该节点到终点(B)不经过起点(A)。包含两种情况:Q与B邻接,或者Q->B < Q->A + A->B。
中继算法步骤说明:
步骤一:取得起点A到终点B的一条待简化的完整路径。
步骤二:计算所有P节点,生成Ps集合。
步骤三:计算所有Q节点,生成Qs集合。
步骤四:如果Ps集合与Qs集合有交集,则交集中的节点均可作为中继节点。这些中继节点中,优先选择起点的邻接节点,其次是终点的邻接节点,最后是离起点最近的节点。算法结束。
步骤五:如果Ps集合与Qs集合没有交集,找到离起点最远的P节点,离终点最远的Q节点,判断如下条件:
1)P、Q 是相邻节点,P、Q 之间可用邻接标签连接。
2)P 到 Q 不经过起点和终点。P->Q < P->A + A->Q 且 P->Q < P->B + B->Q。P、Q 之间可用节点标签连接。
如果P、Q 满足上面两个条件之一,则 P、Q 共同作为中继节点,即双中继节点。算法结束。否则,进行步骤六。
步骤六:进行到这一步,说明两个中继节点尚不能满足要求,转而去寻找更多中继节点。以步骤五中选取的最远P和最远Q为起点和终点,重复步骤二到步骤六,直至找到合适的中继节点,或者达到其他限定阈值,算法结束。例如可设定中继节点数最多为10,超过该值则视为此路不通。
有益效果
本发明基于区域划分将计算区域化,简化了算路计算量,在应对拓扑变化和订制化目标时,无需全部重新计算,只需对受影响的区域重新计算,其他区域重新拼接即可。区域内的路径计算只需关注本区域的拓扑,区域间的路径计算只需关注简化后的、只包含关键节点的拓扑,区域间其他节点间的路径无需计算,使用前两步中的结果拼接即可,从而减少了算路的计算量。完成路径计算之后,只保留路径中的关键节点和中继节点,即完成了标签压缩,无需二次计算。本发明提出的基于区域划分的标签压缩方法,降低了计算量,提供了灵活、轻便的动态更新能力,适用于拓扑复杂、拓扑变化频繁、实时性要求高、存在订制化需求等标签压缩场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为关键节点和普通节点都存在的示例拓扑图;
图2为标注了关键节点的示例拓扑图;
图3为简化后的拓扑图;
图4为只包含普通节点的示例拓扑图;
图5为只包含关键节点的示例拓扑图;
图6本发明的主干流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
结合图1~图6具体说明本方法的实施方式,本发明所提供的基于区域划分的标签压缩方法由以下步骤实现:
说明:示例拓扑中的线段表示双向路径,每条路径的权值均为1。
步骤一:确定关键节点与普通节点。根据拓扑结构,直连链路个数大于2 的节点为关键节点,直连链路个数小于等于2 的为普通节点。如果不存在关键节点,转至步骤六;如果不存在普通节点,转至步骤七。
在图1所示的示例拓扑中,根据直连链路个数可以确定拓扑中关键节点有:3,5,7,13,14。
步骤二:划分区域。
1)计算普通节点的直连关键节点列表keyList。直连关键节点是指,普通节点与关键节点之间存在一条不经过其他关键节点的路径。
2)如果多个普通节点的keyList完全相同,则这些普通节点以及keyList中的关键节点组成一个区域。
3)一对邻接的关键节点,如果没有普通节点与它们组成一个区域,则它们组成一个只包含两个关键节点的区域。
4)关键节点可以同时属于多个区域,充当连接区域的媒介。
5)每个区域有1到2个关键节点,不会出现第3个。
根据上述定义,本实施例所提供的拓扑被划分为6个区域,如图2所示:
区域1:1,2,3
区域2:3,4,5
区域3:5,6,7,8,9,10,11,12
区域4:13,14,15
区域5:14,16
区域6:7,13
步骤三:计算区域内任意两点间只包含普通节点的路径。
1)区域内任意两节点间,利用K-Path算法计算全路径,存于pathList中。
2)除去pathList中路径中间(除去首尾节点)包含关键节点的路径。
3)pathList中非唯一最短路径,根据中继算法标注中继节点。
4)pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则,删掉。
5)表示路径,相临节点间(邻接标签)用“-”表示,非相临节点间(节点标签)用“*”表示。
计算5到12的路径。
利用K-Path计算出5到12有三条路径:5-6-7-12,5-10-11-12,5-8-9-7-12。去除包含关键节点的路径,只剩下一条路径:5-10-11-12。路径5-10-11-12不是唯一最短路径,因为路径5-6-7-12的权值也为3,用中继算法计算中继节点,结果为10。去掉路径中的非中继节点11,路径表示为:5-10*12。
步骤四:计算关键节点间路径。
1)简化拓扑:去掉所有的边和所有的普通节点,处于同一区域的两个关键节点,用一条边连接。
2)在简化后的拓扑中,用K-Path算法计算任意两关键节点间的路径列表keyPathList。
3)表示路径,由于都是相临的关键节点,都用“-”连接,表示完整路径。
4)回归原始拓扑,对于keyPathList中的每条路径,使用步骤三得到的同一区域内两关键节点间路径进行细化与拼接。注意,
步骤三计算的是任意两点之间只包含普通节点的路径,不是指普通节点之间地路径。只要路径中间不包含关键节点即可,路径的起点和终点可以是关键节点。示例,路径:a-b-c-d-e,a是起点,e是终点,只要(b,c,d)中不包含关键节点,这条路径就是步骤三能够得到的路径。
计算3到14的路径。
去掉所有的边和所有的普通节点,处于同一区域的两个关键节点,用一条边连接,简化后的拓扑如图3所示。
利用K-Path计算3到14的路径有一条:3-5-7-13-14。
根据步骤三的结果细化路径:
3-5:3*5;
5-7:5*7,5-8*7,5*11*7;
7-13:7-13;
13-14:13-14,13-15-14。
将四段路径进行拼接,总数为 1*3*1*2 = 6 条:
3*5*7-13-14;
3*5-8*7-13-14;
3*5*11*7-13-14;
3*5*7-13-15-14;
3*5-8*7-13-15-14;
3*5*11*7-13-15-14。
步聚五:拼接除关键节点间以外的路径。
1)取起点和终点所在区域的关键节点列表:startKeyList和endKeyList,如果起点或终点本身是关键节点,则其keyList只包含自身。
2)取startKeyList和endKeyList中的节点,两两组合,组成组合列表pairList。由于组合是全部组合,所以有没有顺序没有任何影响。在实现过程中,可以根据需要采用任意顺序,只要保证不遗漏即可。全部组合的含义:例如startKeyList中有3个节点,endKeyList中有4个节点,则构成的全部组合中一共有3*4=12 个组合。当然,在该算法中,startKeyList和endKeyList中的节点个数最多都是2,所以它们构成的全部组合中最多有4个组合。
3)对于pairList中每组组合,分别获取三段路径:
路径1:起点到关键节点,中间不含关键节点的路径。(步聚三中选取)
路径2:关键节点到关键节点的路径。(步聚四中选取)
路径3:关键节点到终点,中间不含关键节点的路径。(步聚三中选取)
其中,路径1中要去除包含终点的路径,路径3中要去除包含起点的路径,路径2中要去除包含起点或终点的路径。
4)拼接路径:路径1——路径2——路径3。拼接路径的数量为三段路径数量的乘积。如果有任何一段的路径数量为0,则最终路径数量为0。
5)如果起点与终点之间在步骤三中存在路径,则与新拼接的路径合并去重。
示例1:
计算4到15之间的路径。
1)4所在区域的关键节点有3,5;15所在区域的关键节点有13,14。
2)两两组合:(3,13),(3,14),(5,13),(5,14)。
计算每个组合的三条路径并拼接:
组合(3,13):路径2,3到13,都经过起点4,路径2的数量为0,该组合的最终拼接路径数量为0。
组合(3,14):路径2,3到14,都经过起点4,路径2的数量为0,该组合的最终拼接路径数量为0。
组合(5,13):路径1:4-5,路径2:5*7-13;5-8*7-13;5*11*7-13,路径3:13-15。该组合最终拼接路径数量为3:
4-5*7-13-15;
4-5-8*7-13-15;
4-5*11*7-13-15;
组合(5,14):
路径1:4-5。
路径2:5*7-13-14;5-8*7-13-14;5*11*7-13-14;5*7-13-15-14;5-8*7-13-15-14;5*11*7-13-15-14。
去掉包含终点的路径:5*7-13-15-14;5-8*7-13-15-14;5*11*7-13-15-14。
路径2:5*7-13-14;5-8*7-13-14;5*11*7-13-14。
路径3:14-15。
该组合最终拼接路径数量为3:
4-5*7-13-14-15;
4-5-8*7-13-14-15;
4-5*11*7-13-14-15。
把4个组合的路径合并,得到6条路径。
4)与步骤三中的路径合并去重。
4到15之间在步骤三中不存在路径,不需合并去重。所以4到15共有6条路径:
4-5*7-13-15;
4-5-8*7-13-15;
4-5*11*7-13-15;
4-5*7-13-14-15;
4-5-8*7-13-14-15;
4-5*11*7-13-14-15。
示例2:
计算8到12的路径。
1)8、12所在区域的关键节点都是5、7。
2)两两组合:(5,5),(5,7),(7,5),(7,7)。
计算每个组合的三条路径并拼接:
组合(5,5):路径1:8-5,路径2:自身到自身的路径,数量视为1,路径3:5-10*12。
最终1条:8-5-10*12
组合(5,7):路径1:8-5,路径2:5*7(去掉经过起点的路径:5-8*7,去掉经过终点的路径:5*11*7),路径3:7-12。
最终1条:8-5*7-12
组合(7,5):路径1:8*7,路径2:7*5(去掉经过起点的路径:7*8-5,去掉经过终点的路径:7*11*5),路径3:5-10*12
最终1条:8*7*5-10*12
组合(7,7):路径1:8*7,路径2:自身到自身的路径,数量视为1,路径3:7-12。
最终1条:8*7-12
把4个组合的路径合并,得到4条路径。
4)与步骤三中的路径合并去重。
8到12之间在步骤三中不存在路径,不需合并去重。所以8到12共有4条路径:
8-5-10*12;
8-5*7-12;
8*7*5-10*12;
8*7-12。
步骤六:处理没有关键节点的情况
拓扑中没有关键节点,此拓扑只有两种情况:一条线或者一个环,如图4所示。如果是一条线,两点之间有且只有一条路径;如果是一个环,两点之间有且只有两条路径。
1)拓扑中任意两点间,用K-Path算法计算全路径,存于pathList中。
2)对于pathList中非唯一最短路径,根据中继算法标注中继节点。
3)对于pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则,去掉。
4)表示路径,相临节点间(邻接标签)用“-”表示,非相临节点间(节点标签)用“*”表示。
计算图4环形拓扑中1到4的路径。
利用K-Path算法计算出1到4有两条路径:1-2-3-4,1-9-8-7-6-5-4。
路径1-2-3-4是唯一最短路径,直接表示为:1*4。路径1-9-8-7-6-5-4不是最短路径,用中继算法计算中继节点,结果为8,路径1-9-8-7-6-5-4表示为:1*8*4。
步骤七:处理没有普通节点的情况
拓扑中没有普通节点,全部为关键节点,因此每一跳都走邻接标签,此时标签压缩率为0。如图5所示。
1)拓扑中任意两点间,用K-Path算法计算全路径,存于pathList中。
2)表示路径,对于pathList中每条路径,用“-”连接表示完整路径。
计算图5拓扑中1到3的路径。
利用K-Path算法计算出1到3有9条路径:
1-2-3;
1-2-5-3;
1-2-5-4-3;
1-4-3;
1-4-5-3;
1-4-5-2-3;
1-5-3;
1-5-2-3;
1-5-4-3。
2)表示路径。由于都使用“-”表示,路径最终的表示结果如第一步所示。
本发明基于区域划分将计算区域化,简化了算路计算量,在应对拓扑变化和订制化目标时,无需全部重新计算,只需对受影响的区域重新计算,其他区域重新拼接即可。区域内的路径计算只需关注本区域的拓扑,区域间的路径计算只需关注简化后的、只包含关键节点的拓扑,区域间其他节点间的路径无需计算,使用前两步中的结果拼接即可,从而减少了算路的计算量。完成路径计算之后,只保留路径中的关键节点和中继节点,即完成了标签压缩,无需二次计算。本发明提出的基于区域划分的标签压缩方法,降低了计算量,提供了灵活、轻便的动态更新能力,适用于拓扑复杂、拓扑变化频繁、实时性要求高、存在订制化需求等标签压缩场景。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.一种基于区域划分的标签压缩方法,其特征在于,所述压缩方法包括以下步聚:
步骤一:确定关键节点与普通节点;
步骤二:划分区域,将节点按照直连关系划分区域,当关键节同时属于多个区域时,充当连接区域的媒介;
步骤三:计算属于同一区域内任意两点中间只包含普通节点的路径;
步骤四:计算关键节点间的路径;
步聚五:拼接除关键节点间以外的路径;
步骤六:用邻接标签和节点标签表示的路径即为压缩后的标签栈。
2.根据权利要求1所述的一种基于区域划分的标签压缩方法,其特征在于,所述步骤二的具体过程为:
步骤2.1,计算普通节点的直连关键节点列表keyList,其中直连关键节点指普通节点与关键节点之间存在一条不经过其他关键节点的路径;
步骤2.2,如果多个普通节点的keyList完全相同,则这些普通节点以及keyList中的关键节点组成一个区域;
步骤2.3,一对邻接的关键节点,如果没有普通节点与它们组成一个区域,则它们组成一个只包含两个关键节点的区域。
3.根据权利要求1所述的一种基于区域划分的标签压缩方法,其特征在于,所述步骤三的具体过程为:
步骤3.1,属于同一区域内任意两节点间,利用K-Path算法计算全路径,并将计算结果保存于pathList中;
步骤3.2,除去pathList中路径中间包含关键节点的路径,如果路径中只有起点或终点是关键节点,不需要删除;
步骤3.3,对pathList中的非唯一最短路径,根据中继算法标注中继节点;
步骤3.4,针对所述pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则删掉;
步骤3.5,相临节点间用“-”表示,非相临节点间用“*”表示,得到全部普通节点间的路径。
4.根据权利要求3所述的一种基于区域划分的标签压缩方法,其特征在于,所述步骤四的具体过程为:
步骤4.1,简化拓扑:去除所有的边和所有的普通节点,处于同一区域的两个关键节点,用一条边连接;
步骤4.2,在简化后的拓扑中,用K-Path算法计算任意两关键节点间的路径列表keyPathList;
步骤4.3,表示路径,在相临的关键节点间都用“-”连接,表示完整路径;
步骤4.4,回归原始拓扑,对于keyPathList中的每条路径,使用步骤三得到的同一区域内两关键节点间路径进行细化与拼接。
5.根据权利要求1所述的一种基于区域划分的标签压缩方法,其特征在于,所述步骤五的具体过程为:
步骤5.1,取路径的起点和终点所在区域的关键节点列表:startKeyList和endKeyList,如果起点或终点本身是关键节点,则其keyList只包含自身;
步骤5.2,取startKeyList和endKeyList中的节点,随机对应组合,全部组合存于组合列表pairList中;
步骤5.3,对于步骤5.2生成的pairList中每组组合,分别获取三段路径:
路径1:起点到关键节点,中间不含关键节点的路径;
路径2:关键节点到关键节点的路径;
路径3:关键节点到终点,中间不含关键节点的路径;
其中,路径1中去除包含终点的路径,路径3中去除包含起点的路径,路径2中去除包含起点或终点的路径;
步骤5.4,拼接路径:按照路径1——路径2——路径3的顺序拼接路径,所拼接路径的数量为三段路径数量的乘积;如果有任何一段的路径数量为0,则最终路径数量为0;
步骤5.5,如果起点与终点之间原本存在路径,则与新拼接的路径合并去重。
6.根据权利要求3所述的一种基于区域划分的标签压缩方法,其特征在于,所述压缩方法还包括步骤六,所述步骤六针对拓扑中不存在关键节点的情况;
如果拓扑中没有关键节点,则该拓扑包含两种情况:一条线或者一个环;
如果该拓扑是一条线,则两点之间有且只有一条路径;如果该拓扑是一个环,两点之间有且只有两条路径;
步骤6.1,对拓扑中两点间,用K-Path算法计算全路径,存于pathList中;
步骤6.2,对于pathList中非唯一最短路径,根据中继算法标注中继节点;
步骤6.3,对于pathList中每条路径,判断每个中间节点是否为中继节点,如果是,则保留,否则,去掉;
步骤6.4,表示路径,相临节点间;用“-”表示,非相临节点间;用“*”表示。
7.根据权利要求1所述的一种基于区域划分的标签压缩方法,其特征在于,所述压缩方法还包括步骤七,所述步骤七针对拓扑中没有普通节点的情况;
涂过拓扑中如果没有普通节点,全部为关键节点,则每一跳都走邻接标签,此时标签压缩率为0;
步骤7.1,拓扑中任意两点间,用K-Path算法计算全路径,存于pathList中;
步骤7.2,表示路径,对于pathList中每条路径,用“-”连接表示完整路径。
8.根据权利要求6所述的一种基于区域划分的标签压缩方法,其特征在于,所述的中继节点为在路径中选一些中间节点进行过度,达到对该条路径简化且唯一表示的目的,称这些中间过度节点为中继节点;
所述中继算法包括以下步骤:
步骤a:取得起点A到终点B的一条待简化的完整路径;
步骤b:计算所有P节点,生成Ps集合;
步骤c:计算所有Q节点,生成Qs集合;
步骤d:如果Ps集合与Qs集合有交集,则交集中的节点均可作为中继节点;
这些中继节点中,优先选择起点的邻接节点,其次是终点的邻接节点,最后是离起点最近的节点,算法结束;
步骤e:如果Ps集合与Qs集合没有交集,找到离起点最远的P节点,离终点最远的Q节点,判断如下条件:
1)P、Q 是相邻节点,P、Q 之间可用邻接标签连接;
2)P 到 Q 不经过起点和终点,P->Q < P->A + A->Q 且 P->Q < P->B + B->Q;P、Q 之间可用节点标签连接;
如果P、Q 满足以上两个条件之一,则 P、Q 共同作为中继节点,即双中继节点,算法结束;否则,进行步骤f;
步骤f:寻找更多中继节点,以所述步骤e中选取的最远P和最远Q为起点和终点,重复步骤b到步骤f,直至找到合适的中继节点,或者达到其他限定阈值,算法结束。
9.根据权利要求8所述的一种基于区域划分的标签压缩方法,其特征在于,所述P节点定义为:满足起点A到该节点不经过终点B;
所述Q节点定义为:满足该节点到终点B不经过起点A。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620689.3A CN112100533B (zh) | 2020-06-30 | 2020-06-30 | 一种基于区域划分的标签压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620689.3A CN112100533B (zh) | 2020-06-30 | 2020-06-30 | 一种基于区域划分的标签压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100533A true CN112100533A (zh) | 2020-12-18 |
CN112100533B CN112100533B (zh) | 2024-04-30 |
Family
ID=73750065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010620689.3A Active CN112100533B (zh) | 2020-06-30 | 2020-06-30 | 一种基于区域划分的标签压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100533B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113162852A (zh) * | 2021-03-25 | 2021-07-23 | 烽火通信科技股份有限公司 | 一种sr粘连节点配置的方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN1889467A (zh) * | 2006-07-28 | 2007-01-03 | 西安电子科技大学 | 分布式无线网络关键节点探测方法 |
JP2009060673A (ja) * | 2008-12-15 | 2009-03-19 | Nippon Telegr & Teleph Corp <Ntt> | 経路計算システム、経路計算方法、及び通信ノード |
US20140269699A1 (en) * | 2013-03-15 | 2014-09-18 | Cisco Technology, Inc. | Seamless segment routing |
US20140369356A1 (en) * | 2013-03-15 | 2014-12-18 | Cisco Technology, Inc. | Opportunistic compression of routing segment identifier stacks |
CN105471737A (zh) * | 2014-09-05 | 2016-04-06 | 华为技术有限公司 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
EP3238387A1 (en) * | 2014-12-23 | 2017-11-01 | Telefonaktiebolaget LM Ericsson (publ) | Path computation in a segment routing network |
CN110413183A (zh) * | 2019-07-31 | 2019-11-05 | 上海掌门科技有限公司 | 一种呈现页面的方法与设备 |
-
2020
- 2020-06-30 CN CN202010620689.3A patent/CN112100533B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN1889467A (zh) * | 2006-07-28 | 2007-01-03 | 西安电子科技大学 | 分布式无线网络关键节点探测方法 |
JP2009060673A (ja) * | 2008-12-15 | 2009-03-19 | Nippon Telegr & Teleph Corp <Ntt> | 経路計算システム、経路計算方法、及び通信ノード |
US20140269699A1 (en) * | 2013-03-15 | 2014-09-18 | Cisco Technology, Inc. | Seamless segment routing |
US20140369356A1 (en) * | 2013-03-15 | 2014-12-18 | Cisco Technology, Inc. | Opportunistic compression of routing segment identifier stacks |
CN105471737A (zh) * | 2014-09-05 | 2016-04-06 | 华为技术有限公司 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
EP3238387A1 (en) * | 2014-12-23 | 2017-11-01 | Telefonaktiebolaget LM Ericsson (publ) | Path computation in a segment routing network |
CN110413183A (zh) * | 2019-07-31 | 2019-11-05 | 上海掌门科技有限公司 | 一种呈现页面的方法与设备 |
Non-Patent Citations (1)
Title |
---|
石鸿伟;黄凤芝;: "基于关键节点的分段路由标签栈压缩算法", 电子技术与软件工程, no. 12, pages 39 - 43 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113162852A (zh) * | 2021-03-25 | 2021-07-23 | 烽火通信科技股份有限公司 | 一种sr粘连节点配置的方法和装置 |
CN113162852B (zh) * | 2021-03-25 | 2022-03-25 | 烽火通信科技股份有限公司 | 一种sr粘连节点配置的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112100533B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9338086B2 (en) | Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies | |
US8897141B2 (en) | Network system and routing method | |
US10164867B2 (en) | Generating non-congruent paths having minimal latency difference in a loop-free routing topology having routing arcs | |
CN101227377B (zh) | 一种实现跨域路径的共享风险链路组分离的方法 | |
US20140036729A1 (en) | Label distribution and route installation in a loop-free routing topology using routing arcs | |
CN104301251A (zh) | 一种QoS处理方法、***及设备 | |
JP3945656B2 (ja) | 管理ノード装置、ノード装置、ネットワーク構成管理システム、ネットワーク構成管理方法、ノード装置の制御方法、管理ノード装置の制御方法 | |
CN103078796B (zh) | 一种路由计算方法和设备 | |
CN106878170B (zh) | 一种转发路径确定方法和装置 | |
CN107659426A (zh) | 分配物理资源的方法和网络侧设备 | |
US20140098709A1 (en) | Path calculating method, program and calculating apparatus | |
CN112100533A (zh) | 一种基于区域划分的标签压缩方法 | |
CN109429117B (zh) | 路由选择方法和设备 | |
WO2010058785A1 (ja) | 経路計算順決定方法、プログラムおよび計算装置 | |
CN108683593B (zh) | 一种k短路径的计算方法 | |
CN112671631B (zh) | 一种分组传送网的优化方法和*** | |
CN103259590B (zh) | 一种基于2跳段的光组播静态p圈段保护方法 | |
CN109474506A (zh) | 建立虚拟专用网络vpn业务的方法及装置 | |
CN114169580A (zh) | 一种区域枢纽的交通等时圈计算方法 | |
WO2014019167A1 (zh) | 波分网络规划方法及设备 | |
CN102694725B (zh) | 基于带宽来双向搜索路径的方法 | |
JP4724219B2 (ja) | 最短経路計算装置、最短経路計算方法、およびプログラム | |
WO2024134819A1 (ja) | 経路探索装置、経路探索方法および経路探索プログラム | |
CN108881340A (zh) | 一种时延收集的方法及装置 | |
JP2008066843A (ja) | データ転送システム、データ転送方法、及びこれらに用いる転送装置 |
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 |