管理40/100G多核x86处理器的网络流量

网友投稿 256 2022-11-18

管理40/100G多核x86处理器的网络流量

数据包处理压力

底层传输控制协议 (TCP)、用户数据报协议 (UDP) 和实时传输协议 (RTP) 流量包括属于网络连接的许多数据包。网络边缘的交换机、路由器或网关等中间节点必须同时处理数百万个网络连接。

尝试单独处理连接中的每个数据包会阻止网络元素跟上不断增加的线路速率。由于需要对至少一部分流量执行 DPI,这进一步复杂化了。此外,位于网络深处的中间节点必须处理数亿个数据包。

每个数据包与任何其他数据包没有关联;也就是说,它们在空间或时间上不相关。通过将数据包分组为流,可以更好地服务于这种异步流量。流是属于同一网络会话的数据包的集合,通常在源-目标对之间。传入的数据包必须分类为流。然后处理器根据流状态表中的规则以相同的方式处理属于同一流的所有数据包。

有状态的流处理

所有网络元素都需要数百万个流的状态,尤其是在实施防火墙、入侵预防或检测系统以及应用程序级负载平衡器等安全处理时。由此产生的平台架构必须通过监视流中的数据包、更新 TCP 连接、创建和超时 UDP 连接以及跟踪虚拟专用网络 (VPN) 连接来支持流状态管理。还需要状态处理来支持 TCP 代理和 TCP 拼接。

因此,系统软件应维护支持数百万流的流状态表。硬件必须通过在流哈希表中执行复杂的哈希和查找来支持软件。软件负责分析流哈希结果并管理新流,更新哈希表并维护流状态。

100G 时的系统性能要求

为了满足 100G 的严格系统要求,处理和内存架构都必须满足在 64 字节数据包的最坏情况下一个数据包时间提供的时间预算,即低至 5 ns。

处理指令和内存预算

以太网帧

典型的以太网帧以 8 字节的前导码开始,随后是 12 字节的目标地址和源地址的寻址信息,2 字节的类型/长度字段指示使用的日期类型以及有效负载的长度。有效载荷数据可以低至 46 字节,高至 1,500 字节。计算 32 位(4 字节)循环冗余校验并将其附加在帧的末尾(图 1)。

图 1:在以太网帧格式中,64 字节的最小数据包大小在加上所示开销后实际上是 84 字节。

100 GbE 的性能计算

系统吞吐量计算通常以每秒数据包 (pps) 的形式表示。当所有以太网帧的长度为 64 字节或最小大小的帧时,计算最大数量。对于 10 GbE,这个数字是 148.81 亿 pps,或通常称为 15 Mpps。对于 100 GbE,这个数字大约为 150 Mpps。

较小的数据包在满足短时间预算方面存在挑战,而大数据包在满足最高线路速率方面存在挑战。处理 64 字节数据包所需的每个数据包时间预算仅为 6 ns。对于运行在 1 GHz 的处理器,指令周期时间为 1 ns。因此,一个 64 字节的数据包转换为 150 Mpps 的 6 周期预算。解决此限制的一种方法是使用具有多个内核和线程的并行处理。例如,一个 100 个内核/线程的处理器将把这个时间预算增加到 600 个周期——一个更易于管理的窗口。

100G 时的内存注意事项

当前满足 100G 要求的方法

多核处理器

这些处理器的性能受到限制,主要是因为传统的通用 CPU 依赖缓存来解决内存延迟问题。高速缓存未命中迫使 CPU 内核饿死内存访问,与高速缓存相比,主内存延迟太慢了。这种所谓的“内存墙效应”意味着处理器的 SMP 多核模型无法扩展到灵活处理 100 Gbps 解决方案所需的数百个处理器内核。通过分支预测和推测执行技术来最小化缓存未命中的尝试未能解决相对较低的缓存命中率问题。

为了绕过性能瓶颈,供应商开始将硬件加速器嵌入到多核处理器中,以处理常见的性能密集型功能,例如安全性和 DPI(参见图 2)。由此产生的单芯片异构多核处理器已经让位于对操作系统不友好的专有架构,并打破了拥有简单、易于编程的多核处理器的初衷。

图 2:多核通用处理器需要借助硬件加速功能来处理 100G 的数百万流。

网络处理器

网络处理器是一类专注于优化 L2-L4 数据包性能的处理器。通常,它们包含较小的内核,可以很好地扩展并且可以提供 100 Gbps 的性能。内存性能通过流水线架构来解决,在某些情况下,超长指令字 (VLIW) 架构。

由于复杂的编程和专注于数据包转发的固定内部结构,网络处理器的灵活性和智能处理受到阻碍。此外,当流量包含多个隧道和/或需要更深的隧道时,流水线网络处理器的性能会受到影响。

以太网交换机

这类芯片通常包括带有内部查找引擎的小型流水线,并且不支持外部存储器。在企业以太网配线间交换机中很常见。随着架顶式交换机的使用模型变得越来越复杂,灵活性要求也变得更加明显。以太网交换机现在需要更大的查找表和更高的性能水平,以及支持数据中心多层虚拟化所需的几个深层隧道。

尽管一些以太网交换芯片可以访问外部三元内容寻址存储器以进行快速表查找,但典型的以太网交换机无法访问外部 DDR 存储器,因此难以满足需要支持数百万流的网络应用。

以太网控制器

此类产品用于服务器和客户端环境,通过 PCI Express 接口将多个以太网接口连接到主机 x86 CPU。这些设备无法通过编程来执行复杂的网络任务,例如交换或在线安全。它们无法访问外部存储器,因此无法支持数百万个流。

既然已经确定了处理 100G 网络流量的挑战,那么讨论应对这些挑战所需的内容就很重要。本系列的第 2 部分将在 2 月份的《嵌入式计算设计》杂志上发表,将重点介绍能够应对 100G 网络流量带来的挑战的协处理器的需求。此外,第二篇文章将讨论新的协处理器如何管理诸如智能 L2/L3 交换、流分类、在线安全处理、虚拟化以及 x86 CPU 内核和虚拟机的负载平衡等功能。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue入门项目:学生管理系统之班级管理 【含源码】
下一篇:“偶遇” 爱可生 与 MYSQL 大型应用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~