CN112714063B - 一种报文传输方法、设备以及数字处理芯片 - Google Patents
一种报文传输方法、设备以及数字处理芯片 Download PDFInfo
- Publication number
- CN112714063B CN112714063B CN201911025945.8A CN201911025945A CN112714063B CN 112714063 B CN112714063 B CN 112714063B CN 201911025945 A CN201911025945 A CN 201911025945A CN 112714063 B CN112714063 B CN 112714063B
- Authority
- CN
- China
- Prior art keywords
- node
- label
- short
- long
- labels
- 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
Images
Classifications
-
- 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/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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文传输方法、相关设备以及数字处理芯片,用于提高报文的封装效率以及传输效率。本申请实施例方法包括如下步骤。节点获取短标签,短标签用于指示下一跳节点转发报文的转发信息,短标签的长度小于20比特;节点将目标标签的至少部分比特替换为短标签,目标标签位于报文中;随后,节点向下一跳节点发送报文。
Description
技术领域
本申请涉及网络通信技术,特别涉及一种报文传输方法、设备以及数字处理芯片。
背景技术
分段路由(segment routing,SR)是一种网络传送技术。可利用传递多协议标签交换(muti-protocol label switching,MPLS)标签,以实现报文的传输。
使用SR技术时,首节点一次性地压入节点路径包括的所有节点的MPLS长标签。节点路径的各节点根据对应的MPLS长标签确定转发报文的出端口和下一跳地址。因MPLS长标签的层数较多,导致开销过大以及报文的封装效率低。
发明内容
本申请提供本申请实施例提供了一种报文传输方法、相关设备以及数字处理芯片,用于降低报文传输过程中的报文的开销以及提高报文的封装效率。
第一方面,本发明实施例提供了一种报文传输方法。该方法包括:首先,节点获取短标签,短标签用于指示下一跳节点转发报文的转发信息,短标签的长度小于20比特;随后,节点将目标标签的至少部分比特替换为短标签,目标标签位于报文中;随后,节点向下一跳节点发送报文。
在该实施方式中,首节点将长标签栈转换为短标签。通过短标签栈有效提高了报文的封装效率以及传输效率。而且因短标签的长度较短,使得网络能支持具有更多节点数量的节点路径。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点为节点路径的首节点,节点路径包括按传输报文的顺序排列的首节点和N个非首节点,节点获取短标签之前,方法还包括:节点获取长标签栈,长标签栈包括N个长标签,N个长标签与N个非首节点分别对应,长标签用于指示对应的节点转发报文的转发信息;节点将长标签栈转换为短标签栈,短标签栈包括目标标签和N个短标签,N个短标签、N个长标签分别与N个非首节点对应;节点将短标签栈封装入报文中。
在该实施方式中,首节点能够成功的将长标签栈转换为短标签栈。从而基于该短标签栈进行报文的转发,提高了报文的封装效率和传输效率。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,目标标签包括第一字段,节点将长标签栈转换为短标签栈包括:节点确定第一数值,N个长标签都包括第一数值;节点设置第一字段为第一数值。
在该实施方式中,目标标签的第一字段不用于进行转发信息的关联。仅通过第二字段即可实现关联转发信息的目的。从而降低了目标标签中用于关联转发信息的比特数量。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点将长标签栈转换为短标签栈包括:节点确定N个短标签分别为N个第二数值,N个第二数值分别为N个长标签所包括的部分比特。
在该实施方式中,首节点在长标签栈中确定出N个第二数值。N个第二数值分别用于关联N个非首节点的转发信息。因第二数值的长度小于20bit。有效的降低了用于关联转发信息的长度。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,目标标签还包括第二字段,节点为节点路径的非尾节点,节点将目标标签的至少部分比特替换为短标签包括:节点设置第二字段为第二数值。
在该实施方式中,在报文转发至非尾节点时。该非尾节点在根据目标标签的第二字段确定出关联的转发信息后,非尾节点动态的对目标标签的第二字段进行设置。已设置的第二字段为下一跳节点对应的短标签。可见,通过各非尾节点对第二字段的动态设置,使得各非尾节点直接根据第二字段进行报文的转发。有效的提高了报文的转发效率。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点为节点路径的非首节点,节点将目标标签的至少部分比特替换为短标签之前,方法还包括:节点确定第一字段与预设值相同。
在该实施方式中,若节点确定第二字段为预设值,则该节点可基于短标签栈进行报文的转发。若节点确定第二字段不等于预设值,则节点可基于已有的长标签栈进行报文的转发。使得节点能够兼容不同的标签栈以实现报文的转发。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点将长标签栈转换为短标签栈包括:节点获取标签对应关系,标签对应关系包括N个长标签和N个短标签的对应关系;节点根据标签对应关系确定N个短标签。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点为节点路径的非尾节点,节点将目标标签的至少部分比特替换为短标签包括:节点确定目标标签为短标签。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点为节点路径的中间节点,节点将目标标签的至少部分比特替换为短标签之前,方法还包括:节点根据标签对应关系,确定与目标标签对应的长标签;节点根据长标签确定对应的转发信息。
在该实施方式中,无需对长标签进行基于第一数值的统一分配。节点路径上的各非尾节点直接以短标签为索引,通过查询标签对应关系的方式可确定长标签。
基于本发明实施例第一方面,本发明实施例第一方面的一种可选的实现方式中,节点获取短标签包括:节点根据短标签栈所包括的至少一个指示字段,获取短标签,至少一个指示字段用于指示短标签。
在该实施方式中,各节点根据指示字段的指示,可准确的确定出对应的短标签。有效的保障了报文可沿节点路径所包括的多个节点进行传输。
第二方面,本发明实施例提供了一种报文传输方法,方法包括:首先,控制设备获取长标签栈,长标签栈包括N个长标签,N个长标签与节点路径所包括的N个非首节点分别对应,N个长标签分别包括N个短标签,短标签用于指示对应的节点转发报文的路径,短标签的长度小于20比特;随后,控制设备向节点发送长标签栈。本方面所示的有益效果详见上述第一方面所示,不再赘述。
基于本发明实施例第二方面,本发明实施例第二方面的一种可选的实现方式中,长标签还包括第一数值,N个长标签都包括第一数值。
第三方面,本发明实施例提供了一种报文传输方法,方法包括:首先,控制设备向节点发送长标签栈,长标签栈包括N个长标签,N个长标签与节点路径所包括的N个非首节点分别对应,长标签用于指示对应的节点转发报文的路径;控制设备向节点发送标签对应关系,标签对应关系包括N个长标签和N个短标签的对应关系。
第四方面,本发明实施例提供了一种转发设备,包括:处理器、存储器以及收发器,其中,处理器、存储器以及收发器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的报文传输方法中与处理相关的功能。收发器用于执行上述第一方面任一项所示的报文传输方法中与收发相关的功能。
第五方面,本发明实施例提供了一种控制设备,包括:处理器、存储器以及收发器,其中,处理器、存储器以及收发器通过线路互联,处理器调用存储器中的程序代码用于执行上述第二方面或第三方面任一项所示的报文传输方法中与处理相关的功能。收发器用于执行上述第二方面或第三方面任一项所示的报文传输方法中与收发相关的功能。
第六方面,本发明实施例提供了一种数字处理芯片,芯片包括处理器和存储器,存储器和处理器通过线路互联,存储器中存储有指令,处理器用于执行如上述第一方面至第三方面任一项的报文传输方法中与处理相关的功能。
第七方面,本发明实施例提供了一种通信系统,该通信系统包括控制设备和多个转发设备,该控制设备如上述第五方面所示。该转发设备如上述第四方面所示。
第八方面,本发明实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面的任一实施方式中的报文传输方法。
第九方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面的任一实施方式中的报文传输方法。
附图说明
图1为传送网络的一种结构示例图;
图2为SR技术进行报文传输的一种过程示例图;
图3为长标签栈的一种结构示例图;
图4为本申请所提供的短标签栈的一种结构示例图;
图5为本申请所提供的报文传输方法的一种实施例步骤流程图;
图6为长标签栈的一种局部结构示例图;
图7为本申请所提供的短标签栈的另一种结构示例图;
图8为本申请所提供的报文传输方法的另一种实施例步骤流程图;
图9为本申请所提供的转发设备或控制设备的结构示例图;
图10为本申请所提供的通信网络的结构示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先结合图1,对本申请所提供的报文传输方法所应用的传送网络的结构进行说明。需明确的是,图1对该传送网络的具体类型不做限定。图1所示以传送网络的类型为微波(microwave,MW)网络为例。图1所示还可用于其他任意传送网络。例如,光传送网(opticaltransport network,OTN)、数字用户线路(digital subscriber line,DSL),或以太网(ethernet)等。
如图1所示,微波网络100至少包括一条节点路径。该节点路径用于传输来自客户网络102的业务数据。本申请对客户网络102的具体网络类型不做限定。其中,该节点路径包括按传输报文的顺序排列的首节点101、多个中间节点103和尾节点104。首节点101位于微波网络100入口。该首节点101用于接收来自客户网络102的业务数据。该中间节点103位于微波网络100内部。该尾节点104位于微波网络100出口。图1以中间节点的数量为4个为例进行说明。图1所示以各节点为标签交换路由器(label switching router,LSR)为例。
基于图1所示的微波网络100,以下结合图2所示对已有方案所示的SR技术是如何进行报文传输的过程进行说明。
如图2所示,以节点路径包括按传输报文的顺序进行排列的6个节点为例。该6个节点为图2所示的A节点至F节点。其中,A节点为节点路径的首节点。F节点为节点路径的尾节点。B节点至E节点均为节点路径的中间节点。
为实现报文的传输,A节点接收到业务数据的情况下,A节点可一次在业务数据前压入节点路径的长标签栈以形成报文。该长标签栈支持将报文由A节点传输至F节点。以下结合图3所示对该长标签栈的结构进行说明:
此种示例下,层N的取值为5,表示该长标签共有5层长标签。该五层长标签分别为长标签B至长标签F。以长标签栈的最外层长标签301(即长标签B)为例。该长标签301共有四个字段,即标签域(Label)字段、扩展域(Exp)字段、栈底标识(S)字段以及生存时间(TTL)字段。其中,Label字段的长度为20比特(bit),其用于关联用于转发报文的转发信息。其中,该转发信息可包括出端口和下一跳节点(C节点)的地址。Exp字段的长度为3bit。S字段的长度为1bit,S字段为1时表明为该长标签为长标签栈的栈底标签。S字段为0时表示还有下一跳节点。图3所示长标签301的S字段为0。生存时间(time to live,TTL)字段的长度8bit,表示该报文能传输多少跳节点。对标签栈的其他长标签的说明,请详见长标签B。
B节点接收到报文后可获取最外层长标签(长标签B)。B节点可查找出与长标签B关联的出端口和下一跳节点的地址。节点B剥离最外层的长标签(即长标签B)。B节点即可通过该出端口将报文转发至下一跳节点(节点C)。
中间节点(C~E),对长标签的处理方式同节点B。可见,各中间节点根据最外层标签对报文进行转发。且各中间节点还逐跳剥离最外层的长标签。直至报文传输至尾节点(F节点)。由F节点还原出业务数据完成业务处理。
在如上所示的方案中,首节点需要封装较多的长标签。如图2所示,A节点需要封装5层长标签。每层长标签占4字节(Bytes)。A节点所转发的报头需要额外的20Bytes用于封装长标签栈。若A节点所获取到的业务数据的长度为64bytes,则A节点封装了5层长标签后,该报文的封装效率=64/(20+64)=76%。其中,报文的封装效率是指,业务数据占整个报文的比例。可见,报文所封装的长标签的层数越多,则报文的封装效率越低。报文的封装效率越低,会导致报文的传输效率越低。
另外,图2所示的报文传输方案还受限于节点的硬件处理能力。例如若节点具有最大处理10层长标签的能力。该节点最多能支持具有10个节点的节点路径。该节点无法支持具有10个节点以上的节点路径。
以下结合图4所示对本申请所提供的报文传输方法所使用的短标签栈的结构进行说明。图4所示的短标签栈的Exp字段、S字段以及TTL字段的具体说明,详见图3的相关描述,在此不再赘述。
该短标签栈还包括目标标签,其长度以20bit为例。该短标签栈还包括N个短标签,即图4所示的短标签1至短标签N。N的取值表示节点路径所包括的非首节点的数量。可见,图4所示的短标签栈所包括的N个短标签分别与节点路径的N个非首节点对应。为实现对报文的转发,短标签栈所包括的N个短标签,按传输报文的顺序进行依次排列。
例如,若图4所示的短标签栈用于图2所示报文传输的过程,则N取值为5。即短标签1对应B节点,依次类推,短标签5对应F节点。图4所示对各短标签的长度不做限定,只要各短标签的长度小于20bit即可。例如,该短标签的长度为8bit。
图4所示以短标签栈包括有两个指示字段为例,即第一指示字段和第二指示字段。该第一指示字段的长度可为4bit,其用于指示短标签栈所包括的短标签的总数量。该第二指示字段的长度为4bit,其用于指示当前执行报文转发的节点的短标签是短标签栈中的第几个。需明确的是,图4所示对指示字段的数量和功能的说明为可选地示例,不做限定。只要节点路径上的各节点根据该指示字段的指示,确定出下一跳节点对应的短标签即可。
SR的实现方式可以是部署在MPLS数据平面上的SR。SR的实现方式也可以是应用在互联网协议第6版(internet protocol version 6,IPv6)网络中。称为基于IPv6的分段路径(segment roouting over IPv6,SRv6)。图4所示的短标签栈可用于上述任一种SR的实现方式。需明确的是,图4所示的短标签栈还可用于其他SR的实现方式中,不做限定。
以下结合图5,对使用如图4所示的短标签栈是如何进行报文传输的过程进行说明:
步骤501、控制设备向首节点发送长标签栈。
对长标签栈结构的具体说明,请详见图3所示。本实施例以长标签栈由控制设备向首节点发送为例。在其他示例中,也可由首节点预先生成该长标签栈。
以下结合图6所示,对控制设备所发送的各长标签的label字段进行说明:
各长标签的label字段包括有位于高比特位的L位比特和位于低比特位的M位比特。其中,L+M=20。该位于高比特位的L位比特是指label字段所包括的前L位比特。该位于低比特位的M位比特是指label字段所包括的后M位比特。可选地,该L位比特也可位于label字段的高比特位,该M位比特也可位于label字段的低比特位。
具体地,该长标签栈所包括的所有位于高比特位的L位比特均为第一数值601。且第一数值601的取值在不同的长标签的label字段中均相同。在可选地示例中,该L的取值可为12。即各长标签的第一数值601的长度为12比特。具体如图6所示,各第一数值601的取值均为“101001011010”。需明确的是,本实施例对第一数值601的取值和长度的说明,不做限定。
长标签所包括的位于低比特位的M位比特为第二数值602。在长标签栈中,位于不同长标签的label字段所包括的第二数值602均不同。在可选地示例中,该M的取值可为8。各长标签的第二数值602的长度为8比特。具体如图6所示,label字段603的第二数值602为“10101010”、label字段604的第二数值602为“010110101”……。需明确的是,本实施例对该第二数值602的具体取值的说明为可选地示例,不做限定。
其中,第二数值602的长度和节点路径所包括所有出端口的数量有关。因不同的第二数值602的取值对应不同的出端口。可见,该节点路径所包括的所有出端口的数量小于或等于具有不同取值的第二数值602的数量。例如,在第二数值602的长度为8bit的情况下,只要节点路径所包括的所有出端口的数量小于或等于28=256即可。若节点路径所包括的所有出端口的数量大于256个,则需要增加第二数值602的长度。
步骤502、首节点接收来自控制设备的长标签栈。
步骤503、首节点判断是否满足触发条件,若是,则执行步骤504。
本实施例中,首节点获取到长标签栈的情况下,需要判断是否满足触发。满足该触发条件的首节点具有执行本实施例所示的报文传输方法的能力。本实施例所示的触发条件具体可包括触发条件a和触发条件b,具体如下:
该触发条件a可为:该长标签栈所包括的所有第一数值的取值相同。且该第一数值与预设值相同。该预设值可为控制设备向首节点发送的,也可由首节点配置好后向该控制设备发送的,具体不做限定。
若长标签栈的label字段如图6所示。首节点即可确定所有第一数值的取值相同。且该第一数值与预设值“101001011010”相同。首节点确定满足该触发条件a。
该触发条件b可为:首节点获取已配置的使能(enable)字段。其中,在enable字段取值为0时,指示该首节点不满足该触发条件b。若该enable字段取值为1时,指示该首节点满足该触发条件b。
本实施例以首节点确定同时满足上述触发条件a和触发条件b的情况下,触发首节点执行步骤504为例进行说明。
执行本实施例所示的步骤503的目的在于:若首节点满足该触发条件,则首节点可基于短标签栈进行报文的转发。若首节点不满足该触发条件,则首节点可基于已有的长标签栈进行报文的转发。使得首节点能够兼容不同的标签栈以实现报文的转发。
还需明确的是,本实施例所示的步骤503为可选执行的步骤。在其他示例中,首节点在接收到长标签栈后,可直接进行步骤504的执行。
步骤504、首节点确定出端口和下一跳节点的地址。
首节点获取到长标签栈后,根据长标签栈的最外层长标签确定出端口和下一跳节点的地址。具体地,该首节点根据最外层长标签的label字段确定出关联的出端口和下一跳节点的地址。
步骤505、首节点将长标签栈转换为短标签栈。
本实施例中,为实现报文能够经由节点路径进行传输的目的。首节点需要将长标签栈转换为短标签栈。对短标签栈结构的具体说明,请详见图4所示。以下对首节点如何将长标签栈转换为短标签栈的具体过程进行说明:
首先,对首节点如何确定目标标签的过程进行说明:
首节点在N个长标签中确定第一数值和第二数值。其中,N个长标签与节点路径所包括的N个非首节点对应。具体地,因首节点根据长标签栈的最外层长标签,已获取到对应的出端口和下一跳节点的地址,则无需将首节点的长标签转换为短标签。对第一数值和第二数值的具体说明,请详见步骤501所示。
如图4所示,该目标标签包括第一字段和第二字段。首节点可设置第一字段为该第一数值。第二字段为下一跳节点的长标签所包括的第二数值。在图6所示的示例中,如长标签603为首节点的下一跳节点的长标签,首节点可设置该第二字段为“10101010”。
其次,对首节点确定N个短标签的过程进行说明:
在首节点已确定N个长标签分别包括的第二数值的情况下,首节点确定N个短标签分别为N个第二数值。
本实施例对步骤504和步骤505之间的执行时序的先后不做限定。
步骤506、首节点向下一跳节点转发报文。
首节点在获取到报文的情况下,将该短标签封装入该报文的报头中。本实施例以首节点的下一跳节点为节点路径的中间节点为例进行示例性说明。在其他示例中,该首节点的下一跳节点也可为尾节点。具体地,首节点根据已确定的出端口和下一跳节点的地址,向下一跳节点转发报文。
步骤507、中间节点接收来自上一跳节点的报文。
本步骤所示的中间节点可为节点路径的任一中间节点。
步骤508、中间节点判断是否满足触发条件,若是,则执行步骤509。
其中,中间节点判断是否满足该触发条件的具体说明,请参见步骤503所示。
步骤509、中间节点确定出端口和下一跳节点的地址。
其中,中间节点获取到短标签栈后,根据目标标签的第二字段确定关联的出端口和下一跳节点的地址。
步骤510、中间节点确定下一跳节点对应的短标签。
该中间节点获取到短标签栈的情况下,可获取第一指示信息和第二指示信息。对第一指示信息和第二指示信息的具体说明,请详见图4所示。以本实施例所示的短标签栈用于图2所示,且以本步骤所示的中间节点为B节点为例。此种示例下,第一指示信息所指示的数量为5。第二指示信息指示B节点对应的短标签是短标签栈中的第1个。
可见,中间节点根据第一指示信息和第二指示信息,能够在短标签栈所包括的N个短标签中,确定中间节点的下一跳节点对应的短标签。如图4所示,中间节点根据第一指示信息和第二指示信息确定下一跳节点对应的短标签为5个短标签中的第2个,即C节点的短标签2。需明确的是,本实施例对中间节点如何确定下一跳节点对应的短标签的方式的说明为可选地示例,不做限定。
步骤511、中间节点将目标标签的第二字段替换为下一跳节点对应的短标签。
本实施例中,在报文转发至节点路径的各中间节点时,各中间节点均根据目标标签的第二字段确定出端口和下一跳地址。中间节点还可动态的对目标标签的第二字段进行更改。更改后的第二字段为下一跳节点对应的短标签。从而在下一跳节点接收到短标签栈后,即可根据第二字段,确定如何对报文进行转发。
步骤512、中间节点向下一跳节点转发报文。
步骤513、尾节点将短标签栈从报文中剥离。
本实施例中,对节点路径所包括的中间节点的具体数量不做限定。各中间节点接收到报文后的处理过程,请详见上述步骤507至步骤512所示。
因尾节点所获取到的报文已封装有该短标签栈。又因尾节点无需再向下一跳节点转发该报文。该尾节点可直接将整个短标签栈从报头中剥离。从而还原出业务数据,尾节点即可对业务数据进行对应的业务处理。可选地,也可由各非尾节点将其对应的短标签从短标签中剥离。本实施例以尾节点负责对短标签的剥离为例进行说明,可有效提高短标签栈的格式的对齐,降低节点对短标签进行处理的难度,提高了处理的效率。
采用本实施例所示的方法,首节点将长标签栈转换为短标签栈,有效地降低了标签栈的长度。如图3所示,若需要压入5层长标签。则图3所示的长标签栈的长度={label字段的长度(20bit)+Exp字段的长度(3bit)+S字段的长度(1bit)+TTL字段的长度(8bit)}*5=160bit。如图4所示,将5层长标签转换为短标签,图4所示的短标签栈的长度=目标标签的长度(20bit)+Exp字段的长度(3bit)+S字段的长度(1bit)+TTL字段的长度(8bit)+第一指示字段的长度(4bit)+第二指示字段的长度(4bit)+短标签的长度(8bit)*5=80bit。进而,短标签栈能够有效地提高报文的封装效率,进而提高了报文的传输效率。而且本实施例所示的各短标签的长度较小,使得节点能够支持具有更多节点数量的节点路径,以进行报文的转发。
结合图7所示对本申请所提供的报文传输方法所使用的另一种短标签栈的结构进行说明。以下对图7所示的短标签栈和图4所示的短标签栈的区别进行如下说明:
首先,图7所示的短标签栈的目标标签不再进行第一字段和第二字段的划分。
其次,图7所示的目标标签的长度等于短标签的长度。因短标签的长度小于20bit,则该目标标签的长度也小于20bit。例如,若短标签的长度为4bit,则目标标签的长度也为4bit。对图7所示的短标签栈的其他字段的说明,请详见图4所示。
以下结合图8,对使用如图7所示的短标签栈是如何进行报文传输的过程进行说明:
步骤801、控制设备向首节点发送长标签栈。
本实施例所示的长标签栈的具体说明,请详见图3所示。
步骤802、控制设备向首节点发送标签对应关系。
为实现节点路径上各非尾节点对报文的转发,则各节点需要获取用于关联转发信息的长标签。本实施例所示控制设备可向首节点发送标签对应关系。该标签对应关系建立了节点路径上的各非尾节点的短标签和长标签的对应关系。具体地,该标签对应关系建立了各非尾节点的短标签和长标签的label字段的对应关系。
可选地,控制设备可通过中间系统到中间系统(intermediate system tointermediate system、开放式最短路径优先(open shortest path first,OSPF)以及边界网关协议(border gateway protocol,BGP)中的一个,向首节点发送给标签对应关系。
需明确的是,本实施例对步骤801和802的执行时序不做限定。且本实施例所示的步骤801和步骤802为可选的步骤。需明确的是,该标签对应关系也可由首节点提前配置好。也由该首节点和其他节点进行协商以获取。
步骤803、首节点接收来自控制设备的长标签栈。
步骤804、首节点接收来自控制设备的标签对应关系。
步骤805、首节点判断是否满足触发条件,若是,则执行步骤806。
本实施例所示的触发条件如图5所示的触发条件b,具体说明请详见图5所示的步骤503。
步骤806、首节点确定出端口和下一跳节点的地址。
首节点获取到长标签栈后,首节点确定长标签栈最外层的长标签。首节点即可根据该长标签确定关联的出端口和下一跳节点的地址。
步骤807、首节点将长标签栈转换为短标签栈。
对短标签栈结构的具体说明,请详见图7所示。以下对首节点如何将长标签栈转换为短标签栈的具体过程进行说明:
首节点以N个长标签为索引,通过查询该标签对应关系的方式,确定对应的N个短标签。首节点再将该N个短标签按报文的传输顺序设置于短标签栈中。首节点确定目标标签的全部比特为首节点的下一跳节点对应的短标签。
步骤808、首节点向下一跳节点转发报文。
具体执行过程,请详见图5所示的步骤505。
步骤809、中间节点接收来自上一跳节点的报文。
本步骤所示的中间节点可为节点路径的任一中间节点。
步骤810、中间节点接收来自控制设备的标签对应关系。
其中,该中间节点所接收到的标签对应关系与首节点所接收到的标签对应关系可相同。可选的,该中间节点所接收到标签对应关系也可只包括该中间节点的短标签和长标签的对应关系。需明确的是,该标签对应关系也可由中间节点提前配置好。也由该中间节点和其他节点进行协商以获取。
步骤811、中间节点判断是否满足触发条件,若是,则执行步骤812。
其中,中间节点判断是否满足该触发条件的具体说明,请参见步骤805所示。
步骤812、中间节点确定出端口和下一跳节点的地址。
其中,因目标标签为该中间节点的短标签,该中间节点以目标标签为索引,通过查询标签对应关系的方式,确定对应的长标签。该长标签关联该中间节点的出端口和下一跳节点的地址。
步骤813、中间节点确定下一跳节点对应的短标签。
其中,中间节点在短标签栈中确定下一跳节点对应的短标签的过程,可参见步骤510所示。
步骤814、中间节点将目标标签替换为下一跳节点对应的短标签。
本实施例中,在中间节点确定出下一跳节点对应的短标签的情况下,可将目标标签的全部比特替换为下一跳节点对应的短标签。
步骤815、中间节点向下一跳节点转发报文。
步骤816、尾节点将短标签栈从报文中剥离。
本实施例所示的步骤815至步骤816的具体执行过程,可参见图5所示的步骤512至步骤513所示。
采用本实施例所示的方法,在无需对长标签进行基于第一数值的统一分配的情况下,节点路径上的各非尾节点直接以短标签为索引,通过查询标签对应关系的方式可确定长标签。
下面结合图9,对本申请中的转发设备和控制设备进行描述。其中,图9可为转发设备的结构示意图。该转发设备可为上述方法实施例中的首节点、中间节点以及尾节点中的任一个。该转发设备包括处理器901、存储器902和收发器903。该处理器901、存储器902和收发器903通过线路互联。其中,存储器902用于存储程序指令和数据。
存储器902存储了支持图5和图8所示步骤中,由节点执行的程序指令和数据。处理器901以及收发器903用于执行图5和图8任一实施例所示的方法步骤。
若转发设备作为首节点,则在图5中,收发器903用于执行步骤502以及步骤506。处理器901用于执行步骤503至步骤505。在图8中,收发器903用于执行步骤803、步骤804以及步骤808。处理器901用于执行步骤805至步骤807。
若转发设备作为中间节点,则在图5中,收发器903用于执行步骤507以及步骤512。处理器901用于执行步骤508至步骤511。在图8中,收发器用于执行步骤809以及步骤815。处理器901用于执行步骤810至步骤814。
若转发设备作为尾节点,则在图5中,处理器901用于执行步骤513。在图8中,处理器901用于执行步骤816。
在另一种可能的实现方式中,图9还可为控制设备的结构示例图。图9所示的存储器902存储了支持图5和图8所示步骤中,由控制设备执行的程序指令和数据,处理器901以及收发器903用于执行图5和图8任一实施例所示的方法步骤。
在图5中,收发器901用于执行图5所示的步骤501。在图8中,收发器901用于执行图8所示的步骤801至步骤802。
下面结合图10,对本申请所提供的通信系统的结构进行说明。如图10所示,本实施例所示的通信系统包括控制设备1001、作为首节点的转发设备1002、一个或多个作为中间节点的转发设备1003以及作为尾节点的转发设备1004。其中,转发设备和控制设备的具体说明,请详见图9所示。本实施例对作为中间节点的转发设备1003的具体数量不做限定。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器901的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中控制设备或转发设备执行的动作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成。程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,随机接入存储器等。具体地,例如:上述处理单元或处理器可以是中央处理器,通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。上述的这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
当使用软件实现时,上述实施例描述的方法步骤可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质等。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种报文传输方法,其特征在于,所述方法包括:
节点获取短标签,所述短标签用于指示下一跳节点转发报文的转发信息,所述短标签的长度小于20比特;
所述节点将目标标签的至少部分比特替换为所述短标签,所述目标标签位于所述报文中;
所述节点向所述下一跳节点发送所述报文;
若所述节点为节点路径的首节点,所述节点路径包括按传输所述报文的顺序排列的所述首节点和N个非首节点,所述节点获取短标签之前,所述方法还包括:
所述节点获取长标签栈,所述长标签栈包括N个长标签,所述N个长标签与所述N个非首节点分别对应,所述长标签用于指示对应的节点转发所述报文的转发信息;
所述节点将所述长标签栈转换为短标签栈,所述短标签栈包括所述目标标签和N个短标签,所述N个短标签与所述N个长标签对应;
所述节点将所述短标签栈封装入所述报文中。
2.根据权利要求1所述的方法,其特征在于,所述目标标签包括第一字段,所述节点将所述长标签栈转换为短标签栈包括:
所述节点确定第一数值,所述N个长标签都包括所述第一数值;
所述节点设置所述第一字段为所述第一数值。
3.根据权利要求1或2所述的方法,其特征在于,所述节点将所述长标签栈转换为短标签栈包括:
所述节点确定所述N个短标签分别为N个第二数值,所述N个第二数值分别为所述N个长标签所包括的部分比特。
4.根据权利要求3所述的方法,其特征在于,所述目标标签还包括第二字段,所述节点为所述节点路径的非尾节点,所述节点将目标标签的至少部分比特替换为所述短标签包括:
所述节点设置所述第二字段为所述第二数值。
5.根据权利要求2所述的方法,其特征在于,所述节点为所述节点路径的非首节点,所述节点将目标标签的至少部分比特替换为所述短标签之前,所述方法还包括:
所述节点确定所述第一字段与预设值相同。
6.根据权利要求1所述的方法,其特征在于,所述节点将所述长标签栈转换为短标签栈包括:
所述节点获取标签对应关系,所述标签对应关系包括所述N个长标签和所述N个短标签的对应关系;
所述节点根据所述标签对应关系确定所述N个短标签。
7.根据权利要求6所述的方法,其特征在于,所述节点为所述节点路径的非尾节点,所述节点将目标标签的至少部分比特替换为所述短标签包括:
所述节点确定所述目标标签为所述短标签。
8.根据权利要求7所述的方法,其特征在于,所述节点为所述节点路径的中间节点,所述节点将目标标签的至少部分比特替换为所述短标签之前,所述方法还包括:
所述节点根据所述标签对应关系,确定与所述目标标签对应的长标签;
所述节点根据所述长标签确定对应的转发信息。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述节点获取短标签包括:
所述节点根据所述短标签栈所包括的至少一个指示字段,获取所述短标签,所述至少一个指示字段用于指示所述短标签。
10.一种转发设备,其特征在于,包括:
处理器、存储器以及收发器,其中,所述处理器、所述存储器以及所述收发器通过线路互联,所述处理器调用所述存储器中的程序代码用于执行如下步骤:
获取短标签,所述短标签用于指示下一跳节点转发报文的转发信息,所述短标签的长度小于20比特;
将目标标签的至少部分比特替换为所述短标签,所述目标标签位于所述报文中;
所述收发器具体用于执行如下步骤:
向所述下一跳节点发送所述报文;
若所述转发设备为节点路径的首节点,所述节点路径包括按传输所述报文的顺序排列的所述首节点和N个非首节点,所述处理器具体用于:
获取长标签栈,所述长标签栈包括N个长标签,所述N个长标签与所述N个非首节点分别对应,所述长标签用于指示对应的节点转发所述报文的转发信息;
将所述长标签栈转换为短标签栈,所述短标签栈包括所述目标标签和N个短标签,所述N个短标签、所述N个长标签分别与所述N个非首节点对应;
将所述短标签栈封装入所述报文中。
11.根据权利要求10所述的转发设备,其特征在于,所述目标标签包括第一字段,所述处理器具体用于:
确定第一数值,所述N个长标签都包括所述第一数值;
设置所述第一字段为所述第一数值。
12.根据权利要求10或11所述的转发设备,其特征在于,所述处理器具体用于:
确定所述N个短标签分别为N个第二数值,所述N个第二数值分别为所述N个长标签所包括的部分比特。
13.根据权利要求12所述的转发设备,其特征在于,所述目标标签还包括第二字段,所述转发设备为所述节点路径的非尾节点,所述处理器具体用于:
设置所述第二字段为所述第二数值。
14.根据权利要求11所述的转发设备,其特征在于,所述转发设备为所述节点路径的非首节点,所述处理器具体用于:
确定所述第一字段与预设值相同。
15.根据权利要求10所述的转发设备,其特征在于,所述处理器具体用于:
获取标签对应关系,所述标签对应关系包括所述N个长标签和所述N个短标签的对应关系;
根据所述标签对应关系确定所述N个短标签。
16.根据权利要求15所述的转发设备,其特征在于,所述转发设备为所述节点路径的非尾节点,所述处理器具体用于:
确定所述目标标签为所述短标签。
17.根据权利要求16所述的转发设备,其特征在于,所述转发设备为所述节点路径的中间节点,所述处理器具体用于:
根据所述标签对应关系,确定与所述目标标签对应的长标签;
根据所述长标签确定对应的转发信息。
18.根据权利要求10至17任一项所述的转发设备,其特征在于,所述处理器具体用于:
根据所述短标签栈所包括的至少一个指示字段,获取所述短标签,所述至少一个指示字段用于指示所述短标签。
19.一种数字处理芯片,其特征在于,所述芯片包括处理器和存储器,所述存储器和所述处理器通过线路互联,所述存储器中存储有指令,所述处理器用于执行如权利要求1至9中任一项所示的报文传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025945.8A CN112714063B (zh) | 2019-10-25 | 2019-10-25 | 一种报文传输方法、设备以及数字处理芯片 |
PCT/CN2020/122573 WO2021078171A1 (zh) | 2019-10-25 | 2020-10-21 | 一种报文传输方法、设备以及数字处理芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911025945.8A CN112714063B (zh) | 2019-10-25 | 2019-10-25 | 一种报文传输方法、设备以及数字处理芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112714063A CN112714063A (zh) | 2021-04-27 |
CN112714063B true CN112714063B (zh) | 2022-08-09 |
Family
ID=75540956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911025945.8A Active CN112714063B (zh) | 2019-10-25 | 2019-10-25 | 一种报文传输方法、设备以及数字处理芯片 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112714063B (zh) |
WO (1) | WO2021078171A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113537605B (zh) * | 2021-07-22 | 2024-04-30 | 广联达科技股份有限公司 | 一种排水线路的确定方法、系统及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN1866919A (zh) * | 2005-12-06 | 2006-11-22 | 华为技术有限公司 | 基于虚拟局域网堆叠的业务交换方法 |
CN101449550A (zh) * | 2006-05-24 | 2009-06-03 | 高通股份有限公司 | 在ad-hoc无线网络中的开销减小 |
CN105210336A (zh) * | 2013-05-17 | 2015-12-30 | 思科技术公司 | 用于ldp/sr互操作性的分段路由映射服务器 |
CN105471737A (zh) * | 2014-09-05 | 2016-04-06 | 华为技术有限公司 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
CN107566272A (zh) * | 2017-10-17 | 2018-01-09 | 新华三技术有限公司 | 转发表建立方法及数据转发方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8149832B2 (en) * | 2004-07-12 | 2012-04-03 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for pushing and/or popping multiple multiprotocol label switching (MPLS) labels/shim headers at a single node |
JP5150551B2 (ja) * | 2009-04-10 | 2013-02-20 | 株式会社日立製作所 | 制御装置 |
US20150003458A1 (en) * | 2013-06-27 | 2015-01-01 | Futurewei Technologies, Inc. | Boarder Gateway Protocol Signaling to Support a Very Large Number of Virtual Private Networks |
-
2019
- 2019-10-25 CN CN201911025945.8A patent/CN112714063B/zh active Active
-
2020
- 2020-10-21 WO PCT/CN2020/122573 patent/WO2021078171A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571359A (zh) * | 2003-07-15 | 2005-01-26 | 华为技术有限公司 | 一种标签展开的多级标签转发方法 |
CN1866919A (zh) * | 2005-12-06 | 2006-11-22 | 华为技术有限公司 | 基于虚拟局域网堆叠的业务交换方法 |
CN101449550A (zh) * | 2006-05-24 | 2009-06-03 | 高通股份有限公司 | 在ad-hoc无线网络中的开销减小 |
CN105210336A (zh) * | 2013-05-17 | 2015-12-30 | 思科技术公司 | 用于ldp/sr互操作性的分段路由映射服务器 |
CN105471737A (zh) * | 2014-09-05 | 2016-04-06 | 华为技术有限公司 | 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置 |
CN107566272A (zh) * | 2017-10-17 | 2018-01-09 | 新华三技术有限公司 | 转发表建立方法及数据转发方法 |
Non-Patent Citations (1)
Title |
---|
"Segment Routing Optimization for VNF Chaining";Yunqing Wang,等;《 ICC 2019 - 2019 IEEE International Conference on Communications (ICC)》;20190715;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021078171A1 (zh) | 2021-04-29 |
CN112714063A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11374848B2 (en) | Explicit routing with network function encoding | |
KR102112487B1 (ko) | 데이터 전송 방법, 장치 및 시스템 | |
EP3154227B1 (en) | Packet transmission method, node, path management server and storage medium | |
CN110401599B (zh) | 数据包的处理方法及装置、存储介质、电子装置 | |
ES2739204T3 (es) | Método de procesamiento de paquete de datos, nodo de servicio y nodo de entrega | |
CN111935014A (zh) | 基于SRv6网络的报文转发方法、装置、存储介质及电子设备 | |
US8681805B2 (en) | Method, device and system for interconnecting a multi-protocol label switching network and an ethernet | |
US20160315864A1 (en) | Packet Processing Method, Apparatus, and System | |
CN111510386B (zh) | 用于处理报文的方法和装置 | |
CN102136989B (zh) | 报文传输的方法、系统和设备 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
US20230370298A1 (en) | Message header processing method and apparatus, storage medium and electronic device | |
CN112491687B (zh) | 一种处理报文的方法及装置 | |
CN106559302A (zh) | 单播隧道建立方法、装置和系统 | |
US8964749B2 (en) | Method, device and system for establishing a pseudo wire | |
WO2016124049A1 (zh) | 用于获取端口路径的方法及装置 | |
CN108712338B (zh) | 报文处理方法及装置 | |
CN112152924A (zh) | 一种在数据中心网络中转发报文的方法及相关装置 | |
CN107370654B (zh) | 一种伪线数据报文的封装、解封装方法和相关装置 | |
CN111147372A (zh) | 下行报文发送、转发方法和装置 | |
CN105530193A (zh) | 确定隧道最大传输单元的方法、网络设备和系统 | |
CN102291305A (zh) | 实现6to4中继路由的方法和设备以及报文转发方法 | |
US20240073128A1 (en) | Message encapsulation and de-encapsulation method and device, storage medium, and electronic device | |
CN112714063B (zh) | 一种报文传输方法、设备以及数字处理芯片 | |
CN112769738A (zh) | DetNet数据包处理方法及装置 |
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 |