网络分流器|基于复合存储的100GbpsDPI技术

2023-10-08 15:59

本文主要是介绍网络分流器|基于复合存储的100GbpsDPI技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络分流器|基于复合存储的100Gbps DPI技术
网络分流器|基于复合存储的100GbpsDPI技术

  1. 网络分流器|背景与需求
    当前,随着防火墙、***检测系统、高速网络管控、CDN、运营商信令分析、垃圾邮件分类等领域的发展,对高速链路进行深度报文检测(Deep Packet Inspection,简称DPI)和分类的要求越来越高。一方面是带宽越来越高,另一方面是检测特征越来越复杂,特征种类越来越多,这为DPI技术的发展提出了非常高的要求。

深度报文检测是使用预定义的一系列规则在流级上对报文载荷(而非仅仅是报文头)进行匹配,并根据匹配的结果决定对报文所采用的动作的一个过程。

  1. 复合存储技术
    当前在DPI领域,主要采用两种特种模式,分别是关键字和正则表达式,由于高性能的正则表达式匹配技术尚未达到实用,目前广泛使用的仍然是关键字(商用的正则表达式匹配技术尚未超过10Gbps),甚至大部分的DPI系统仍无法完成10Gbps以上链路的全报文关键字匹配,而只能对报文首部的部分字节(如报文载荷的前32字节或者64字节)执行深度检测,性能问题依然是DPI面临的首要挑战。为了提高DPI的处理能力,产业界和学术界普通采用的是以下三种技术:

(1)依靠更高性能的服务器或服务器集群来加速DPI吞吐量,由于在报文流上执行多机器或多核的负载均衡非常方便,这种方法很容易达到很高的处理性能,缺点是代价比较大。

(2)依靠更好的软件算法来提高匹配性能,目前研究界普通采用以AC算法作为基础来优化性能,主要有WU-MANBER、SBOM、一次多字节(俗称多步)、BloomFilter等方法,但是DPI过程要求的前后状态转移是关联的,即下一次访问的地址与上一次访问的状态和当前报文字节的内容紧密相关,受限于存储器本身(主要是DDR)的性能,软件优化的空间非常有限。

(3)依靠各种多核NPU自带的匹配引擎来加速,目前国外两大多核NPU巨头Broadcom和Cavium都有在其NPU上内置了DPI加速引擎,如Cavium内置的HFA引擎宣称其单个NPU可以达到24Gbps的处理能力,但是实测性能与宣称性能之间相差巨大。尤其是配置正则表达式规则时,带通配符的规则会对其性能造成十分显著的影响。

总是,虽然研究界和产业界都非常关注深度报文检测,当前DPI技术的技术发展仍然无法赶上相关应用领域的现实要求。

在深度报文检测(DPI)中,首先要将关键字或正则表达式特征编译成有限状态自动机(Finite State Automata,FSA),并将FSA的状态表配置在存储器中。匹配过程中,每处理报文的一个字节都需要至少一次查表,以获取下一次要访问的状态地址。匹配的速度取决于访存次数和每次访存的时延,而对于一个给定的报文,访存次数等于报文负载长度。因此要提高匹配的速度就需要尽量减少每次访存的时延。

在轻量级的网络下,网络链路速率低。如果规则数比较少,可以把每条规则编译成一个FSA,状态表配置在高速存储器中,以获得较高的匹配速度。然而,随着网络带宽的快速增加,10G比特的网络已经开始应用于园区网络中;规则的数目也增加到数百甚至上千条。将每条规则编译成单个FSA的方案已经无法满足性能需求。如果将所有规则编译成一个FSA,可能发生状态爆炸。状态表的规模可能超过数100G字节,远超过目前高速存储器的容量,只能配置在外部磁盘这样的低速存储器中,访存时延大大提高。

DPI技术的关键其实是访存的性能,尤其是随机访存的性能,如果能够设计一种存储结构,既能够支持很高的随机访问性能(如达到几十个Gbps以上),又能够有比较大的容量(如到几十兆的大小),则通过良好的状态表数据结构优化,使得状态表的访问能够相对聚集;然后对访存过程加以优化,如流水化访存、Bank交错、并行化访存等措施来进一步提高访问状态表的效率,则高性能的DPI是可以实现的。

湖南戎腾网络创新团队在国家自然科学基金的支持下,研究出来的高性能DPI技术,借鉴了计算机系统的Cache结构。在计算机系统中,由于局部性原理,可以用先进先出、最近最少使用等替换算法,使Cache有较高的命中率。但是在深度报文检测中,报文的内容却是完全随机的,难以预知下一个要处理的字节内容,会转向哪个状态。选择那些经常被访问的状态存储到高速存储器中是提高性能的关键。戎腾通过独有的马尔科夫预测技术,很好地解决了状态访问的预测问题。网络分流器|基于复合存储的100GbpsDPI技术
图1 复合存储匹配引擎

整个匹配引擎采用两层甚至三层,通过复合存储及并行和流水技术,解决性能和存储容量之间的矛盾,既能够通过一级匹配引擎的并行达到很高的性能,又能够通过二级存储达到大容量的状态表空间。这种结构既适合于关键字匹配,也适合于正则表达式匹配。

  1. 复合存储技术的产品化与应用|网络分流器
    为了将复合存储技术推广到实际应用中,戎腾开发了独立机箱的PET160S和基于ATCA的CNT16S两种系统,其中PET160S系统可以在16K关键字下,达到70Gbps到90Gbps的匹配性能;而CNT16S系统可以支持在4K正则表达式下,达到40Gbps的性能。此类设备可以在流级上对报文进行标签动作,匹配规则的报文会在报文头部打上命中的规则编号,使得后端分析系统能够根据相应的标签快速执行相应的检测任务。

通过我们的分析,辅以软硬一体化流表技术,整体报文处理能力一般是核心匹配引擎4倍的性能。即如果核心匹配引擎能够达到n Gbps的性能,则整体报文处理能力就能够4n Gbps左右的性能,也就是说PET160S系统已经完成可以满足双向100Gbps以太网全带宽的关键字DPI能力,而CNT16S也可以满足实网条件下双向100Gbps以太网(实网条件下,上下行流量不会超过200Gbps*80%)的正则表达式DPI要求。

当前,正在研制基于PCI-E的DPI加速卡,可望于近期在单块PCI加速卡上实现40Gbps左右的关键字匹配性能和20Gbps的正则表达式匹配性能,以硬件加速卡的形式为防火墙、***检测系统、高速网络管控、CDN、运营商信令分析提供硬件加速。

  1. 结束语|网络分流器
    关键字匹配和正则表达式匹配是深度报文检测(DPI)的关键技术,规则集的复杂化导致对访存的性能和容量需求急剧增加。而状态表的规模远超过高速存储器容量,通过复合存储技术,可以很好地解决DPI的性能问题,并很好地与现有需要DPI加速的产品进行整合。

转载于:https://blog.51cto.com/13853577/2153874

这篇关于网络分流器|基于复合存储的100GbpsDPI技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/166408

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依