EEJournal

专题文章
现在就订阅

比赛游戏

Netlogic通过加速文本模式匹配加速DPI

切斯特对语法真是一丝不苟。开始的时候,事情很简单:他会多检查几次自己的备忘录,以确保它们是正确的。然后,他开始严厉打击他的员工:他希望他们所有人都像他对待自己的文章一样谨慎。他在评论他们的东西。这或多或少奏效了。

但问题是,他对他读的所有东西都有强迫症。一份备忘录可能描述了一个令人难以置信的新奖金计划,将为他净赚数千美元,但错误的逗号会分散他的注意力,他会完全错过主要信息。他似乎只能理解语法上纯粹的材料。他就是放不下。

所以有一天他觉得自己受够了。对他来说,清理员工的工作是一回事,但现在他决定不再读别人的劣质材料了。他指示所有的备忘录和电子邮件在发给他之前都要经过他的管理员的审查。他不假思索地列出了一份规则清单。他还会伴随着其中一些人的咆哮,来说明为什么这条规则很重要。

一个典型的例子可能是,“应该放置单词‘only’只在它修改的东西前面.我刚读了一封电子邮件,上面说:“只需要一分钟。’这只是‘这个词的错误用法。“如果我没看错的话,它说它只会——不捐赠-等一下。这完全没有道理!是什么应该我要说的是,‘这需要只要一分钟”他说。小时,不是皮秒;一个一分钟.这些东西很重要,伙计们!!“*

当然,他一次只能想出这么多规则。因此,当他收到规则中没有涉及到的问题的电子邮件时,他会做一个记录,并将它们添加到规则集中。他认为,在某种程度上,它将是无懈可击的,他再也不必为任何违反他的规则的事情而绊倒了。如果收到的电子邮件或备忘录没有通过测试,他的管理员就会把它退回去进行修改:在清理干净之前,它永远不会到达他的办公桌。

这对他的工作量产生了立竿见影的影响:因为他不再有审阅文件的负担,他有了更多的空闲时间。事实上,事情变得越来越容易,他对自己新获得的自由感到相当高兴。直到他注意到他的行政办公桌和电脑桌面:成堆的备忘录和数百封电子邮件堆在那里等待审查。这并不是说他不再有那么多的工作要做;问题是所有的东西都被困在语法复习中,而他的管理人员无法跟上进度。

直到有一次他错过了一个强制性的公司战略场外会议(邀请函要求与会者“……请及时”,切斯特决定,尽管语法学家在这一点上存在分歧,但分裂不定式是一个他不愿面对的麻烦),他才决定需要加快语法规则检查过程。

深度包检查(DPI)是一个简单的过程,它检查公共和私有数据包,以确保其中没有潜伏的问题。“有问题的”通常指的是像病毒、恶意软件和特洛伊木马这样的邪恶的东西(尽管没有什么可以说的是,它不能扩展到包括对政府或公司的贬义评论)。

我们最近研究了DPI过程的一个方面,Netronome关于流处理的概念.然而,我们实际上是通过管理流程的其余部分(在本例中是流处理)来加速DPI的。但我们并没有对数据包进行实际的深入检查。

我们还简要介绍了一下Snort是一个开源的规则处理引擎。但这只是一个特定的引擎,它的复杂性受到可以表达的规则类型的限制。可以制定Snort无法处理的更复杂的搜索模式,但是模式匹配引擎也必须更复杂。

您可能还记得,规则往往由两部分组成:要匹配的模式和基于匹配采取的操作。你搜索具有特定特征的文本,如果你找到了它,那么你就会做一些事情——而这些事情将取决于正在搜索的内容。

你采取行动只有如果配对成功,但愿这种情况不会经常发生。但是有成千上万种可能的东西来判断一个包是否好。运行所有这些规则需要时间,但性能问题与操作无关——主机处理器可能可以处理这些问题;问题在于所有规则中的所有字符串匹配模式。

字符串匹配可能是您在本科编程课程中使用的第一个软件状态机练习之一。对于这种解析“常规语言”或“正则表达式”的状态机,实际上有一个令人生畏的名字——特别是包括明显有些命名不当的“与perl兼容的正则表达式”:确定性有限自动机(DFA)。每个家庭都应该有一台。

在这个正则表达式的背后有一整套的数学,我甚至不会尝试在这里探究。(因为我必须先理解它。)简单地说,它们是在搜索中表达字符串的一种方式——它们是grep中的“re”,grep是Unix典型的不透明命令之一,这个命令或多或少意味着“查找”。(既然造一个词就可以了,为什么还要用一个简单的常用词呢?)这样做的底线是,您可以将一组字符串搜索模式编译成可以由DFA处理的树。

Netlogic公司在他们的NETL7系列产品中更进一步,他们称之为“基于知识的处理器(KBPs)”。(他们也有一个Sahasra但它们非常不同。)他们已经将自己的增强型DFA集成到一个专用芯片中,他们称之为智能自动机结构(IFA)。实际上,他们在每个芯片上集成了大约10个芯片(他们的系统和应用工程副总裁Mike Ichiriu对确切的数字有些模糊)。

“自动机的结构”这个名词是有意义的:它不像有一组硬性规则,可以通过专用的状态机转换到硬件中。规则永远在变化,因此任何处理这个问题的尝试都必须允许在定义范围内的任何状态机(或自动机)在KBP结构中实现。

KBP由逻辑和内存组成,包括一些包缓冲内存。引擎本身与存储模式的内部内存紧密耦合。KBPs只存储规则的模式匹配部分,不存储操作部分。

您可以通过传递一个指向数据包的指针或将数据包实际封装在发送到KBP的“指令”中来通过引擎传输数据包。您还可以跨包边界检查内容,因为大多数长消息最终会被分割成多个包。这就避免了一些不幸的东西潜入的机会,它的头在一个包里,尾巴在下一个包里。

公司可以添加自己的规则——在这种情况下,添加规则的通常不是系统构建者,而是使用系统的服务提供者。因此,机制必须特别直接,因为它与任何熟悉DPI的肮脏细节的人都有好几个层次的区别。

其想法是,这些芯片可以与管理实际网络流量的包处理芯片一起使用。DPI通常由处于“慢路径”的主机处理器完成,因为处于“快路径”的专用数据包或流处理器无法完成,因为它们专注于数据包路由。但是,如果实际上每个数据包都必须被扫描,人们几乎可以认为DPI需要加入到快速路径中。

然而,通常情况下,数据包会从传统的快速路径发送出去进行检查,因为在快速路径中没有主机风格的处理器。卸载是为了使慢路径的那部分更快。专用引擎可以以250 Mbps到20 Gbps(取决于设备)的速率处理规则,比直接的软件实现要快得多。

如果有一套英语语法规则,这可能会发生甚至甚至足以处理切斯特收到的所有邮件和备忘录。除了一个问题:英语语言的规则一点也不固定……

*完全披露:我在我的草稿中一直违反这条规则。我们的编辑告诉了我这个规则,但我总是不及格,以至于我开始在提交之前做自己的“唯一”扫描……

留下回复

有特色的博客
2023年1月11日
探索对2023年云计算的预测,包括数据中心和云部署模型、云中的芯片验证和基于云的EDA工具。《2023年值得关注的5个云预测》首次发表在《从硅到软件》....上
2023年1月11日
寄生电容的影响是关注高频PCB设计的主要原因。寄生电容是由于在电路中放置得太近而在两个元件之间积聚电荷而形成的。这种意想不到的电容可能是t…
2023年1月10日
ChatGPT会发展到能够写出C.S. Lewis写的《纳尼亚传奇》这样的作品吗?
2023年1月9日
Calibre在Kubernetes上运行,而大多数Calibre半制造作业仍然在使用... ...的本地计算集群上运行

有特色的视频

基于软件的自检作为处理单元的安全机制

Synopsys对此

了解Synopsys ARC软件测试库如何帮助您在动力和区域预算范围内进行高性能安全关键型汽车设计。

了解更多

特色粉笔谈话亚博里的电子竞技

用于家庭保健的电源转换

逮老鼠的电子产品而且崔公司。

你知道吗,到2030年,全球家用医疗设备市场预计将超过550亿美元。在这集粉笔谈话中,CUI公司的布鲁斯·亚博里的电子竞技罗斯和阿米莉亚·道尔顿探索了家庭保健设计所需的各种安全认证和法规。他们还研究了温度、隔离和漏电流在家庭医疗保健电源转换中的作用,以及家庭医疗保健应用所需电源的额外要求。

点击这里了解更多关于CUI Inc SDM300G-U和SDM300G-UR GaN适配器的信息

Baidu