CN105471737B - 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 - Google Patents
一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 Download PDFInfo
- Publication number
- CN105471737B CN105471737B CN201410453368.3A CN201410453368A CN105471737B CN 105471737 B CN105471737 B CN 105471737B CN 201410453368 A CN201410453368 A CN 201410453368A CN 105471737 B CN105471737 B CN 105471737B
- Authority
- CN
- China
- Prior art keywords
- label
- node
- stack
- labels
- label stack
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000007906 compression Methods 0.000 title abstract description 57
- 230000006835 compression Effects 0.000 title abstract description 52
- 230000006837 decompression Effects 0.000 title abstract description 25
- 238000007373 indentation Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/127—Shortest path evaluation based on intermediate node capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种标签栈的压缩方法及装置,所述方法包括:网络设备获得转发路径对应的第一标签栈,第一标签栈包括转发路径上的每个节点对应的节点标签;网络设备从第一标签栈中选取第一节点标签,第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;网络设备将第一标签栈中位于第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;网络设备指导转发路径上的源节点根据第二标签栈进行报文处理。如此,在转发节点对报文进行转发时,能够缩短压入报文的标签栈长度,进一步减少报文的总长度,有利于报文在网络中传输。相应地,本发明实施例还提供一种标签栈的解压缩方法及装置。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置。
背景技术
为了实现数据包的快速转发,现有技术中存在一种分段路由(英文:SegmentRouting,简称:SR)技术。在进行报文转发之前,由源节点根据转发需求创建源节点与目的节点之间的转发路径(英文:Label Switching Path,简称:LSP),确定出LSP经过的节点、链路以及节点要执行的业务等信息,并以标签栈形式将这些信息添加在待转发的报文中。这样,LSP上的转发节点接收到报文后,即可根据标签栈栈顶的标签表示的含义进行后续处理。例如,栈顶标签为业务分段标识(英文:Segment Identification,简称:SID),转发节点就可执行该业务SID代表的业务;栈顶标签为节点SID,转发节点就可将报文转发至该节点SID代表的节点;栈顶标签为链路SID,中间节点就可按照该链路SID的指示进行链路转发,以将报文转发至中间节点的对端节点。
由此可知,当转发节点对报文沿着该LSP进行转发时,如果确定出的LSP经过的节点、链路以及节点要执行的业务等信息较多,那么压入到该报文中的标签栈就会嵌套多层标签,导致标签栈的长度过长,大大的增加了被转发的报文长度,不利于报文在网络中传输。
发明内容
本发明实施例提供的标签栈的压缩方法及装置、标签栈的解压缩方法及装置,在转发节点对报文进行转发时,能够缩短压入报文的标签栈长度,进一步减少报文的总长度,有利于报文在网络中传输。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种标签栈的压缩方法,所述方法包括:
网络设备获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
所述网络设备从所述第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;
所述网络设备将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
所述网络设备指导所述转发路径上的源节点根据所述第二标签栈进行报文处理。
在第一方面的第一种可能的实现方式中,所述网络设备从所述第一标签栈中选取第一节点标签,包括:
所述网络设备获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;
所述网络设备计算第一差值Δi=Li-Mi;
所述网络设备选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,如果所述第一标签栈包括至少两个节点标签对应的节点能对报文封装标签的层数不小于2,且所述至少两个节点标签对应的第一差值不小于0,则,
所述第一节点标签关联的标签个数是所述至少两个节点标签关联的标签个数中数值最大的。
结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,若i=n,则Mn为零,或者Mn为节点标签n之后的标签数。
结合第一方面的第一种至第三种中的任一种可能的实现方式,在第四种可能的实现方式中,在所述生成第二标签栈之后,所述方法还包括:
所述网络设备获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n;
所述网络设备计算第二差值Δj=Lj-Mj;
所述网络设备选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
所述网络设备将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
相应地,所述网络设备指导所述转发路径上的源节点根据所述第二标签栈进行报文处理为:
所述网络设备指导所述转发路径上的源节点根据所述第三标签栈进行报文处理。
结合第一方面或第一方面的第一种至第四种中的任一种可能的实现方式,在第五种可能的实现方式中,在所述网络设备从所述第一标签栈中选取第一节点标签之前,所述方法还包括:
所述网络设备判断所述源节点是否能对报文封装至少两层标签,如果是,再执行从所述第一标签栈中选取第一节点标签的步骤。
结合第一方面或第一方面的第一种至第五种中的任一种可能的实现方式,在第六种可能的实现方式中,所述节点标签为节点分段标识SID或链路SID。
第二方面,本发明实施例提供了一种标签栈的解压缩方法,所述方法包括:
转发节点获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;
所述转发节点接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
所述转发节点根据所述标签配置信息,将所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
所述转发节点根据所述第二标签栈对所述报文进行处理。
在第二方面的第一种可能的实现方式中,所述转发节点根据所述第二标签栈对所述报文进行处理,包括:
如果所述第二标签栈的栈顶标签为节点标签,所述转发节点将所述报文转发至所述节点标签对应的节点;
如果所述第二标签栈的栈顶标签为业务标签,所述转发节点对所述报文执行所述业务标签对应的业务。
第三方面,本发明实施例提供了一种标签栈的压缩装置,所述装置包括:
标签栈获得单元,用于获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
第一选取单元,用于从所述标签栈获得单元获得的所述第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;
第一替换单元,用于将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
指导单元,用于指导所述转发路径上的源节点根据所述第一替换单元生成的所述第二标签栈进行报文处理。
在第三方面的第一种可能的实现方式中,所述第一选取单元包括:
第一获得单元,用于获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;
第一计算单元,用于根据所述第一获得单元获得的Li和Mi计算第一差值Δi=Li-Mi;
选取子单元,用于选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
第二获得单元,用于在所述第一替换单元生成所述第二标签栈后,获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n;
第二计算单元,用于根据所述第二获得单元获得的Lj和Mj计算第二差值Δj=Lj-Mj;
第二选取单元,用于选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
第二替换单元,用于将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
相应地,所述指导单元,具体用于指导所述转发路径上的源节点根据所述第二替换单元生成的所述第三标签栈进行报文处理。
结合第三方面或第三方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
判断单元,用于在所述第一选取单元选取所述第一节点标签之前,判断所述源节点是否能对报文封装至少两层标签,如果是,再通知所述第一选取单元选取所述第一节点标签。
第四方面,本发明实施例提供了一种标签栈的解压缩装置,所述装置包括:
获取单元,用于获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;
接收单元,用于接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
替换单元,用于根据所述获取单元获取的所述标签配置信息,将所述接收单元接收的所述报文包含的所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
处理单元,用于根据所述第二标签栈对所述报文进行处理。
在第四方面的第一种可能的实现方式中,所述处理单元,具体用于在所述第二标签栈的栈顶标签为节点标签时,将所述报文转发至所述节点标签对应的节点;或者,所述处理单元,具体用于在所述第二标签栈的栈顶标签为业务标签时,对所述报文执行所述业务标签对应的业务。
本发明实施例的标签栈的压缩方法及装置,网络设备从第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签,如此,可对第一标签栈进行压缩处理,将第一标签栈中位于第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈。通过上述技术方案,在转发节点对报文进行转发时,能够缩短压入报文的标签栈长度,进一步减少报文的总长度,有利于报文在网络中传输。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1是本发明实施例中一种网络结构示意图;
图2是本发明实施例提供的的一种标签栈的压缩方法的流程示意图;
图3是本发明实施例中选取第一节点标签的流程示意图;
图4是本发明实施例中生成第三标签栈的流程示意图;
图5是本发明实施例提供的的一种标签栈的解压缩方法的流程示意图;
图6是本发明实施例生成满足源节点标签处理能力的标签栈的示意图;
图7是本发明实施例提供的的一种标签栈的压缩装置的构成示意图;
图8是本发明实施例提供的的一种标签栈的解压缩装置的构成示意图;
图9是本发明实施例提供的的一种标签栈的压缩装置的硬件构成示意图;
图10是本发明实施例提供的的一种标签栈的解压缩装置的硬件构成示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
在进行报文转发之前,可先根据业务需求创建源节点与目的节点之间的LSP,确定出LSP经过的节点、链路以及节点要执行的业务等信息,并以标签栈形式将这些信息添加在待转发的报文中,指导LSP上的节点根据标签栈进行报文处理。以实现图1所示网络中的节点10到节点20的实时业务为例,LSP对应的标签栈可为:{12,901,902,201,901,19,901,20}。其中,12、19和20为节点SID,节点SID与LSP上的节点相对应;901和902为业务SID,业务SID与节点执行的业务相对应;201为链路SID,链路SID与两个节点之间的链路相对应,在本示例中201可表示节点12和17之间的链路。
指导LSP上的节点根据标签栈进行报文处理,可理解为:判断栈顶SID的类型,如果栈顶SID为业务SID,则执行业务SID对应的业务;如果栈顶SID为节点SID或链路SID,则将报文转发至节点SID或链路SID对应的节点。以标签栈中的{19,901,20}为例,节点19弹出(pop)本节点的节点SID19后,判定栈顶标签为业务SID901,节点19可在本地对报文执行901对应的业务;如此之后,判定栈顶标签为节点SID20,节点19可将报文转发至节点20。
对于业务SID来说,不同节点之间,可采用相同的业务SID表示同一业务,如,节点12要执行的业务901和节点19要执行的业务901均可表示防火墙业务;或者,不同节点之间,也可采用不同的业务SID表示同一业务,如,节点12要执行的业务901可表示防火墙业务,节点19要执行的业务901可表示深度包检测业务,本发明实施例对业务SID表示的业务可不做具体限定。
上述示例中的标签栈{12,901,902,201,901,19,901,20},包含有8个标签,也即源节点10需要将8个标签压入待转发报文中,占用了较大的报文空间。本发明实施例即是为此而提出,用以缩短标签栈长度。
需要说明的是,本发明实施例中的网络设备可以是一台独立的设备,且网络设备可与控制器(Controller)和/或转发路径上的节点相通信。若网络设备与Controller相通信,网络设备可经由Controller将利用本发明实施例方案压缩后的标签栈下发至源节点;若网络设备与转发路径上的节点通信,网络设备可直接将压缩后的标签栈下发至源节点,或者网络设备也可经由转发路径上的其它节点将压缩后的标签栈下发至源节点。或者,参见图1所示,本发明实施例中的网络设备也可为集成有该网络设备功能的Controller,或为转发路径上集成有该网络设备功能的节点,如,源节点10集成有网络设备功能,可在获得标签栈后,先对标签栈进行压缩处理,再将压缩处理后的标签栈压入报文中,本发明实施例对网络设备的表现形式可不做具体限定。
下面对本发明实施例标签栈的压缩方法进行解释说明。
参见图2,本发明实施例提供了一种标签栈压缩的方法,该方法包括:
201,网络设备获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签。
网络设备可先获得LSP对应的标签栈,明确压缩处理对象。作为一种示例,网络设备可根据业务需求生成标签栈,或者,网络设备也可接收其它设备生成的标签栈,本发明实施例对网络设备获得标签栈的方式可不做具体限定。
结合图1所示网络,以网络设备生成节点10到节点20间业务的标签栈为例,网络设备获得标签栈的过程可为:
(1)网络设备获得网络中节点的业务能力。
作为一种示例,网络设备可在需要生成标签栈时获得节点的业务能力,或者,网络设备也可在节点上电后就获得节点的业务能力,本发明实施例对此可不做具体限定。若不同节点采用相同的业务SID表示同一业务,则业务能力可为业务标识,如,业务SID;若不同节点采用不同的业务SID表示同一业务,则业务能力可为业务名称和业务标识,如,防火墙业务及对应的业务SID。
作为一种示例,节点可采用中间系统到中间系统(英文:Intermediate system tointermediate system,简称:ISIS)或者开放式最短路径优先(英文:Open Shortest PathFirst,简称:OSPF)协议,将本节点的业务能力上报至网络设备。或者,节点也可采用本发明实施例提供的业务能力上报消息,将本节点的业务能力上报至网络设备,具体地,业务能力上报消息可包括:消息类型、消息长度和业务能力参数。举例来说,消息类型为业务能力上报,可采用2字节表示;业务能力参数为:节点SID12、业务SID901、防火墙业务、业务SID902、深度包检测业务,每个参数可采用4字节表示;消息长度为业务能力上报消息包括的总字节数,可采用2字节表示,如此本示例中的消息长度为24字节。对应于此,网络设备接收到上述示例中的业务能力上报消息后可知,节点12可以执行防火墙业务和深度包检测业务,如此,在节点10到节点20间的业务需要实现防火墙业务和深度包检测业务时,网络设备可以将节点12确定为LSP上的节点,LSP对应的标签栈中包括:节点12对应的节点SID12、防火墙业务对应的业务SID901和深度包检测业务对应的业务SID902。
(2)网络设备获得LSP对应的第一标签栈。
网络设备根据业务需求确定节点10到节点20的LSP,以及LSP中各节点要执行的业务,并据此生成第一标签栈,举例来说,该第一标签栈可以为{12,901,902,201,901,19,901,20}。如此,网络设备就获得了LSP对应的第一标签栈,且第一标签栈中包括LSP上的每个节点对应的节点标签。作为一种示例,节点标签可为节点SID或链路SID,在本示例中,第一标签栈包括的节点标签为:12、201、19和20。
202,所述网络设备从所述第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签。
203,所述网络设备将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈。
为了缩短第一标签栈的长度,进而减少报文总长度,便于报文在网络中传输,本发明实施例的网络设备可对第一标签栈进行压缩处理,将第一标签栈中的至少两个相邻标签替换为一个第一压缩标签,生成包括第一压缩标签的第二标签栈。与此同时,为了保证LSP上的节点可以利用所述第二标签栈正确进行报文处理,LSP上的节点还可对第二标签栈进行解压缩处理,将所述第一压缩标签还原为所述至少两个相邻标签。需要说明的是,所述第一标签栈中位于第一节点标签之后也可以理解为位于第一节点标签之下,且具体为第一标签栈的栈顶向栈底方向,举例来说,第一节点标签为201,则标签901、19、901和20均为位于第一节点标签之后的标签。另外,至少两个相邻标签可以理解为至少两个标签之间连续不间断,举例来说,标签901、19、901和20之间的关系即为互为相邻。
需要说明的是,网络中的节点都具有一定的标签处理能力,所谓标签处理能力可以理解为:节点在对报文进行转发时,能对报文封装标签的层数,也即节点可向报文中压入(push)标签的个数。如,节点A能封装3层标签,也就是说节点A可向报文中压入3个标签。
网络设备在进行压缩处理时,可先从第一标签栈中选取第一节点标签,第一节点标签对应的节点应能对报文封装至少两层标签,这样,在第一节点标签对应的节点进行解压缩处理时,可将解压缩获得的至少两个相邻标签正确压入报文中。
如,针对第一标签栈{12,901,902,201,901,19,901,20},网络设备选取出的第一节点标签为标签201,该标签对应节点17,若节点17能对报文封装4层标签,压缩处理时可将标签901、19、901和20替换为第一压缩标签K0,生成第二标签栈{12,901,902,201,K0},如此就将标签栈的长度从8缩减到5,有助于降低标签栈占用报文的空间。对应于此,在LSP上的节点按照第二标签栈进行报文处理时,节点12转发至节点17的标签栈为{201,K0},节点17可进行解压缩处理,将K0还原为{901,19,901,20},执行标签901对应的业务,并将19、901和20共计3个标签压入报文中,指导节点19根据标签栈进行报文处理。因为需要压入报文的标签个数(3个)不大于节点17能对报文封装标签的层数(4层),因此,节点17可将还原出的标签正确压入报文中。
需要说明的是,网络设备可将任一个能对报文封装至少两层标签的节点对应的节点标签选取为第一节点标签;或者,也可将能对报文封装标签层数最多的节点对应的节点标签选取为第一节点标签;或者,还可按照下文图2所示方式选取第一节点标签,等等,本发明实施例对网络设备选取第一节点标签的方式可不做具体限定。
另外,需要说明的是,替换为第一压缩标签的至少两个相邻标签可以为第一节点标签之后的所有标签;或者,也可以为第一节点标签之后的部分标签。如,第一节点标签为标签201时,可将标签901、19、901和20替换为第一压缩标签K0,或者,也可将标签19、901和20替换为第一压缩标签K0,再者,还可将标签901和20替换为第一压缩标签K0,本发明实施例对此可不做具体限定。优选地,从将解压缩后的标签正确压入报文的角度考虑,替换为第一压缩标签的至少两个相邻标签的个数,不多于第一节点标签对应的节点能对报文封装标签的层数。
204,所述网络设备指导所述转发路径上的源节点根据所述第二标签栈进行报文处理。
网络设备生成第二标签栈后,即可指导LSP中的源节点将第二标签栈压入待转发报文中,使源节点可以根据第二标签栈进行报文处理。相对第一标签栈来说,第二标签栈的长度有所缩减,可减少报文的总长度。
参见图3,本发明实施例还提供了一种选取第一节点标签的方法,该方法包括:
301,所述网络设备获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数。
302,所述网络设备计算第一差值Δi=Li-Mi。
303,所述网络设备选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0。
选取第一节点标签时,网络设备可获得以下两方面信息:
(a)节点标签i对应的节点能对报文封装标签的层数Li。
作为一种示例,网络设备可在需要选取第一节点标签时获得节点能对报文封装标签的层数,或者,网络设备也可在节点上电后就获得节点能对报文封装标签的层数,本发明实施例对此可不做具体限定。
如,针对上述示例中的第一标签栈{12,901,902,201,901,19,901,20},LSP上的节点的个数n=4,也即第一标签栈包括的节点标签的个数n=4,其中,节点12能对报文封装标签的层数L1=3、节点17能对报文封装标签的层数L2=3、节点19能对报文封装标签的层数L3=4、节点20能对报文封装标签的层数L4=2。
(b)节点标签i关联的标签个数Mi。
作为一种示例,节点标签i关联的标签为节点标签i+1及节点标签i+1之后的标签。如,针对上述示例中的第一标签栈{12,901,902,201,901,19,901,20},节点12关联的标签个数M1=5、节点17关联的标签个数M2=3、节点19关联的标签个数M3=1、节点20关联的标签个数M4=0。
网络设备获得Li和Mi后,可计算节点对应的第一差值Δi=Li-Mi,进而从第一标签栈中选取第一节点标签。具体地,第一节点标签对应的节点能对报文封装标签的层数不小于2,且第一节点标签对应的第一差值不小于0。
如,针对上述示例中的第一标签栈{12,901,902,201,901,19,901,20},节点12对应L1=3和Δ1=-2、节点17对应L2=3和Δ2=0、节点19对应L3=4和Δ3=3、节点20对应L4=2和Δ4=2,网络设备可从节点17、19、20对应的3个节点标签中选取第一节点标签。举例来说,网络设备可随机从所述3个节点标签中选取一个作为第一节点标签,如,选取节点19对应的节点标签作为第一节点标签;或者,网络设备还可选取Mi最大的节点标签作为第一节点标签,如,选取M2=3的节点17对应的节点标签作为第一节点标签。需要说明的是,选取Mi最大的节点标签作为第一节点标签可以理解为,第一节点标签关联的标签个数是第一标签栈中所有节点标签关联的标签个数中数值最大的。
可选地,为了最大程度的提高压缩效率,网络设备可选取Li≥2、Δi≥0且Mi最大的节点标签作为第一节点标签,并将第一节点标签之后的所有标签替换为第一压缩标签。如,上述示例中,选取节点17对应的节点标签201作为第一节点标签,并将第一节点标签之后的标签901、19、901和20替换为第一压缩标签K0,如此,单次压缩处理就可将第一标签栈从8个标签压缩为5个标签,相对选取其它节点标签作为第一节点标签的方案,可使压缩效率达到最高。
可选地,在上文图3所示方案的基础上,第一标签栈的最后一个节点标签n关联的标签个数Mn可有以下两种取值方式:第一种取值方式为Mn=0;第二种取值方式为节点标签n之后的标签数。具体地,网络设备可根据节点标签n-1对应的Ln-1和Mn-1,确定Mn的取值方式。如果Ln-1≥Mn-1,网络设备可按照上述两种方式中的任一种获得Mn;如果Ln-1<Mn-1,网络设备可按照第二种方式获得Mn,本发明实施例对此可不做具体限定。
基于图2或图3提供的标签栈压缩方案,为了进一步缩短标签栈长度,并提高LSP创建成功的可能性,本发明实施例还提供了如下优选方案,下面进行解释说明。
需要说明的是,LSP创建成功可以理解为,源节点可以正确将标签栈压入待转发报文,也就是说,标签栈的长度不大于源节点能对报文封装标签的层数。
网络设备按照图2或图3所示方案进行标签栈压缩后,可判断第二标签栈的长度是否大于源节点能对报文封装标签的层数,如果不大于,则判定源节点可正确将第二标签栈压入待转发报文;如果大于,则判定源节点不能正确将第二标签栈压入待转发报文,需要继续对第二标签栈进行压缩处理。
如,针对上述示例中的第二标签栈{12,901,902,201,K0},标签栈长度为5,若源节点10能对报文封装标签的层数L0=6,则说明源节点10可正确将第二标签栈压入待转发报文中;若源节点10能对报文封装标签的层数L0=4,则说明源节点10不能正确将第二标签栈压入待转发报文中,可进一步对第二标签栈进行压缩处理,缩短第二标签栈的长度。
进一步对第二标签栈进行压缩处理的方案,可参照图2所示,从第二标签栈中选取第二节点标签,同样地,第二节点标签对应的节点亦能对报文封装至少两层标签。对于选取第二节点标签、替换第二压缩标签等过程,可参照上文所做介绍,此处不再赘述。
可选地,若网络设备按照图3所示方法选取第一节点标签,本发明实施例还提供了一种生成第三标签栈的方法,参见图4,该方法包括:
401,所述网络设备获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n。其中,m为第二标签栈包括的节点标签的个数。
402,所述网络设备计算第二差值Δj=Lj-Mj。
403,所述网络设备从第二标签栈中选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0。
404,所述网络设备将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签。
例如,第二标签栈为{12,901,902,201,K0},源节点10能对报文封装标签的层数L0=4,则,第二标签栈中节点标签的个数m=2,节点12对应L1=3、M1=2和Δ1=1,节点17对应L2=3、M2=0和Δ2=3。基于此,网络设备可选取节点12对应的节点标签作为第二节点标签。
作为一种示例,网络设备可将第二节点标签之后的所有标签替换为第二压缩标签,如,将标签901、902、201和K0替换为K1。或者,网络设备也可将第二节点标签之后的部分标签替换为第二压缩标签,如,将标签902、201和K0替换为K1,或者将标签201和K0替换为K1,或者将标签901、902和201替换为K1,本发明实施例对此可不做具体限定。
同样地,生成第三标签栈后,网络设备还可继续判断第三标签栈的长度是否大于源节点能对报文封装标签的层数,如果大于,则继续按照本发明实施例方案进行压缩处理,直至压缩处理后的标签长度不大于源节点能对报文封装标签的层数为止,对此可参照下文图6所示示例,此处不再赘述。
与上述标签栈的压缩方法相对应地,本发明实施例还提供了一种标签栈的解压缩方法,参见图5,该方法包括:
501,转发节点获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签。
502,所述转发节点接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签。
503,所述转发节点根据所述标签配置信息,将所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈。
504,所述转发节点根据所述第二标签栈对所述报文进行处理。
在进行解压缩处理时,转发节点可先获得以下两方面信息:
(1)转发节点获得标签配置信息。
作为一种示例,转发节点可在需要进行解压缩处理时获得标签配置信息,或者,转发节点也可在网络设备生成所述压缩标签后获得标签配置信息,本发明实施例对此可不做具体限定。
如,针对LSP对应的标签栈{12,901,902,201,901,19,901,20},网络设备进行压缩处理后得到标签栈{12,K1},对应有如下两个标签配置信息:针对节点12的第一标签配置信息K1={901,902,201,K0},针对节点17的第二标签配置信息K0={901,19,901,20}。
本发明实施例中,转发节点可为LSP上的源节点、中转节点或目的节点中的任一个节点。若转发节点为节点12,则可获得第一标签配置信息。
(2)转发节点获得第一标签栈。
如果转发节点为源节点,则转发节点可从网络设备处获得第一标签栈;如果转发节点为中转节点或目的节点,则转发节点可接收从源节点发送来的报文,并从报文中获得第一标签栈,本发明实施例对转发节点获得第一标签栈的方式可不做具体限定。
转发节点获得上述两方面信息后,就可利用这两方面信息将第一标签栈中的压缩标签替换为被压缩标签,生成第二标签栈,并根据第二标签进行报文处理。需要说明的是,被压缩标签可包括至少两个标签,至少两个标签在第二标签栈中互为相邻。
若转发节点为节点12,获得的第一标签配置信息为K1={901,902,201,K0}、第一标签栈为{12,K1},节点12可将压缩标签K1替换为标签901、902、201和K0,并根据解压缩替换出的标签进行报文处理:先弹出栈顶标签901,并在本地对报文执行标签901对应的业务;再弹出栈顶标签902,并在本地对报文执行标签902对应的业务;再弹出栈顶标签201,将标签201和K0压入报文,并通过标签201对应的链路将报文转发至节点17。
需要说明的是,转发节点可如图3所示,先获得本节点的标签配置信息,再获得第一标签栈;或者,转发节点也可先获得第一标签栈,再获得本节点的标签配置信息;或者,转发节点也可同时获得上述两方面信息,本发明实施例对此可不做具体限定。
上文分别介绍了标签栈的压缩方法和标签栈的解压缩方法,下面结合图1和图6,以生成满足源节点标签处理能力的标签栈为例,对本发明实施例提供的方案进行解释说明。在本示例中,网络设备可为集成有网络设备功能的Controller。
1.Controller获得网络中各节点的业务能力和标签处理能力,并据此创建源节点10到目的节点20的实时业务的LSP,生成LSP对应的第一标签栈{12,901,902,201,901,19,901,20}。
其中,源节点10上报的标签处理能力为能对报文封装4层标签,即L0=4;节点12上报的标签处理能力为能对报文封装3层标签,即L1=3;节点17上报的标签处理能力为能对报文封装3层标签,即L2=3;节点19上报的标签处理能力为能对报文封装1层标签,即L3=3;目的节点20上报的标签处理能力为能对报文封装4层标签,即L4=4。
2.Controller选取第一节点标签。
基于第一标签栈{12,901,902,201,901,19,901,20},Controller可获得LSP上各节点关联的标签数Mi。其中,源节点10关联的标签数M0=8;节点12关联的标签个数M1=5;节点17关联的标签个数M2=3;节点19关联的标签个数M3=1;节点20关联的标签个数M4=0。
Controller计算LSP上各节点对应的第一差值Δi=Li-Mi。其中,源节点10对应的Δ0=-4;节点12对应的Δ1=-2;节点17对应的Δ2=0;节点19对应的Δ3=2;目的节点12对应的Δ4=4。
Controller可选取标签201作为第一节点标签,第一节点标签201对应的节点17的L2=3不小于2、Δ2=0不小于0、且与M3=1和M4=0相比M2=3最大。
可选地,在Controller计算各节点对应的第一差值Δi之前,可预先做如下处理:
(1)剔除标签处理能力为1的节点对应的节点标签。如,上述示例中,可剔除节点19对应的节点标签。
(2)在目的节点对应的节点标签之后的标签数为零时,剔除目的节点对应的节点标签。如,上述示例中,可剔除目的节点20对应的节点标签。
经上述预处理后,Controller可计算Δ0、Δ1和Δ2,相对不进行预处理的方案,有助于提高Controller计算Δi的效率。需要说明的是,剔除某一节点标签可以理解为,该节点标签不可作为第一节点标签。
可选地,在选取第一节点标签之前,Controller还可根据源节点的标签处理能力和第一标签栈包括的标签,预先做如下判断:
Controller判断第一标签栈中是否仅包括一个目的节点标签,且目的节点标签之后的标签数为零,如果是,Controller可直接根据源节点的标签处理能力,对第一标签栈进行压缩处理;如果否,Controller可继续判断源节点的标签处理能力是否小于2,如果否,则可按本发明实施例提供的方案选取第一节点标签;如果是,则说明源节点无法成功创建LSP,可直接结束压缩处理过程。相对经压缩处理后得到无法成功创建LSP的方案,如此预先判断可有助于提高本发明实施例压缩处理的效率。
如,针对第一标签栈{901,902,903,904,905,906,20},第一标签栈只包括一个目的节点标签20,且标签20之后的标签数为零,若源节点的标签处理能力为1,即只能封装1层标签,则可将标签901、902、903、904、905、906和20替换为压缩标签K,如此,源节点根据业务标签的指示执行相关业务后,可将标签20压入报文,并将报文转发至节点20。
3.Controller对第一标签栈进行第一次压缩处理,将{901,19,901,20}替换为第一压缩标签K0,生成第二标签栈{12,901,902,201,K0},同时,Controller还可记录第一标签配置信息K0={901,19,901,20}。
4.Controller判断第二标签栈的长度是否大于源节点的标签处理能力,如果是,则从第二标签栈中选取第二节点标签,执行第二次压缩处理;如果否,则指导源节点将第二标签栈压入待转发报文中。
在本示例中,第二标签栈的长度为5,源节点10的标签处理能力为4,故需要选取第二节点标签。
5.Controller选取第二节点标签。
基于第二标签栈{12,901,902,201,K0},源节点10关联的标签数M′0=5、Δ′0=L0-M′0=-1,节点12关联的标签个数M′1=2、Δ′1=L1-M′1=1,节点17关联的标签个数M′2=1、Δ′2=L2-M′2=2。对应于此,Controller可选取标签12作为第二节点标签,第二节点标签对应的节点12的不小于2、Δ′1=1不小于0、且与M′2=1相比M′1=2最大。
可选地,Controller在计算各节点对应的第二差值Δ′i之前,可预先剔除节点标签17。
6.Controller对第二标签栈进行第二次压缩处理,将{901,902,201,K0}替换为第二压缩标签K1,生成第三标签栈{12,K1},同时,Controller还可记录第二标签配置信息K1={901,902,201,K0}。
可选地,Controller可使每次压缩处理使用不同的压缩标签,即网络中不存在相同的压缩标签;或者,Controller可针对同一节点,使每次压缩处理使用不同的压缩标签,即单个节点中不存在相同的压缩标签。
7.Controller判断第三标签栈的长度是否大于源节点的标签处理能力,如果是,则从第三标签栈中选取第三节点标签,执行第三次压缩处理;如果否,则指导源节点将第三标签栈压入待转发报文中。
在本示例中,第三标签栈的长度为2,源节点10的标签处理能力为4,故可指导源节点将第三标签栈压入待转发报文中。
Controller按照上述1~7对第一标签栈进行压缩处理后,将LSP对应的标签栈,从长度为8的第一标签栈压缩为长度为2的第三标签栈,如此,将第三标签栈压入报文时,可减少报文的总长度,有利于报文在网络中传输。
8.参见图1,Controller将第一标签配置信息K0={901,19,901,20}发送节点17,将第二标签配置信息K1={901,902,201,K0}发送至节点12。
9.源节点将第三标签栈{12,K1}压入待转发报文中,并按最短路径将报文转发至节点12。
10.节点12接收源节点10转发的报文,并从报文中获得第三标签栈{12,K1},弹出节点SID12后,判定栈顶标签K1为压缩标签,可获得第二标签配置信息,进行解压缩处理,将K1还原为标签901、902、201和K0,生成第四标签栈{901,902,201,K0}。节点12对报文执行业务SID901和902对应的业务,将第五标签栈{201,K0}压入报文,并通过链路SID201对应的链路将报文转发至节点17。
11.节点17接收节点12转发的报文,并从报文中获得第五标签栈{201,K0},弹出链路SID201后,判定栈顶标签K0为压缩标签,可获得第一标签配置信息,进行解压缩处理,将K0还原为标签901、19、901和20,生成第六标签栈{901,19,901,20}。节点17对报文执行业务SID901对应的业务,将第七标签栈{19,901,20}压入报文,并按最短路径将报文转发至节点19。
12.节点19接收节点17转发的报文,并从报文中获得第七标签栈{19,901,20},弹出节点SID19后,执行业务SID901对应的业务,将第八标签栈{20}压入报文,并按最短路径将报文转发至节点20。
13.节点20接收节点19转发的报文,并从报文中获得第八标签栈{20},弹出节点SID20后,判定节点SID20为栈底标签,结束报文转发。
LSP上的节点在进行报文转发时,可根据需要,按照8~13对Controller压缩后的标签栈进行解压缩处理,确保节点能利用Controller压缩后的标签栈正确进行报文处理。
与上述标签栈的压缩方法相对应地,本发明实施例还提供了一种标签栈的压缩装置700,所述装置700可以为图2-图4所示实施例中的网络设备,所述装置700可以为路由器或交换机,或者所述装置700为控制转发分离网络架构中的Controller。参见图7,所述装置700包括:
标签栈获得单元701,用于获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
第一选取单元702,用于从所述标签栈获得单元获得的所述第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;
第一替换单元703,用于将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
指导单元704,用于指导所述转发路径上的源节点根据所述第一替换单元生成的所述第二标签栈进行报文处理。
本发明实施例的压缩装置获得LSP对应的第一标签栈后,可从中选取一个第一节点标签,并将第一标签栈中位于第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈。其中,第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;至少两个相邻标签指的是标签在第一标签栈中连续不间断。
例如,第一标签栈为{12,901,902,201,901,19,901,20},第一节点标签为节点标签201,可将{901,19,901,20}替换为第一压缩标签K0,生成第二标签栈{12,901,902,201,K0}。本示例中,第一标签栈包括8个标签,第二标签栈包括5个标签,经压缩处理可缩短标签栈的长度,如此,将第二标签栈压入待转发报文时,有助于节省报文空间。
可选地,所述第一选取单元包括:
第一获得单元,用于获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;
第一计算单元,用于根据所述第一获得单元获得的Li和Mi计算第一差值Δi=Li-Mi;
选取子单元,用于选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0。
可选地,如果所述第一标签栈包括至少两个节点标签对应的节点能对报文封装标签的层数不小于2,且所述至少两个节点标签对应的第一差值不小于0,则所述选取子单元选取出的第一节点标签关联的标签个数是所述至少两个节点标签关联的标签个数中数值最大的。
可选地,若i=n,则所述第一获得单元获得的节点标签i关联的标签个数Mn为零,或者Mn为节点标签n之后的标签数。
可选地,所述装置还包括:
第二获得单元,用于在所述第一替换单元生成所述第二标签栈后,获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n;
第二计算单元,用于根据所述第二获得单元获得的Lj和Mj计算第二差值Δj=Lj-Mj;
第二选取单元,用于选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
第二替换单元,用于将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
相应地,所述指导单元,具体用于指导所述转发路径上的源节点根据所述第二替换单元生成的所述第三标签栈进行报文处理。
可选地,所述装置还包括:
判断单元,用于在所述第一选取单元选取所述第一节点标签之前,判断所述源节点是否能对报文封装至少两层标签,如果是,再通知所述第一选取单元选取所述第一节点标签。
通过上述技术方案,网络设备就可在转发节点对报文进行转发时,缩短压入报文的标签栈长度,进一步减少报文的总长度,有利于报文在网络中传输。
与图5所示方法相对应地,本发明实施例还提供了一种标签栈的解压缩装置800,所述装置800可以为图5所示实施例中的转发节点,所述装置800可以为路由器或交换机。参见图8,所述装置800包括:
获取单元801,用于获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;
接收单元802,用于接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
替换单元803,用于根据所述获取单元获取的所述标签配置信息,将所述接收单元接收的所述报文包含的所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
处理单元804,用于根据所述第二标签栈对所述报文进行处理。
压缩装置对LSP对应的标签栈进行压缩处理,生成压缩后的标签栈后,可指导LSP上的源节点将所述压缩后的标签栈压入待转发报文中,并根据所述压缩后的标签栈对报文进行处理。为了保证LSP上的节点可以利用所述压缩后的标签栈正确进行报文处理,本发明实施例还相应提供了一种解压缩装置。作为一种示例,解压缩装置可以设置在LSP上的转发节点内,解压缩装置接收到从源节点方向发送来的报文后,可从报文中获得压缩后的标签栈,即图7所示示例中的第一标签栈,并根据对应的标签配置信息,对第一标签栈中的压缩标签进行解压缩处理,将压缩标签替换为被压缩标签,生成第二标签栈。如此,就可根据第二标签栈正确进行报文处理。
可选地,所述处理单元,具体用于在所述第二标签栈的栈顶标签为节点标签时,将所述报文转发至所述节点标签对应的节点;或者,所述处理单元,具体用于在所述第二标签栈的栈顶标签为业务标签时,对所述报文执行所述业务标签对应的业务。
参见图9,本发明实施例还提供了一种标签压缩的装置900,所述装置900可以为图2-图4所示实施例中的网络设备,所述装置900可以为路由器或交换机,或者所述装置900为控制转发分离网络架构中的Controller。所述装置900包括:处理器901、存储器902、网络接口903、总线系统904。
所述总线系统904,用于将压缩装置的各个硬件组件耦合在一起。
所述网络接口903,用于实现压缩装置与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等方式。
所述存储器902,用于存储程序指令和数据。
所述处理器901,用于读取存储器902中存储的指令和数据,执行以下操作:
所述处理器通过所述网络接口获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
所述处理器从所述第一标签栈中选取第一节点标签,所述第一节点标签对应的节点在对报文进行转发时,能对报文封装至少两层标签;
所述处理器将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
所述处理器通过所述网络接口指导所述转发路径上的源节点根据所述第二标签栈进行报文处理。
可选地,所述处理器可执行以下操作,从所述第一标签栈中选取第一节点标签:
所述处理器获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;
所述处理器计算第一差值Δi=Li-Mi;
所述处理器选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0。
可选地,如果所述第一标签栈包括至少两个节点标签对应的节点能对报文封装标签的层数不小于2,且所述至少两个节点标签对应的第一差值不小于0,则所述处理器选取的第一节点标签关联的标签个数是所述至少两个节点标签关联的标签个数中数值最大的。
可选地,若i=n,则Mn为零,或者Mn为节点标签n之后的标签数。
可选地,在所述生成第二标签栈之后,所述处理器还用于执行以下操作:
所述处理器获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n;
所述处理器计算第二差值Δj=Lj-Mj;
所述处理器选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
所述处理器将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
相应地,所述处理器指导所述转发路径上的源节点根据所述第三标签栈进行报文处理。
可选地,在从所述第一标签栈中选取第一节点标签之前,所述处理器还用于执行以下操作:
所述处理器判断所述源节点是否能对报文封装至少两层标签,如果是,再执行从所述第一标签栈中选取第一节点标签的步骤。
本发明实施例还提供了标签栈的解压缩装置1000的硬件构成。所述装置1000可以为图5所示实施例中的转发节点。参见图10所示示意图,可包括:处理器1001、存储器1002、网络接口1003、总线系统1004。
所述总线系统1004,用于将解压缩装置的各个硬件组件耦合在一起。
所述网络接口1003,用于实现解压缩装置与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等方式。
所述存储器1002,用于存储程序指令和数据。
所述处理器1001,用于读取存储器1002中存储的指令和数据,执行以下操作:
所述处理器获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;
所述处理器接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
所述处理器根据所述标签配置信息,将所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
所述处理器根据所述第二标签栈对所述报文进行处理。
可选地,如果所述第二标签栈的栈顶标签为节点标签,所述处理器将所述报文转发至所述节点标签对应的节点;
如果所述第二标签栈的栈顶标签为业务标签,所述处理器对所述报文执行所述业务标签对应的业务。
需要说明的是,本发明实施例中的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
另外,需要说明的是,总线系统除了包括数据总线之外,还可包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8、9中将各种总线都标为总线系统。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,并非用于限定本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种标签栈的压缩方法,其特征在于,所述方法包括:
网络设备获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
所述网络设备从所述第一标签栈中选取第一节点标签,具体包括:所述网络设备获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;所述网络设备计算第一差值Δi=Li-Mi;所述网络设备选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0;
所述网络设备将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
所述网络设备从所述第二标签栈中选取第二节点标签,具体包括:所述网络设备获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n,m为所述第二标签栈包括的节点标签的个数;所述网络设备计算第二差值Δj=Lj-Mj;所述网络设备选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
所述网络设备将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
所述网络设备指导所述转发路径上的源节点根据所述第三标签栈进行报文处理。
2.根据权利要求1所述的方法,其特征在于,如果所述第一标签栈包括至少两个节点标签对应的节点能对报文封装标签的层数不小于2,且所述至少两个节点标签对应的第一差值不小于0,则,
所述第一节点标签关联的标签个数是所述至少两个节点标签关联的标签个数中数值最大的。
3.根据权利要求1或2所述的方法,其特征在于,若i=n,则Mn为零,或者Mn为节点标签n之后的标签数。
4.根据权利要求1所述的方法,其特征在于,在所述网络设备从所述第一标签栈中选取第一节点标签之前,所述方法还包括:
所述网络设备判断所述源节点是否能对报文封装至少两层标签,如果是,再执行从所述第一标签栈中选取第一节点标签的步骤。
5.根据权利要求1所述的方法,其特征在于,所述节点标签为节点分段标识SID或链路SID。
6.一种标签栈的解压缩方法,其特征在于,所述方法包括:
转发节点获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;所述标签配置信息是根据上述权利要求1-5任一项所述的方法进行压缩时记录的;
所述转发节点接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
所述转发节点根据所述标签配置信息,将所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
所述转发节点根据所述第二标签栈对所述报文进行处理,包括:
如果所述第二标签栈的栈顶标签为节点标签,所述转发节点将所述报文转发至所述节点标签对应的节点;
如果所述第二标签栈的栈顶标签为业务标签,所述转发节点对所述报文执行所述业务标签对应的业务。
7.一种标签栈的压缩装置,其特征在于,所述装置包括:
标签栈获得单元,用于获得转发路径对应的第一标签栈,所述第一标签栈包括所述转发路径上的每个节点对应的节点标签;
第一选取单元,用于从所述标签栈获得单元获得的所述第一标签栈中选取第一节点标签;其中,所述第一选取单元包括:第一获得单元,用于获得节点标签i对应的节点能对报文封装标签的层数Li和所述节点标签i关联的标签个数Mi;所述节点标签i关联的标签为节点标签i+1及所述节点标签i+1之后的标签,1≤i<n,n为所述转发路径上的节点的个数;第一计算单元,用于根据所述第一获得单元获得的Li和Mi计算第一差值Δi=Li-Mi;选取子单元,用于选取所述第一节点标签,所述第一节点标签对应的节点能对报文封装标签的层数不小于2,且所述第一节点标签对应的第一差值不小于0;
第一替换单元,用于将所述第一标签栈中位于所述第一节点标签之后的至少两个相邻标签替换为一个第一压缩标签,生成第二标签栈;
第二获得单元,用于在所述第一替换单元生成所述第二标签栈后,获得节点标签j对应的节点能对报文封装标签的层数Lj和所述节点标签j关联的标签个数Mj;所述节点标签j关联的标签为节点标签j+1及所述节点标签j+1之后的标签,1≤j<m,m≤n,m为所述第二标签栈包括的节点标签的个数;第二计算单元,用于根据所述第二获得单元获得的Lj和Mj计算第二差值Δj=Lj-Mj;第二选取单元,用于选取第二节点标签,所述第二节点标签对应的节点能对报文封装标签的层数不小于2,且所述第二节点标签对应的第二差值不小于0;
第二替换单元,用于将所述第二标签栈中位于所述第二节点标签之后的至少两个相邻标签替换为一个第二压缩标签,生成第三标签栈;所述第二节点标签之后的至少两个相邻标签中包括所述第一压缩标签;
指导单元,用于指导所述转发路径上的源节点根据所述第二替换单元生成的所述第三标签栈进行报文处理。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
判断单元,用于在所述第一选取单元选取所述第一节点标签之前,判断所述源节点是否能对报文封装至少两层标签,如果是,再通知所述第一选取单元选取所述第一节点标签。
9.一种标签栈的解压缩装置,其特征在于,所述装置包括:
获取单元,用于获取本节点的标签配置信息,所述标签配置信息包括压缩标签与被压缩标签的对应关系,所述被压缩标签包括至少两个标签;所述标签配置信息是根据上述权利要求1-5任一项所述的方法进行压缩时记录的;
接收单元,用于接收从源节点发送来的报文,所述报文包含第一标签栈,所述第一标签栈包括所述压缩标签;
替换单元,用于根据所述获取单元获取的所述标签配置信息,将所述接收单元接收的所述报文包含的所述第一标签栈中的所述压缩标签替换为所述被压缩标签,生成第二标签栈;
处理单元,用于根据所述第二标签栈对所述报文进行处理;其中,所述处理单元,具体用于在所述第二标签栈的栈顶标签为节点标签时,将所述报文转发至所述节点标签对应的节点;或者,
所述处理单元,具体用于在所述第二标签栈的栈顶标签为业务标签时,对所述报文执行所述业务标签对应的业务。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410453368.3A CN105471737B (zh) | 2014-09-05 | 2014-09-05 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
PCT/CN2015/086986 WO2016034040A1 (zh) | 2014-09-05 | 2015-08-14 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
EP15837992.5A EP3179677B1 (en) | 2014-09-05 | 2015-08-14 | Method and apparatus for compressing label stack, and method and apparatus for decompressing label stack |
US15/449,850 US10419333B2 (en) | 2014-09-05 | 2017-03-03 | Method and apparatus for compressing label stack, and method and apparatus for decompressing label stack |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410453368.3A CN105471737B (zh) | 2014-09-05 | 2014-09-05 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105471737A CN105471737A (zh) | 2016-04-06 |
CN105471737B true CN105471737B (zh) | 2019-05-10 |
Family
ID=55439111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410453368.3A Active CN105471737B (zh) | 2014-09-05 | 2014-09-05 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10419333B2 (zh) |
EP (1) | EP3179677B1 (zh) |
CN (1) | CN105471737B (zh) |
WO (1) | WO2016034040A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967184B2 (en) * | 2015-07-02 | 2018-05-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Using border gateway protocol to expose maximum segment identifier depth to an external application |
US11005751B2 (en) | 2016-02-15 | 2021-05-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Techniques for exposing maximum node and/or link segment identifier depth utilizing IS-IS |
US11038791B2 (en) | 2016-02-15 | 2021-06-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Techniques for exposing maximum node and/or link segment identifier depth utilizing OSPF |
CN107248941B (zh) | 2017-06-30 | 2020-01-10 | 华为技术有限公司 | 一种检测路径的方法和装置 |
CN109246012A (zh) * | 2017-07-10 | 2019-01-18 | 中兴通讯股份有限公司 | 报文转发方法、装置及计算机可读存储介质 |
CN110290068B (zh) * | 2018-03-19 | 2021-09-14 | 华为技术有限公司 | 一种粘连标签的发送方法、接收方法及设备 |
CN111510386B (zh) * | 2019-01-30 | 2023-06-20 | 华为技术有限公司 | 用于处理报文的方法和装置 |
CN111917640B (zh) * | 2019-05-09 | 2023-06-06 | 华为技术有限公司 | SRv6网络生成段列表、报文转发的方法、设备和系统 |
CN112350935B (zh) * | 2019-08-08 | 2023-03-24 | 中兴通讯股份有限公司 | 针对具有栈深约束的路径计算方法及装置 |
CN112583745A (zh) * | 2019-09-27 | 2021-03-30 | 华为技术有限公司 | 一种在sr网络中转发报文的方法、设备和系统 |
CN112714063B (zh) * | 2019-10-25 | 2022-08-09 | 华为技术有限公司 | 一种报文传输方法、设备以及数字处理芯片 |
CN113141338B (zh) * | 2020-01-20 | 2022-07-22 | 华为技术有限公司 | 一种消息生成方法、处理方法及装置 |
CN112511428A (zh) * | 2020-03-10 | 2021-03-16 | 中兴通讯股份有限公司 | 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 |
CN112100533B (zh) * | 2020-06-30 | 2024-04-30 | 网络通信与安全紫金山实验室 | 一种基于区域划分的标签压缩方法 |
US11445048B2 (en) | 2020-08-11 | 2022-09-13 | Cisco Technology, Inc. | Systems and methods for compressing a SID list |
CN118200771A (zh) * | 2020-09-27 | 2024-06-14 | 华为技术有限公司 | 一种数据帧的发送方法和网络设备 |
US11579781B2 (en) * | 2020-10-23 | 2023-02-14 | Red Hat, Inc. | Pooling distributed storage nodes that have specialized hardware |
CN113472657B (zh) * | 2021-06-29 | 2022-07-29 | 新华三大数据技术有限公司 | 一种路径优化方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN101110773A (zh) * | 2007-08-13 | 2008-01-23 | 杭州华三通信技术有限公司 | 生成标签转发表项、及查找标签转发表项的方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020150B2 (en) * | 2002-02-22 | 2006-03-28 | Nortel Networks Limited | System, device, and method for traffic and subscriber service differentiation using multiprotocol label switching |
CN1225876C (zh) * | 2002-07-24 | 2005-11-02 | 华为技术有限公司 | 一种基于多协议标签交换网络的报文传送方法 |
CN1283079C (zh) | 2003-02-20 | 2006-11-01 | 华为技术有限公司 | Ip网络业务质量保证方法及系统 |
CN1283071C (zh) | 2003-02-20 | 2006-11-01 | 华为技术有限公司 | 网络中指定路由的方法 |
CN100450077C (zh) | 2004-09-15 | 2009-01-07 | 华为技术有限公司 | 一种在网络中路由转发的方法 |
US7602778B2 (en) * | 2005-06-29 | 2009-10-13 | Cisco Technology, Inc. | System and methods for compressing message headers |
EP2314045B1 (en) * | 2008-07-30 | 2013-07-10 | British Telecommunications public limited company | Header compression scheme |
US8634418B2 (en) * | 2011-07-01 | 2014-01-21 | Juniper Networks, Inc. | Providing extended administrative groups in computer networks |
US9537769B2 (en) * | 2013-03-15 | 2017-01-03 | Cisco Technology, Inc. | Opportunistic compression of routing segment identifier stacks |
-
2014
- 2014-09-05 CN CN201410453368.3A patent/CN105471737B/zh active Active
-
2015
- 2015-08-14 WO PCT/CN2015/086986 patent/WO2016034040A1/zh active Application Filing
- 2015-08-14 EP EP15837992.5A patent/EP3179677B1/en active Active
-
2017
- 2017-03-03 US US15/449,850 patent/US10419333B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN101110773A (zh) * | 2007-08-13 | 2008-01-23 | 杭州华三通信技术有限公司 | 生成标签转发表项、及查找标签转发表项的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3179677A4 (en) | 2017-11-22 |
WO2016034040A1 (zh) | 2016-03-10 |
CN105471737A (zh) | 2016-04-06 |
EP3179677A1 (en) | 2017-06-14 |
US20170180247A1 (en) | 2017-06-22 |
US10419333B2 (en) | 2019-09-17 |
EP3179677B1 (en) | 2019-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105471737B (zh) | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 | |
KR102148158B1 (ko) | 통신 시스템에서 패킷 송수신 방법 및 장치 | |
JP6377605B2 (ja) | 通信システムにおけるパケット送受信方法及び装置 | |
EP2587860B1 (en) | Feedback method and device for header compression feedback information | |
CN101645810B (zh) | Pw的检测方法和设备 | |
CN108880999A (zh) | 一种业务路由的方法、设备及系统 | |
US10432755B2 (en) | SDN, SDN configuration method, SDN-based data transmission method, and network controller | |
CN105162732B (zh) | 创建扩展端口的方法、装置 | |
US8724451B2 (en) | Method for protecting a pseudo-wire | |
CN103281251B (zh) | 数据中心间的数据传输方法、系统及其子系统 | |
US20200351213A1 (en) | Method and apparatus for transmitting and receiving packet in communication system | |
CN107094144B (zh) | 基带帧的封装方法及解封装方法 | |
CN107950050B (zh) | 一种报文的处理方法和基站 | |
KR101682508B1 (ko) | 라우팅 장치 및 네트워크 장치 | |
CN107231309B (zh) | 获取sdn全网视图的方法、控制器及目的交换节点 | |
CN102638391B (zh) | 一种帧中继压缩报文传输的方法和设备 | |
CN108234092B (zh) | 一种信令配置方法、rrc实体以及pdcp实体 | |
CN105763441B (zh) | 一种报文传输方法和装置 | |
JP4533819B2 (ja) | 映像サーバシステム及びデータ転送方法 | |
CN104158716A (zh) | 报文的处理方法和级联芯片 | |
CN109196870B (zh) | 用于发射和接收mmtp分组的方法和装置 | |
JP2017522840A (ja) | アプリケーション階層順方向誤り訂正方式を使用して提供される放送サービスの受信を制御する方法及び装置 | |
CN115720210A (zh) | Mpls报文的封装方法及装置、存储介质及电子装置 | |
CN117478591A (zh) | 一种报文处理方法、网络设备及系统 | |
JP2011015357A (ja) | 情報処理装置及び情報処理方法 |
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 |