CN113556259B - 一种基于随流检测的报文处理方法及装置 - Google Patents

一种基于随流检测的报文处理方法及装置 Download PDF

Info

Publication number
CN113556259B
CN113556259B CN202010332211.0A CN202010332211A CN113556259B CN 113556259 B CN113556259 B CN 113556259B CN 202010332211 A CN202010332211 A CN 202010332211A CN 113556259 B CN113556259 B CN 113556259B
Authority
CN
China
Prior art keywords
message
domain
node
protocol
ipv4
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
Application number
CN202010332211.0A
Other languages
English (en)
Other versions
CN113556259A (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 CN202010332211.0A priority Critical patent/CN113556259B/zh
Priority to JP2022564126A priority patent/JP2023522736A/ja
Priority to PCT/CN2021/079921 priority patent/WO2021213045A1/zh
Priority to EP21793650.9A priority patent/EP4131855A4/en
Publication of CN113556259A publication Critical patent/CN113556259A/zh
Priority to US17/971,327 priority patent/US20230045227A1/en
Application granted granted Critical
Publication of CN113556259B publication Critical patent/CN113556259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L2012/4629LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种基于随流检测的报文处理方法,第一节点接收到采用第一承载协议进行封装的第一报文之后,可以根据第一报文得到采用第二承载协议封装的第二报文。第一报文的第一报文头中包括第一随流检测信息,第二报文的报文头中也包括第一随流检测信息。由此可见,第一节点采用第二承载协议对第一报文进行重新封装时,不是将第一随流检测信息剥离,而是将第一随流检测信息添加到采用第二承载协议进行封装的报文中。因此,即使检测域中部署第一承载协议和第二承载协议,第一随流检测信息也不会随着因为报文被重新封装而被剥离,第一随流检测信息可以在整个检测域中传输。故而可以利用随流检测技术对检测域进行性能检测。

Description

一种基于随流检测的报文处理方法及装置
技术领域
本申请涉及通信领域,尤其涉及一种基于随流检测的报文处理方法及装置。
背景技术
在数据通信网络中,可以采用随流检测技术检测数据通信网络的性能,例如,检测数据通信网络的时延和丢包。随流检测技术例如可以为随流信息遥测(in-situ flowinformation telemetry,iFIT)技术或者带内操作管理维护(inband operationadministration and maintenance,iOAM)技术。
在一个网络中可以通过指定检测域确定需要执行随流检测的网络范围。检测域中的节点需要传输随流检测信息以实现随流检测。目前,若检测域中部署有多种承载协议,则无法利用随流检测技术检测该检测域的性能。因此,需要一种方案,可以解决上述问题。
发明内容
本申请实施例提供了一种基于随流检测的报文处理方法及装置,可以在检测域中部署有多种承载协议的情况下,也能利用随流检测技术进行性能检测。
第一方面,本申请实施例提供了一种基于随流检测的报文处理方法。目前,对于部署有多种承载协议的检测域,无法利用随流检测技术进行性能检测。这是因为不同承载协议对应的报文封装格式不同。当携带随流检测信息的报文在部署多种承载协议的检测域中传输时,一旦需要对报文重新封装。则报文中携带的随流检测信息会被剥离。故而,随流检测信息不能在整个检测域中传输,从而使得随流检测技术不能对该检测域进行性能检测。在本申请实施例中,检测域中的第一节点接收到来自第二节点的第一报文之后,可以根据第一报文得到第二报文。其中,第一报文的第一报文头中包括第一随流检测信息,第一报文是采用第一承载协议进行封装的报文。第一节点可以采用第二承载协议对第一报文进行重新封装,在对第一报文进行重新封装时,第一节点不是将第一随流检测信息剥离,而是将第一随流检测信息添加到采用第二承载协议进行封装的报文中,从而得到包括第一随流检测信息的第二报文。第一节点得到第二报文之后,可以将第二报文转发给第三节点,使得包含第一随流检测信息的第二报文继续在检测域中传输。由此可见,利用本申请实施例的方案,即使检测域中部署第一承载协议和第二承载协议,第一随流检测信息也不会随着因为报文被重新封装而被剥离,第一随流检测信息可以在整个检测域中传输。因此,即使检测域中部署第一承载协议和第二承载协议,也可以利用随流检测技术对检测域进行性能检测。
在一种实现方式中,第一承载协议为IPv4协议、IPv6协议、MPLS协议、VLAN协议、GRE协议、NSH协议或者互联网协议第6版分段路由SRv6协议;第二承载协议为IPv4协议、IPv6协议、MPLS协议、VLAN协议、GRE协议、NSH协议或者SRv6协议,第一承载协议和第二承载协议不同。
在一种实现方式中,所述第一随流检测信息用于指示检测检测域的性能参数,所述检测域包括第一域和第二域,所述第二节点属于所述第一域,所述第三节点属于所述第二域,所述第一节点为所述第一域和所述第二域的跨域节点。由此可见,在本申请实施例中,第一节点作为第一域和第二域的跨域节点,可以在携带第一随流检测信息的第一报文跨第一域和第二域传输时,使得第一随流检测信息不被剥离,从而使得第一随流检测信息可以在整个检测域中传输。
在一种实现方式中,所述第一节点为业务功能代理SF proxy,所述第三节点为业务功能SF设备。
在一种实现方式中,当第一节点为SF proxy,第三节点为SF设备时,第一节点还可以接收所述第三节点返回的第三报文,所述第三报文包括所述第一随流检测信息,所述第三报文为采用所述第二承载协议进行封装的报文;所述第一节点根据所述第三报文,生成第四报文,所述第四报文包括所述第一随流检测信息,所述第四报文为采用所述第一承载协议进行封装的报文;所述第一节点向下一跳节点发送所述第一报文。在这种场景下,可以使得第一报文在传输过程中经过SF设备,也不会丢失第一随流检测信息,使得第一随流检测信息可以继续向下一跳节点传输。
在一种实现方式中,所述第一域部署SRv6网络,所述第二域部署IPv4网络,所述第一报文为携带业务链SFC信息的SRv6报文,所述第二报文为携带所述SFC信息的IPv4报文。对于这种情况,可以在检测域中部署SRv6网络和IPv4网络的情况下,也能利用随流检测技术对检测域进行性能检测。
在一种实现方式中,所述第一域部署IPv4网络,所述第二域部署SRv6网络,所述第一报文为携带SFC信息的IPv4报文,所述第二报文为携带SFC信息的SRv6报文。对于这种情况,可以在检测域中部署SRv6网络和IPv4网络的情况下,也能利用随流检测技术对检测域进行性能检测。
在一种实现方式中,所述第一域部署MPLS网络,所述第二域部署IPv4网络,所述第一报文为MPLS报文,所述第二报文为IPv4报文。对于这种情况,可以在检测域中部署MPLS网络和IPv4网络的情况下,也能利用随流检测技术对检测域进行性能检测。
在一种实现方式中,所述第一域部署三层虚拟专用网络L3VPN。
在一种实现方式中,所述检测域还包括第三域,所述第三域部署MPLS网络,所述第三节点为所述第二域和所述第三域的跨域节点。对于这种情况,可以在检测域中部署MPLS网络和IPv4网络的情况下,也能利用随流检测技术对检测域进行性能检测。
在一种实现方式中,所述第三域部署L3VPN。
在一种实现方式中,所述第一域为第一自治系统AS,所述第一节点为所述第一AS的自治系统边界路由器ABSR;所述第三域为第二AS,所述第三节点为所述第二AS的ABSR。
在一种实现方式中,所述第一域部署IPv4网络,所述第二域部署MPLS网络,所述第一报文为IPv4报文,所述第二报文为MPLS报文。对于这种情况,可以在检测域中部署MPLS网络和IPv4网络的情况下,也能利用随流检测技术对检测域进行性能检测。
在一种实现方式中,所述第二域部署L3VPN。
在一种实现方式中,所述第一随流检测信息包括:iFIT随流检测信息,或者,iOAM随流检测信息。
第二方面,本申请实施例提供了一种第一节点,包括:通信接口;和与所述通信接口连接的处理器;根据所述通信接口和所述处理器,所述第一节点用于执行以上第一方面任一项所述的方法。
第三方面,本申请实施例提供了一种第一节点,所述第一节点包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述第一节点执行以上第一方面任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面任意一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络架构示意图;
图2为本申请实施例提供的一种示例性应用场景示意图;
图3为本申请实施例提供的又一种示例性应用场景示意图;
图4为本申请实施例提供的一种基于随流检测的报文处理方法的信令交互图;
图5a为本申请实施例提供的一种可能的SRv6报文的结构示意图;
图5b为本申请实施例提供的又一种可能的SRv6报文的结构示意图;
图5c为本申请实施例提供的又一种可能的SRv6报文的结构示意图;
图6a为本申请实施例提供的一种可能的IPv4报文的结构示意图;
图6b为本申请实施例提供的又一种可能的IPv4报文的结构示意图;
图6c为本申请实施例提供的又一种可能的IPv4报文的结构示意图;
图7为本申请实施例提供的一种基于随流检测的报文处理方法的信令交互图;
图8a为本申请实施例提供的一种可能的MPLS报文的结构示意图;
图8b为本申请实施例提供的一种iFIT随流检测信息的结构示意图;
图8c为本申请实施例提供的一种iOAM随流检测信息的结构示意图;
图9为本申请实施例提供的一种基于随流检测的报文处理方法的流程示意图;
图10为本申请实施例提供的一种第一节点的结构示意图;
图11为本申请实施例提供的一种第一节点的结构示意图;
图12为本申请实施例提供的一种第一节点的结构示意图。
具体实施方式
本申请实施例提供了一种基于随流检测的报文处理方法,可以在检测域中部署有多种承载协议的情况下,也能利用随流检测技术进行性能检测。
为方便理解,首先对随流检测技术进行简单介绍。
随流检测技术可以利用报文中携带的随流检测信息对网络中的业务流进行特征标记,该特征标记也可称之为染色。业务流经过的节点将收集到的时间戳、包数等数据上报给控制管理设备,以供控制管理设备基于上报的数据进一步计算网络时延和丢包情况。
在一个网络中可以通过指定检测域确定需要执行随流检测的网络范围,通常所述检测域中的节点需要传输随流检测信息以实现随流检测,并将执行所述随流检测后获取的相应信息发送至控制管理设备。所述检测域的检测范围可以基于多种方式确定,例如,可以基于网络场景确定,如指定网络中的核心网部分作为所述检测域;或者,可以基于业务类型确定,如为视频业务和语音业务指定不同范围的检测域等。检测域中包括三类节点,具体为头节点(英文:head node)、尾节点(英文:end node)和逐跳的路径节点(英文:path node)。其中,逐跳的路径节点也可以称之为中间节点。所述头节点、尾节点和路径节点例如可以是网络中的相应网络节点。对于一条业务流而言,在所述检测域指定的检测范围内传输所述业务流的第一个网络节点,可以作为传输所述业务流的头节点。在所述检测域指定的检测范围内传输所述业务流的最后一个网络节点,可以作为传输所述业务流的尾节点。在所述头节点和所述尾节点之间传输所述业务流的各个节点即为逐跳的路径节点。随流检测信息可以由头节点添加,并在尾节点剥离。
接下来,对随流检测可能的网络架构进行介绍。参见图1,该图为本申请实施例提供的一种网络架构示意图。网络100包括控制管理设备和多个网络节点。所述多个网络节点之间通过通信链路连接,用于传输业务流。如图1所示,检测域中的头节点、中间节点1、中间节点2和尾节点通过通信链路连接。检测域中除了包括图示所述的各节点外,还可以包括其他未示出的节点。尾节点还可以通过通信链路和外部节点连接。头节点可以从其它设备处接收业务流,该业务流可以经由头节点、中间节点1、中间节点2和尾节点到达外部节点。控制管理设备例如可以是集中控制器,可以是网管,也可以是执行流量分析功能的流量分析设备。控制管理设备可以是一个设备,也可以是指多个设备的集合。控制管理设备可以是功能模块,集成在具体的物理设备上,也可以是指用于实现本申请有控制管理设备所述实现的功能的物理设备。
在本申请中,可以由控制管理设备确定检测域,所述检测域是所述控制管理设备确定的检测范围;也可以是在检测域中的各转发设备上分别进行配置,从而形成一个检测域。在所述检测域中的传输路径上,位于检测域的头节点和尾节点之间的网络节点是中间节点,例如图1中的中间节点1和中间节点2。
目前,控制管理设备可以在检测域中的各节点上部署随流检测技术,以检测检测域的传输时延和丢包。
检测域的传输时延可以包括头节点到尾节点之间的端到端传输时延。检测域中的各节点可以周期性执行时延检测操作。具体地,在一个随流检测周期内,头节点可以从接收的报文中选择一条报文进行染色,头节点可以在该报文中添加指示检测传输时延的随流检测信息,并将指示头节点接收该报文的时间的时间戳T1上报给控制管理设备,检测域中的尾节点接收到该报文之后,可以将该报文转发给外部节点,并将指示尾节点将该报文转发给外部节点的时间的时间戳T2上报给控制管理设备。控制管理设备则可以根据头节点上报的时间戳T1和尾节点上报的时间戳T2,计算得到检测域在该随流检测周期的端到端传输时延为T2-T1。头节点在选择报文进行染色时,可以根据报文的特征对报文进行染色,例如,对指定五元组信息的报文进行染色。其中,五元组信息可以包括源互联网协议(InternetProtocol,IP)地址、目的IP地址、协议类型、源端口号和目的端口号。
检测域的丢包测量在具体实现时,在一个随流检测周期内,头节点可以按照一定规则对业务流中的报文进行交替染色,并将被染色的报文的信息上报给控制管理设备。尾节点计算在该随流检测周期内接收到的被染色的报文的信息,并将该信息上报给控制管理设备。控制管理设备根据头节点和尾节点上报的信息,确定报文流在检测域的丢包情况。例如,头节点对一个随流检测周期内的十条报文进行染色,并将被染色的报文数量(即10)上报给控制管理设备。尾节点在该随流检测周期内仅接收到九条染色的报文,尾节点将接收到的被染色报文的数量(即9)上报给控制管理设备控制管理设备根据头节点和尾节点上报的数量则可以确定该业务流在检测域中传输的过程中的发生了丢包。
目前,随流检测技术存在一定的局限性。具体地,检测域只能部署一种承载协议,若检测域部署多种承载协议,则无法利用随流检测技术进行性能检测,例如无法利用随流检测技术进行端到端性能检测。这是因为不同承载协议对应的报文封装格式不同。当携带随流检测信息的报文在部署多种承载协议的检测域中传输时,一旦需要对报文进行重新封装,则报文中携带的随流检测信息会被剥离。即随流检测信息不能在整个检测域中传输。相应的,未接收到随流检测信息的节点则不会执行对应的随流检测操作。
其中,检测域中部署某承载协议,也可以认为是检测域中部署支持该承载协议的网络。例如,检测域部署基于互联网协议第6版分段路由(Segment Routing InternetProtocol Version 6,SRv6)协议,则表示检测域中部署SRv6网络。
为方便理解,接下来结合具体应用场景介绍上文所述的随流检测技术的局限性。随流检测技术的局限性不限于体现在下文所述的两种应用场景。相应的,本申请实施例提供的方法也不限于下文所述的两种应用场景。
参见图2,该图为本申请实施例提供的一种示例性应用场景示意图。图2示出了一种SRv6协议的业务功能链(service function chain,SFC)场景。
在图2所示的场景中,入口(ingress)运营商边缘(provider edge,PE)设备ingress PE和出口(egress)PE设备egress PE间部署SRv6网络,业务功能转发(ServiceFunction Forwarder,SFF)设备SFF和业务功能(service function,SF)设备SF之间部署互联网协议第4版(Internet Protocol Version 4,IPv4)网络。用户网络边缘(customeredge,CE)设备CE1向用户网络边缘设备CE2发送IPv4报文,该报文在转发过程中会经过SF设备。
在一些场景中,可以将ingress PE和egress PE之间的网络指定为检测域,利用随流检测技术检测检测域的性能。接下来,对报文在检测域中的传输过程介绍随流检测技术的局限性。
步骤1、ingress PE接收到来自于CE1的IPv4报文之后,将IPv4报文重新封装成SRv6报文,并将随流检测信息封装至SRv6报文中,以指示接收到随流检测信息的节点执行随流检测操作。
在本申请实施例中,SRv6报文中可以携带业务功能链的相关信息,例如业务功能路径(service function path,SFP),又如,业务功能链的数据。具体地,该SFC的相关信息可以携带在SFC头中,对于SRv6报文而言,该SFC头可以携带在分段路由头(segmentrouting header,SRH)中。
在本申请实施例中,SRv6的SRH中可以包括SID-1。SID-1为业务功能设备SF的段标识(segment identifier,SID),即指示该SRv6报文被在转发过程中经过SF。在业务功能链场景中,该SRv6报文可以通过SFF转发给SF。SID-1还可以用于标识业务链类型。具体地,SID-1可以用于标识动态业务链或者静态业务链。
在一些实施例中,若经过该SF转发的所有业务流均使用相同的隧道转发,则SID-1用于标识静态业务链。若不是所有的业务流均使用相同的隧道转发,例如:不同业务流通过不同的隧道转发,则SID-1用于标识动态业务链。
步骤2、ingress PE将封装后的SRv6报文发送给SFF。
步骤3、SFF对接收到的SRv6报文进行重新封装,得到IPv4报文,并将IPv4报文发送给SF。
SFF对SRv6进行重新封装时,将SRv6报文中的随流检测信息剥离,换言之,SFF发送给SF的IPv4报文中不包括随流检测信息。
SFF接收到该SRv6报文之后,可以将该SRv6报文的SFC头剥离,并将该SRv6报文重新封装成IPv4报文发送给SF。
在本申请实施例中,若前述SID-1标识动态业务链,则SFF还可以将该SFC头缓存在本地,因为不同业务流对应的SFC头可能不同。若前述SID-1标识静态业务链,则SFF无需缓存该SFC,因为在这种情况下,所有业务流对应的SFC头相同,该SFC头可以通过静态配置的方式配置在SFF中。
步骤4、SF基于接收到的IPv4报文进行相应处理,处理后将该IPv4报文返回给SFF。
SF对IPv4报文进行处理,例如可以是对该IPv4报文进行安全性检测,确定该IPv4报文是否为攻击报文。
步骤5、SFF对接收到的IPv4报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE,SFF发送给egress PE的SRv6报文中不包括随流检测信息。
SFF将IPv4报文重新封装成SRv6报文时,需要将SFC头封装至SRv6报文中。因此,SFF可以获取对应的SFC头。具体地,若前述SID-1标识动态业务链,则SFF在执行前述步骤3时缓存了该IPv4报文对应的SFC头,因此,SFF可以获取步骤3中缓存的SFC头,并根据该SFC头将该IPv4报文重新封装成SRv6报文。若前述SID-1标识静态业务链,则表示所有的业务报文使用相同的SFC头,对于这种情况,SFF可以获取静态配置在SFF上的SFC头,并根据获取到的SFC头将该IPv4报文重新封装成SRv6报文。
步骤6:egress PE对接收到的SRv6报文重新封装成IPv4报文发送给CE2。
在本申请实施例中,SFF发送给egress PE的SRv6报文的SRH中可以包括End.DT4SID。该End.DT4 SID用于标识3层虚拟专用网络(layer3 virtual privatenetwork,L3VPN),当egress PE接收到SRv6报文时,根据End.DT4 SID查找本地的私网路由,从而继续转发该报文。
通过以上描述可知,随流检测信息没有在整个检测域中传输,这是因为步骤3中SFF对接收到的SRv6报文进行重新封装时,将SRv6报文中的随流检测信息中剥离了。换言之,SFF和egress PE之间的节点均未接收到随流检测信息,因此,也就无法根据随流检测信息执行相应的检测操作。
在图2所示的场景中,SFF上运行有SF代理(proxy),上述由SFF执行的步骤,具体可以由SF proxy执行。
需要说明的是,图2只是为了方便理解而示出,其并不构成对本申请实施例的限定。在一些实施例中,SFF和SF之间还可以部署IPv6网络、或者虚拟局域网(virtual localarea network,VLAN)、或者多协议标签交换(Multi Protocol Label Switching,MPLS)网络、或者通用路由封装(generic routing encapsulation,GRE)协议网络、或者网络服务头(network service header,NSH)协议网络,本申请实施例不做具体限定。
若SFF和SF之间部署IPv6网络,则前述步骤3中,SFF需要将SRv6报文进行重新封装,得到IPv6报文;前述步骤4中,SFF接收到的报文也为IPv6报文;前述步骤5中SFF对接收到的IPv6报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE。
若SFF和SF之间部署VLAN,则前述步骤3中,SFF需要将SRv6报文进行重新封装,得到采用VLAN封装的报文;前述步骤4中,SFF接收到的报文也为采用VLAN封装的报文;前述步骤5中SFF对接收到的采用VLAN封装的报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE。
若SFF和SF之间部署MPLS网络,则前述步骤3中,SFF需要将SRv6报文进行重新封装,得到MPLS报文;前述步骤4中,SFF接收到的报文也为MPLS报文;前述步骤5中SFF对接收到的MPLS报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE。
若SFF和SF之间部署GRE网络,则前述步骤3中,SFF需要将SRv6报文进行重新封装,得到GRE报文;前述步骤4中,SFF接收到的报文也为GRE报文;前述步骤5中SFF对接收到的GRE报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE。
若SFF和SF之间部署NSH网络,则前述步骤3中,SFF需要将SRv6报文进行重新封装,得到NSH报文;前述步骤4中,SFF接收到的报文也为NSH报文;前述步骤5中SFF对接收到的NSH报文重新封装成SRv6报文,并将该SRv6报文发送给egress PE。
参见图3,该图为本申请实施例提供的又一种示例性应用场景示意图。图3为一种跨域VPN的场景示意图。
在图3所示的场景中,CE3和CE4之间进行数据交互时,要利用VPN。PE1和自治系统边界路由器(autonomous system boundary router,ASBR)ASBR1属于自治域100(即AS100),ASBR1也是AS 100的PE设备,AS 100内部署L3VPN,AS 100部署MPLS网络或者SR-MPLS网络。PE2和ASBR2属于AS 200,ASBR2也是AS 200的PE设备,AS200内部署L3VPN,AS 200部署MPLS网络或者SR-MPLS网络。
ABSR1和ABSR2之间未部署MPLS网络,ABSR1和ABSR2之间部署IPv4网络。ASBR1将ASBR2看成与自身相连的CE设备,ASBR2也将ASBR1看成与自身相连的CE设备。ASBR1创建VPN实例之后,通过外部边界网关协议(External Border Gateway Protocol,EBGP)向ASBR2发布IPv4路由。类似的,ASBR2创建VPN实例之后,EBGP向ASBR1发布IPv4路由。
在一些场景中,可以将PE1和PE2之间的网络指定为检测域,利用随流检测技术检测检测域的性能。接下来,对报文在检测域中的传输过程介绍随流检测技术的局限性。
步骤1、CE3发送IPv4报文给PE1。
步骤2、PE1接收到来与PE1的IPv4报文之后,将IPv4报文封装成MPLS报文,并将随流检测信息封装至该MPLS报文中,以指示接收到随流检测信息的节点执行随流检测操作。
在本申请实施例中,该MPLS报文中还携带有公网标签和L3VPN的私网标签。
步骤3、PE1将该MPLS报文发送给ABSR1。
步骤4、ABSR1将接收到的MPLS报文重新封装成IPv4报文发送给ABSR2。
ABSR1对MPLS报文进行重新封装时,将MPLS报文中的随流检测信息剥离,换言之,ABSR1发送给ABSR2的IPv4报文中不包括随流检测信息。
步骤5、ASBR2接收到ASBR1发送过来的IPv4报文,对该IPv4报文重新封装,得到包括私网标签和公网标签的MPLS报文。
步骤6、ASBR2将重新封装的MPLS报文发送给PE2,ASBR2发送给PE2的MPLS报文中不包括随流检测信息。
步骤7:PE2将MPLS报文重新封装成IPv4报文发送给CE4。
通过以上描述可知,随流检测信息没有在整个检测域中传输,这是因为步骤4中ABSR1对接收到的MPLS报文进行重新封装时,将MPLS报文中的随流检测信息剥离了。换言之,AS 200中的节点均未接收到随流检测信息,因此,也就无法根据随流检测信息执行相应的检测操作。
基于以上描述可知,在实际应用中具备利用随流检测技术检测部署多个承载协议的检测域的性能的需求,而目前的随流检测技术,使得该需求不能被满足。鉴于此,本申请实施例提供了一种基于随流检测的报文处理方法,可以在检测域中部署有多种承载协议的情况下,也能利用随流检测技术进行性能检测。
以下分别结合图2和图3所示的应用场景,介绍本申请实施例提供的报文处理方法。
首先结合图2所示的应用场景,介绍本申请实施例提供的报文处理方法。
参见图4,该图为本申请实施例提供的一种基于随流检测的报文处理方法的信令交互图。图4所示的方法100,例如可以通过如下S101-S108实现。
S101:ingress PE接收到来自于CE1的报文1,报文1为IPv4报文。
在本申请实施例中,报文1为IPv4报文,即报文1是根据IPv4协议进行封装的报文。
S102:ingress PE将该报文1重新封得到报文2,报文2为SRv6报文,报文2中包括随流检测信息1。
在本申请实施例中,ingress PE作为检测域的头节点,在对报文1进行重新封装时,将随流检测信息1添加报文头中,从而得到报文2。随流检测信息1用于指示检测检测域的性能参数。检测域包括ingress PE和egress PE之间的网络。在本申请实施例中,随流检测信息1可以是iFIT随流检测信息,也可以是iOAM随流检测信息。
关于报文2的结构,可以参考下文对于图5a至图5c的描述部分,此处不做详述
S103:ingress PE将报文2发送给SFF。
S104:SFF对接收到的报文2进行重新封装,得到报文3,报文3为IPv4报文,报文3中包括随流检测信息1。
报文3是根据IPv4协议进行封装的报文。SFF将报文2重新封装得到报文3时,不是简单的将随流检测信息1从报文2中剥离,而是将从报文2中获得的随流检测信息1封装至报文3中。具体地,SFF对报文2进行重新封装时,可以将随流检测信息1添加到报文头中,以得到包括随流检测信息1的报文3。
关于报文3的结构,可以参考下文对于图6a至图6c的描述部分,此处不做详述。
S105:SFF将报文3发送给SF。
S106:SF将根据报文3得到的报文4发送给SFF,报文4中包括随流检侧信息1。
SF接收到报文3之后,对报文3进行相应的处理,而后,SF根据报文3得到报文4,并将报文4发送给SFF。具体地,SF根据报文3得到报文4在具体实现时,例如可以是SF对报文3中的源媒体接入控制(media access control,MAC)地址或者目的MAC地址等字段进行修改,从而得到报文4。在本申请实施例中,报文4是IPv4报文,并且,报文4中包括随流检测信息1。
S107:SFF根据报文4获得报文5。
SFF接收到报文4之后,根据SRv6协议对报文4进行重新封装。在对报文4进行重新封装时,将报文4中的随流检测信息1添加到按照SRv6协议进行重新封装的报文中,从而得到报文5。具体地,SFF将随流检测信息1添加到按照SRv6协议进行重新封装的报文头中,从而重新获得报文5。
S108:SFF将报文5发送给egress PE。
由于报文5中包括随流检测信息1,因此,egress PE以及egress PE与SFF之间的节点均可以接收到包括随流检测信息1的报文5。
通过以上描述可知,随流检测信息1可以在整个检测域中传输,因此,接收到该随流检测信息1的节点均可以执行随流检测操作,从而使得在检测域中部署有SRv6协议和IPv4协议这两种承载协议的情况下,也可以利用随流检测技术对检测域进行性能检测。
对于该方法100,在一些实施例中,图2所示的检测域可以包括域A和域B,其中,域A中部署的承载协议为SRv6协议,域B中部署的承载协议为IPv4协议。域A中包括ingress PE和SFF,或者域A包括egress PE和SFF,域B中包括SFF和SF。
参见图5a,图5a示出了一种可能的SRv6报文的结构示意图。
图5a示出的SRv6报文,包括ETH字段、IPv6 Basic Header、SRH和Payload。
其中:
ETH字段用于携带二层以太头,ETH中可以携带源MAC地址、目的MAC地址和协议类型。
IPv6 Basic Header为IPv6基本头,其具体包含的字段此处不做详细说明。
SRH字段包括SRH Basic Header、Segment List以及Option类型长度值(typelength value,TLV)。具体地:SRH Basic Header为SRH基本扩展头,其具体包含的字段此处不做详细说明。Segment List用于携带指示报文转发路径的段标识列表。Option TLV可以作为扩展字段。在本申请实施例中,前述随流检测信息1可以携带在Option TLV中。
参见图5b,图5b示出了当随流检测信息1为iFIT随流检测信息时,SRv6报文的结构。
在图5b中,流指令指示符(flow instruction indicator,FII)字段、流指令头部(flow instruction header,FIH)字段、以及流指令扩展头(flow instruction extensionheader,FIEH)字段构成iFIT信息。以下分别对FII字段、FIH字段以及FIEH字段进行简单说明。
1、FII字段主要用于标识该字段后的若干字节数据为IFIT信息。FII字段例如可以包括以下字段信息:
Type字段,用于标识iFIT检测头;
Length字段,用于标识FIH字段和FIEH字段的长度;
Reserved字段为预留字段。
2、FIH字段也可以称之为随流检测头或流检测头。该字段主要用于携带IFIT检测相关的信息。例如可以包括以下字段信息:
流标识(英文:Flow ID),为每条IFIT检测流量分配的全局唯一标识;
L标志位,丢包(英文:packet loss)检测染色标记,例如:L标志位取值为“1”表示采集丢包,“0”表示不采集丢包。
D标志位,时延(英文:delay)测量染色标记,例如:D标志位取值为“1”表示采集时间戳,“0”表示不采集时间戳。
头类型指示符(header type indicator,HTI),标记需发送IFIT检测结果的节点范围和检测内容范围,例如:可以用不同的标记值区分除检测两端节点外,是否对具备iFIT能力的路径节点进行检测,以及FIEH字段是否有效等。
R标志位可以作为保留标志位。
3、FIEH字段也可以称之为流扩展检测头或者扩展随流检测头。该字段作为扩展字段,主要用于携带其他iFIT检测相关的信息。例如可以包括以下字段信息:
流标识扩展Flow ID Ext,用于扩展流标识位宽;
V标志位,用于作反向流(英文:reverse flow)标记,例如:V标志位取值为“0”表示当前流为正向流,接收端可自动创建反向流;“1”表示当前流为反向流,接收端不再自动创建反向流,其中,V标志位为可选字段,图1中并未示出;
周期(英文:Period),取值不同表示检测周期不同,检测周期例如可以为1s、10s、30s、1min或10min等。
参见图5c,图5c示出了当随流检测信息1为iOAM随流检测信息时,SRv6报文的结构。
如图5c所示,iOAM随流检测信息包括SRH-TLV-Type字段、iOAM-Type字段、iOAMHDR LEN字段、iOAM Option and Data Space字段以及RESERVED字段。
其中:
SRH-TLV-Type字段用于标识iOAM封装,即用于标识该字段后的若干字节数据为iOAM信息。
iOAM-Type字段用于指示iOAM类型。
iOAM HDR LEN字段用于标识iOAM头的长度。
iOAM Option and Data Space字段为iOAM选项和数据字段,用于携带指示节点执行相应随流检测操作的指示信息。
RESERVED字段为保留字段。
参见图6a,图6a示出了一种可能的IPv4报文的结构示意图。
在图6a中,IPv4报文包括ETH字段,IPv4 Header和Payload。随流检测信息1可以位于IPv4 Header中。在一个示例中,随流检测信息1可以位于IPv4 Header的选项(options)字段中。其中:
ETH字段用于携带二层以太头,ETH中可以携带源媒体接入控制(media accesscontrol,MAC)地址,目的MAC地址和协议类型。
IPv4 Header中的各个字段,此处不做详细说明。
在本申请实施例中,图6a所示的随流检测信息1可以是iFIT随流检测信息,也可以是iOAM随流检测信息。
iFIT随流检测信息可以参考图5b对于iFIT随流检测信息的描述部分,此处不做详述。
当随流检测信息1是iOAM随流检测信息时,可参考图6b进行理解,图6b示出了当随流检测信息1为iOAM随流检测信息时,IPv4报文的结构。
如图6b所示,iOAM随流检测信息可以位于IPv4 Header的options字段中。具体地:iOAM随流检测信息包括Option Type字段、Option Length字段、RESERVED字段、iOAM-Type字段以及Option Data字段。其中:
Option Type字段用于指示iOAM封装类型的选项头。
Option Length字段用于指示整个iOAM头的长度。
RESERVED为保留字段。
iOAM-Type字段用于指示iOAM类型。
Option Data字段为iOAM选项和数据字段,用于携带指示节点执行相应随流检测操作的指示信息。
参见图6c,图6c示出了又一种可能的IPv4报文的结构示意图。
在图6c中,IPv4报文包括ETH字段、IPv4 Header、传输控制协议(TransmissionControl Protocol,TCP)/用户数据报协议(User Datagram Protocol,UDP)、魔术数字(probe mark)字段、随流检测头和Payload。
关于ETH、IPv4 Header、TCP/UDP,此处不做详细说明。
魔术数字字段用于指示接下来的若干个字节数据为随流检测数据,魔术数字字段例如可以包括8字节。
当随流检测信息1为iFIT随流检测信息时,魔术数字字段例如可以对应图5b所示的FII字段,随流检测头例如可以包括图5b所示的FIH字段和FIEH字段。关于FII字段、FIH字段和FIEH字段,可以参考上文对于图5b的描述部分,此处不再详述。
当随流检测信息1为iOAM随流检测信息时,魔术数字字段以及随流检测头的具体封装形式本申请实施例不做具体限定,作为一种示例:魔术数字字段例如可以对应图5c所示的SRH-TLV-Type字段,随流检测头例如可以包括图5c所示的iOAM-Type字段、iOAM HDRLEN字段、iOAM Option and Data Space字段以及RESERVED字段。
接下来结合图3所示的应用场景,介绍本申请实施例提供的报文处理方法。
参见图7,该图为本申请实施例提供的一种基于随流检测的报文处理方法的信令交互图。图7所示的方法200,例如可以通过如下S201-S207实现。
S201:PE1接收来自于CE3的报文6,报文6为IPv4报文。
S202:PE1将报文6重新封装成报文7,报文7为MPLS报文,报文7中包括随流检测信息2。
在本申请实施例中,报文7中包括公网标签和L3VPN的私网标签。
在本申请实施例中,检测域包括PE1和PE2之间的网络。PE1作为检测域的头节点,在对报文6进行重新封装时,将随流检测信息2添加到报文头中,从而得到报文7。随流检测信息2可以是iFIT随流检测信息,也可以是iOAM随流检测信息。
关于报文7的结构,可以参考下文对于图8a至图8b的描述部分,此处不做详述。
S203:PE1将报文7发送给ABSR1。
S204:ABSR1对接收到的报文7进行重新封装,得到报文8,报文8为IPv4报文,报文8中包括随流检测信息2。
报文8是根据IPv4协议进行封装的报文。ABSR1将报文7重新封装得到报文8时,不是简单的将随流检测信息2从报文7中剥离,而是将从报文7中获得的随流检测信息2封装至报文8中。具体地,ABSR1对报文7进行重新封装时,可以将随流检测信息2添加到报文头中,以得到包括随流检测信息2的报文8。
关于报文8的结构,可以参考上文对于图6a至图6c的描述部分,此处不做详述。
S205:ABSR1将报文8发送给ABSR2。
S206:ABSR2对接收到的报文8进行重新封装,得到报文9,报文9为MPLS报文,报文9中包括随流检测信息2。
报文9是根据MPLS协议进行封装的报文。ABSR2将报文8重新封装得到报文9时,不是简单的将随流检测信息2从报文8中剥离,而是将从报文8中获得的随流检测信息2封装至报文9中。具体地,ABSR2对报文8进行重新封装时,可以将随流检测信息2添加到报文头中,以得到包括随流检测信息2的报文9。
报文9的结构与报文7的结构相同,可以参考下文对于图8a和图8b的描述部分。
S207:ABSR2将报文9发送给PE2。
由于前述报文7、报文8以及报文9中均携带随流检测信息2,因此,随流检测信息2可以在整个检测域中传输。因此,接收到该随流检测信息2的节点均可以执行随流检测操作,从而使得在检测域中部署有MPLS协议和IPv4协议这两种承载协议的情况下,也可以利用随流检测技术对检测域进行性能检测。
需要说明的是,在图3所示的应用场景中,
对于该方法200,在一些实施例中,图3所示的网络域可以包括域C、域D和域E,其中,域C中部署的承载协议为MPLS协议,域D中部署的承载协议为IPv4协议,域E中部署的承载协议为MPLS协议。域C中包括PE1和ABSR1,域D中包括ABSR1和ABSR2,域E中包括ABSR2和PE2。
参见图8a,图8a示出了一种可能的MPLS报文的结构示意图。
图8a示出的MPLS报文,包括ETH字段、SR Label字段、VPN Label字段、随流检测头和Payload。其中:
ETH字段用于携带二层以太头,ETH中可以携带源MAC地址、目的MAC地址和协议类型。
SR Label用于携带公网标签。
VPN Label用于携带私网标签。
随流检测头可以用于携带图8b所示的iFIT随流检测信息,也可以用于携带图8c所示的iOAM随流检测信息。
图8b所示的iFIT随流检测信息包括:FII字段、FIH字段和FIEH字段。
其中:
FII字段主要用于标识该字段后的若干字节数据为IFIT信息。FII字段例如可以包括以下字段信息:
流指令指示符标签(英文:FII Label),可配置缺省值以用于标识iFIT检测流;
优先级EXP标志位,该优先级EXP标志位可以根据外层MPLS标签头中的部分相关信息确定;
S标志位,用于标记是否为栈底,例如取值为1为栈底,取值为0为非栈底;
生存时间(time to live,TTL)标志位,该TTL标志位也可以根据外层MPLS标签头中的部分相关信息确定。
关于FIH字段和FIEH字段,可以参考上文对图5b的说明部分,此处不再重复描述。
图8c所示的iOAM随流检测信息,包括:iOAM指示标签(Indicator Label)字段、iOAM-Type字段、iOAM HDR LEN字段、IOAM Option and Data Space字段、以及RESERVED字段。其中:
iOAM Indicator Label字段用于标识iOAM封装,即用于标识该字段后的若干字节数据为iOAM信息。
iOAM-Type字段用于指示iOAM类型。
iOAM HDR LEN字段用于标识iOAM头的长度。
iOAM Option and Data Space字段为iOAM选项和数据字段,用于携带指示节点执行相应随流检测操作的指示信息。
RESERVED字段为保留字段。
本申请实施例还提供了一种基于随流检测的报文处理方法300,可参见图9,图9为本申请实施例提供的一种基于随流检测的报文处理方法的流程示意图。以下结合图9对该方法进行说明。图9所示的方法300,例如可以通过S301-S302实现。
S301:第一节点接收来自于第二节点的第一报文,所述第一报文的第一报文头中包括第一随流检测信息,所述第一报文为采用第一承载协议进行封装的报文。
S302:所述第一节点根据所述第一报文得到第二报文,所述第二报文的第二报文头中包括所述第一随流检测信息,所述第二报文为采用第二承载协议进行封装的报文,所述第一承载协议与所述第一第二承载协议为不同的承载协议。
S303:所述第一节点将所述第二报文转发给第三节点。
方法300可以用于实现以上实施例提及的方法100中SFF执行的步骤,方法300还可以用于执行以上实施例提及的方法200中由ABSR1或者ABSR2执行的步骤。
在一些实施例中,当方法300可以用于实现以上实施例提及的方法100中SFF执行的步骤时,第一节点对应图2所示的SFF,第二节点对应于图2所示的ingress PE,第一报文对应方法100中的报文2,第一承载协议为SRv6协议,第一随流检测信息为方法100中的随流检测信息1。第二报文对应方法100中的报文3,第二承载协议为IPv4协议。第三节点为方法100中的SF。
在一些实施例中,当方法300可以用于实现以上实施例提及的方法100中SFF执行的步骤时,第一节点对应图2所示的SFF,第二节点对应图2所述的SF,第一报文对应方法100中的报文4,第一承载协议为IPv4协议,第一随流检测信息为方法100中的随流检测信息1。第二报文对应方法100中的报文5,第二承载协议为SRv6协议,第三节点对应图2所示的egress PE。
当方法300用于实现以上实施例提及的方法200中ABSR1执行的步骤时,第一节点对应图3所示的ABSR1,第二节点对应于图3所示的PE1,第一报文对应方法200中的报文7,第一承载协议为MPLS协议,第一随流检测信息为方法200中的随流检测信息2。第二报文对应方法200中的报文8,第二承载协议为IPv4协议。第三节点为方法200中的ABSR2。
当方法300用于实现以上实施例提及的方法200中ABSR2执行的步骤时,第一节点对应图3所示的ABSR2,第二节点对应于图3所示的ABSR1,第一报文对应方法200中的报文8,第一承载协议为IPv4协议,第一随流检测信息为方法200中的随流检测信息2。第二报文对应方法200中的报文9,第二承载协议为MPLS协议。第三节点为方法200中的PE2。
在一种实现方式中,所述第一承载协议为IPv4协议、IPv6协议、MPLS协议、VLAN协议、GRE协议、NSH协议或者SRv6协议;所述第二承载协议为IPv4协议、IPv6协议、MPLS协议、VLAN协议、GRE协议、NSH协议或者SRv6协议。
在一种实现方式中,所述第一随流检测信息用于指示检测检测域的性能参数,所述检测域包括第一域和第二域,所述第二节点属于所述第一域,所述第三节点属于所述第二域,所述第一节点为所述第一域和所述第二域的跨域节点。
当方法300可以用于实现以上实施例提及的方法100中SFF执行的步骤时,检测域为图2所示的检测域,第一域可以包括ingress PE和SFF,即对应前文提及的域A,第二域可以包括SFF和SF,即对应前文提及的域B。第一节点对应图2所示的SFF,第二节点对应图2所示的ingress PE,第三节点对应图2所示的SF。对于这种情况,在一些实施例中,第一节点还可以用于接收所述第三节点返回的第三报文,所述第三报文包括所述第一随流检测信息,所述第三报文为采用所述第二承载协议进行封装的报文;所述第一节点根据所述第三报文,生成第四报文,所述第四报文包括所述第一随流检测信息,所述第四报文为采用所述第一承载协议进行封装的报文;所述第一节点向下一跳节点发送所述第一报文。此处提及的第三报文对应方法100中的报文4,第一随流检测信息对应方法100中的随流检测信息1,第四报文对应方法100中的报文5。第一承载协议为IPv4协议,第二承载协议为SRv6协议。
在一种实现方式中,所述第一域部署SRv6网络,所述第二域部署IPv4网络,所述第一报文为携带SFC信息的SRv6报文,所述第二报文为携带所述SFC信息的IPv4报文。其中,第一域包括图2所示的ingress PE和SFF,即第一域对应前文提及的域A,第二域包括图2所示的SFF和SF,即第二域对应前文提及的域B。
在一种实现方式中,所述第一域部署IPv4网络,所述第二域部署SRv6网络,所述第一报文为携带SFC信息的IPv4报文,所述第二报文为携带SFC信息的SRv6报文。其中,第一域包括图2所示的SFF和SF,即第一域对应前文提及的域B,第二域包括图2所示的SFF和egressPE,即第二域对应前文提及的域A。
在一种实现方式中,当方法300可以用于实现以上实施例提及的方法200中ABSR1执行的步骤时,所述检测域为图3所示的检测域。所述第一域部署MPLS网络,所述第二域部署IPv4网络,所述第一报文为MPLS报文,所述第二报文为IPv4报文。其中,第一域可以包括图3所示的PE1和ABSR1,即第一域可以对应前文提及的域C,第二域可以包括图3所示的ABSR1和ABSR2,即第二域可以包括前文提及的域D。此时,第一报文可以对应方法200中的报文7,第二报文可以对应方法200中的报文8。
在一种实现方式中,所述第一域部署三层虚拟专用网络L3VPN。
在一种实现方式中,所述检测域还包括第三域,所述第三域部署MPLS网络,所述第三节点为所述第二域和所述第三域的跨域节点。其中,第三域可以包括图3所示的ABSR2和PE2,即第三域可以对应前文提及的域E,此时,第三节点为ABSR2。
在一种实现方式中,所述第三域部署L3VPN。
在一种实现方式中,所述第一域为第一自治系统,所述第一节点为所述第一自治系统的ABSR;所述第三域为第二自治系统,所述第三节点为所述第二自治系统的ABSR。即前文提及的域C和域D均为自治系统,第一节点对应图3所示的ASBR1,第三节点对应图3所示的ASBR2。
在一种实现方式中,当方法300可以用于实现以上实施例提及的方法200中ABSR2执行的步骤时,所述第一域部署IPv4网络,所述第二域部署MPLS网络,所述第一报文为IPv4报文,所述第二报文为MPLS报文。对于这种情况,第一域可以包括图3所示的ABSR1和ABSR2,即第一域对应前文提及的域D,第二域可以包括图3所示的ABSR2和PE2,即第二域可以对应前文提及的域E。此时,第一节点可以对应方法200中的ABSR2,第一报文可以对应方法200中的报文8,第二报文可以对应方法200中的报文9。
在一种实现方式中,所述第二域部署L3VPN。
在一种实现方式中,所述第一随流检测信息包括:iFIT随流检测信息,或者,iOAM随流检测信息。
关于方法300的具体实现,可以参考以上实施例中关于方法100和方法200的相关描述部分,此处不再详述。
此外,本申请实施例还提供了一种第一节点1000,参见图10所示,图10为本申请实施例提供的一种第一节点的结构示意图。该第一节点1000包括收发单元1001和处理单元1002。其中,收发单元1001用于执行上述方法100对应的实施例中由SFF执行的收发操作;处理单元1002用于执行上述方法100对应的实施例中由SFF执行的除了收发操作以外的其他操作。或者,收发单元1001用于执行上述方法200对应的实施例中由ABSR1执行的收发操作;处理单元1002用于执行上述方法200对应的实施例中由ABSR1执行的除了收发操作以外的其他操作。或者,收发单元1001用于执行上述方法200对应的实施例中由ABSR2执行的收发操作;处理单元1002用于执行上述方法200对应的实施例中由ABSR2执行的除了收发操作以外的其他操作。例如:第一节点1000为方法100中的SFF,那么,收发单元1001用于执行接收来自于ingress PE的报文2的步骤、以及用于执行向SF发送报文3的步骤;所述处理单元1002用于执行根据报文2获得报文3的步骤。
此外,本申请实施例还提供了一种第一节点1100,参见图11所示,图11为本申请实施例提供的一种第一节点的结构示意图。该第一节点1100包括通信接口1101和与通信接口1101连接的处理器1102。其中,通信接口1101用于执行上述方法100对应的实施例中由SFF执行的收发操作;处理器1102用于执行上述方法100对应的实施例中由SFF执行的除了收发操作以外的其他操作。或者,通信接口1101用于执行上述方法200对应的实施例中由ABSR1执行的收发操作;处理器1102用于执行上述方法200对应的实施例中由ABSR1执行的除了收发操作以外的其他操作。或者,通信接口1101用于执行上述方法200对应的实施例中由ABSR2执行的收发操作;处理器1102用于执行上述方法200对应的实施例中由ABSR2执行的除了收发操作以外的其他操作。例如:第一节点1100为方法100中的SFF,那么,通信接口1101用于执行接收来自于ingress PE的报文2的步骤、以及用于执行向SF发送报文3的步骤;所述处理器1102用于执行根据报文2获得报文3的步骤。
此外,本申请实施例还提供了一种第一节点1200,参见图12所示,图12为本申请实施例提供的一种第一节点的结构示意图。该第一节点1200包括存储器1201和处理器1202。其中,存储器1201用于存储程序代码;处理器1202用于运行所述程序代码中的指令,使得该第一节点1200执行上述方法100对应的实施例中SFF执行的步骤,或者,使得该第一节点1200执行上述方法200对应的实施例中ABSR1执行的步骤,或者,使得该第一节点1200执行上述方法200对应的实施例中ABSR2执行的步骤。
此外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述方法100对应的实施例中SFF执行的步骤,或者,使得所述计算机执行上述方法200对应的实施例中ABSR1执行的步骤,或者,使得所述计算机执行上述方法200对应的实施例中ABSR2执行的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (18)

1.一种基于随流检测的报文处理方法,其特征在于,包括:
第一节点接收来自于第二节点的第一报文,所述第一报文的第一报文头中包括第一随流检测信息,所述第一报文为采用第一承载协议进行封装的报文;
所述第一节点根据所述第一报文得到第二报文,所述第二报文的第二报文头中包括所述第一随流检测信息,所述第二报文为采用第二承载协议进行封装的报文,所述第一承载协议与所述第一第二承载协议为不同的承载协议,所述第一随流检测信息用于指示检测检测域的性能参数,所述检测域中部署所述第一承载协议和所述第二承载协议;
所述第一节点将所述第二报文转发给第三节点。
2.根据权利要求1所述的方法,其特征在于,
所述第一承载协议为互联网协议第4版IPv4协议、互联网协议第6版IPv6协议、多协议标签交换MPLS协议、虚拟局域网VLAN协议、通用路由封装GRE协议、网络服务头NSH协议或者互联网协议第6版分段路由SRv6协议;
所述第二承载协议为IPv4协议、IPv6协议、MPLS协议、VLAN协议、GRE协议、NSH协议或者SRv6协议。
3.根据权利要求1或2所述的方法,其特征在于,
所述检测域包括第一域和第二域,所述第二节点属于所述第一域,所述第三节点属于所述第二域,所述第一节点为所述第一域和所述第二域的跨域节点。
4.根据权利要求1或2所述的方法,其特征在于,所述第一节点为业务功能代理SFproxy,所述第三节点为业务功能SF设备。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第三节点返回的第三报文,所述第三报文包括所述第一随流检测信息,所述第三报文为采用所述第二承载协议进行封装的报文;
所述第一节点根据所述第三报文,生成第四报文,所述第四报文包括所述第一随流检测信息,所述第四报文为采用所述第一承载协议进行封装的报文;
所述第一节点向下一跳节点发送所述第一报文。
6.根据权利要求3所述的方法,其特征在于,所述第一域部署SRv6网络,所述第二域部署IPv4网络,所述第一报文为SRv6报文,所述第二报文为IPv4报文。
7.根据权利要求3所述的方法,其特征在于,所述第一域部署IPv4网络,所述第二域部署SRv6网络,所述第一报文为IPv4报文,所述第二报文为SRv6报文。
8.根据权利要求3所述的方法,其特征在于,所述第一域部署MPLS网络,所述第二域部署IPv4网络,所述第一报文为MPLS报文,所述第二报文为IPv4报文。
9.根据权利要求8所述的方法,其特征在于,所述第一域用于承载三层虚拟专用网络L3VPN业务。
10.根据权利要求8或9所述的方法,其特征在于,所述检测域还包括第三域,所述第三域部署MPLS网络,所述第三节点为所述第二域和所述第三域的跨域节点。
11.根据权利要求10所述的方法,其特征在于,所述第三域用于承载L3VPN业务。
12.根据权利要求10所述的方法,其特征在于,
所述第一域为第一自治系统AS,所述第一节点为所述第一AS的自治系统边界路由器ABSR;
所述第三域为第二AS,所述第三节点为所述第二AS的ABSR。
13.根据权利要求3所述的方法,其特征在于,所述第一域部署IPv4网络,所述第二域部署MPLS网络,所述第一报文为IPv4报文,所述第二报文为MPLS报文。
14.根据权利要求13所述的方法,其特征在于,所述第二域用于承载L3VPN业务。
15.根据权利要求1或2所述的方法,其特征在于,所述第一随流检测信息包括:
随流信息遥测iFIT随流检测信息,或者,带内操作管理维护iOAM随流检测信息。
16.一种第一节点,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述第一节点用于执行前述权利要求1-15任一项所述的方法。
17.一种第一节点,其特征在于,所述第一节点包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述第一节点执行以上权利要求1-15任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-15任意一项所述的方法。
CN202010332211.0A 2020-04-24 2020-04-24 一种基于随流检测的报文处理方法及装置 Active CN113556259B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010332211.0A CN113556259B (zh) 2020-04-24 2020-04-24 一种基于随流检测的报文处理方法及装置
JP2022564126A JP2023522736A (ja) 2020-04-24 2021-03-10 現地フロー検出ベースのパケット処理方法及び装置
PCT/CN2021/079921 WO2021213045A1 (zh) 2020-04-24 2021-03-10 一种基于随流检测的报文处理方法及装置
EP21793650.9A EP4131855A4 (en) 2020-04-24 2021-03-10 PACKET PROCESSING METHOD AND APPARATUS BASED ON IN-SITU FLOW DETECTION
US17/971,327 US20230045227A1 (en) 2020-04-24 2022-10-21 In-situ flow detection-based packet processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010332211.0A CN113556259B (zh) 2020-04-24 2020-04-24 一种基于随流检测的报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN113556259A CN113556259A (zh) 2021-10-26
CN113556259B true CN113556259B (zh) 2024-04-12

Family

ID=78129657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010332211.0A Active CN113556259B (zh) 2020-04-24 2020-04-24 一种基于随流检测的报文处理方法及装置

Country Status (5)

Country Link
US (1) US20230045227A1 (zh)
EP (1) EP4131855A4 (zh)
JP (1) JP2023522736A (zh)
CN (1) CN113556259B (zh)
WO (1) WO2021213045A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7446489B2 (ja) * 2021-03-25 2024-03-08 新華三技術有限公司 インサイチュフロー検出方法及び電子デバイス
CN115134273A (zh) * 2021-03-29 2022-09-30 北京华为数字技术有限公司 一种报文处理方法以及相关设备
CN114205267A (zh) * 2021-12-15 2022-03-18 中国电信股份有限公司 链路信息的追踪方法、系统和服务功能
WO2023179457A1 (zh) * 2022-03-21 2023-09-28 华为技术有限公司 业务连接的标识方法、装置、系统及存储介质
CN114745302B (zh) * 2022-03-30 2023-09-15 新华三技术有限公司 通信方法及装置
CN115174449B (zh) * 2022-05-30 2024-03-26 杭州初灵信息技术股份有限公司 一种传递随流检测信息的方法、系统、装置和存储介质
CN117749670A (zh) * 2022-09-15 2024-03-22 中兴通讯股份有限公司 随流检测的方法、封装节点、检测节点、计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276840A (zh) * 2016-04-07 2017-10-20 华为技术有限公司 一种监控数据传输的方法及相关设备
CN107579869A (zh) * 2016-07-04 2018-01-12 华为技术有限公司 网络性能检测方法和网络设备
CN109743340A (zh) * 2019-04-04 2019-05-10 华为技术有限公司 报文处理的方法和网络装置
CN110381119A (zh) * 2019-06-20 2019-10-25 视联动力信息技术股份有限公司 一种日志信息的获取方法、系统及装置和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008081B2 (en) * 2006-12-14 2015-04-14 Rpx Clearinghouse Llc Serving gateway proxies for non-SIP speakers in a next generation network
US8665724B2 (en) * 2009-06-12 2014-03-04 Cygnus Broadband, Inc. Systems and methods for prioritizing and scheduling packets in a communication network
JP2014527771A (ja) * 2011-08-18 2014-10-16 ヴィド スケール インコーポレイテッド パケットを差別化する方法およびシステム
CN108737269B (zh) * 2017-04-13 2021-11-26 中兴通讯股份有限公司 一种封装方法、装置和节点
US10560554B2 (en) * 2017-05-12 2020-02-11 Futurewei Technologies, Inc. In-situ OAM sampling and data validation
US10693777B2 (en) * 2018-06-26 2020-06-23 Cisco Technology, Inc. In-situ operations, administration, and maintenance (iOAM) for software defined architectures (SDAs)
US11032193B2 (en) * 2018-09-11 2021-06-08 Cisco Technology, Inc. In-situ operation, administration, and maintenance in segment routing with multiprotocol label switching networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107276840A (zh) * 2016-04-07 2017-10-20 华为技术有限公司 一种监控数据传输的方法及相关设备
CN107579869A (zh) * 2016-07-04 2018-01-12 华为技术有限公司 网络性能检测方法和网络设备
CN109743340A (zh) * 2019-04-04 2019-05-10 华为技术有限公司 报文处理的方法和网络装置
CN110381119A (zh) * 2019-06-20 2019-10-25 视联动力信息技术股份有限公司 一种日志信息的获取方法、系统及装置和存储介质

Also Published As

Publication number Publication date
JP2023522736A (ja) 2023-05-31
WO2021213045A1 (zh) 2021-10-28
CN113556259A (zh) 2021-10-26
EP4131855A1 (en) 2023-02-08
EP4131855A4 (en) 2023-09-13
US20230045227A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
CN113556259B (zh) 一种基于随流检测的报文处理方法及装置
US11848757B2 (en) In-situ passive performance measurement in a network environment
WO2021170092A1 (zh) 报文处理方法、装置、网络设备及存储介质
CN112262553B (zh) 在软件定义网络交换机的分组处理流水线中跟踪分组的装置和方法
CN111953604B (zh) 一种为业务流提供业务服务的方法和装置
US11700198B2 (en) Transmission control method, node, network system and storage medium
CN107431657B (zh) 跨网络域的用于流分析的数据分组标记的方法和装置
CN113079091B (zh) 一种主动随流检测的方法、网络设备以及通信系统
JP7468969B2 (ja) 第1のネットワークノードにおいて使用される装置及びコントローラにおいて使用される装置
US8098663B2 (en) Carrier's carrier without customer-edge-to-customer-edge border gateway protocol
CN112087386B (zh) 一种报文处理的方法、设备和系统
CN111385207A (zh) 一种业务数据的转发方法、网络设备及网络系统
US10833975B2 (en) Operations processing of multiple-protocol packets by packet switching devices in a network
US20060203747A1 (en) Network topology systems and methods
US11323371B1 (en) Micro SID packet processing with operations, administration, and management
US11082540B2 (en) Network operations including protocol processing of a packet updating an operations data field of a different protocol
CN113300928B (zh) 一种传输业务报文的方法、设备和系统
US20240195657A1 (en) Message sending method and apparatus, message receiving method and apparatus, and storage medium

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