目录

文章目录

  • 目录
  • nDPI
  • nDPI 的功能特性
  • nDPI 报文解析流程

nDPI

官方网站:

  • https://github.com/ntop/nDPI
  • https://www.ntop.org/support/documentation/documentation/
  • https://www.ntop.org/products/deep-packet-inspection/ndpi/
  • https://github.com/ntop/nDPI/blob/dev/doc/nDPI_QuickStartGuide.pdf

nDPI 从 OpenDPI 发展而来,目前由 ntop 维护,是一款 C 语言开发的开源 DPI 实现,nDPI 不仅支持 200 多种协议流量的识别,比如 QQ、Apple iCloud、Tor 等,还能避免因随机端口导致的误判。

nDPI 要求调用它的高层应用需要提前处理好报文的第二层,由 nDPI 处理第三层和以上的数据,如果用户使用 nDPI 作为底层,那么就有必要进行先协议切分,三层和以上的数据才能由 nDPI 处理。

nDPI 适合作为一些用于检测流量并判断流量属于何种应用的高层应用程序的基础,具有较好的移植性,现在有针对 Linux、Windows、Mac 和 BSD 类型系统的支持,硬件架构上支持 x86,MIPS 和 ARM。

nDPI 的功能特性

  • nDPI 实现了两层架构:核心库用来处理数据报文,抽取基本信息;解析器用插件实现,用于解析报文检测协议类别。
  • nDPI 一旦识别出报文协议就立即返回结果
  • nDPI 支持对加密流量的解析
  • nDPI 实现了线程安全
  • nDPI 支持直接检测应用层协议,而不会单纯地通过端口来判断协议类型:这意味着可以在非标准端口监测已知协议,例如:在除 80 之外的端口上检测 HTTP 协议。是一种 “端口 != 应用” 的业务识别。
  • nDPI 实现了优化匹配的方式:nDPI 根据端口尝试直接用一些有可能识别成功的协议解析器进行解析,如果猜错了,则按注册顺序用其他解析器解析。比如一个使用 22 端口的流,则尝试先用 SSH 解析器解析。
  • nDPI 支持提取数据流的元数据
  • nDPI 可以利用已经识别的 URL 来判断应用的功能:像那些会连接到固定服务器的应用,比如 QQ 等,这样一来对流的识别效率会有一定程度的提高。针对某些互联网应用,比如 Dropbox,由于应用会连接到具体的服务器上,比如 *.dropbox.com,通过解析 HTTP 头抽取 Host 字段,如果这个字段的内容和预先设置的 URL 匹配,就可以初步判断为流属于 Dropbox。

nDPI 报文解析流程

  1. 高层应用把数据报文交给 nDPI。
  2. nDPI 根据默认端口和承载协议尝试猜测协议类型,并使用猜出来的协议解析器尝试解析,如果解析成功,返回结果;如果不成功,就下一步。
  3. 根据承载协议使用该承载协议分类下的全部协议解析器按顺序尝试解析,例如:若数据流是基于 TCP 的,那么就会使用和 TCP 有关的解析器解析,而不会考虑 UDP 相关的解析器。如果成功,返回结果;不成功,就下一步。
  4. 上一步不成功的原因可能是协议不被支持或者没有抓到关键的包。如果协议不被支持就会停止解析,如果是后面一种情况就继续等待高层应用提供新的数据。

出现这种情况的主要原因是流开始了但没有抓到前面的关键的包,从而导致识别失败。但是这里有个问题,怎样才知道哪些包重要,哪些不重要,不然让高层应用怎么提供呢?

答案是:使用不同的承载协议的某些软件在开始传输数据之前会进行对端协商或者其他的处理,这些都是可以作为参照的流量特征。例如:libprotoident 用来进行识别的包都是双向流的前面的包,一般而言,用双向流整个周期(流的开始到结束)前面的包来进行识别成功率会更高。

可见,影响 DPI 引擎的性能的因素主要是支持的协议数量和流的元数据的抽取,因为在识别流程中,nDPI 先根据端口或者 URL 猜可能的协议种类并用对应的解析器尝试解析,如果猜不对就按照解析器的注册顺序解析直到有一个解析成功;另外对于某些流有很多特征元数据的话,抽取特征也是个很耗时的工作。

所以,在 nDPI 的设计中,每个解析器都会包含一个默认的协议和端口。比如一个 TCP 流使用 80 端口的话,nDPI 就会尝试猜应用层协议,并尝试使用 HTTP 解析器解析,如果正好猜对,就能让整个解析过程变得更快,如果猜错,比如 HTTP 流不用 80 端口,才会交给其他解析器处理。

DPI — nDPI — Overview相关推荐

  1. DPI — nDPI — 安装部署与应用示例

    目录 文章目录 目录 nDPI 的安装 nDPI 的应用示例 通过协议文件来扩展 nDPI 解析器 处理 TLS 加密流量 nDPI 的安装 nDPI 支持在 Linux 平台运行,能够方便的将 nD ...

  2. SDN/NFV 网络技术系列文章

    目录 文章目录 目录 计算机网络基础 互联网技术 局域网技术 L1 L2 广域网技术 L3 网络应用技术 L4 L5-L7 DPI 数据中心网络架构 云网融合与算力网络 SDN 隧道技术 VPN IP ...

  3. 云网融合与算力网络系列文章

    目录 文章目录 目录 计算机网络基础 网络类型 网络设备 网络协议 L2 数据链路层 L3 网络层 L4 传输层 L5-7 应用层 广域网络技术 路由协议 MPLS 标签转发 Segment Rout ...

  4. Qt High DPI Displays

    目录 一 相关属性 1 Qt::AA_EnableHighDpiScaling 2 Qt::AA_DisableHighDpiScaling 二 High DPI Displays (高DPI显示) ...

  5. DPI — Application Assurance — Overview

    目录 文章目录 目录 Application Assurance How Mobile Application Assurance works Application identification Q ...

  6. 深度数据包检测DPI开发解析

    深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部.IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与 ...

  7. ndpi 流量协议分析

    目录 1.nDPI介绍 2.nDPI库 3.示例 4.API nDPI 5.开发nDPI自定义协 1.nDPI介绍 nDPI是一个基于OpenDPI的DPI库,目前由ntop维护. 为了给您提供一个跨 ...

  8. 多层协议解析 c语言,基于DPI的应用层协议书解析.doc

    专业资料 精心整理 摘要 随着互联网在中国的迅速发展,全国各大网络运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长,这使得网络管理的要求和难度都大大提高.因此,网络运 ...

  9. nDPI流量协议分析(应用软件识别)

    nDPI识别的协议号大全 #ifndef _NDPI_H_ #define _NDPI_H_ typedef enum {  NDPI_PROTOCOL_FTP_CONTROL=1  ,  //  1 ...

最新文章

  1. 业务脆弱性评估是业务持续性保障(BCM)的基础数据
  2. 进小公司要先看看老板的人品
  3. 机器学习笔记:参数超参数
  4. 服务器系统由32位的吗,云服务器有Windows32位系统吗
  5. 【Asp.Net】Asp.Net CommandName作用
  6. Android中文API (60) —— DatePicker.OnDateChangedListener
  7. 为安装好的SSAS实例重命名
  8. 博客url什么形式_URL的完整形式是什么?
  9. Graphviz下载 使用
  10. 关于Zuul的几个问题
  11. MySQL insert not exists插入唯一数据
  12. 湖南计算机对口专科学校,湖南计算机专业对口升学有哪些学校?
  13. zend 安装php 5.6,CentOS7.0+Zend Guard Loader for PHP 5.6环境搭建
  14. python动态变量名_python实现可变变量名方法详解
  15. c语言必背代码成绩判断,c语言初学必背代码
  16. 怎么把ogg转成mp3格式?
  17. tp5 in_array 在 view页面用法
  18. CodeForces - 1359
  19. 微信开发者工具登录二维码不显示
  20. Android编译Skia库

热门文章

  1. Xamarin Anroid App访问网站失败
  2. python函数定义的要点_python基础之函数重点
  3. 600 imp oracle_oracle中exp,imp的使用详解
  4. 研究人员利用脑机接口可以直接预测我们的偏好
  5. 未来50年的神经科学会是什么样呢?
  6. Xbox“天蝎计划”中国区负责人:“今年的E3展会将超乎你想像”
  7. 3D打印「心脏」体外存活超6个月,心肌组织带有规律性搏动,来自中科院清华...
  8. 说好的100万美元奖金,雷军为何却给了200万?
  9. 1分钟10万字大法:量子波动速读、蒙眼翻书穿针,这是席卷15省的最新智商税...
  10. 阿里平头哥首次交货!“让天下没有难造的芯片”