用于并行处理的自描述数据包头部制造技术

技术编号:25279494 阅读:80 留言:0更新日期:2020-08-14 23:10
定义了自描述数据包块(Self‑Describing Packet block,SDPB),允许在定义的数据包块中并行处理各种固定头,以利用网络节点转发路径架构中的多个核。通过检查所述数据包创建时设置的串行化标志,SPDB允许对同一数据包中携带的各种头部数据、元数据和条件命令进行并行处理,而无需对处理进行串行化甚至无需解析所述数据包。当可以并行处理一个或多个子块中的一个或多个命令时,将所述一个或多个命令分配到多个处理资源进行并行处理。该架构允许将多个具有各自独立结果的独特功能(执行命令、进行服务链接、执行遥测、允许虚拟化和路径引导)与简化的包架构并行执行,而不会产生额外的封装开销。

【技术实现步骤摘要】
【国外来华专利技术】用于并行处理的自描述数据包头部相关申请案交叉申请本专利申请要求由RenweiLi等人于2017年9月29日提交的、专利技术名称为“具有条件指令的自运行数据包(Self-DrivingPacketsWithConditionalInstructions)”的第62/565,211号美国临时专利申请,由RenweiLi等人于2018年9月7日提交的、专利技术名称为“具有条件命令的自运行数据包(Self-DrivingPacketsWithConditionalCommands)”的第16/124,770号美国专利申请,以及由RenweiLi等人于2017年9月29日提交的、专利技术名称为“用于并行处理的自描述可变大小数据包头部(Self-DescribingVariable-SizePacketHeadersforConcurrentProcessing)”的第62/565,221号美国临时专利申请的优先权,其全部内容并入本文中。
本申请涉及计算机网络,更具体地,涉及一种用于使用自描述可变大小数据包头部并行处理IP数据包头部的系统和方法。
技术介绍
互联网协议(InternetProtocol,IP)是用于当今网络的协议。当网络节点接收到IP数据包时,或者是广义上的基于目的地址(和所选头部信息,例如,IPv4和IPv6数据包头部中的生存时间(timetolive,TTL)和差异化服务编码点(differentiatedservicescodepoint,DSCP))转发该IP数据包,或者是使用并下发该IP数据包到更高的一层进行进一步处理。在任一情况下,都可能有多个头部需要处理。如今,多个头部是按顺序处理的,这是由于头部是嵌套编码的,同时,可能用于每个层的单独加密和完整性保护方案,需要一次解包一个头部。例如,二层头、逐跳头、路由头部X类型、路由头部Y类型、目的头1和目的头2-传输头-应用数据,都需要一次解包一个头部。在处理IP头期间,还需要做其他决策,所有决策都需要对IP数据包的某些方面进行审查。进行优先级排序、标记/DSCP值、更新流缓存以及收集操作管理维护(operations,administration,andmaintenance,OAM)数据等其他操作不一定需要一次解包一个头部以进行顺序处理。事实上,这些操作中有些可以并行处理。在其他情况下,需要多个具有封装的头部来执行特定功能,如虚拟化和服务链接。例如,通用网络虚拟化封装(GenericNetworkVirtualizationEncapsulation,Geneve)协议为网络虚拟化提供隧道框架,其中隧道通常作为虚拟交换机之间的背板而建立,这些虚拟交换机位于虚拟机监视器、物理交换机等中。隧道用于封装和转发来自附加组件(如虚拟机或物理链路)的帧。Geneve包格式包括通过IPv4或IPv6封装在用户数据报协议(userdatagramprotocol,UDP)中的紧凑型隧道头。小型的固定隧道头提供控制信息以及基本级别的功能和互操作性。净荷包括协议数据单元,如以太网帧。另一方面,可以将网络服务头(NetworkServiceHeader,NSH)施加到帧的数据包上,以实现服务功能路径(ServiceFunctionPath,SFP)。NSH还提供了沿业务路径的元数据交换机制。NSH是支持服务功能链接(ServiceFunctionChaining,SFC)架构所需的SFC封装。遗憾的是,如果网络需要将这两个特性都应用在IP数据包上,则由于这两种协议定义的封装方式,目前尚不可能实现。因此,按顺序处理所有IP头可能导致网络内的处理严重延迟。此外,当试图并行处理数据包时,通常很难确定处理的哪些部分相互依赖,并且无法指示对于数据包的哪些部分依赖于另一部分这一情况的处理。当这不易确定时,就需要将处理串行化。
技术实现思路
现通过各种实例简单介绍一些概念,在下文的具体实施方式中会进一步描述这些概念。
技术实现思路
不旨在表明专利申请所要求保护的标的的关键特征或基本特征,也不旨在确定专利申请所要求保护的标的的范围。当前的IP数据包编码效率较低,因为即使网络节点的硬件具有更高的功率处理和存储能力,它也要求对IP头进行串行化处理。此外,当前的IP数据包协议中没有用于携带信息和逻辑的方法,该信息和逻辑可用于确定可以对IP数据包的哪些不同部分进行并行处理。另外,需要能够在同一网络节点上针对IP数据包实现多种功能而无需过多的附加封装头的技术。本文所述的系统和方法通过提供具有多个条件命令、元数据和流上下文信息的自描述包块(Self-DescribingPacketBlock,SDPB)来解决本领域中的这些问题,可以针对云/DC、蜂窝/移动回传中的各种用例、工业或通用企业网细分市场对所述SDPB进行编码。在示例实施例中,所述SDPB允许在IP数据包块中并行处理各种固定头,其中将所述固定头定义为利用网络节点转发路径硬件中的多个核。SPDB允许对同一数据包中携带的各种头部数据、元数据和条件命令进行并行处理,而无需对处理进行串行化甚至无需解析所述解析包。本文所述的系统和方法允许将多个具有各自独立结果的独特功能(执行命令、进行服务链接、执行遥测、允许虚拟化和路径引导)与简化的包架构并行执行。根据本专利技术的第一方面,提供了一种用于在网络中处理数据包的计算机实现的方法。所述方法包括:在网络设备中的接收器处接收包括数据包的数据流;使用一个或多个处理器:从所述接收到的数据包的自描述块头部中识别多个子块,其中子块包含一个或多个待执行命令;检查以下各项中的至少一项:(1)所述子块头部上的串行化标志,以确定是否可以将所述子块中的命令与其他子块中的其他命令并行处理;(2)所述子块中的所述命令中的标志,以确定是否可以将所述命令与所述子块中的其他命令并行处理;响应于表明可以将所述子块中的所述命令与所述子块中的其他命令或其他子块中的其他命令并行处理的检查,将所述命令和所述其他命令分配到多个处理资源进行处理;通过所述多个处理资源并行执行所述命令和所述其他命令。根据本专利技术的第二方面,提供了一种用于在网络中处理数据包的设备。所述设备包括:接收器,接收数据包;非瞬时性存储器,包括指令;一个或多个处理器,与所述存储器通信。所述一个或多个处理器执行所述存储器的所述指令以:在所述接收器处接收包括数据包的数据流;从所述接收到的数据包的自描述块头部中识别多个子块,其中子块包含一个或多个待执行命令;检查以下各项中的至少一项:(1)所述子块头部上的串行化标志,以确定是否可以将所述子块中的命令与其他子块中的其他命令并行处理;(2)所述子块中的所述命令中的标志,以确定是否可以将所述命令与所述子块中的其他命令并行处理;响应于表明可以将所述子块中的所述命令与所述子块中的其他命令或其他子块中的其他命令并行处理的检查,将所述命令和所述其他命令分配到所述一个或多个处理器的多个处理资源进行处理;通过所述多个处理资源并行执行所述命令和所述其他命令。根据本专利技术的第三方面,提供了一种非瞬时性计算机可读介质,存本文档来自技高网
...

【技术保护点】
1.一种用于在网络中处理数据包的计算机实现的方法,其特征在于,包括:/n在网络设备中的接收器处接收包括数据包的数据流;/n使用一个或多个处理器从所述接收到的数据包的自描述块头部中识别多个子块,其中子块包含一个或多个待执行命令;/n使用所述一个或多个处理器检查以下各项中的至少一项:(1)所述子块头部上的串行化标志,以确定是否可以将所述子块中的命令与其他子块中的其他命令并行处理;(2)所述子块中的所述命令中的标志,以确定是否可以将所述命令与所述子块中的其他命令并行处理;/n响应于表明可以将所述子块中的所述命令与所述子块中的其他命令或其他子块中的其他命令并行处理的检查,所述一个或多个处理器将所述命令和所述其他命令分配到多个处理资源进行处理;/n使用所述一个或多个处理器通过所述多个处理资源并行执行所述命令和所述其他命令。/n

【技术特征摘要】
【国外来华专利技术】20170929 US 62/565,221;20170929 US 62/565,211;20181.一种用于在网络中处理数据包的计算机实现的方法,其特征在于,包括:
在网络设备中的接收器处接收包括数据包的数据流;
使用一个或多个处理器从所述接收到的数据包的自描述块头部中识别多个子块,其中子块包含一个或多个待执行命令;
使用所述一个或多个处理器检查以下各项中的至少一项:(1)所述子块头部上的串行化标志,以确定是否可以将所述子块中的命令与其他子块中的其他命令并行处理;(2)所述子块中的所述命令中的标志,以确定是否可以将所述命令与所述子块中的其他命令并行处理;
响应于表明可以将所述子块中的所述命令与所述子块中的其他命令或其他子块中的其他命令并行处理的检查,所述一个或多个处理器将所述命令和所述其他命令分配到多个处理资源进行处理;
使用所述一个或多个处理器通过所述多个处理资源并行执行所述命令和所述其他命令。


2.根据权利要求1所述的方法,其特征在于,所述一个或多个命令包括具有一个或多个命令参数的条件命令,所述命令参数包含指示值的数据,所述值为所述条件命令定义一组运行条件。


3.根据前述任一权利要求所述的方法,其特征在于,条件命令包括命令和执行所述命令必须满足的至少一个条件。


4.根据前述任一权利要求所述的方法,其特征在于,所述条件命令指示所述处理资源在所述至少一个条件发生时,执行以下操作中的至少一项:修改数据包的数据流的资源分配、修改为所述数据包的所述数据流选择的下一跳、以及更新所述数据包的所述数据流的流上下文。


5.根据前述任一权利要求所述的方法,其特征在于,所述条件命令指示所述处理资源在所述条件发生时,执行以下操作中的至少一项:修改所述数据包中的数据、修改为所述数据包选择的下一跳、修改所述数据包的优先级、丢弃所述数据包、缓存所述数据包、以及修改所述数据包中的元数据。


6.根据前述任一权利要求所述的方法,其特征在于,所述子块包括用于所述一个或多个命令处理的元数据。


7.根据前述任一权利要求所述的方法,其特征在于,所述元数据包括至少一个全局参数,所述全局参数的值支持评估所述接收到的数据包头部中的所有条件命令。


8.根据前述权利要求中任一项所述的方法,其特征在于,所述子块包括命令头,后跟条件和至少一组动作。


9.根据前述任一权利要求所述的方法,其特征在于,所述子块包括至少一个类型长度值(type-length-value,TLV)参数,所述TLV参数包括条件、元数据、后跟命令的条件、以及所述子块特有的参数集中的至少一个。


10.根据前述任一权利要求所述的方法,其特征在于,所述TLV参数包括所述处理资源基于所述子块头部中的指示传递的一组共享参数。


11.一种用于在网络中处理数据包的设备,其特征在于,包括:
接收器,接收数据包;
非瞬时性存储器,包括指令;
一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行所述指令以:
在所述接收器处接收包括数据包的数据流;...

【专利技术属性】
技术研发人员:黎仁蔚乌马·S·春都里亚历山大·克莱姆基兰·马可贾尼瞿颖珍
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1