有人知道我们如何获取各种协议(例如 BGP、DHCP、VxLAN 等)的签名吗?
所谓签名,实际上是指深度数据包检测引擎中用于模式匹配的模式(例如 0x234557888)。我想编写一个 DPI 代码来检测某些协议(例如上面提到的协议)。
是否存在某种算法可以找到签名?
答案1
既然其他开源项目(如 nDPI)已经创建了 DPI 代码来检测您提到的协议(BGP、DHCP),为什么还要重新发明轮子呢?VLAN 不是协议,VTP 才是。
http://www.ntop.org/products/ndpi/
nDPI 是 ntop 维护的流行 OpenDPI 库的超集。它以 GPL 许可发布,目标是通过添加仅在付费版 OpenDPI 上可用的新协议来扩展原始库。除了 Unix 平台,我们还支持 Windows,以便为您提供跨平台的 DPI 体验。此外,我们修改了 nDPI,使其更适合流量监控应用程序,方法是禁用会减慢 DPI 引擎速度但对网络流量监控不必要的特定功能。
当你构建 ntop 和 nProbe 时,nDPI 会自动下载。但是,没有什么可以阻止你将其用作独立的 DPI 库。源代码可以从nTOP SVN。
您也询问了算法,这里有一些 PDF 可以帮助您入门: