CN112787922A - 一种报文处理的方法、网络节点和系统 - Google Patents

一种报文处理的方法、网络节点和系统 Download PDF

Info

Publication number
CN112787922A
CN112787922A CN201911115344.6A CN201911115344A CN112787922A CN 112787922 A CN112787922 A CN 112787922A CN 201911115344 A CN201911115344 A CN 201911115344A CN 112787922 A CN112787922 A CN 112787922A
Authority
CN
China
Prior art keywords
network node
tlv
field
message
tlvs
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
CN201911115344.6A
Other languages
English (en)
Other versions
CN112787922B (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.)
Huawei Technologies 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
Priority to PCT/CN2020/125352 priority Critical patent/WO2021083341A1/zh
Priority to EP20881940.9A priority patent/EP4037266B1/en
Publication of CN112787922A publication Critical patent/CN112787922A/zh
Priority to US17/731,749 priority patent/US20220255857A1/en
Application granted granted Critical
Publication of CN112787922B publication Critical patent/CN112787922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1614Details of the supervisory signal using bitmaps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种报文处理的方法,该方法包括:第一网络节点接收第二网络节点发送的报文,报文包含需要网络节点处理的一个或多个TLV,报文还包括指示报文转发路径上的网络节点需要处理一个或多个TLV中的至少一个TLV的指示信息;第一网络节点根据指示信息确定需要第一网络节点处理TLV,并确定需要第一网络节点处理的TLV;然后,第一网络节点处理需要第一网络节点处理的TLV。通过报文中包含网络节点需要处理TLV的指示信息,网络节点可以根据该指示来决策是否需要处理报文中的TLV,并确定需要处理哪个TLV,提高了报文处理的灵活性。

Description

一种报文处理的方法、网络节点和系统
技术领域
本申请涉及通信领域,尤其涉及一种报文处理的方法、网络节点和系统。
背景技术
分段路由(segment routing,SR)是一种基于源路由理念设计的、在网络上转发数据包的协议,支持在源节点显式指定数据包转发路径。当SR部署在第六版本的互联网协议6(Internet Protocol Version 6,IPv6)数据平面上时,称为IPv6 segment routing(SRv6)。SRv6在IPv6的基础上扩展了段路由头(segment routing header,SRH)。SRH包括段列表(SID List),SID List包括依次排列的多个段标识(segment identification,SID),分别表示多个段,每个段为处理报文的指令或指令集合,SID List也可以称为SegmentList。SRH被封装在报文中,通过其中的Segment List承载SRv6网络对该报文的转发和处理过程。SRH可以携带一个或多个类型-长度-值(type-length-value,TLV)来实现更多的网络功能,例如,通过在SRH中携带现场操作维护管理(in-situ Operations,Administration,and Maintenance,IOAM)TLV来实现OAM功能。
SRv6网络入口处的具有SR功能的节点称为头节点(ingress node)或入口节点,其他具有SR功能的节点称为分段端节点(segment endpoint)。对于SRv6网络中的任一分段端节点,当该分段端节点获取到头节点或其他分段端节点发送的包括SRH的报文时,对该报文进行解析,确定SRH中包括的一个或多个TLV。对于每个TLV,该分段端节点根据本地配置的TLV处理策略判断是否需要处理该TLV。如果需要,则根据该TLV的指示进行后续操作,如果不需要,则无需根据该TLV的指示进行后续操作。
在上述方法中,分段端节点根据本地配置的TLV处理策略判断是否需要处理SRH包括的TLV,需要网管设备分别对分段端节点配置TLV处理策略,导致报文处理的灵活性较低。
发明内容
本申请提供了一种报文处理的方法、网络节点和系统,用于解决现有技术中处理报文中TLV灵活性低的技术问题。
第一方面,本申请实施例提供了一种报文处理的方法,在该方法中,第一网络节点接收第二网络节点发送的报文,该报文包含需要网络节点处理的一个或多个TLV,该报文还包括指示信息,该指示信息指示至少一个网络节点需要处理一个或多个TLV中的至少一个TLV。第一网络节点根据该指示信息确定需要第一网络节点处理一个或多个TLV中的至少一个TLV。第一网络节点根据指示信息确定需要第一网络节点处理的TLV,第一网络节点处理需要第一网络节点处理的TLV。通过上述技术方案,网络节点可以根据接收到的报文中包含的指示信息确定是否需要该网络节点处理报文中的TLV,如果需要处理报文中的TLV,网络节点进一步根据指示信息确定需要处理报文中的哪个或哪些TLV,然后在对需要处理的TLV进行处理。这样可以根据网络拓扑的实际情况通过报文的指示信息来灵活控制哪些网络节点需要对报文的TLV进行处理,以及网络节点需要处理报文中的哪些TLV,从而提高了报文处理的灵活性。
在一种可能的设计中,该指示信息包括一个或多个指示条目,每个指示条目包含第一字段和第二字段,第一字段用于标识需要处理一个或多个TLV中的至少一个TLV的网络节点,第二字段用于标识第一字段所标识的网络节点需要处理的TLV。每个指示条目对应一个需要处理报文中TLV的网络节点,通过在指示信息中包含指示条目的方式可以灵活的指定网络节点处理报文中的TLV。例如,当网络中新增一个网络节点需要处理报文中的TLV时,可以在指示信息中增加一个对应该网络节点的指示条目。
在一种可能的设计中,第二字段为位图(Bitmap)字段,按照从该Bitmap低位到高位的顺序或者从该Bitmap高位到低位的顺序,Bitmap置位为1的比特(bit)位的位数对应第一字段所标识的网络节点需要处理的TLV的序号。举例来说,Bitmap置位为1的bit位的位数是指从Bitmap在报文中的低位到高位的顺序,第几个bit位取值为1。例如,从Bitmap在报文中的低位到高位的顺序,当Bitmap字段第1个bit位置1,则网络节点需要处理一个或多个TLV中的第1个TLV;当Bitmap字段第1个bit位和第3个bit位分别都置1时,则网络节点需要分别处理多个TLV中的第1个TLV和第3个TLV。
在一种可能的设计中,当第一网络节点确定一个或多个指示条目中包括特定指示条目,并且特定指示条目的第一字段的值与报文的SRH的剩余段(segment left,SL)的值对应时,所述第一网络节点确定需要该第一网络节点处理一个或多个TLV中的至少一个TLV。
在一个可能的设计中,特定指示条目中的第一字段的值与报文SRH的SL的值对应具体为:第一字段的值与SRH中的SL的值相等,或者第一字段的值与SRH中的SL的值加n相等,即,第一字段的值=SL+n,其中n取值为大于或等于1的整数。
在一种可能的设计中,该第一字段包括第一子字段和第二子字段,第一网络节点根据指示信息确定需要第一网络节点处理一个或多个TLV中的至少一个TLV包括:
当第一网络节点确定一个或多个指示条目中包括特定指示条目,并且该特定指示条目的第一子字段的值与报文的SRH中的SL的值对应,并且该第二子字段的值与报文的SRH中的剩余压缩段标识的值对应时,所述第一网络节点确定需要第一网络节点处理一个或多个TLV中的至少一个TLV。通过在指示条目中包含剩余压缩段标识可以实现包含压缩SID的报文的处理,使得该方法应用的场景更广泛。在一个示例中,剩余压缩段标识可以为压缩SID剩余(compressed SID left,CL)。
在一个可能的设计中,特定指示条目中的第一子字段的值与报文SRH的SL的值对应具体为:第一子字段的值与SRH中的SL的值相等,或者第一子字段的值与SRH中的SL的值加n相等,即,第一子字段的值=SL+n,其中n取值为大于或等于1的整数。第二子字段的值与报文的SRH中的剩余压缩段标识的值对应具体为:第二子字段的值与SRH中的剩余压缩段标识的值相等,或者第二子字段的值与SRH中的剩余压缩段标识的值加n相等,即,第二子字段的值=剩余压缩段标识+n,其中n取值为大于或等于1的整数。
在一种可能的设计中,当第一网络节点确定一个或多个指示条目中包括特定指示条目,并且特定指示条目的第一字段的值与第一网络节点的标识相同时,第一网络节点确定需要第一网络节点处理一个或多个TLV中的至少一个TLV。例如,当第一网络节点的标识为1::1时,并且特定指示条目的第一字段的值也为1::1时,第一网络节点确定需要第一网络节点处理一个或多个TLV中的至少一个TLV。
在一种可能的设计中,第一网络节点根据指示信息确定需要第一网络节点处理的TLV包括:第一网络节点确定特定指示条目的第二字段所标识的TLV为需要第一网络节点处理的TLV。
在一种可能的设计中,指示信息还包括第三字段,第三字段用于标识需要处理TLV的网络节点的数量,例如,当有4个网络节点需要处理TLV时,第三字段的值也为4。可选地,第三字段还可以用于标识指示信息中包含的指示条目的数量。例如,当指示信息中包含3个指示条目时,第三字段的值为3。
在一种可能的设计中,所述第一网络节点根据所述第一字段、所述第二字段和所述第三字段确定所述特定指示条目在所述报文中的位置。
在一种可能的设计中,所述第一网络节点按照如下公式确定所述特定指示条目在报文中的位置:
该特定指示条目在报文中的起始位置=第三字段在报文中的结束位置+(第三字段的值-1)*(第一字段的长度+第二字段的长度)。
在一种可能的设计中,第一网络节点将报文中的第三字段的取值减1得到更新后的报文;第一网络节点发送更新后的报文。通过将第三字段的取值减少1,可以实现接收到更新后报文的网络节点正确识别其是否需要处理报文中的TLV。
在一种可能的设计中,该指示信息以TLV的方式包含在报文的SRH中。
第二方面,本申请实施例提供了一种报文处理的方法,该方法包括:第二网络节点获得第一报文;第二网络节点在第一报文中添加指示信息和第一报文的转发路径上的网络节点需要处理的一个或多个TLV生成第二报文,指示信息指示至少一个网络节点需要处理一个或多个TLV中的至少一个TLV,指示信息还用于指示该至少一个网络节点需要处理的TLV。通过上述技术方案,第二网络节点通过在报文中包含指示信息来控制哪些网络节点需要对报文的TLV进行处理。第一网络节点在接收到报文后,根据指示信息来确定该节点是否需要对报文中包含的TLV进行处理,如果确定需要对报文中的TLV进行处理,则进一步根据指示信息来确定需要处理报文中的哪个或哪些TLV,从而提高了报文处理的灵活性,不再需要控制器来单独为每个网络节点配置TLV处理策略
在一种可能的设计中,所述指示信息包括一个或多个指示条目,每个指示条目包括第一字段和第二字段,第一字段用于标识需要处理一个或多个TLV中的至少一个TLV的网络节点,第二字段用于标识第一字段所标识的网络节点需要处理的TLV。
在一种可能的设计中,指示信息还包括第三字段,第三字段用于标识需要处理TLV的网络节点的数量。可选地,第三字段还可以用于标识指示信息中包含的指示条目的数量。
在一种可能的设计中,第二字段为Bitmap字段。该指示信息还包括第四字段,第四字段用于标识所述第二字段的长度。Bitmap的长度可以根据网络节点需要处理的TLV的数量来调整,例如当该一个或多个TLV的数量为1到8个时,该Bitmap的长度可以为1个字节(8个bit),当该一个或多个TLV的数量为9到16个时,该Bitmap的长度可以为2个字节。
在一种可能的设计中,该指示信息包含在处理规则(Processing Rule,PR)TLV中,所述第二网络节点在所述第一报文中添加指示信息包括:
所述第二网络节点在所述第一报文中添加SRH,所述SRH包含所述PR TLV。
在一种可能的设计中,该第一报文还包括应用程序标识(application identify,APP ID)或其他应用相关信息,该第二网络节点根据该APP ID或其他应用相关信息确定第一报文的转发路径,并确定对应该转发路径的Segment List,然后在第一报文中添加转发路径上的网络节点需要处理的一个或多个TLV生成第二报文。
在一种可能的设计中,第二网络节点根据第一报文的属性信息确定该第一报文的APP ID或其他应用相关信息,并根据该APP ID或其他应用相关信息确定第一报文的转发路径,并确定对应该转发路径的Segment List,然后在第一报文中添加转发路径上的网络节点需要处理的一个或多个TLV生成第二报文。
第三方面,本申请实施例提供了一种网络节点,用于执行第一方面或第一方面的任意一种可能的设计中的方法。具体地,该第一网络节点包括用于执行第一方面或第一方面的任意一种可能的设计中的方法的单元。
第四方面,本申请实施例提供了一种网络节点,用于执行第二方面或第二方面的任意一种可能的设计中的方法。具体地,该第二网络节点包括用于执行第二方面或第二方面的任意一种可能的设计中的方法的单元。
第五方面,本申请实施例提供了一种网络节点,应用于包括多个网络节点的网络系统,多个网络节点包括第一网络节点和第二网络节点,该网络节点为第一网络节点,该第一网络节点包括:处理器和网络接口。网络接口用于报文的接收和发送。处理器用于执行前述第一方面或第一方面的任意一种可能的设计中的方法。
在一种可能的设计中,该第一网络节点还包括存储器,存储器可以用于存储指令或程序代码,处理器用于调用存储器中的指令或程序代码执行前述第一方面或第一方面的任意一种可能的设计中的方法。
第六方面,本申请实施例提供了一种网络节点,应用于包括多个网络节点的网络系统,多个网络节点包括第一网络节点和第二网络节点,该网络节点为第二网络节点,该第二网络节点包括:处理器和网络接口。网络接口用于报文的接收和发送。处理器用于执行前述第二方面或第二方面的任意一种可能的设计中的方法。
在一种可能的设计中,该第二网络节点还包括存储器,存储器可以用于存储指令或程序代码,处理器用于调用存储器中的指令或程序代码执行前述第二方面或第二方面的任意一种可能的设计中的方法。
第七方面,本申请实施例提供了一种报文处理的系统,该系统包含前述方面提供的第一网络节点和第二网络节点。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括指令或程序代码,当其在计算机上执行时,使得计算机执行前述方面所述的方法。
第九方面,本申请实施例提供了一种包括计算机指令的计算机程序产品,当该计算机程序产品在网络节点上运行时,使得网络节点执行第一方面、第二方面、第一方面的任意一种可能的实现方式或第二方面的任意一种可能的实现方式中提供的方法。
第十方面,本申请实施例提供了一种芯片,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行上述第一方面或第一方面的任意一种可能的设计中的方法,或者,处理器执行第二方面或第二方面任意一种可能的设计中的方法。
在一种可能的设计中,上述芯片仅包括处理器,处理器用于读取并执行存储器中存储的指令或程序代码,当指令或程序代码被执行时,处理器执行第一方面或第一方面的任意一种可能的设计中的方法,或者,处理器执行第二方面或第二方面的任意一种可能的设计中的方法。
附图说明
图1为本申请实施例提供的一种报文处理方法的应用场景示意图;
图2A为本申请实施例提供的一种SRH的格式示意图;
图2B为本申请实施例提供的另一种SRH的格式示意图;
图3为本申请实施例提供的一种SID的格式示意图;
图4A为本申请实施例提供的一种设备的结构示意图;
图4B为本申请实施例提供的一种设备的结构示意图;
图5为本申请实施例提供的一种报文处理方法的流程示意图;
图6A为本申请实施例提供的一种PR TLV的格式示意图;
图6B为本申请实施例提供的另一种PR TLV的格式示意图;
图7为本申请实施例提供的另一种SRH的格式示意图;
图8为本申请实施例提供的一种报文处理方法的流程示意图;
图9A为本申请实施例提供的一种报文处理方法的应用场景示意图;
图9B为本申请实施例提供的一种报文处理方法的应用场景示意图;
图10A为本申请实施例提供的一种报文处理方法的流程示意图;
图10B为本申请实施例提供的一种报文处理方法的流程示意图;
图11A为本申请实施例提供的一种PR TLV的格式示意图;
图11B为本申请实施例提供的另一种PR TLV的格式示意图;
图12为本申请实施例提供的一种网络节点的结构示意图;
图13为本申请实施例提供的一种网络节点的结构示意图;
图14为本申请实施例提供的一种报文处理系统的示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
图1是本申请实施例提供的一种报文处理方法的应用场景示意图。如图1所示,该场景包括网络节点A、B、C、D、E、F、G、H、I、K和R。在本申请实施例中的网络节点可以简称为节点。
具有SR功能的节点需要预先向网络中其他节点发布该节点的SID,并能根据SRH对报文进行转发或处理。在SRv6技术中,节点发布的SID可以为节点的IPv6地址。本申请实施例中的网络节点可以为路由器、交换机或其他网络设备,其中节点A和节点K还可以为主机或用户接入设备。另外,图1所示的场景构成的网络也可以称为SRv6网络。
在一个示例中,各个节点的角色是可以是预先配置的。比如,可以通过网络中的控制器来配置节点B为分段路由网络的头节点,节点R、节点E、节点F、节点H和节点I为分段路由网络中的分段端节点。各个节点的角色配置之后,各个节点在接收到报文时,便可根据配置的角色对报文进行相应处理。
以图1所示场景为例,节点B接收节点A发送的报文,该报文为基于IPv6协议的报文,该报文包括IPv6报文头(header,Hdr)和有效载荷(payload),该IPv6报文头的简化格式如图1中的IPv6 Hdr 1所示,该IPv6报文头在本申请实施例中可以称为第一IPv6报文头。IPv6报文头中的源地址(source address,SA)为节点A的地址,目的地址(destinationaddress,DA)为节点K的地址。由于节点B是分段路由网络的头节点,因此,节点B需要在报文头中添加对应报文转发路径的Segment List。Segment List包含转发路径上SID,如节点SID或链路的SID。节点B可以自己确定该报文在分段路由网络中的转发路径,然后自己生成对应转发路径的Segment List。可选地,控制器根据业务需求计算转发路径,并生成对应该转发路径的Segment List,然后向节点B发送该Segment List。假设该转发路径经过节点B、C、E、G、H和I。其中,节点E、H和I为具有SR功能的节点,这三个节点之间形成的三段链路构成了报文在分段路由网络中的分段路由链路,因此,这三个节点还可以称为报文在分段路由网络的转发路径上的分段端节点。节点B可以对该报文添加SRH和新的IPv6报文头,SRH的简化格式如图1中的SRH所示,该新的IPv6报文头的简化格式如图1中的IPv6 Hdr 2所示。该新的IPv6报文头在本申请实施例中可以称为第二IPv6报文头。在报文中添加了第二IPv6报文头后,该第一IPv6报文头也可以算是报文有效载荷的一部分。其中,SRH中包括SegmentList,Segment List中包括:节点E、H和I的地址。可选地,SRH也可以包括节点K的地址。第二IPv6报文头的目的地址为节点E的地址,源地址为节点B的地址。节点B将添加了SRH和第二IPv6报文头的该报文发送至节点C。节点C确定报文的第二IPv6报文头的目的地址不是节点C的地址,因此,节点C直接根据报文的第二IPv6报文头中的目的地址查找转发表,将报文发送至节点E。节点E接收到报文之后,判断第二IPv6报文头中的目的地址为节点E的地址,节点E解析报文的SRH,用SRH中Segment List中的节点E的SID之后的下一个SID更新第二IPv6报文头中的目的地址,即:用节点H的地址更新第二IPv6报文头中的目的地址,并将更新后的报文通过节点G转发至节点H。节点G处理报文的方式和节点C处理报文的方式类似,直接根据报文的第二IPv6报文头中的目的地址查找转发表进行报文转发。当节点H接收到报文后,由于第二IPv6报文头中的目的地址为节点H的地址,节点H解析报文的SRH,用SRH中Segment List中节点H的SID之后的下一个SID更新第二IPv6报文头中的目的地址,即:用节点I的地址更新第二IPv6报文头中的目的地址,并将更新后的报文转发至节点I。当节点I接收到报文后,根据转发路径确定节点I的SID为Segment List中的最后以一个SID,则可以删掉报文中的SRH和第二IPv6报文头,使用第一IPv6报文头进行报文转发。由于第一IPv6报文头的目的地址为节点K的地址,节点I将报文发送至节点K。通过上述方式,便可实现节点A通过SRv6网络将报文发送至节点K。
图2A是本申请实施例提供的一种SRH的格式示意图。如图2A所示,SRH包括用于指示下一个报文头类型(Next Header)的字段,用于指示SRH头的长度(Hdr Ext Len)的字段,用于指示路由类型(Routing Type)的字段。SRH还包括用于指示报文还应当经过的分段端节点的数量(Segment Left,SL)的字段,该字段还可以称为剩余节点字段。SRH还包括用于指示Segment List中最后一个元素的索引(Last Entry)的字段,用于指示数据包的标识(Flags)的字段,用于指示同组数据包(Tag)的字段。SRH中还包括段列表Segment List,Segment List包括Segment List[0],Segment List[1],……,Segment List[n]。其中Segment List中的每个元素对应一个SID,每个SID可以为一个IPv6地址或一个IPv6地址的一部分,每个SID用于标识一个网络节点或一个链路。
另外,如图2A所示,SRH中还包括可选TLV(optional type length value),通过这些可选TLV,SRH可以实现更多的功能,比如可以实现故障诊断检测,IOAM等。
图2B是本申请实施例提供的另一种SRH的格式示意图。图2B所示的SRH和图2A所示的SRH的区别在于,图2A中的Segment List中的一个或多个元素在图2B中可以包含多个节点的SID,如:图2B中的Segment List[1]的位置包括CSID 1、CSID 2、CSID 3和CSID4。CSID1、CSID 2、CSID 3和CSID 4分别为一个节点的SID。在图2A中128bit的一个Segment List的元素在图2B中可以存储多个节点的SID,在这种情况下的SID可以成为压缩SID,每个压缩SID占用的比特位小于128bit,举例来说,如图2B中,每个压缩SID占用32bit。另外,在图2B中SRH还包括压缩SID剩余(compressed SID left,CL)字段,CL字段用于标识包含压缩SID的Segment List中的压缩SID的位置。举例来说,参见图9B,当节点E接收到报文后,确定报文的IPv6头的目的地址为节点E地址,进一步确定SRH中的SL等于1,则从Segment List[1]中获取报文转发过程中的下一个节点的SID。由于节点E自己知道自己的SID被压缩过,因此,要根据CL的值来确定报文转发路径上的下一个节点的SID,具体的,可以通过CL的取值来确定下一跳节点的SID,例如当CL取值为1时,获得Segment List[1]中的第1个CSID,即确定下一跳节点的SID为CISD 1。包含有压缩SID的SRH可以称为压缩的路由头(compressedrouting header,CRH),也可以称为压缩段路由头(compress segment routing header,C-SRH)。
在一些实施例中,如图3所示,每个SID是一个128比特的IPv6地址。每个SID可以包括两部分,一部分为定位(Locator)字段,另一部分为功能(Function)字段。定位字段占据128个比特位中的高比特位。举例来说,Function字段占据128个比特位中第64-127比特位,Locator字段占据128个比特位中的第0-63比特位。Locator字段用于对报文进行路由转发,Function字段用于指示SID对应的节点执行特定的功能。
图4A是本申请实施例提供的一种设备400的结构示意图。图1中的节点可以通过图4A所示的设备来实现。参见图4A,该设备400包括至少一个处理器401,通信总线402以及至少一个网络接口404,可选地,该设备400还可以包括存储器403。
处理器401可以是一个通用中央处理器(central processing unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路(integrated circuit,IC)。处理器可以用于对接收到的报文进行处理,以实现本申请实施例中提供的报文处理的方法。
比如,当图1中的头节点通过图4A所示的设备来实现时,该处理器可以用于在接收到的报文中添加包括需要网络节点处理的TLV的SRH,以便于后续分段端节点可以对TLV的处理,具体功能实现可参考方法实施例中对应节点的处理部分。又比如,当图1中的分段端节点通过图4A所示的设备来实现时,该处理器可以用于在接收到的携带SRH的报文中获取TLV,并对TLV进行的处理,具体功能实现可参考方法实施例中分段端节点的处理部分。
通信总线402用于在处理器401、网络接口404和存储器403之间传送信息。
存储器403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,存储器403还可以是随机存取存储器(random accessmemory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(compact disc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器403可以是独立存在,通过通信总线402与处理器401相连接。存储器403也可以和处理器401集成在一起。
可选地,存储器403用于存储执行本申请方案的程序代码或指令,并由处理器401来控制执行。处理器401用于执行存储器403中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器401也可以存储执行本申请方案的程序代码或指令,在这种情况下处理器401不需要到存储器403中读取程序代码或指令。
网络接口404可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。在本申请实施例中,网络接口404可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口404可以为以太接口(ethernet)接口、快速以太(fast ethernet,FE)接口或千兆以太(gigabit ethernet,GE)接口等。
在具体实现中,作为一种实施例,设备400可以包括多个处理器,例如图4A中所示的处理器401和处理器405。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
图4B是本申请实施例提供的一种设备500的结构示意图。图1中的节点可以通过图4B所示的设备来实现。参见图4B所示的设备结构示意图,设备500包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(route processor card),主控板包括CPU和存储器,主控板负责对设备500中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(line processing unit,LPU)或线卡(line card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备500也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(switch fabric unit,SFU)。接口板包括CPU、存储器、转发引擎和接口卡(interfacecard,IC),其中接口卡可以包括一个或多个网络接口。网络接口可以为Ethernet接口、FE接口或GE接口等。CPU与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备500的互联网协议(Internet Protocol,IP)地址,则将该报文发送给主控板或接口板的CPU进行处理;如果接收到的报文的目的地址不是设备500的IP地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。转发引擎可以是网络处理器(network processor,NP)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板CPU。在一些实施例中,CPU也可执行转发引擎的功能,比如基于通用CPU实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。
如图1所示,分段路由网络中的头节点在接收到的报文中添加SRH,SRH包含需要报文转发路径上网络节点处理的一个或多个TLV,分段路由网络中的各个节点在接收到包括SRH的报文时,先根据报文中的指示信息判断是否需要处理SRH包括的TLV,如果确定需要处理SRH中包括的TLV中的一个或多个,则进一步确定需要处理哪个或哪些TLV。在确定了具体需要处理的TLV后,则对需要处理的TLV进行处理。本申请实施例中处理TLV指在TLV中添加信息,或者根据TLV的内容进行相应的操作。下面将通过实施例对上述过程进行说明。
结合图1所示的应用场景,参见图5,本申请实施例提供了一种报文处理的方法。如图5所示,该方法包括如下步骤:
S501,第二网络节点获得第一报文。第二网络节点可以为图1所示场景中的节点B。第二网络节点获得第一报文可以通过两种方式:
第一种方式,第二网络节点接收图1中节点A发送的第一报文。
第二种方式,第二网络节点自己生成第一报文。
S502,第二网络节点在第一报文中添加指示信息和第一报文的转发路径上的网络节点需要处理的一个或多个TLV生成第二报文。该指示信息指示至少一个网络节点需要处理一个或多个TLV中的至少一个TLV。该指示信息还用于指示该至少一个网络节点需要处理一个或多个TLV中的哪个或哪些TLV。可选地,第二网络节点根据第一报文的相关信息确定第一报文的转发路径,然后根据该转发路径上的网络节点的位置或功能或报文的属性确定需要网络节点处理的一个或多个TLV。第一报文的相关信息可以为第一报文的五元组中的一个或多个元素的组合,例如第二网络节点根据第一报文的目的地址确定转发路径。
在一个示例中,所述指示信息包括一个或多个指示条目,每个所述指示条目包含第一字段和第二字段,所述第一字段用于标识需要处理所述一个或多个TLV中的至少一个TLV的网络节点,所述第二字段用于标识所述第一字段所标识的网络节点需要处理的TLV。
在一个示例中,第二网络节点存储有TLV策略(Policy),该TLV策略包含报文属性和需添加到报文中的TLV的对应关系。举例来说,第二网络节点从用户侧设备(如图1中节点A)接收第一报文,然后根据第一报文的报文属性匹配该TLV策略,然后将该TLV策略中的TLV添加到第一报文中生成该第二报文。报文的五元组包括:目的地址、源地址、目的端口号、源端口号和协议号。其中,报文属性可以是报文的五元组中任意一个元素或为多个元素的组合,例如:报文属性为报文的目的地址,或者报文的属性为报文的目的地址和源地址的组合。
在一个示例中,所述指示信息以TLV的方式包含在所述报文的SRH中,该TLV可以称为PR TLV。参见图6A,图6A为本申请实施例提供的指示信息的报文格式示意图,其中PR TLV包括:
类型(Type)字段,用于指示TLV的类型为PR TLV;
长度(Length)字段,用于指示PR TLV的数据部分的长度;
位图长度(Bitmap length)字段,用于标识PR TLV中Bitmap的长度,如Bitmap n或Bitmap m占的字节长度;
索引号(Index No)字段,用于标识需要对报文的TLV进行处理的节点的数量,或者标识PR TLV中包含的指示条目的数量;
段标识索引n(SID index n)字段,用于标识一个需要处理报文中TLV的节点,其取值与该节点对应的SL对应;
位图n(Bitmap n)字段,用于标识SID index n所对应的节点需要处理的TLV;
段标识索引m(SID index m)字段,用于标识另一个需要处理报文中TLV的网络节点,其取值与该节点对应的SL对应;
位图m(Bitmap m)字段,用于标识SID index m所对应的网络节点需要处理的TLV。
在图6A所示的PR TLV格式中,SID index和Bitmap的组合可以作为指示信息中的一个指示条目。例如:SID index n和Bitmap n的组合可以作为所述指示信息的一个指示条目。SID index m和Bitmap m的组合可以作为所述指示信息的另一个指示条目。指示条目也可以称为处理规则条目(Processing Rule Entry)。SID index为指示条目中的第一字段,用于标识需要处理报文中的TLV的节点。Bitmap为指示条目中的第二字段,用于标识该第一字段所标识的节点需要处理的TLV。该Index No可以作为指示信息的第三字段,用于标识需要对报文的TLV进行处理的网络节点的数量。Bitmap length可以作为指示信息的第四字段,用于标识指示条目中的第二字段的长度。
参见图6B,图6B为本申请实施例提供的指示信息的另一种报文格式示意图,其中type字段、length字段、Bitmap length字段、Index No、SID index和Bitmap字段的含义与图6A中对应的字段相同。图6B中的压缩段标识索引(CSID Index)字段用于与SID index一起来确定一个需要处理报文中TLV的节点。在这种情况下,SID index、CSID和Bitmap的组合可以作为指示信息中的一个指示条目。例如,SID index n、CSID index n和Bitmap n的组合可以作为所述指示信息的一个指示条目,SID index m、CSID index m和Bitmap m的组合可以作为所述指示信息的另一个指示条目。
参见图7,图7为本申请实施例提供的包含PR TLV的SRH格式示意图,其中PR TLV位于SRH中Segment List和需要节点处理的可选TLV之间。
S503,第二网络节点向转发路径上的第一网络节点发送第二报文。
S504,第一网络节点接收第二网络节点发送的第二报文。
S505,第一网络节点根据指示信息确定需要第一网络节点处理所述一个或多个TLV中的至少一个TLV。并根据所述指示信息确定需要第一网络节点处理的TLV,需要第一网络节点处理的TLV可以包括一个或多个TLV。
在一个示例中,当第一网络节点确定一个或多个指示条目中包括特定指示条目,并且特定指示条目的第一字段的值与报文的SRH中的SL的值对应时,所述第一网络节点确定需要该第一网络节点处理一个或多个TLV中的至少一个TLV。特定指示条目中的第一字段的值与报文SRH的SL的值对应具体为:第一字段的值与SRH中的SL的值相等,或者第一字段的值与SRH中的SL的值加n相等,即,第一字段的值=SL+n,其中n取值为大于或等于1的整数。
在一个示例中,所述第一字段包括第一子字段和第二子字段,所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV包括:当所述第一网络节点确定所述一个或多个指示条目中包括特定指示条目,并且所述特定指示条目的第一子字段的值与所述报文的SRH中的SL的值对应,并且所述第二子字段的值与所述报文的SRH中的CL的值对应时,所述第一网络节点确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV。结合图6B,指示条目中的第一字段为图6B中的<SID index,CSID index>的组合。其中,第一字段的第一子字段为SID index,第一字段的第二子字段为CSID index。
在一个示例中,特定指示条目中的第一子字段的值与报文SRH的SL的值对应具体为:第一子字段的值与SRH中的SL的值相等,或者第一子字段的值与SRH中的SL的值加n相等,即,第一子字段的值=SL+n,其中n取值为大于或等于1的整数。第二子字段的值与报文的SRH中的剩余压缩段标识的值对应具体为:第二子字段的值与SRH中的剩余压缩段标识的值相等,或者第二子字段的值与SRH中的剩余压缩段标识的值加n相等,即,第二子字段的值=剩余压缩段标识+n,其中n取值为大于或等于1的整数。
在一个示例中,当第一网络节点确定所述一个或多个指示条目中包括一个特定指示条目,并且所述特定指示条目的第一字段的值与所述第一网络节点的标识相同时,所述第一网络节点确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV。
S506,第一网络节点处理需要第一网络节点处理的TLV。
在一个示例中,第一网络节点确定该特定指示条目的第二字段所标识的TLV为需要所述第一网络节点处理的TLV。例如,当第二字段为Bitmap时,第一网络节点确定Bitmap字段第1个bit位和第3个bit位分别都置为1时,则第一网络节点确定需要第一网络节点分别处理多个TLV中的第1个和第3个TLV。可选地,当第二字段为一个具体数值时,如第二字段取值为4,则第一网络节点确定需要第一网络节点处理多个TLV中的第4个TLV,或者,当第二字段取值为34时候,第一网络节点确定需要第一网络节点处理多个TLV中的第3个和第4个TLV。
在一个示例中,所述第一网络节点按照如下公式确定所述特定指示条目在所述报文中的位置:
所述特定指示条目在报文中的起始位置=所述第三字段在报文中的结束位置+(所述第三字段的值-1)*(所述第一字段的长度+所述第二字段的长度)。该公式中“*”代表乘法的含义。
该公式的含义为:第三字段在报文中的结束位置偏移特定长度后的位置就是该特定指示条目在报文中的起始位置,该特定长度的值为(第三字段的值-1)与(第一字段的长度+第二字段的长度)的乘积。该第三字段在报文中的结束位置也可以称为是第三字段在报文中的尾部。
通过上述技术方案,第二网络节点通过在报文中包含指示信息来控制哪些网络节点需要对报文的TLV进行处理。第一网络节点在接收到报文后,根据指示信息来确定该节点是否需要对报文中包含的TLV进行处理,如果确定需要对报文中的TLV进行处理,则进一步根据指示信息来确定需要处理报文中的哪个或哪些TLV,从而提高了报文处理的灵活性,不再需要控制器来单独为每个网络节点配置TLV处理策略。
结合图1所示的应用场景,参见图8,本申请实施例提供了一种报文处理的方法流程图。如图8所示,该方法包括如下步骤:
S801,第一网络节点向网络中其他节点发布能力通告消息,该能力通告消息指示第一网络节点能够识别报文中的PR TLV的能力,也就是说第一网络节点支持处理报文中指定TLV的能力。
S802,第二网络节点获得第一报文,并在第一报文中插入SRH生成第二报文。该SRH包括Segment List、前述实施例中的PR TLV以及需要网络节点处理的TLV。其中,需要网络节点处理的TLV按顺序排列,例如TLV1、TLV2和TLV3。在第二网络节点接收到第一网络节点发送的能力通告消息后,如果确定第一网络节点在该第一报文的转发路径上,并且根据网络拓扑或业务需求确认需要第一网络节点处理特定TLV时,则在PR TLV添加对应第一网络节点的指示条目,以指示第一网络节点处理报文中的特定TLV。
S803,第二网络节点向第一网络节点发送第二报文。
S804,第一网络节点接收到第二报文后,解析PR TLV,判断是否需要第一网络节点处理第二报文中包含的TLV。
在一个示例中,第一网络节点根据PR TLV中的Index No按照图5所述实施例中的公式获得第一网络节点可能识别的指示条目,第一网络节点根据接收的第二报文的SRH中的SL判断第一网络节点是否需要处理第二报文中的TLV,例如:当SL与获得的指示条目中的SID index取值相同时,确定需要第一网络节点处理该获得的指示条目中Bitmap所对应的TLV。
S805,当第一网络节点确定需要第一网络节点处理第二报文中包含的TLV时,进一步确定需要第一网络节点处理第二报文包含的TLV中的哪个或哪些TLV。
在一个示例中,第二网络节点根据获得的指示条目中的Bitmap确定需要第一网络节点处理的TLV。举例来说,从所述Bitmap低位到高位的顺序,Bitmap置位为1的bit的位数对应第一网络节点需要处理的TLV的序号,例如,当Bitmap的第2个bit取值为1时,则第一网络节点确定需要处理第二报文包含的TLV中的第2个TLV。
S806,第一网络节点处理确定需要第一网络节点处理的TLV。举例来说,当第一网络节点确认需要处理的TLV为IOAM TLV时,第一网络节点根据IOAM TLV的指示将接收第二报文时间或发送第二报文的出接口添加到IOAM TLV中。
当第一网络节点确定不需要第一网络节点处理第二报文中包含的TLV时,避免处理所述第二报文包含的TLV。
本申请实施例中第一网络节点和第二网络节点的硬件结构可以参见图4A或图4B。
通过上述技术方案,第一网络节点在接收到报文后,根据指示信息来确定该节点是否需要对报文中包含的TLV进行处理,如果确定需要对报文中的TLV进行处理,则进一步根据指示信息来确定需要处理报文中的哪个或哪些TLV,如果确定不需要对报文中的TLV进行处理,则避免处理报文中的TLV,能够提高报文处理的灵活性。
结合图9A,对本申请实施例提供的报文处理的方法进行举例,参见图10A,该方法具体包括以下步骤:
S1001,节点B从节点A接收第一报文,该第一报文为IPv6报文,该第一报文的第一IPv6报文头的目的地址为节点K的IPv6地址,该第一IPv6报文头的源地址为节点A的IPv6地址。节点B获得转发策略,该转发策略可以为节点B从网络中的控制器获得的,也可以是预先在节点B上配置的。该转发策略如表1所示,其中匹配条件可以为报文的五元组中任意一个元素或为报文的五元组中多个元素的组合,例如:匹配条件为报文的目的地址,或者匹配条件为报文的目的地址和源地址的组合。当匹配条件为报文的目的地址和源地址的组合时,只有报文的源地址和匹配条件的源地址匹配,并且报文的目的地址与匹配条件的目的地址匹配,才算是匹配成功。可选地,匹配条件还可以包括APP ID或其他应用相关的信息,例如,匹配条件包括第一报文的APP ID和报文的五元组中的一个或多个元素的组合,如表1中序号为2的表项,其中匹配条件为:APP ID和报文的目的地址的组合。该转发策略包括匹配条件和Segment List的对应关系。其中,匹配条件可以为报文的目的地址,如节点K的IPv6地址,Segment List中的E代表节点E的IPv6地址或节点E的SID,H代表节点H的IPv6地址或节点H的SID,I代表节点I的IPv6地址或节点I的SID。
表1转发策略
Figure BDA0002273882130000141
节点B还获得如步骤S501中的TLV策略,该TLV策略如表2所示。其中,报文属性可以是报文的五元组中任意一个或组合,也可以是报文中的其他信息如:差分服务代码点(Differentiated Services Code Point,DSCP)或APP ID等。该转发策略和TLV策略的组合也可以成为SR策略。TLV选项为需要添加到报文的TLV,其中,TLV1、TLV2和TLV3在图7中PRTLV之后按顺序排列,如顺序为:PR TLV、TLV1、TLV2和TLV3。
表2 TLV策略
Figure BDA0002273882130000142
在一个示例中,TLV1可以为防火墙(firewall,FW)TLV,TLV2可以为IOAM TLV,TLV3可以为确定性网络(deterministic networking,DetNet)TLV。DetNet TLV需要在多发选收的节点处理,如:I节点。FW TLV可以被节点E处理,OAM TLV可以被节点E、H处理。其中,DetNet TLV携带报文序列号。需要处理DetNet TLV的节点根据该DetNet TLV携带的报文序列号,选择存储第1个接收到具有该序列号的报文,对于后续再接收具有该序列号的报文进行丢弃处理。IOAM TLV携带需要收集的与网络性能有关系的参数的指示,例如,指示需要处理IOAM TLV的节点将接收到报文的时间、接收到报文的入接口或发送报文的出接口信息添加到IOAM TLV中,便于网络管理设备、或其他节点进行网络性能的检测。FW TLV包含有指示信息,该指示信息用于指示需要处理FW TLV的网络节点将报文发送给防火墙处理。
S1002,节点B根据第一报文的相关信息匹配转发策略。例如,根据第一IPv6报文头的目的地址匹配转发策略。举例来说,当根据第一IPv6报文头的目的地址匹配到转发策略中的序号1对应的表项时,则获得表项1的Segment List。然后在第一报文的报文中添加SRH和第二IPv6报文头生成第二报文,该SRH包括序号为1的表项的Segment List。然后根据第一报文的属性匹配如表2所示的TLV策略,例如匹配到表2中序号为1的表项,然后将序号为1的表项中的TLV策略中的TLV选项添加到SRH中。并将SRH中的SL字段取值为2,SL取值为2表示节点A发送的报文将在SRv6网络中经过3个能够处理SRH的节点,这3个节点分别为节点E、节点H和节点I。节点A发送的报文在SRv6网络转发过程中要使用SRH中的3个Segment List元素,分别是:Segment List[0]、Segment List[1]和Segment List[2]。第二IPv6报文头的源地址为节点B的地址,目的地址为节点E的地址。
节点B根据Segment List中的各个节点在网络中的位置或能力,确定各个节点需要处理的TLV。如,节点I为多发选收节点,也就是说I节点可能从G节点或H节点接收报文,但是需要选择性的丢弃一些报文。因此,节点I需要处理报文中TLV 3。节点E为连接防火墙的节点,需要指示节点E将报文发给与节点E连接的防火墙,因此,节点E需要处理TLV1。节点E和H可能需要收集用于测量网络性能相关信息,因此需要处理TLV2。
节点B根据各个节点需要处理的TLV然后生成PR TLV,并将PR TLV添加到SRH中。节点B并向节点E发送第二报文。PR TLV具体定义参见图5所示实施例。PR TLV中字段的取值可以参见图11A,PR TLV中Index No取值为3,表示需要有3个网络节点来处理报文包含的TLV,3个节点分别为E、H和I。由于节点E需要处理TLV 1和TLV2,节点H需要处理TLV 2,节点I需要处理TLV 3,因此,在PR TLV中包含3个指示条目。可选的,每个指示条目的Bitmap长度都占1个字节,即:8个比特(bit)位。在PR TLV中每个SID index占用1个字节。第1个指示条目对应的SID index取值为2,第1个指示条目的Bitmap按照从低位到高位的顺序第1个bit位和第2个bit位置1,或者第1个指示条目的Bitmap按照从高位到低位的顺序第1个bit位和第2个bit位置1,标识第1个指示条目的SID index对应的网络节点需要处理第1个TLV和第2个TLV,也就是TLV 1和TLV2。可选地,参见图11A,Bitmap从低位到高位的顺序也可以理解成从图11A的右侧到左侧的顺序,Bitmap从高位到低位的顺序也可以理解成从图11A的左侧到右侧的顺序。第2个指示条目对应的SID index取值为1,第2个指示条目的Bitmap按照从低位到高位的顺序第2个bit位置1,或者第2个指示条目的Bitmap按照从高位到低位的顺序第2个bit位置1,标识第2个指示条目的SID index对应的网络节点需要处理第2个TLV,也就是TLV 2。第3个指示条目对应的SID index取值为0,第3个指示条目的Bitmap按照从低位到高位的顺序的第3个bit位置1,或者第3个指示条目的Bitmap按照从高位到低位的顺序第3个bit位置1,标识第3个指示条目的SID index对应的网络节点需要处理第3个TLV,也就是TLV3。
S1003,节点E接收第二报文。在确定第二报文的第二IPv6报文头的目的地址为节点E的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点E可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度)个字节,即从Index No在PR TLV的尾部偏移4字节((3-1)*(1+1)=4)。偏移后的位置即为需要识别的指示条目的起始位置。
通过上述方式,获得的指示条目为第1个指示条目,即SID index为2所对应的指示条目,也就是S1002中的第一指示条目。节点E判断第一指示条目的SID index 与节点E接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为2,SL取值也为2)。节点E确定需要处理第二报文中包含的TLV,具体需要处理哪个TLV需要根据第一指示条目中的Bitmap来确定。节点E进一步解析获得第一指示条目的Bitmap,确定第一指示条目的Bitmap的第1个bit位和第2个bit位取值为1,则节点E确定需要处理第二报文包含的需要网络节点处理的TLV中的第1个TLV和第2个TLV,也就是TLV 1和TLV2,即:FW TLV和IOAM TLV。节点E根据IOAM TLV的指示将节点E接收第二报文的时间或接收第二报文的入接口添加到IOAM TLV中,进一步,节点E根据FW TLV的指示将第二报文发送给防火墙进行处理。
节点E处理完FW TLV和IOAM TLV后,将第二报文的第二IPv6报文头的目的地址替换为节点H的地址,并将SL减1,SL变为1,将PR TLV中的Index No减1,Index No变为2,得到第三报文。将第三报文向节点H发送。
S1004,节点H接收第三报文。在确定第三报文的第二IPv6报文头的目的地址为节点H的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点E可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度)个字节,即从Index No在PR TLV的尾部偏移2字节((2-1)*(1+1)=2)。
通过上述方式,获得的指示条目为第2个指示条目,即SID index为1所对应的指示条目,也就是S1002中的第二指示条目。节点H判断第二指示条目的SID index与节点H接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为1,SL取值也为1)。节点H确定需要处理第三报文中包含的TLV,具体需要处理哪个TLV需要根据第二指示条目中的Bitmap来确定。节点H进一步解析获得第二指示条目的Bitmap,确定第二指示条目的Bitmap的第2bit取值为1,则节点E确定需要处理第三报文包含的需要网络节点处理的TLV中的第2个TLV,也就是TLV 2,即:IOAM TLV。节点H根据IOAM TLV的指示将节点H接收第三报文的时间或接收第三报文的入接口添加到IOAM TLV中。
节点H处理完IOAM TLV后,将第三报文的第二IPv6报文头的目的地址替换为节点I的地址,并将SL减1,SL变为0,将PR TLV中的Index No减1,Index No变为1,得到第四报文。将第四报文向节点I发送。
S1005,节点I接收第四报文。在确定第四报文的第二IPv6报文头的目的地址为节点I的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点I可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度)个字节,即从Index No在PR TLV的尾部偏移0字节((1-1)*(1+1)=0),也就是说Index No的尾部就是要获得的指示条目的头部。
通过上述方式,获得的指示条目为第3个指示条目,即SID index为0所对应的指示条目,也就是S1002中的第三指示条目。节点I判断第三指示条目的SID index与节点I接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为0,SL取值也为0)。节点I确定需要处理第四报文中包含的TLV,具体需要处理哪个TLV需要根据第三指示条目中的Bitmap来确定。节点H进一步解析获得第三指示条目的Bitmap,确定第三指示条目的Bitmap的第3bit取值为1,则节点I确定需要处理第四报文包含的TLV中的第3个TLV,也就是TLV 3,即:DetNet TLV。
节点I处理完DetNet TLV后,判断SL的取值为0,删除第四报文的SRH和第二IPv6报文头,得到第五报文,第五报文的报文头为第一IPv6报文头,第五报文也就是S1001中的第一报文。根据第一IPv6报文的目的地址将第五报文向节点K发送。
通过上述技术方案,网络节点可以根据接收到的报文中包含的指示信息确定是否需要该网络节点处理报文中的TLV,如果需要处理报文中的TLV,网络节点进一步根据指示信息确定需要处理报文中的哪些TLV,然后在对需要处理的TLV进行处理。这样可以根据网络拓扑的实际情况通过报文的指示信息来灵活控制哪些网络节点需要对报文的TLV进行处理,以及网络节点可以处理报文里的哪些TLV,从而提高了报文处理的灵活性。
结合图9B,对本申请实施例提供的报文处理的方法进行举例,参见图10B,该方法具体包括以下步骤:
S1101,节点B从节点A接收第一报文,该第一报文为IPv6报文,该第一报文的第一IPv6报文头的目的地址为节点K的IPv6地址,该第一IPv6报文头的的源地址为节点A的IPv6地址。节点B还获得转发策略和TLV策略,转发策略如表1所示,TLV策略如表2所示。该转发策略中的Segment List中的E代表节点E的IPv6地址或节点E的SID,H代表节点H的IPv6地址或节点H的SID,I代表节点I的IPv6地址或节点I的SID。其中,E和H的地址为压缩地址,也可以理解为压缩SID。举例来说,每个压缩SID占用的bit位为32bit,Segment List中一个元素的位置可以存放4个压缩SID,如图2B所示,CSID 1可以为节点E的压缩SID,CSID 2为节点H的压缩SID。CSID 3和CSID 4取值为0,不对应任何节点的压缩SID。
S1102,节点B根据接收的第一报文的第一IPv6报文头的目的地址匹配转发策略。获得表1中的Segment List,然后在第一报文中添加SRH和第二IPv6报文头生第二报文,该SRH包括Segment List。然后根据报文的属性匹配TLV策略,然后将TLV策略中的TLV选项添加到SRH中。
节点B根据Segment List中的各个节点在网络中的位置或能力,确定各个节点需要处理的TLV。如,节点I为多发选收节点,也就是说I节点可能从G节点或H节点接收报文,但是需要选择性的丢弃一些报文。因此,节点I需要处理报文中TLV3。节点E为连接防火墙的节点,需要指示节点E将报文发给与节点E连接的防火墙,因此,节点E需要处理TLV1。节点E和H可能需要收集用于测量网络性能相关信息,因此需要处理TLV2。
节点B根据各个节点需要处理的TLV然后生成PR TLV,并将PR TLV添加到SRH中。节点B并向节点E发送第二报文。PR TLV具体定义参见图5所示实施例。PR TLV中字段的取值可以参见图11B,PR TLV中Index No取值为3,表示需要有3个网络节点来处理报文包含的TLV,3个节点分别为E、H和I。由于节点E需要处理TLV 1和TLV2,节点H需要处理TLV 2,节点I需要处理TLV 3,因此,在PR TLV中包含3个指示条目。每个指示条目的Bitmap长度可以根据需要被处理的TLV的数量调整,例如在图11B中Bitmap占2个字节,即:16个比特(bit)位。在PRTLV中每个SID index占用1个字节,CSID index占用1个字节。第1个指示条目的SID index取值为1,第1个指示条目的CSID index取值为1,第1个指示条目的Bitmap按照从低位到高位的顺序第1个bit位和第2个bit位置1,或者第1个指示条目的Bitmap按照从高位到低位的顺序第1个bit位和第2个bit位置1,标识第1个指示条目的<SID index,CSID index>对应的网络节点需要处理第1个TLV和第2个TLV,也就是TLV 1和TLV 2。第2个指示条目对应的SIDindex取值为1,第2个指示条目的CSID index取值为2,第2个指示条目的Bitmap按照从低位到高位的顺序第2个bit位置1,或者第2个指示条目的Bitmap按照从高位到低位的顺序第2个bit位置1,标识第2个指示条目的<SID index,CSID index>对应的网络节点需要处理第2个TLV,也就是TLV 2。第3个指示条目对应的SID index取值为0,CSID index取值为0,第3个指示条目的Bitmap按照从低位到高位的顺序第3个bit位置1,或者第3个指示条目的Bitmap按照从高位到低位的顺序第3个bit位置1,标识第3个指示条目的SID index对应的网络节点需要处理第3个TLV,也就是TLV 3。
S1103,节点E接收第二报文。在确定第二报文的第二IPv6报文头的目的地址为节点E的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点E可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度+CSID index的长度)个字节,即从Index No在PR TLV的尾部偏移8字节((3-1)*(2+1+1)=8)。
通过上述方式,获得的指示条目为第1个指示条目,即SID index为1并且CSIDindex为1的指示条目,也就是S1102中的第一指示条目。节点E判断第一指示条目的SIDindex与节点E接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为1,SL取值也为1)。节点E知道自己的SID为压缩SID,因此还需要进一步根据CSID index来判断E节点是否需要处理第二报文中包含的TLV。节点E获取第一指示条目的CSID index,确定CSID index的值与SRH中的CL值对应,即:CSID index=CL(CSID index取值为1,CL取值也为1)。因此,节点E确定需要处理第二报文中包含的TLV,具体需要处理哪个或哪些TLV需要根据第一指示条目中的Bitmap来确定。节点E进一步解析获得第一指示条目的Bitmap,确定第一指示条目的Bitmap的第1个bit位和第2个bit位取值为1,则节点E确定需要处理第二报文包含的TLV中的第1个TLV和第2个TLV,也就是TLV 1和TLV2,即:FW TLV和IOAM TLV。节点E根据IOAM TLV的指示将节点E接收该第二报文的时间或接收该第二报文的入接口添加到IOAM TLV中,进一步,节点E根据FW TLV的指示将第二报文发送给防火墙进行处理。
节点E处理完FW TLV和IOAM TLV后,将第二报文的第二IPv6报文头的目的地址替换为节点H的地址,并将SL取值不变,将CL取值增加1,CL的值变为2,将PR TLV中的Index No减1,Index No变为2,得到第三报文。将第三报文向节点H发送。
S1104,节点H接收第三报文。在确定第三报文的第二IPv6报文头的目的地址为节点H的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点E可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度+CSID index的长度)个字节,即从Index No在PR TLV的尾部偏移4字节((2-1)*(2+1+1)=4)。
通过上述方式,获得的指示条目为第2个指示条目,即SID index为1并且CSIDindex为2的指示条目,也就是S1102中的第二指示条目。节点H判断第二指示条目的SIDindex与节点H接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为1,SL取值也为1)。节点H知道自己的SID为压缩SID,因此还需要进一步根据CSID index来判断H节点是否需要处理第二报文中包含的TLV。节点H获取第2个指示条目的CSID index,确定CSID index的值与SRH中的CL值对应,即:CSID index=CL(CSID index取值为2,CL取值也为2)。因此,节点H确定需要处理第三报文中包含的TLV,具体需要处理哪个或哪些TLV需要根据第二指示条目中的Bitmap来确定。节点H进一步解析获得第二指示条目的Bitmap,确定第二指示条目的Bitmap的第2bit取值为1,则节点E确定需要处理第三报文包含的TLV中的第2个TLV,也就是TLV 2,即:IOAM TLV。节点H根据IOAM TLV的指示将节点H接收该第三报文的时间或接收该第三报文的入接口添加到IOAM TLV中。
节点H处理完IOAM TLV后,将第三报文的第二IPv6报文头的目的地址替换为节点I的地址,并将SL减1,SL变为0,CL的取值变为0。将PR TLV中的Index No减1,Index No变为1,得到第四报文。将第四报文向节点I发送。
S1105,节点I接收第四报文。在确定第四报文的第二IPv6报文头的目的地址为节点I的地址后,解析SRH中的PR TLV,获得PR中的Index No的值,然后根据Index No按照如下方式确定节点I可能识别的指示条目:
从Index No在PR TLV的位置的尾部偏移(Index No-1)*(Bitmap的长度+SIDindex的长度)个字节,即从Index No在PR TLV的尾部偏移0字节((1-1)*(2+1+1)=0),也就是说Index No字段在报文中的尾部就是要获得的指示条目在报文中的头部。
通过上述方式,获得的指示条目为第3个指示条目,即SID index为0的指示条目,也就是S1102中的第三指示条目。由于节点I知道自己的SID不是压缩SID,因此节点I不需要再根据CSID来判断自己是否需要处理第四报文中包含的TLV。节点I判断第三指示条目的SID index与节点I接收到的报文的SRH中的SL对应,即:SID index=SL(SID index取值为0,SL取值也为0)。节点I则确定需要处理第四报文中包含的TLV,具体需要处理哪个或哪些TLV需要根据第三指示条目中的Bitmap来确定。节点H进一步解析获得第三指示条目的Bitmap,确定第三指示条目的Bitmap的第3bit取值为1,则节点I确定需要处理第四报文包含的TLV中的第3个TLV,也就是TLV 3,即:DetNet TLV。
节点I处理完OAM TLV后,判断SL的取值为0,删除第四报文的SRH和第二IPv6报文头,得到第五报文,第五报文也就是就是S1101中的第一报文。第五报文的报文头为第一IPv6报文头。根据第一IPv6报文的目的地址将第五报文向节点K发送。
通过上述技术方案,网络节点可以根据接收到的报文中包含的指示信息确定是否需要该网络节点处理报文中的TLV,如果需要处理报文中的TLV,网络节点进一步根据指示信息确定需要处理报文中的哪个或哪些TLV,然后对需要处理的TLV进行处理。这样可以根据网络拓扑的实际情况通过报文的指示信息来灵活控制哪些网络节点需要对报文的TLV进行处理,以及网络节点可以处理报文里的哪些TLV,从而提高了报文处理的灵活性。
图12示出了上述实施例中所涉及的网络节点的一种可能的结构示意图,该网络节点1200可以实现图5或图8所示实例中第一网络节点的功能,或者,该网络节点1200可以实现图10A或图10B所示的实施例中的节点E或节点H或节点I的功能。参阅图12,该网络节点1200包括:接收单元1201,确定单元1202和处理单元1203。这些单元可以执行上述方法示例中第一网络节点的相应功能。接收单元1201,用于支持网络节点1200执行图5中的过程S504;确定单元1202,用于支持网络节点1200执行图5中的过程S505,或者执行图8中的过程S804和S805;处理单元1203用于支持网络节点1200执行图5中的过程S506,或者执行图8中的过程S806,和/或本文所描述的技术中第一网络节点执行的其它过程。例如,接收单元1201,用于执行上述方法实施例中第一网络节点执行的各种信息的接收;确定单元1202,用于执行上述方法实施例中第一网络节点执行的各种确定动作;处理单元1203,用于执行上述方法实施例中第一网络节点除了报文接收和确定动作之外的其他处理。举例来说,接收单元1201,用于接收第二网络节点发送的报文,报文包含需要网络节点处理的一个或多个TLV,报文还包括指示信息,指示信息指示至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV;确定单元1202,用于根据指示信息确定需要网络节点1200处理所述一个或多个TLV中的至少一个TLV,并根据指示信息确定需要网络节点1200处理的TLV;处理单元1203,用于处理需要网络节点1200处理的TLV。具体执行过程请参考上述图5或图8或图10A或图10B所示实施例中相应步骤的详细描述,这里不再一一赘述。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
图13示出了上述实施例中所涉及的网络节点的一种可能的结构示意图,该网络节点1300可以实现图5或图8所示实例中第二网络节点的功能,或者,该网络节点1300可以实现图10A或图10B所示的实施例中的节点B的功能。参阅图13,该网络节点1300包括:获取单元1301、处理单元1302和发送单元1303。这些单元可以执行上述方法示例中第二网络节点的相应功能。获取单元1301,用于支持网络节点1300执行图5中的过程S501,或者执行图8中的过程S802,处理单元1302,用于支持网络节点1300执行图5中的过程S502,或者执行图8中的过程S802;发送单元1303,用于支持网络节点1300执行图5中的过程S503,或者执行图8中的过程S803。例如,获取单元1301,用于执行上述方法实施例中第二网络节点执行的各种信息的获取,发送单元1303,用于执行上述方法实施例中第二网络节点执行的各种信息的发送;处理单元1302,用于执行上述方法实施例中第二网络节点除了信息获取和发送动作之外的其他处理。举例来说,获取单元1301,用于获得第一报文;处理单元1302,用于在第一报文中添加指示信息和该第一报文的转发路径上的网络节点需要处理的一个或多个TLV生成第二报文,该指示信息指示至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV,该指示信息还用于指示所述至少一个网络节点需要处理的TLV;发送单元1303,用于向转发路径上的第一网络节点发送所述第二报文。具体执行过程请参考上述图5或图8或图10A或图10B所示实施例中相应步骤的详细描述,这里不再一一赘述。
参阅图14所示,发明实施例提供了一种报文处理的系统1400,该系统1400用于实现前述方法实施例中的报文处理的方法。该系统1400包括网络节点1401和网络节点1402。网络节点1401可以实现图5或图8所示的实施例中的第一网络节点,网络节点1402可以实现图5或图8所示的实施例中第二网络节点的功能。网络节点1401还可以实现图10A或图10B所示的实施例中的节点E或节点H或节点I的功能,网络节点1401还可以实现图10A或图10B所示的实施例中的节点B的功能。具体执行过程请参考上述图5或图8或图10A或图10B所示实施例中相应步骤的详细描述,这里不再一一赘述
本申请实施例还提供了一种计算机可读存储介质,用于储存前述实施例中所用的程序代码或指令,当其在计算机或设备上执行时,使得所示计算机或设备执行前述方法实施例中的方法。
本申请实施例中提到的第一网络节点中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”、“第三”、“第四”和“第五”。
需说明的是,以上描述的任意网络节点的实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请实施例提供的网络节点实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (28)

1.一种报文处理的方法,其特征在于,包括:
第一网络节点接收第二网络节点发送的报文,所述报文包含需要至少一个网络节点处理的一个或多个类型-长度-值TLV,所述报文还包括指示信息,所述指示信息指示所述至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV;
所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV;
响应于所述第一网络节点确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV,所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理的TLV;
所述第一网络节点处理需要所述第一网络节点处理的TLV。
2.根据权利要求1所述的方法,其特征在于,所述指示信息包括一个或多个指示条目,每个所述指示条目包含第一字段和第二字段,所述第一字段用于标识需要处理所述一个或多个TLV中的至少一个TLV的网络节点,所述第二字段用于标识所述第一字段所标识的网络节点需要处理的TLV。
3.根据权利要求2所述的方法,其特征在于,所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV包括:
当所述第一网络节点确定所述一个或多个指示条目中包括特定指示条目,并且所述特定指示条目的第一字段的值与所述报文的分段路由头SRH中的剩余段SL的值对应时,所述第一网络节点确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV。
4.根据权利要求2所述的方法,其特征在于,所述第一字段包括第一子字段和第二子字段,所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV包括:
当所述第一网络节点确定所述一个或多个指示条目中包括特定指示条目,并且所述特定指示条目的第一子字段的值与所述报文的分段路由头SRH中的剩余段SL的值对应,并且所述第二子字段的值与所述报文的SRH中的剩余压缩段标识的值对应时,所述第一网络节点确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV。
5.根据权利要求3或4所述的方法,其特征在于,所述第一网络节点根据所述指示信息确定需要所述第一网络节点处理的TLV包括:
所述第一网络节点确定所述特定指示条目的第二字段所标识的TLV为需要所述第一网络节点处理的TLV。
6.根据权利要求2至5任一权利要求所述的方法,其特征在于,所述指示条目的所述第二字段为位图Bitmap字段,按照从所述Bitmap低位到高位的顺序或者从所述Bitmap高位到低位的顺序,所述Bitmap置位为1的比特bit位的位数对应所述第一字段所标识的网络节点需要处理的TLV的序号。
7.根据权利要求3至5任一权利要求所述的方法,其特征在于,所述指示信息还包括第三字段,所述第三字段用于标识需要处理TLV的网络节点的数量。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一网络节点根据所述第一字段、所述第二字段和所述第三字段确定所述特定指示条目在所述报文中的位置。
9.根据权利要求8所述的方法,其特征在于,所述第一网络节点根据所述第一字段、所述第二字段和所述第三字段确定所述特定指示条目在所述报文中的位置包括:
所述第一网络节点按照如下公式确定所述特定指示条目在所述报文中的位置:
所述特定指示条目在所述报文中的起始位置=所述第三字段在所述报文中的结束位置+(所述第三字段的值-1)*(所述第一字段的长度+所述第二字段的长度)。
10.根据权利要求7至9任一权利要求所述的方法,其特征在,所述方法还包括:
所述第一网络节点将所述报文中的所述第三字段的取值减1得到更新后的所述报文;
所述第一网络节点发送更新后的所述报文。
11.一种报文处理的方法,其特征在于,包括:
第二网络节点获得第一报文;
所述第二网络节点在所述第一报文中添加指示信息和所述第一报文的转发路径上的至少一个网络节点需要处理的一个或多个类型-长度-值TLV生成第二报文,所述指示信息指示所述至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV,所述指示信息还用于指示所述至少一个网络节点需要处理的TLV;
所述第二网络节点向所述转发路径上的第一网络节点发送所述第二报文。
12.根据权利要求11所述的方法,其特征在于,所述指示信息包括一个或多个指示条目,每个指示条目包括第一字段和第二字段,所述第一字段用于标识需要处理所述一个或多个TLV中的至少一个TLV的网络节点,所述第二字段用于标识所述第一字段所标识的网络节点需要处理的TLV。
13.根据权利要求12所述的方法,其特征在于,所述第二字段为位图Bitmap字段,从所述Bitmap低位到高位的顺序或者从所述Bitmap高位到低位的顺序,所述Bitmap置位为1的比特bit位的位数对应所述第一字段所标识的网络节点需要处理的TLV的序号。
14.根据权利要求12至13任一权利要求所述的方法,其特征在于,所述指示信息还包括第三字段,所述第三字段用于标识需要处理TLV的网络节点的数量。
15.根据权利要求12至14任一权利要求所述的方法,其特征在于,所述指示信息还包括第四字段,所述第四字段用于标识所述第二字段的长度。
16.根据权利要求11至15任一权利要求所述的方法,其特征在于,所述指示信息包含在处理规则PR TLV中,所述第二网络节点在所述第一报文中添加指示信息包括:
所述第二网络节点在所述第一报文中添加分段路由头SRH,所示SRH包含所述PR TLV。
17.一种网络节点,其特征在于,应用于包括多个网络节点的网络系统,所述多个网络节点包括第一网络节点和第二网络节点,所述网络节点为所述第一网络节点,所述网络节点包括:
接收单元,用于接收第二网络节点发送的报文,所述报文包含需要至少一个网络节点处理的一个或多个类型-长度-值TLV,所述报文还包括指示信息,所述指示信息指示所述至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV;
确定单元,用于根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV;
所述确定单元,还用于响应于所述确定单元确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV,根据所述指示信息确定需要所述第一网络节点处理的TLV;
处理单元,用于处理需要所述第一网络节点处理的TLV。
18.根据权利要求17所述的网络节点,其特征在于,所述指示信息包括一个或多个指示条目,每个所述指示条目包含第一字段和第二字段,所述第一字段用于标识需要处理所述一个或多个TLV中的至少一个TLV的网络节点,所述第二字段用于标识所述第一字段所标识的网络节点需要处理的TLV。
19.根据权利要求18所述的网络节点,其特征在于,所述第二字段为位图Bitmap字段,从所述Bitmap低位到高位的顺序或者从所述Bitmap高位到低位的顺序,所述Bitmap置位为1的比特bit位的位数对应所述第一字段所标识的网络节点需要处理的TLV的序号。
20.根据权利要求18或19所述的网络节点,其特征在于,所述确定单元根据所述指示信息确定需要所述第一网络节点处理所述一个或多个TLV中的至少一个TLV包括:
当所述确定单元确定所述一个或多个指示条目中包括特定指示条目,并且所述特定指示条目的第一字段的值与所述报文的分段路由头SRH的剩余段SL的值对应时,确定需要所述处理单元处理所述一个或多个TLV中的至少一个TLV。
21.根据权利要求18或19所述的网络节点,其特征在于,所述第一字段包括第一子字段和第二子字段,所述确定单元根据所述指示信息确定需要所述处理单元处理所述一个或多个TLV中的至少一个TLV包括:
当所述确定单元确定所述一个或多个指示条目中包括特定指示条目,并且所述特定指示条目的第一子字段的值与所述报文的头SRH中的剩余段SL的值对应,并且所述第二子字段的值与所述报文的SRH中的剩余压缩段标识的值对应时,所述第一网络节点确定需要所述处理单元处理所述一个或多个TLV中的至少一个TLV。
22.根据权利要求20或21所述的网络节点,其特征在于,所述确定单元根据所述指示信息确定需要所述第一网络节点处理的TLV包括:
所述确定单元确定所述特定指示条目的第二字段所标识的TLV为需要所述处理单元处理的TLV。
23.根据权利要求20至22任一权利要求所述的网络节点,其特征在于,所述指示信息还包括第三字段,所述第三字段用于标识需要处理TLV的网络节点的数量。
24.根据权利要求23所述的网络节点,其特征在于,
所述确定单元,还用于按照如下公式确定所述特定指示条目在所述报文中的位置:
所述特定指示条目在所述报文中的起始位置=所述第三字段在所述报文中的结束位置+(所述第三字段的值-1)*(所述第一字段的长度+所述第二字段的长度)。
25.一种网络节点,其特征在于,应用于包括多个网络节点的网络系统,所述多个网络节点包括第一网络节点和第二网络节点,所述网络节点为所述第二网络节点,所述网络节点包括:
获取单元,用于获得第一报文;
处理单元,用于在所述第一报文中添加指示信息和所述第一报文的转发路径上的至少一个网络节点需要处理的一个或多个类型-长度-值TLV生成第二报文,所述指示信息指示所述至少一个网络节点需要处理所述一个或多个TLV中的至少一个TLV,所述指示信息还用于指示所述至少一个网络节点需要处理的TLV;
发送单元,用于向所述转发路径上的第一网络节点发送所述第二报文。
26.根据权利要求25所述的网络节点,其特征在于,所述指示信息包括一个或多个指示条目,每个指示条目包括第一字段和第二字段,所述第一字段用于标识需要处理所述一个或多个TLV中的至少一个TLV的网络节点,所述第二字段用于标识所述第一字段所标识的网络节点需要处理的TLV。
27.根据权利要求25或26所述的网络节点,其特征在于,所述指示信息包含在处理规则PR TLV中,所述处理单元在所述第一报文中添加指示信息包括:
所述处理单元在所述第一报文中添加的分段路由头SRH,所述SRH包含所述PR TLV。
28.一种计算机可读介质,包括指令,当其在计算机上执行时,使得所述计算机执行如权利要求1至16任一权利要求所述的方法。
CN201911115344.6A 2019-11-01 2019-11-14 一种报文处理的方法、网络节点和系统 Active CN112787922B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2020/125352 WO2021083341A1 (zh) 2019-11-01 2020-10-30 一种报文处理的方法、网络节点和系统
EP20881940.9A EP4037266B1 (en) 2019-11-01 2020-10-30 Method for processing message, and network node and system
US17/731,749 US20220255857A1 (en) 2019-11-01 2022-04-28 Packet Processing Method, Network Node, and System

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019110617693 2019-11-01
CN201911061769 2019-11-01

Publications (2)

Publication Number Publication Date
CN112787922A true CN112787922A (zh) 2021-05-11
CN112787922B CN112787922B (zh) 2024-05-14

Family

ID=75749903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911115344.6A Active CN112787922B (zh) 2019-11-01 2019-11-14 一种报文处理的方法、网络节点和系统

Country Status (1)

Country Link
CN (1) CN112787922B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242180A (zh) * 2021-07-12 2021-08-10 广东省新一代通信与网络创新研究院 报文转发方法、装置、设备、可读存储介质及程序产品
CN114828140A (zh) * 2022-05-09 2022-07-29 中国电信股份有限公司 业务流量报文转发方法及装置、存储介质及电子设备
WO2023109672A1 (zh) * 2021-12-14 2023-06-22 华为技术有限公司 业务处理方法、装置及系统
CN117596206A (zh) * 2024-01-19 2024-02-23 明阳产业技术研究院(沈阳)有限公司 SRv6 SID动态压缩编排方法、系统、交换装置、介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150326473A1 (en) * 2014-05-09 2015-11-12 Futurewei Technologies, Inc. Service Chain Path Route Reservations
US20190036818A1 (en) * 2017-07-27 2019-01-31 Cisco Technology, Inc. Full-path validation in segment routing
CN109981457A (zh) * 2017-12-27 2019-07-05 华为技术有限公司 一种报文处理的方法、网络节点和系统
CN112104552A (zh) * 2019-06-17 2020-12-18 华为技术有限公司 处理报文的方法、装置及计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150326473A1 (en) * 2014-05-09 2015-11-12 Futurewei Technologies, Inc. Service Chain Path Route Reservations
US20190036818A1 (en) * 2017-07-27 2019-01-31 Cisco Technology, Inc. Full-path validation in segment routing
CN109981457A (zh) * 2017-12-27 2019-07-05 华为技术有限公司 一种报文处理的方法、网络节点和系统
CN112104552A (zh) * 2019-06-17 2020-12-18 华为技术有限公司 处理报文的方法、装置及计算机存储介质
CN114448860A (zh) * 2019-06-17 2022-05-06 华为技术有限公司 处理报文的方法、装置及计算机存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
F. CLAD, ED.; CISCO SYSTEMS, INC.;X. XU, ED.;ALIBABA; C. FILSFILS; CISCO SYSTEMS, INC.;D. BERNIER; BELL CANADA; C. LI;HUAWEI;ORANG: "Service Programming with Segment Routing\ndraft-ietf-spring-sr-service-programming-00", IETF *
J. YI; ECOLE POLYTECHNIQUE;B. PARREIN; UNIVERSITY OF NANTES;: "Multipath Extension for the\nOptimized Link State Routing Protocol Version 2 (OLSRv2)", IETF RFC8218 *
P. PSENAK, ED.; C. FILSFILS; CISCO SYSTEMS;A. BASHANDY;ARRCUS;ORANGE; Z. HU; HUAWEI TECHNOLOGIES;: "IS-IS Extensions to Support Routing over IPv6 Dataplane\n draft-ietf-lsr-isis-srv6-extensions-00.txt", IETF *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242180A (zh) * 2021-07-12 2021-08-10 广东省新一代通信与网络创新研究院 报文转发方法、装置、设备、可读存储介质及程序产品
CN113242180B (zh) * 2021-07-12 2021-12-14 广东省新一代通信与网络创新研究院 报文转发方法、装置、设备、可读存储介质及程序产品
WO2023109672A1 (zh) * 2021-12-14 2023-06-22 华为技术有限公司 业务处理方法、装置及系统
CN114828140A (zh) * 2022-05-09 2022-07-29 中国电信股份有限公司 业务流量报文转发方法及装置、存储介质及电子设备
CN114828140B (zh) * 2022-05-09 2023-12-12 中国电信股份有限公司 业务流量报文转发方法及装置、存储介质及电子设备
CN117596206A (zh) * 2024-01-19 2024-02-23 明阳产业技术研究院(沈阳)有限公司 SRv6 SID动态压缩编排方法、系统、交换装置、介质及设备
CN117596206B (zh) * 2024-01-19 2024-03-26 明阳产业技术研究院(沈阳)有限公司 SRv6 SID动态压缩编排方法、系统、交换装置、介质及设备

Also Published As

Publication number Publication date
CN112787922B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
KR102555671B1 (ko) 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체
US11792100B2 (en) Network performance parameter sending method, network performance calculation method, and network node
CN112787922B (zh) 一种报文处理的方法、网络节点和系统
EP4037266B1 (en) Method for processing message, and network node and system
EP3863240A1 (en) Method for forwarding packet in hybrid network, device, and system
CN111988266B (zh) 一种处理报文的方法
US20220255862A1 (en) Packet forwarding method, device, storage medium, and system
CN112583745A (zh) 一种在sr网络中转发报文的方法、设备和系统
JP7403635B2 (ja) Srネットワークでパケットを転送するための方法、装置、及びシステム
US20240106748A1 (en) Packet processing method, apparatus, and system
WO2021043232A1 (zh) 主机网络性能需求可编程化的方法、设备和系统
CN114422415A (zh) 在分段路由中的出口节点处理流
JP6222505B2 (ja) 入力パラメータを生成するための方法および装置
US11909650B2 (en) Internet protocol operations and management option
US20240098020A1 (en) Transport of vpn traffic with reduced header information
CN117221201A (zh) 报文发送的方法、网络设备及系统

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