CN116746129A - 用于在网络头部中编码本地处理元数据的方法和装置 - Google Patents
用于在网络头部中编码本地处理元数据的方法和装置 Download PDFInfo
- Publication number
- CN116746129A CN116746129A CN202180091712.7A CN202180091712A CN116746129A CN 116746129 A CN116746129 A CN 116746129A CN 202180091712 A CN202180091712 A CN 202180091712A CN 116746129 A CN116746129 A CN 116746129A
- Authority
- CN
- China
- Prior art keywords
- packet
- network
- local processing
- destination address
- network node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 133
- 230000006870 function Effects 0.000 claims abstract description 90
- 230000004044 response Effects 0.000 claims description 6
- 230000015654 memory Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
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/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- 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/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
所公开的是用于在封包头部中编码网络功能的系统、装置、方法和计算机可读介质。一种方法包括从源设备接收要通过网络递送到目的地地址的第一封包;确定到目的地地址的路由;为第一封包识别至少一个网络功能;将第一封包封装在第二封包中,其中,第二封包的头部在目的地地址字段中包括到目的地地址的路由并且在源地址字段中包括与至少一个网络功能相关联的本地处理元数据;并且将第二封包转发到在目的地地址中识别的网络的下一个网络节点。
Description
相关申请的交叉引用
本申请要求2021年11月30日提交的美国非临时专利申请17/538,513号的权益,该美国申请要求2021年7月12日提交的美国临时专利申请63/220,946号、2020年12月1日提交的美国临时专利申请63/120,036号以及2020年12月1提交的美国临时专利申请63/120,020号的权益,所有这些申请都被通过引用完全并入在此。
背景技术
通信行业正在迅速变化以适应于新兴的技术和不断增长的客户需求。对于新的应用和现有应用的增强性能的这个客户需求正驱动着通信网络和系统提供商采用具有更大的速度和容量(例如,更大的带宽)的网络和系统。为了实现这些目标,许多通信提供商采用的一种常见方法是使用利用互联网协议(Internet Protocol,IP)的封包交换技术。IP封包通常在网络中基于一个或多个表示网络节点或路径的值被转发。
片段路由(segment routing,SR)是一种网络技术,它可以使用源路由范式来增强封包交换。在SR网络中,源节点选择一条路径并且在封包头部中将其编码为有序的片段列表,该列表提供了识别指定路由路径的单向片段列表。在穿越一个片段之后,识别该片段的标签从有序片段列表中被弹出。
附图说明
本文的实施例可以通过结合附图参考以下描述来更好地理解,附图中相似的标号指示相同或功能上类似的元素,其中:
图1图示了根据本公开的示例的片段路由(SR)网络的示例;
图2图示了根据本公开的示例,可用于寻址网络节点以在SR网络中路由网络流量的微片段标识符(μSID)的示例;
图3图示了根据本公开的示例的基于μSID的示例封包转发;
图4图示了根据本公开的示例的包括本地处理元数据的示例互联网协议(IP)头部;
图5图示了根据本公开的示例,用于网络节点利用本地处理元数据配置封包的头部以在SR网络中传输的方法的流程图;
图6图示了根据本公开的示例,用于网络节点基于IP封包的头部中的本地处理元数据来执行功能的方法的流程图;
图7图示了根据本公开的示例,用于网络节点配置控制消息以在SR网络中传输的方法的流程图;
图8示出了计算系统的示例,其例如可以是能够实现该系统的组件的任何计算设备;并且
图9图示了根据本公开的一些示例的示例网络设备。
具体实施方式
以下记载的详细描述打算作为对实施例的各种配置的描述,而并不打算表示可用来实现本本公开的主题的唯一配置。附图被并入在此并且构成详细描述的一部分。详细描述包括用于提供对公开的主题的更透彻理解的具体细节。然而,显而易见的是,本公开的主题并不局限于本文记载的具体细节,而是可以在没有这些细节的情况下进行实现。在一些场合中,以框图形式示出结构和组件以避免模糊本公开的主题的构思。
所公开的是用于在网络头部中编码本地处理元数据的系统、装置、方法和计算机可读介质。根据至少一个示例,提供了一种用于在网络头部中编码本地处理元数据的方法。该方法包括:从源设备接收要通过网络递送到目的地地址的封包;确定到目的地地址的路由;封装封包,其中封装的封包的头部在目的地地址字段中包括到目的地地址的路由并且在源地址字段中包括与至少一个本地处理功能相关联的本地处理信息;并且将封装的封包转发到在目的地地址中识别的网络的下一个网络节点。
在另一示例中,提供了用于在网络头部中编码本地处理元数据的网络节点,该网络节点包括存储器(例如,被配置为存储数据,例如虚拟内容数据、一个或多个图像,等等)和与存储器耦合的一个或多个处理器(例如,在电路中实现)。该一个或多个处理器被配置为并且能够:从源设备接收要通过网络递送到目的地地址的封包;确定到目的地地址的路由;封装封包,其中封装的封包的头部在目的地地址字段中包括到目的地地址的路由并且在源地址字段中包括与至少一个本地处理功能相关联的本地处理信息;并且将封装的封包转发到在目的地地址中识别的网络的下一个网络节点。
在另一示例中,提供了一种非暂态计算机可读介质,其上存储有指令,这些指令当被一个或多个处理器执行时,使得该一个或多个处理器:从源设备接收要通过网络递送到目的地地址的封包;确定到目的地地址的路由;封装封包,其中封装的封包的头部在目的地地址字段中包括到目的地地址的路由并且在源地址字段中包括与至少一个本地处理功能相关联的本地处理信息;并且将封装的封包转发到在目的地地址中识别的网络的下一个网络节点。
在一些方面中,本地处理信息位于源地址字段的最低有效比特中。
在一些方面中,上文描述的方法、装置和计算机可读介质中的一个或多个还包括:执行本地处理信息中的至少一个本地处理功能。
在一些方面中,与至少一个本地处理功能相关联的信息包括以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
在一些方面中,本地处理信息包括识别对封装的封包的处置的切片标识符。
在一些方面中,本地处理信息包括用于负载平衡操作的熵比特。
在一些方面中,本地处理信息包括路径标识符,该路径标识符识别用于监视网络的性能的路由。
在一些方面中,本地处理信息包括用于控制、遥测和安全性功能的每封包标记比特。
在一些方面中,封装的封包包括IPv6封包。
在一些方面中,上文描述的方法、装置和计算机可读介质中的一个或多个还包括:从请求方设备接收包括与另一网络节点相关联的控制消息的封包;封装包括控制消息的封包,其中该封包的头部包括目的地地址,该目的地地址包括到该另一网络节点的路由,其中封装的封包的源地址的最低有效比特基于本地处理信息的长度被掩蔽;并且将封装的封包转发到在目的地地址中识别的网络的下一个网络节点。
概述
公开了用于在用于片段路由(SR)网络的头部中编码本地处理元数据的系统、方法和计算机可读介质。在一些示例中,SR网络中的封包可包括本地处理元数据,该元数据被编码到128比特源地址字段中。由于本地处理元数据被编码到源地址字段中,因此每个网络节点可以在硬件级(例如专用集成电路(application specific integrated circuit,ASIC)或功能性可编程门阵列(functional programmable gate array,FPGA))处理本地处理元数据中识别的功能,速度显著快于软件级,并且改善了网络节点的容量、延时和抖动。
示例实施例
SR在软件定义联网(software defined networking,SDN)网络中正变得越来越流行。SR网络可以使用SR策略来操控流量通过网络。SR策略在互联网协议(IP)头部中提供片段的列表,其指定了网络中从源节点到目的地节点的单向路径。当与片段列表中的某个片段相对应的网络节点接收到封包时,该网络节点可以在硬件中处理IP头部,以基于片段列表确定下一个网络实体,并且将封包转发到下一个网络节点。在硬件中处理IP头部比在软件中处理IP头部效率更高,并且允许了网络节点处理路由封包。
本技术将包含多个网络装置的显式路径编码到单个IPv6地址中,这可以允许网络装置高效地处理SR封包。SR还可以使用微片段标识符(μSID或uSID),它在SR头部中编码显式路径,并且通过确保在硬件中处理封包来提供更高效的性能。
图1图示了根据本公开的示例的网络100的示例。网络管理员使用控制器105在网络中配置控制平面,并且执行各种控制、施行和管理功能。例如,控制器105可以配置各种设备以实现SR网络110。在其他示例中,可能不需要控制器105,而网络节点可以感知SR,而不需要来自控制平面的配置。控制器105可以由计算设备实现,例如图8中图示的计算系统800。SR网络110是片段路由网络,包括节点120、122、124、126和128。这些节点中的每一者可以例如是路由器、交换机或其他适当的节点。SR网络110一般是有线网络,但可以被植入在无线网络(例如,802.11变体,比如802.11ax、802.11be,等等)、蜂窝网络(例如,4G、5G,等等)、有线和无线网络的组合,和/或可以使用任何其他适当的物理传输介质。SR网络110可用于提供用户设备102和104之间的连接。
例如,用户设备102可以利用SR网络110向用户设备104发送数据。用户设备102连接到节点120,而用户设备104连接到节点128。网络管理员使用控制器105在节点120和节点128之间建立路径。例如,控制器105可以建立从节点120经过节点124到节点128的路径。控制器105可以安装包括此路径的SR策略。从用户设备102流到用户设备104的流量通过此SR策略被路由。
类似地,控制器105可以建立从节点128到节点120的反向路径。此路径可包括节点128到节点126到节点124到节点120。控制器105可以安装包括此路径的第二SR策略。从用户设备104流到用户设备102的流量通过此第二SR策略被路由。在一些示例SR网络中,从节点120到节点128的SR策略不与从节点128到节点120的反向SR策略相关联。每个SR策略都是单向的。
图2图示了根据本公开的示例,可用于寻址网络节点以在SR网络中路由网络流量的μSID 200的示例。μSID 200在IPv6头部的目的地地址字段中可包括μSID标识符块210,该标识符块通告IP封包的地址与μSID相对应。在一些示例中,FC/8可以作为唯一本地地址(unique local address,ULA)空间提供给任何操作者,任何以FC开头的先头比特串都可以被用作μSID标识符块210,并且操作者可以使用FCCC/16作为μSID标识符块210。
在一些示例中,μSID 200可包括一个或多个编码的标识符。编码的标识符可以是全局标识符,其可以唯一地识别网络域中的网络装置。在一些示例中,全局标识符可以与一个或多个指令相关联。在一些示例中,编码的标识符可以是本地标识符。本地标识符可以与一个或多个指令相关联。本地标识符可以唯一地识别与本地标识符相关联的网络装置内的一个或多个指令。当第一网络装置对应于第一全局标识符,并且第二网络装置对应于第二全局标识符时,第一网络装置处特别编码的本地标识符可以对应于与第二网络装置处特别编码的本地标识符所对应的指令不同的指令。在一些示例中,μSID可包括结束标识符,该结束标识符指示出μSID中结束标识符之前的标识符是最后编码的标识符。
图2中图示的μSID 200包括μSID标识符块210、全局标识符212、全局标识符213、全局标识符214、全局标识符215、全局标识符218、本地标识符220、以及结束标识符230。在一些示例中,填充比特(未示出)被插入在结束标识符220之后。在一些示例中,可以基于指示出SR头部(SR header,SRH)包含额外地址的本地标识符识别额外的地址。
在一些示例中,全局标识符可包括一个或多个预定的比特序列。网络装置可以基于在全局标识符中编码的一个或多个预定比特序列来识别全局标识符。本地标识符可包括一个或多个预定的比特序列。网络装置可以基于在本地标识符中编码的一个或多个预定比特序列来识别本地标识符。作为图2中所示的一个示例,全局标识符的长度为四个半字节(nibble)(16比特)。全局标识符的第一个半字节(四个比特)可能是零。从而,网络装置可以基于全局标识符212的第一半字节为零来确定全局标识符212是全局标识符。作为图2中所示的另一个示例,本地标识符220的长度为四个半字节(16比特)。标识符220的第一个半字节可以是“F”以指示出本地标识符。虽然本公开描述了编码标识符的特定长度,但本公开设想到了编码标识符的任何适当的长度。虽然本公开描述了以特定方式确定全局标识符和本地标识符,但本公开设想到了以任何适当的方式确定全局标识符和本地标识符。
在一些示例中,结束标识符230可包括一个或多个预定的比特序列。网络装置可以基于在本地标识符中编码的一个或多个预定比特序列来识别结束标识符。如图2的示例中所示,结束标识符230的长度为四个半字节(16比特),并且被编码为“0000”以指示出结束标识符。虽然本公开描述了特定的结束标识符,但本公开设想到了任何适当的结束标识符。
在一些示例中,由第一全局标识符串接的μSID标识符块可能是与第一网络装置相对应的第一地址。第一网络装置可以在网络域内通告第一地址。网络域内的其他网络装置可以在接收到所通告的第一地址时更新其相应的转发表。当具有第一地址的封包到达网络装置时,网络装置可以转发该封包以使得该封包被路由到网络域内的第一网络装置。
图3图示了根据本公开的示例,基于μSID在SR网络300中将示例封包从源网络302(或网络节点)转发到目的地网络304(或网络节点)。
图3中图示的示例网络包括被配置为处理SR封包的各种网络节点,包括第一网络节点311、第二网络节点312、第三网络节点313、第四网络节点314、第五网络节点315、第六网络节点316、第七网络节点317和第八网络节点318。在这个示例中,第一网络节点311对应于μSID地址“0100”,第二网络节点312对应于μSID地址“0200”,第三网络节点313对应于μSID地址“0300”,第四网络节点314对应于μSID地址“0400”,第五网络节点315对应于μSID地址“0500”,第六网络节点316对应于μSID地址“0600”,第七网络节点317对应于μSID地址“0700”,第八网络节点318对应于μSID地址“0800”。
在一些示例中,源网络302可能希望通过SR网络300中的预定转发路径将封包发送到目的地网络304。第一网络节点311是来自源网络302的流量的入口节点,而第八网络节点318是去到目的地网络304的网络流量的出口节点。第一网络节点311接收来自源网络302的封包,并且计算或使得另一网络控制器计算通过SR网络300的路由。在这个示例中,到目的地网络304的路由是“FC00:0200:0300:0400:0500:0800:F8DA:0000”,如在μSID 200中识别的,包括第二网络节点312、第三网络节点313、第四网络节点314、第五网络节点315和第八网络节点318。第一网络节点311还计算(或使得另一网络控制器计算)由网络节点在封包中转期间在本地执行的封包处置或功能(例如,本地处理)。对封包的处置可以变化,并且可包括,例如,应用服务质量(quality of service,QoS)的切片标识符,用于对封包计数以确定路径损失的路径标识符,以及下面进一步描述的其他功能。
第一网络节点311将封包封装在IPv6封包中,并且在IPv6封包的头部的目的地地址字段中包括到目的地网络304的路由。第一网络节点311还可以将在封包中转期间由网络节点在本地执行的封包处置或功能(例如,本地处理)作为本地处理元数据编码在IPv6封包的源地址的最低有效比特中。
第一网络节点311可以在本地执行与本地处理元数据相关联的功能。例如,本地处理元数据可包括路径标识符,用于确定入口节点(例如,第一网络节点311)和出口节点(例如,第八网络节点318)之间的封包损耗。本地处理元数据还可以识别切片标识符,并且第一网络节点311可以根据QoS和与该切片标识符相关联的其他流量工程规则来处理封包。在执行本地功能之后,第一网络节点311可以识别目的地地址中的要执行的功能。在一些示例中,对μSID 200的前缀(例如,32比特)的一部分(例如,“FCCC:0200/32”)进行匹配以识别要执行的功能。例如,前16比特(“FCCC”)可以被移位以识别下一指令(“0200”)。在这种情况下,该指令可以是编码在转发信息库(forwarding information base,FIB)中的地址,用来指示出封包的下一跳。在其他示例中,该指令可以是该特定网络节点要执行的功能的类型。例如,某个指令可能是要执行深度封包检查以读取SRH中的地址。
在一些示例中,第二网络节点312可以接收包括目的地地址的封包,该目的地地址包含μSID 200。目的地地址可包括由第二全局标识符212串接的μSID 200。第二网络节点312可以确定第二全局标识符212对应于第二网络节点312,然后可以通过在第二网络节点312的FIB中查找“FCCC:0200/32”来识别与第二全局标识符212相关联的一个或多个指令,并且确定这些指令是要将封包的目的地字段中的目的地地址更新为更新后的目的地地址。作为响应,第二网络节点312可以将封包的目的地字段中的地址更新为更新后的目的地地址,然后将封包转发到更新后的目的地地址。例如,第二网络节点312可以将μSID标识符块210后面的比特移位第二全局标识符212的长度(例如,16比特),以从μSID 200中弹出(例如,移除)第二全局标识符212的地址。第二网络节点312可以串接剩余的μSID标识符块210和μSID 200中的剩余地址。在这种情况下,μSID中的32个最高有效比特将是“FCCC:0300”,这对应于μSID标识符块210和与第三网络节点313相关联的第三全局标识符213的地址。
在一些示例中,第二网络节点312可以确定该封包在源网络地址中包括本地处理元数据,并且可以执行本地处理元数据中识别的功能。如下文针对图4进一步描述的,封包的IP头部中的源网络地址可包括本地处理元数据,该元数据识别供第二网络节点312执行的一个或多个本地功能,这些功能可以与或不与封包相关联。例如,本地处理元数据可包括切片标识符,第二网络节点312可以用切片标识符来确定如何处理封包。在其他示例中,本地处理元数据可以识别标记比特以触发路由器处的特定功能,比如操作、施行和管理(operation,administration and management,OAM)功能,等等。在基于源地址中的本地处理元数据执行任何本地功能之后,第二网络节点312可以在转发表中执行对μSID 200的目的地地址(例如,“0300”)中的下一个地址的查找,并且将封包发送到第三网络节点313。
第三网络节点313执行在μSID 200中识别的指令,这些指令与提供给第二网络节点312的指令类似,并且使得第三网络节点313执行与本地处理元数据相关联的功能,并且更新IP头部中的目的地地址,并且基于μSID 200中的第四全局标识符214将封包转发到与第四网络节点314相关联的下一个节点。这个过程继续进行,直到在第八网络节点318处接收到封包为止,该节点识别出μSID 200中的下一个指令是结束标识符217。第八网络节点318对封包进行解封装,并且将封包发送到目的地网络304。
由于μSID 200在IP头部的目的地地址内,因此μSID 200可以由网络节点311-318在硬件中(例如,通过ASIC或FGPA)处理,并且每个网络节点311-318可以在硬件中识别目的地,而无需检查封包。通过在硬件中处理封包,每个网络节点311-318可以增大处理的封包数目,从而增大带宽,同时减小延时和抖动。另外,可以将本地处理元数据包括在源地址字段中,并且可以将硬件配置为基于本地处理元数据来识别和执行封包功能。
图4图示了根据本公开的示例,用于SR网络的IPv6头部400,其包括在源目的地地址中编码的本地处理元数据。
IPv6头部包括版本402、流量类404、流标签406、有效载荷长度408、下一个头部410、跳数限制412、源地址414和目的地地址416。在一些示例中,可以将本地处理元数据420编码或提供到SR网络中的源地址414的最低有效比特中。
版本402是4比特的,并且表示IP封包的版本(例如,0110代表IPv6)。流量类404是8比特的,并且包括两个部分:6个最高有效比特用于服务类型,以让路由器知道应当向此封包提供什么服务,而2个最低有效比特用于显式拥塞通知(explicit congestionnotification,ECN)。流标签406是20比特的,并且用于维持属于通信的封包的顺序流。源标记序列,用于帮助路由器识别特定的封包属于特定的信息流。此字段通过防止同一数据流中的数据封包的重排序,帮助中转路由器实现负载平衡。
有效载荷长度408为16比特,并且用于告知路由器特定封包在其有效载荷中包含多少信息。有效载荷可以由扩展头部和上层数据组成。利用16比特,最多可指示65535字节;但如果扩展头部包含逐跳扩展头部,则有效载荷可能超过65535字节,并且此字段被设置为0。下一个头部是8比特,并且用于指示出扩展头部的类型,或者如果扩展头部不存在,则其指示出上层协议数据单元(protocol data unit,PDU)。跳数限制412是8比特,并且用于阻止封包被配置在无限循环中。跳数限制412的值在其经过一个链路(路由器/跳)时被递减1,并且当跳数限制412达到0时,封包被丢弃。
源地址414是128比特,并且用于识别封包的发起者的地址。目的地地址416是128比特,并且用于识别封包的预期接收者的地址。
在一些示例中,源地址414被配置为包括供网络节点使用的元数据(例如,本地处理元数据)。如上所述,在SR网络中,目的地地址416用于识别到目的地网络节点的路由。通常,源地址414的前64比特用于识别网络中的封包的源节点,并且最后64比特识别源节点的接口(例如,环回)。然而,一般不需要64比特来识别节点上的单个接口(例如,单个环回接口)。
在一些示例中,来自源地址414的比特可以被用于其他目的,例如对元数据420进行本地处理,这种处理识别在网络节点处对封包的本地处理。例如,本地处理可包括:基于切片标识符的QoS处置、可用于各种OAM功能的路径标识符、用于负载平衡操作的扩展熵、以及每封包标记比特(其识别要执行的功能,例如将封包拷贝到遥测引擎)。其他本地功能可以被包括到本地处理元数据420中。在一个示例中,源地址414被编码到最低有效比特中,因此源地址将包含源节点的地址、源节点的接口,然后是本地处理元数据420。
由于本地处理元数据420被编码到IPv6头部中,因此网络节点的硬件(例如,网络节点中的ASIC或FPGA)可被配置为读取编码到源地址414中的本地处理元数据420并且执行该功能。例如,在切片标识符的情况下,网络节点可以使用硬件查找来在本地处理元数据中识别与切片标识符相关联的封包流,并且基于所识别的封包流在硬件中处理封包,以提供服务水平协定(service level agreement,SLA)。在一些示例中,SLA是使用目的地地址(例如,μSID)的流量工程和基于切片标识符在网络节点处实施的QoS处置的组合。
在一些示例中,本地处理元数据420可包括识别网络切片的切片标识符。切片标识符使得能够在同一物理网络基础设施上实现虚拟化且独立的逻辑网络的多路复用。在一些示例中,不同的应用可能具有不同的连通性要求,并且可能要求SLA确保对网络流量的端到端处置。为了确保每个应用的封包满足指定的SLA,可以使用网络切片标识符来识别网络切片,并且配置网络路由中的每个网络实体来配置其封包处理功能以满足SLA。切片标识符提供每流上下文,以确保满足SLA。网络切片利用了SDN和网络功能虚拟化(network functionvirtualization,NFV)的概念,这些概念允许了在公共网络基础设施之上实现灵活且可缩放的网络切片。
在一些示例中,本地处理元数据420可包括在数据平面中用于负载平衡的扩展熵比特。入口路由器基于来自给定封包的几个字段计算散列值,并且将结果放在名为熵标签的附加标签中,例如流标签字段。熵标签被标签交换路由器(label switching router,LSR)用作散列键的一部分,以减少对LSR中的深度封包检查的需求,并且使用熵标签进行负载平衡。在一些示例中,在流标签字段中有12比特的可用熵,这对于某些网络可能不够,例如具有大量的等价多路径路由(equal-cost multi-path routing,ECMP)路径的大型网络。因此,在一些示例中,本地处理元数据420可包括被附加到流标签字段中的内容的附加熵比特。在其他示例中,本地处理元数据420可包括所有的熵比特。
在一些示例中,本地处理元数据420可包括用于识别路径损耗的路径标识符。路径标识符是被映射到网络参数(例如,网络切片,网络连接,等等)的唯一标识符,用于对流量计数并且确定入口路由器和出口路由器之间的路径损耗。入口路由器和出口路由器维持计数器,并且可以基于对入口路由器中的计数器和出口路由器中的计数器的比较来确定隧道的路径损耗。
在一些示例中,本地处理元数据420可包括每封包标记比特。标记比特可用于促进路由跟踪和引用功能,用于网络安全性和网络诊断。在一些其他示例中,每封包标记比特可用于触发对封包的特定处置,例如将封包的拷贝发送到遥测引擎以进行封包处理。
在一些示例中,本地处理元数据420可以是静态的,并且可以在网络级进行配置,以便每个网络节点知晓本地处理元数据420的配置。例如,在一个示例中,本地处理元数据420可以是源地址414的16个最低有效比特,并且有16个比特被分配给切片标识符。本地处理元数据420的长度和配置由网络操作者配置,并且可包括不同功能的组合。
在一些示例中,本地处理元数据420可以是动态的,并且可被配置为具有不同的长度和不同的功能。下面的表格1说明了一个示例,它使用本地处理元数据420的4个最低有效比特来表达本地处理元数据的格式。
表格1
网络操作者可以在硬件中配置识别各种功能配置的查找表,并且利用最低有效比特,可以基于在本地处理元数据420中识别的功能来执行处理。虽然表格1中说明的示例识别了4比特映射,但映射大小可以由网络操作者配置为具有其他大小(例如,3比特,等等),并且本地处理元数据的大小也可以是可配置的。
图5图示了根据本公开的示例,用于网络节点利用功能配置封包的头部以在SR网络中传输的方法的流程图。虽然示例方法500描绘了特定的操作序列,但该序列可以被更改,而不脱离本公开的范围。例如,所描绘的一些操作可以被并行地或者按不同序列执行,这不会实质性地影响方法500的功能。在其他示例中,实现方法500的示例设备或系统的不同组件可以在基本相同的时间或者以特定的序列执行功能。
根据一些示例,该方法包括在块510,接收来自源设备的入口封包,该封包将通过网络被递送到目的地地址。例如,图9中图示的接口902可以接收来自源设备的入口封包,该封包将通过网络被递送到目的地地址。
根据一些示例,该方法包括在块520确定到目的地地址的路由。例如,ASIC 912可以通过在硬件表格中执行查找来确定到目的地地址的路由。
根据一些示例,该方法包括在块530识别要由网络节点执行的关于封包的至少一个功能。例如,ASIC 912可以识别关于封包的本地处理元数据。在一些示例中,本地处理元数据识别供网络节点执行的功能,例如提供QoS。该方法包括在块540,(例如,由ASIC 912)将入口封包封装在出口封包中,第二封包在目的地地址中包括到目的地的路由并且在源地址中包括源节点的地址和本地处理元数据。
如上文参考图2和图3所描述,出口封包的头部在目的地地址字段中包括到目的地地址的路由,并且在源地址字段中包括与至少一个功能相关联的本地处理元数据。在一些示例中,本地处理元数据位于源地址字段的最低有效比特中,并且封包具有IPv6配置。
本地处理元数据可以是静态的或者动态的。在静态配置中,本地处理元数据被配置为具有由网络节点执行的一个或多个功能。例如,本地处理元数据可以是16比特,其中8比特被分配给切片标识符,8比特被分配给熵。在其他示例中,比特可以被分配给单个功能,例如切片标识符、熵比特、路径标识符和每封包标记比特。在动态配置中,本地处理元数据的比特可以基于映射比特而变化,这些映射比特识别了许多不同的配置,如上面的表格1中所说明的。
根据一些示例,方法600包括在块550,(例如,由ASIC 912经由接口902)将第二封包转发到在目的地地址中识别的网络的下一个网络节点。
图6图示了根据本公开的示例,用于网络节点基于IP封包的头部中的本地处理元数据来执行功能的方法600的流程图。虽然示例方法600描绘了特定的操作序列,但该序列可以被更改,而不脱离本公开的范围。例如,所描绘的一些操作可以被并行地或者按不同序列执行,这不会实质性地影响方法600的功能。在其他示例中,实现方法600的示例设备或系统的不同组件可以在基本相同的时间或者以特定的序列执行功能。
根据一些示例,方法600包括在块605(例如,经由接口902)接收来自网络节点的IP封包。IP封包的头部在目的地地址字段中包括到目的地地址的路由,并且在源地址字段中包括本地处理元数据,其中包括功能。本地处理元数据位于源地址字段的最低有效比特中。根据一些示例(例如,在SR网络中),方法600包括(例如,由ASIC 912)修改IP封包的头部,以移除接收IP封包的网络节点的地址。
根据一些示例,方法600包括在块610,(例如,由ASIC 912)确定IP封包的源地址包括本地处理元数据,该元数据识别网络节点要执行的功能。
在一个示例中,本地处理元数据的配置可以是动态的,并且识别以下项:切片标识符(它识别网络中的其他网络节点将如何处置IPv6封包)、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、或者每封包标记比特。在另一个示例中,本地处理元数据的配置可以是静态的,并且具有预格式化的结构,该结构包括网络切片标识符、熵信息、路径标识符和识别要对封包执行的操作的每封包标记比特之一。在这个示例中,网络节点被配置为使用固定数量的最低有效比特。
根据一些示例,方法600包括在块615(例如,由ASIC 912)执行在本地处理元数据中识别的功能。在执行该功能之后,方法600包括在块620(例如,由ASIC 912经由接口902)将IP封包转发到在IP封包中识别的下一个节点。本地处理元数据在中转期间不会被更改,并且接收到封包的每个中转路由器将对封包执行等同的处置。
图7图示了根据本公开的示例,用于网络节点处理SR网络中的控制消息的方法700的流程图。在一些示例中,可能需要对互联网控制消息协议(internet control messageprotocol,ICMP)或控制消息进行不同的处理,以确保将控制消息传送到目的地地址。
根据一些示例,方法700包括在块710(例如,由ASIC 912通过接口902)接收来自请求方设备的包括控制消息的封包。在接收包括控制消息的封包之后,方法700包括在块720(例如,由ASIC 912)确定第三封包的头部的源地址中的最低有效比特被掩蔽以排除本地处理元数据。
方法700包括在块730(例如,由ASIC 912)从第三封包的头部的源地址中的最高有效比特提取请求方设备的地址。方法700在块740(例如,由ASIC 912)确定到请求方设备的返回路由。根据一些示例,方法700包括在块750(例如,由ASIC 912经由接口902)在第四封包中向请求方设备发送响应消息。第四封包的头部在目的地地址字段中包括到请求方设备的返回路由。
在一些示例中,方法700允许网络节点接收封包,该封包在封装的封包中掩蔽了本地处理元数据,以确保头部中的源地址得到与其他封包相同的处理,并且可以在SR网络中制定适当的响应。
图8示出了计算系统800的示例,该计算系统例如可以是构成任何网络节点的任何计算设备,例如第一网络节点311、第二网络节点312、第三网络节点313、第四网络节点314、第五网络节点315、第六网络节点316、第七网络节点317、第八网络节点318或者其任何组件,其中系统的组件使用连接805与彼此通信。连接805可以是经由总线的物理连接,或者到处理器810中的直接连接,例如在芯片组体系结构中。连接805也可以是虚拟连接、联网的连接或者逻辑连接。
在一些实施例中,计算系统800是分布式系统,其中本公开中描述的功能可以分布在一个数据中心、多个数据中心、对等网络等等内。在一些实施例中,一个或多个所描述的系统组件代表许多这样的组件,每个组件执行对于该组件所描述的部分或全部功能。在一些实施例中,组件可以是物理或虚拟设备。
示例计算系统800包括至少一个处理单元(CPU或处理器)810和连接805,该连接将包括系统存储器815(例如只读存储器(read only memory,ROM)820和随机访问存储器(random access memory,RAM)825)在内的各种系统组件耦合到处理器810。计算系统800可包括与处理器810直接连接、紧邻处理器810或者被集成为处理器810的一部分的高速存储器812的缓存。
处理器810可包括任何通用处理器和硬件服务或软件服务,例如存储在存储设备830中的服务832、834和836,它们被配置为控制处理器810以及专用处理器,在专用处理器中软件指令被包含到实际处理器设计中。处理器810实质上可以是完全独立自给的计算系统,包含多个核心或处理器、总线、存储器控制器、缓存,等等。多核处理器可以是对称的或非对称的。
为了使得能够进行用户交互,计算系统800包括输入设备845,该输入设备可代表任意数目的输入机制,例如用于话音的麦克风、用于手势或图形输入的触摸敏感屏、键盘、鼠标、运动输入、话音,等等。计算系统800还可包括输出设备835,该输出设备可以是本领域技术人员已知的多种输出机制中的一个或多个。在一些情况中,多模式系统可使得用户能够提供多种类型的输入/输出来与计算系统800通信。计算系统800可包括通信接口840,该通信接口一般可以支配和管理用户输入和系统输出。对于在任何特定硬件布置上操作没有限制,因此这里的基本特征可以很容易地在改进的硬件或固件布置被开发出来时被其所替代。
存储设备830可以是非易失性存储器设备,并且可以是硬盘或者可存储计算机可访问的数据的其他类型的计算机可读介质,例如磁带、闪存卡、固态存储器设备、数字多功能盘、墨盒、RAM、ROM、和/或这些设备的某种组合。
存储设备830可包括软件服务、服务器、服务等等,当定义这种软件的代码被处理器810执行时,这些软件服务、服务器、服务等等使得系统执行功能。在一些实施例中,执行特定功能的硬件服务可包括存储在计算机可读介质中的软件组件,该软件组件结合诸如处理器810、连接805、输出设备835等等之类的必要硬件组件来执行该功能。
为了说明清楚,在一些情况中,本技术可被呈现为包括个体的功能块,包括由设备、设备组件、以软件体现的方法中的步骤或例程或者硬件和软件的组合构成的功能块。
本文描述的任何步骤、操作、功能或过程可由硬件和软件服务或者服务的组合单独或者与其他设备相结合执行或实现。在一些实施例中,服务可以是驻留在客户端设备和/或内容管理系统的一个或多个服务器的存储器中的软件,并且在处理器执行与服务相关联的软件时执行一个或多个功能。在一些实施例中,服务是程序,或者执行特定功能的程序的集合。在一些实施例中,服务可以被认为是服务器。存储器可以是非暂态的计算机可读介质。
在一些实施例中,计算机可读存储设备、介质和存储器可包括包含比特流等等的线缆或无线信号。然而,当提到时,非暂态计算机可读存储介质明确排除了诸如能量、载波信号、电磁波和信号本身之类的介质。
根据上述示例的方法可利用存储在计算机可读介质中或者以其他方式从计算机可读介质可得的计算机可执行指令来实现。这种指令可包括例如使得或者以其他方式配置通用计算机、专用计算机或者专用处理设备执行特定的一个功能或一组功能的指令和数据。所使用的计算机资源的一些部分可以是通过网络可访问的。计算机可执行指令可以是例如二进制文件、中间格式指令(比如汇编语言)、固件或者源代码。可用于存储指令、使用的信息和/或在根据描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、固态存储器设备、闪存、提供有非易失性存储器的通用串行总线(universalserial bus,USB)设备、联网存储设备,等等。
实现根据这些公开内容的方法的设备可包括硬件、固件和/或软件,并且可采取各种外形参数。这种外形参数的典型示例包括服务器、膝上型电脑、智能电话、小外形参数个人计算机、个人数字助理,等等。本文描述的功能也可体现在外围设备或者附加卡中。作为进一步示例,这种功能也可在电路板上的不同芯片或者在单一设备中执行的不同过程间实现。
指令、用于传达这种指令的介质、用于执行指令的计算资源以及用于支持这种计算资源的其他结构是提供这些公开内容中描述的功能的手段。
虽然各种示例和其他信息被用来说明所附权利要求的范围内的各方面,但不应基于这种示例中的特定特征或布置来暗示对权利要求的限制,因为本领域普通技术人员将能够使用这些示例来得出各种各样的实现方式。另外,虽然一些主题可能已经被用结构特征和/或方法步骤的示例所特有的语言来描述,但要理解,所附权利要求中定义的主题不一定限于这些描述的特征或者动作。例如,这种功能可以以不同的方式分布,或者在本文所识别的组件以外的其他组件中执行。更确切地说,所描述的特征和步骤是作为所附权利要求的范围内的系统和方法的组成部分的示例被公开的。
图9图示了适合于执行交换、路由、负载平衡和其他联网操作的示例网络设备900。示例网络设备900可以实现为交换机、路由器、节点、元数据服务器、负载平衡器、客户端设备,等等。
网络设备900包括中央处理单元(central processing unit,CPU)904,接口902和总线910(例如,外围组件互连(peripheral component interconnect,PCI)总线)。当在适当的软件或固件的控制下行动时,CPU 904负责执行封包管理、差错检测和/或路由功能。CPU 904最好是在包括操作系统和任何适当应用软件在内的软件的控制下完成所有这些功能。CPU 904可包括一个或多个处理器908,例如来自INTEL X86微处理器家族的处理器。在一些情况下,处理器908可以是专门设计的硬件,用于控制网络设备900的操作。在一些情况下,存储器906(例如,非易失性RAM、ROM,等等)也形成CPU 904的一部分。然而,有许多不同的方式可将存储器耦合到系统。
接口902通常是作为模块化接口卡(有时称为“线路卡”)提供的。一般而言,它们控制网络上数据封包的发送和接收,并且有时支持与网络设备900一起使用的其他外围设备。可提供的接口有以太网接口、帧中继接口、线缆接口、数字订户线(digital subscriberline,DSL)接口、令牌环接口,等等。此外,可以提供各种非常高速的接口,例如快速令牌环接口、无线接口、以太网接口、千兆比特以太网接口、异步传送模式(asynchronoustransfer mode,ATM)接口、高速串行接口(high-speed serial interface,HSSI)、销售点(point-of-sale,POS)接口、光纤分布式数据接口(fiber distributed data interface,FDDI)、WIFI接口、3G/4G/5G蜂窝接口、CAN BUS、LoRA,等等。一般而言,这些接口可包括适合与适当的媒体通信的端口。在一些情况下,它们还可包括独立的处理器,并且在一些情况中包括易失性RAM。独立处理器可以控制诸如封包交换、媒体控制、信号处理、密码处理和管理之类的通信密集型任务。通过为通信密集型任务提供单独的处理器,这些接口允许了主CPU(例如,904)高效地执行路由计算、网络诊断、安全性功能,等等。
虽然图9所示的系统是本公开的一个特定网络设备,但它绝不是可在其上实现本公开的唯一网络设备体系结构。例如,经常使用具有单个处理器的体系结构,该处理器可处理通信以及路由计算,等等。另外,其他类型的接口和媒体也可与网络设备900一起使用。
无论网络设备的配置如何,它都可采用一个或多个存储器或存储器模块(包括存储器906),这些存储器或存储器模块被配置为存储用于通用网络操作和本文描述的用于漫游、路由优化和路由功能的机制的程序指令。程序指令例如可控制操作系统和/或一个或多个应用的操作。一个或多个存储器也可被配置为存储表格,例如移动性绑定、注册和关联表,等等。存储器906也可保存各种软件容器和虚拟化执行环境和数据。
网络设备900还可包括ASIC,其可被配置为执行路由和/或交换操作。ASIC可经由总线910与网络设备900中的其他组件通信,以交换数据和信号并且协调网络设备900的各种类型的操作,例如路由、交换和/或数据存储操作。
本公开中记载某集合“中的至少一者”和/或某集合中的“一个或多个”的权利要求语句或其他语句表明该集合的一个成员或者该集合的多个成员(按任何组合)满足该权利要求。例如,记载“A和B中的至少一者”或者“A或B中的至少一者”的权利要求语句指的是A,B,或者A和B。记载“A、B和C中的至少一者”或者“A、B或C中的至少一者”的权利要求语句指的是A,B,C,或者A和B,或者A和C,或者B和C,或者A和B和C。记载某集合“中的至少一者”和/或某集合中的“一个或多个”的语句并不会将该集合限制到该集合中列出的项目。例如,记载“A和B中的至少一者”或者“A或B中的至少一者”的权利要求语句可以指A,B,或者A和B,并且可另外包括A和B的集合中没有列出的项目。
虽然各种示例和其他信息被用来说明所附权利要求的范围内的各方面,但不应基于这种示例中的特定特征或布置来暗示对权利要求的限制,因为本领域普通技术人员将能够使用这些示例来得出各种各样的实现方式。另外,虽然一些主题可能已经被用结构特征和/或方法步骤的示例所特有的语言来描述,但要理解,所附权利要求中定义的主题不一定限于这些描述的特征或者动作。例如,这种功能可以以不同的方式分布,或者在本文所识别的组件以外的其他组件中执行。更确切地说,所描述的特征和步骤是作为所附权利要求的范围内的系统和方法的组成部分的示例被公开的。
本公开的说明性示例包括:
方面1。一种方法,包括从源设备接收要通过网络递送到目的地地址的封包;确定到所述目的地地址的路由;封装所述封包,其中,封装的封包的头部在目的地地址字段中包括到所述目的地地址的路由并且在源地址字段中包括与至少一个本地处理功能相关联的本地处理信息;并且将所述封装的封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
方面2。如方面1所述的方法,其中,所述本地处理信息位于所述源地址字段的最低有效比特中。
方面3。如方面1至2中的任一者所述的方法,还包括执行所述本地处理信息中的至少一个本地处理功能。
方面4。如方面1至3中的任一者所述的方法,其中,与所述至少一个本地处理功能相关联的信息包括以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定所述网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
方面5。如方面1至4中的任一者所述的方法,其中,所述本地处理信息包括切片标识符,该切片标识符识别对所述封装的封包的处置。
方面6。如方面1至5中的任一者所述的方法,其中,所述本地处理信息包括用于负载平衡操作的熵比特。
方面7。如方面1至6中的任一者所述的方法,其中,所述本地处理信息包括路径标识符,该路径标识符识别用于监视所述网络的性能的路由。
方面8。如方面1至7中的任一者所述的方法,其中,所述本地处理信息包括用于控制、遥测和安全性功能的每封包标记比特。
方面9。如方面1至8中的任一者所述的方法,其中,所述封装的封包包括IPv6封包。
方面10。如方面1至9中的任一者所述的方法,还包括从请求方设备接收包括与另一网络节点相关联的控制消息的封包;封装包括所述控制消息的封包,其中,所述封包的头部包括目的地地址,该目的地地址包括到所述另一网络节点的路由,其中,封装的封包的源地址的最低有效比特基于所述本地处理信息的长度被掩蔽;并且将所述封装的封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
方面11。一种中转网络节点的方法,包括从网络节点接收封包,其中,所述封包的头部在目的地地址字段中包括到目的地地址的路由,并且在源地址字段中包括本地处理信息;修改所述封包的头部以移除接收所述封包的网络节点的地址;确定所述本地处理信息识别了所述网络节点要执行的功能;执行所述本地处理信息中识别的功能;并且在执行所述功能之后,将带有所述本地处理信息的所述封包转发到所述封包中识别的下一节点。
方面12。如方面11所述的方法,其中,所述本地处理信息位于所述源地址字段的最低有效比特中。
方面13。如方面11至12中的任一者所述的方法,还包括:修改所述封包的头部以移除所述目的地地址字段中的网络节点的地址,其中,所述源地址字段中的本地处理信息被维持。
方面14。如方面11至13中的任一者所述的方法,其中,所述本地处理信息识别以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
方面15。如方面11至14中的任一者所述的方法,其中,所述网络节点被配置为使用所述本地处理信息的固定数量的最低有效比特来识别以下各项之一:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、以及用于控制、遥测和安全性功能的对于每个封包特有的每封包标记比特。
方面16。如方面11至15中的任一者所述的方法,还包括从请求方设备接收包括控制消息的封包;确定所述封包的头部的源地址中的最低有效比特被掩蔽以排除本地处理元数据;从所述第三封包的头部的源地址中的最高有效比特提取所述请求方设备的地址;确定到所述请求方设备的返回路由;并且向所述请求方设备发送响应消息,其中,所述响应消息的头部在所述目的地地址字段中包括到所述请求方设备的返回路由。
方面17。一种网络设备,包括一个或多个处理器;并且当被所述一个或多个处理器执行时,使得所述一个或多个处理器从源设备接收要通过网络递送到目的地地址的第一封包;确定到所述目的地地址的路由;将所述第一封包封装在第二封包中,其中,所述第二封包的头部在目的地地址字段中包括到所述目的地地址的路由并且在源地址字段中包括与所述至少一个功能相关联的本地处理信息;并且将所述第二封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
方面18。如方面17所述的网络设备,其中,所述本地处理元数据识别所述本地处理元数据的长度和所述本地处理元数据的配置。
方面19。如方面17至18中的任一者所述的网络设备,其中,所述本地处理元数据的配置识别以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定所述网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
方面20。如方面17至19中的任一者所述的网络设备,其中,所述本地处理元数据包括以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵比特、用于确定路径损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
Claims (20)
1.一种方法,包括:
从源设备接收要通过网络递送到目的地地址的封包;
确定到所述目的地地址的路由;
封装所述封包,其中,封装的封包的头部在目的地地址字段中包括到所述目的地地址的路由并且在源地址字段中包括与至少一个本地处理功能相关联的本地处理信息;并且
将所述封装的封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
2.如权利要求1所述的方法,其中,所述本地处理信息位于所述源地址字段的最低有效比特中。
3.如权利要求2所述的方法,还包括:
执行所述本地处理信息中的至少一个本地处理功能。
4.如权利要求3所述的方法,其中,与所述至少一个本地处理功能相关联的信息包括以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定所述网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
5.如权利要求1所述的方法,其中,所述本地处理信息包括切片标识符,所述切片标识符识别对所述封装的封包的处置。
6.如权利要求1所述的方法,其中,所述本地处理信息包括用于负载平衡操作的熵比特。
7.如权利要求1所述的方法,其中,所述本地处理信息包括路径标识符,该路径标识符识别用于监视所述网络的性能的路由。
8.如权利要求1所述的方法,其中,所述本地处理信息包括用于控制、遥测和安全性功能的每封包标记比特。
9.如权利要求1所述的方法,其中,所述封装的封包包括IPv6封包。
10.如权利要求1所述的方法,还包括:
从请求方设备接收包括与另一网络节点相关联的控制消息的封包;
封装包括所述控制消息的封包,其中,所述封包的头部包括目的地地址,该目的地地址包括到所述另一网络节点的路由,其中,封装的封包的源地址的最低有效比特基于所述本地处理信息的长度被掩蔽;并且
将所述封装的封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
11.一种中转网络节点的方法,包括:
从网络节点接收封包,其中,所述封包的头部在目的地地址字段中包括到目的地地址的路由,并且在源地址字段中包括本地处理信息;
修改所述封包的头部以移除接收所述封包的网络节点的地址;
确定所述本地处理信息识别了所述网络节点要执行的功能;
执行所述本地处理信息中识别的功能;并且
在执行所述功能之后,将带有所述本地处理信息的所述封包转发到所述封包中识别的下一节点。
12.如权利要求11所述的方法,其中,所述本地处理信息位于所述源地址字段的最低有效比特中。
13.如权利要求12所述的方法,还包括:
修改所述封包的头部以移除所述目的地地址字段中的网络节点的地址,其中,所述源地址字段中的本地处理信息被维持。
14.如权利要求13所述的方法,其中,所述本地处理信息识别以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
15.如权利要求11所述的方法,其中,所述网络节点被配置为使用所述本地处理信息的固定数量的最低有效比特来识别以下各项之一:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定网络中的封包损耗的路径标识符、以及用于控制、遥测和安全性功能的对于每个封包特有的每封包标记比特。
16.如权利要求11所述的方法,还包括:
从请求方设备接收包括控制消息的封包;
确定所述封包的头部的源地址中的最低有效比特被掩蔽以排除本地处理元数据;
从所述第三封包的头部的源地址中的最高有效比特提取所述请求方设备的地址;
确定到所述请求方设备的返回路由;并且
向所述请求方设备发送响应消息,其中,所述响应消息的头部在目的地地址字段中包括到所述请求方设备的返回路由。
17.一种网络设备,包括:
一个或多个处理器;以及
至少一个非暂态计算机可读介质,其上存储有指令,所述指令当被所述一个或多个处理器执行时,使得所述一个或多个处理器:
从源设备接收要通过网络递送到目的地地址的第一封包;
确定到所述目的地地址的路由;
将所述第一封包封装在第二封包中,其中,所述第二封包的头部在目的地地址字段中包括到所述目的地地址的路由并且在源地址字段中包括与所述至少一个功能相关联的本地处理信息;并且
将所述第二封包转发到在所述目的地地址中识别的所述网络的下一个网络节点。
18.如权利要求17所述的网络设备,其中,所述本地处理元数据识别所述本地处理元数据的长度和所述本地处理元数据的配置。
19.如权利要求18所述的网络设备,其中,所述本地处理元数据的配置识别以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵、用于确定所述网络中的封包损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
20.如权利要求17所述的网络设备,其中,所述本地处理元数据包括以下各项中的至少一者:识别封包处置的切片标识符、用于负载平衡操作的熵比特、用于确定路径损耗的路径标识符、或者用于控制、遥测和安全性功能的每封包标记比特。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063120020P | 2020-12-01 | 2020-12-01 | |
US202063120036P | 2020-12-01 | 2020-12-01 | |
US63/120,020 | 2020-12-01 | ||
US63/120,036 | 2020-12-01 | ||
US202163220946P | 2021-07-12 | 2021-07-12 | |
US63/220,946 | 2021-07-12 | ||
US17/538,513 | 2021-11-30 | ||
US17/538,513 US20220174004A1 (en) | 2020-12-01 | 2021-11-30 | Methods and apparatus for encoding local processing metadata in network headers |
PCT/US2021/061438 WO2022119943A1 (en) | 2020-12-01 | 2021-12-01 | Methods and apparatus for encoding local processing metadata in network headers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116746129A true CN116746129A (zh) | 2023-09-12 |
Family
ID=81751918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180091712.7A Pending CN116746129A (zh) | 2020-12-01 | 2021-12-01 | 用于在网络头部中编码本地处理元数据的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220174004A1 (zh) |
EP (1) | EP4256770A1 (zh) |
CN (1) | CN116746129A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022177598A1 (en) * | 2021-02-18 | 2022-08-25 | Futurewei Technologies Co., Ltd. | Resource aware forwarding in the network with abstract destination address and semantic addressing |
CN117255034A (zh) * | 2022-06-10 | 2023-12-19 | 中兴通讯股份有限公司 | 切片信息的验证方法及装置 |
US11831548B1 (en) * | 2022-11-29 | 2023-11-28 | Ciena Corporation | Distinguishing SRv6 micro-SID destination address from IPv6 destination address |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7839796B2 (en) * | 2007-03-14 | 2010-11-23 | Cisco Technology, Inc. | Monitor for multi-protocol label switching (MPLS) networks |
WO2019210769A1 (en) * | 2018-05-03 | 2019-11-07 | Huawei Technologies Co., Ltd. | Explicit routing with network function encoding |
CN113507416B (zh) * | 2018-10-27 | 2022-05-10 | 华为技术有限公司 | 报文处理方法、相关设备及计算机存储介质 |
JP2022547992A (ja) * | 2019-09-11 | 2022-11-16 | 華為技術有限公司 | データ伝送制御方法及び装置 |
US11616726B2 (en) * | 2020-11-24 | 2023-03-28 | Juniper Networks, Inc. | End-to-end flow monitoring in a computer network |
-
2021
- 2021-11-30 US US17/538,513 patent/US20220174004A1/en active Pending
- 2021-12-01 CN CN202180091712.7A patent/CN116746129A/zh active Pending
- 2021-12-01 EP EP21859373.9A patent/EP4256770A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4256770A1 (en) | 2023-10-11 |
US20220174004A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102555671B1 (ko) | 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체 | |
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
US11374848B2 (en) | Explicit routing with network function encoding | |
Li et al. | Protocol oblivious forwarding (POF): Software-defined networking with enhanced programmability | |
JP7520170B2 (ja) | パケット処理方法および装置、デバイス、ならびにシステム | |
CN111512601B (zh) | 分组的分段路由网络处理 | |
KR101900536B1 (ko) | Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현 | |
US10063468B2 (en) | Leaking routes in a service chain | |
CN108141416B (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
US20220174004A1 (en) | Methods and apparatus for encoding local processing metadata in network headers | |
US8913613B2 (en) | Method and system for classification and management of inter-blade network traffic in a blade server | |
US20160014016A1 (en) | Encoding Inter-Domain Shared Service Paths | |
Hari et al. | Path switching: Reduced-state flow handling in SDN using path information | |
WO2022111606A1 (zh) | 一种报文传输、段列表生成、压缩段标识获取方法及装置 | |
WO2023116580A1 (zh) | 路径切换方法、装置、网络设备、以及网络系统 | |
JP6525256B2 (ja) | 仮想ネットワークシステムおよび仮想ネットワーク経路設定方法 | |
CN114513457A (zh) | Bgp流规则路由的发布方法、网络设备及存储介质 | |
WO2023039375A1 (en) | Multiprotocol label switching (mpls) data plane header extensions | |
CN118140460A (zh) | 包括在封包交换设备内对封包的数据路径处理的网络节点到节点连通性验证 | |
JP2024520119A (ja) | パケット処理方法、装置、及びシステム | |
US10171368B1 (en) | Methods and apparatus for implementing multiple loopback links | |
WO2022119943A1 (en) | Methods and apparatus for encoding local processing metadata in network headers | |
EP4391475A1 (en) | Bit index explicit replication (bier) with anycast | |
US11979317B2 (en) | Multiprotocol label switching (MPLS) data plane header extensions | |
US20240235993A1 (en) | Multiprotocol label switching (mpls) data plane header extensions |
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 |