




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
随着网络芯片带宽的持续提升,其内部数据包处理单元的工作负载也随之增加。然而,如果处理单元无法与网络接口的传入速率相匹配,将无法及时处理数据包,这不仅会导致数据包随机丢失,更会降低网络的吞吐量。本文将深入探讨与数据包处理相关的各项工作和挑战,分析处理单元吞吐量的需求演变,以及在网络芯片中执行这些功能的多种方法和技术。数据包处理网络芯片中的数据包处理是指,当网络数据包通过路由器、交换机或防火墙中的芯片时,芯片对网络数据包执行的一系列操作。网络芯片主要检查数据包的L2/L3报头信息。从宏观层面来看,数据包处理的主要功能可以概述如下:解析第一步是对数据包报头进行分析,以了解其结构和所采用的协议(如以太网、VLAN、IP、TCP/UDP以及现有的封装)。解析过程中会识别出后续处理步骤中需要使用的关键字段,例如源地址和目标地址、端口号和协议类型。封装是网络通信中的一种常见做法,即在数据包外部添加额外的一层报头信息,通常是为了提供额外的功能,例如安全性(在VPN的情况下)和隧道(如GRE或VXLAN)。这样就形成了具有外部报头和一个/多个内部报头的数据包。在这种情况下,解析逻辑需要同时检查外部报头和内部报头。此功能对于严重依赖封装技术对网络流量进行分段、保护和管理的现代网络基础设施至关重要。
分类首先要确定数据包的来源。数据包的来源包括其主机身份、接收接口(逻辑和物理)及其转发域。通常,会执行第2层地址和数据包进入的物理接口之间的绑定检查。然后根据数据包的报头字段(例如源/目标IP地址、端口号和协议类型)对数据包进行分类。分类决定了如何处理数据包,例如应用哪些服务质量(QoS)策略。隧道终止通过比较隧道报头字段与隧道端点信息,逻辑确定是否需要终止隧道。对于需要终止的隧道,其封装的数据包将被解封装,恢复到原始格式后再被发送至最终目的地。外部/内部报头有许多变体,网络芯片可以根据其部署用例支持不同的隧道终止子集。一些常见的受支持的隧道技术包括MPLS、VXLAN、GRE、MPLSoverUDP、IPinIP等。过滤许多设备通过访问控制列表(ACL)实现数据包过滤。ACL通常由一组规则(即ACL条目)组成,每个ACL条目定义了一种访问控制策略,包括允许或拒绝特定类型的流量或访问请求。ACL通常基于源地址、目标地址、协议类型、端口号、时间等条件来控制网络访问。路由查找根据数据包的目标地址和路由表,处理器决定数据包的下一跳,并据此进行转发。这一过程涉及对IPv4/IPv6数据包执行最长前缀匹配查找,以及在转发MPLS数据包时执行索引查找,或者在基于目标MAC地址进行L2转发时进行精确匹配。查找结果可以直接指示数据包应离开的发送接口,或者指向一系列下一跳指令,这些指令被执行后将找到正确的发送接口。下一跳处理下一跳处理(执行存储在大内存中的一系列下一跳指令)决定了如何将数据包转发到其目的地。该处理过程会得出数据包必须离开的目标端口、实现ECMP或LAG的负载平衡,以及确定推送或交换的MPLS标签等。此外,数据包可选择性地执行策略控制和计数。重写最后一步,数据包报头将被修改以剥离封装报头(在隧道终止的情况下)、更新TTL递减、V4校验和更新、时间戳更新等。
入站数据包处理在入站数据包处理完成后,如果目标队列拥塞,或者该数据包被选择为WRED丢弃对象,则数据包可能会被丢弃。当数据包被允许转发时,它会在片上缓冲区或外部内存缓冲区内排队等待。无论是入站处的数据包排队/出站的可选排队,还是出站调度,这些过程都极大地依赖于网络芯片的架构特性。出站数据包处理当数据包从缓冲区中读出,并准备离开出站接口时,它会在出站阶段进行进一步的处理,以便在传输前对数据包进行必要的修改。这些修改包括添加新的L2
报头和/或VLAN标签、封装(当网络设备位于隧道入口点时)、添加MPLS标签等。此外,数据包还可以选择性地通过出站过滤/策略执行。这些实现方式因设备而异。具有入站/出站数据路径和数据包处理子系统的独立网络交换机大型路由器可以使用多个模块化路由芯片通过switchfabric相互连接,这些模块化路由芯片可使用术语“数据包转发实体(PFE)”来指代。在这些系统中,入站数据包处理发生在网络流量进入的PFE中,出站数据包处理发生在流量离开的PFE中。
数据包处理实现数据包处理的实现方式取决于所需的灵活性、设备的总吞吐量、以及该功能的功耗/性能/面积预算。
专用处理引擎大约二十年前,随着网络协议快速演化,新的可选/扩展报头和隧道标准也随之涌现。数据包的处理是通过大量高度灵活且可编程的专用处理引擎实现的。这些专用处理引擎通常包含存储在片上和/或片外指令存储器中的微码指令。与RISC和X86指令集不同,微码是一种低级指令集,通常以非常长的指令字(VLIW)的形式打包。处理引擎通过这些微码指令序列解析存储在本地存储器中的数据包头的不同字段,以确定数据包的结构,并执行上述所有入站和出站处理功能。处理引擎的硬件并不了解任何网络协议,它只是盲目地执行指令以形成新的数据包头并计算输出接口。用于数据包处理的PPE虽然基于微码的处理提供了无限的灵活性,但在芯片面积或每Gbps功耗方面效率较低。在混合方法中,一些功能(如过滤/最长前缀匹配查找、策略执行等)可以在硬件本地(硬件加速器)中实现,同时使用微代码指令进行数据包解析和其余的数据包转发功能。
数据包处理Pipeline随着高端芯片开始封装更多的WAN带宽,混合方法无法满足每Gbps的功率/面积目标。十多年前,一些网络供应商开始使用硬件pipeline(同时以本地/功能特定的指令/排序操作的形式提供有限的灵活性)本地实现所有数据包处理功能。
下图是基于Juniper的ExpressArchitecturepipeline实现的入站数据包处理pipeline的概念图。入站和出站数据包处理pipeline及其数据结构该pipeline包含一系列后续块或模块,其中每个模块负责上文描述的特定功能。通常,整个数据包存储在数据路径存储器中,而报头(通常是数据包的前128字节)则通过数据包处理pipeline。由于数据包处理只关注L4的报头信息,因此不需要通过pipeline发送整个数据包。
根据吞吐量需求的不同,数据包报头以每周期一个数据包的速率或更低的速率通过pipeline发送。每个模块都有许多存储在SRAM中的本地数据结构/配置。
Pipeline的灵活性网络是一个不断发展的领域,为了适应新技术和新需求,经常会开发/标准化新协议和现有协议的扩展。从新的RFC标准发布到其实际在网络芯片中得到应用,通常会有3-4年的延迟时间。这就是为什么在这些pipeline中具有一定的灵活性非常重要。
例如,除了对已知的L2-L4报头的标准解析之外,硬件还可以支持灵活的解析功能,以解析未来的协议报头或现有协议的扩展。这可以通过一系列CAM(内容可寻址存储器)和规则集来实现,它们指定了要查找新协议的Type/Length/Value字段的字节偏移量。并非所有的网络应用程序都经过相同的数据包处理。例如,某些数据包可能需要多次查找。第一次查找可能是LPM(最长前缀匹配)查找,以确定数据包的下一个目的地。第二次查找可能涉及更具体的路由策略,比如基于策略的路由,其中决策基于数据包中的其他字段或应用类型。类似地,在MPLS网络中,第一次查找可能涉及读取MPLS标签以在MPLS网络内做出转发决策。当数据包到达MPLS网络的边缘,并且标签被弹出时,需要进行第二次查找,以便根据数据包的原始IP报头确定数据包的下一跳。
Express数据包处理pipeline中的查找功能提供了这样的选项,其中第一次查找的操作可以指示后续的查找,并且报头循环回查找函数的开头以进行下一次查找。数据包如何在每个查找模块内循环需要注意的是,在数据包处理pipeline中,因为每个数据包都经过不同的pipeline并具有不同数量的查找、过滤器和下一跳操作,因此无法不会保持数据包的原有顺序。网络设备必须确保同一数据流中的数据包不会被打乱顺序。粗略地判断数据流的方式是以数据包进入的输入端口/接口为准。而更为精细的判断方法则是查看数据包的五元组,并通过计算哈希函数来确定数据流。pipeline末端的重排序引擎可以将数据包重新按照每个端口或每个数据流的顺序排列好。带有重排序引擎的数据包处理pipeline再循环在某些封装中,报头字节可能会超过128B。对于那些在初次传递中无法检测到内部报头的情况,数据包需经历如下步骤:首先在剥离已解析的报头字节,接着从入口内存中读取额外的报头字节,并将新报头再次发回处理pipeline进行处理。在接下来的循环中,将重复处理步骤以处理内部报头。再循环应用的示例包括MPLSoverUDP,其中需要处理两个以上的堆栈,以及基于防火墙的隧道解封装。
再循环的概念图吞吐量网络芯片所需的每秒数据包处理速率与能够进入设备的最小数据包大小(通常是64B以太网帧)、数据包间隙(IPG)以及设备的总WAN吞吐量成正比。
Packetspersecond=(bits/second)/(bits/packet+IPG/packet)假设一个3.2Tbps的设备需要处理连续到来的64B数据包,若要跟上这种处理节奏,在1GHz的时钟频率下,每周期几乎需要处理近5个数据包。由于每个pipeline最多只能每周期处理一个数据包,这意味着在这种情况下需要约5个数据包处理pipeline。就面积和功率而言,是相当昂贵的。
3.2Tbps设备要满足64B数据包的线路速率需要5个pipeline在实际网络流量中,平均数据包大小通常大于64B。大多数流量通常使用最大传输单元(MTU)大小的数据包来最大化吞吐量。设计针对平均常用数据包大小优化的数据包处理引擎有助于实现更优的设计,有效利用芯片面积。那么,我们如何确定平均数据包大小呢?一种方法是检查网络性能测试中使用的各种IMIX模式。
IMIX(InternetMIX)是网络性能测试中使用的概念,用于更准确地模拟现实世界中的互联网流量模式。IMIX不使用统一的数据包大小,而是采用多种数据包大小的组合来代表互联网流量的多样性。例如,IMIX可能包含小型数据包(64字节,常见于ACK或控制消息)、中型数据包(大约576字节,通常用于特定应用数据)和大型数据包(大约1500字节,),并且它们之间有一定的分布比例。
对于IMIX数据包大小分布并没有一个普遍接受的标准。不同的组织可能会根据其特定需求和对网络流量的观察,定义自己的IMIX配置文件。谷歌和Meta在评估网络设备时都有自己的IMIX模式。假设数据包处理需要以线速处理平均约345B大小的数据包,并在1.1GHz的时钟频率下运行,那么只需一条pipeline即可满足需求!该表显示了增加平均数据包大小以满足线路速率时,如何减少pipeline数量为了应对互联网流量可能存在突发性的特点,以及可能出现瞬态场景,即平均数据包大小小于350B,且有许多连续的小数据包涌入,这就需要在数据包处理输入端增设一个突发吸收缓冲区(即图中所示的入口缓冲区)。一旦这个缓冲区开始填满,硬件就可以执行优先级感知丢弃策略,即给予控制/保活数据包更高的优先级。丢弃策略的具体规定因供应商而异。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海市建筑安全员知识题库附答案
- 办学机构合作合同范例
- 冷柜代加工合同范本
- 南京工厂食堂外包合同范本
- 制式服装合同范本
- 第四代核能供热系统协议
- 业务外包合同范本
- 数字遗产法定继承执行协议
- SY-T5252-2002岩样的自然伽马能谱分析方法
- 劳务分包道路合同范本
- 土建、装饰、维修改造等零星工程施工组织设计技术标
- 高速公路养护作业安全培训内容
- 2024年江苏经贸职业技术学院单招职业适应性测试题库
- 《大白菜种植栽培技》课件
- 北京工业大学《数据挖掘》2023-2024学年第一学期期末试卷
- 2024年物联网安装调试员(中级工)职业资格鉴定考试题库(含答案)
- 标准化机房改造方案
- 珠海市第三人民医院中医智能临床辅助诊疗系统建设方案
- 早产临床诊断与治疗指南
- 工程签证单完整版
- 《义务教育数学课程标准(2022年版)》初中内容解读
评论
0/150
提交评论