1. 程式人生 > >nDPI 的論文閱讀和機制解析

nDPI 的論文閱讀和機制解析

使用 drop 擁塞 而是 進行 解析器 pac 防火墻 網絡

nDPI: Open-Source High-Speed Deep Packet Inspection

Wireless Communications & Mobile Computing Confer 2014

背景

  • 根據端口號來識別協議類型,但大於某個值以後,端口號動態變化
  • http協議會攜帶一系列其他頁面內容,防火墻若根據端口號判斷,則其他頁面可以通過http的80端口通過防火墻
  • 不僅是為了創造一份報告,而是為了解決安全問題
  • ML的可以測量的任務更少
  • ML只能用於一些被動測量分析,不能用於一些關鍵的測量任務(流量擁塞)
  • 開源好處:不開源貴,協議拓展受運營商支配,
  • dpi處理包必須比流量監測速率要快,否則會引起丟包(DPI processing must be faster than the
    traffic rate to be monitored as otherwise it would result
    in packet drops)

nDPI需要滿足

  • 高可靠性內聯應用協議策略控制
  • 子協議的定義
  • 和開源的應用結合。
  • 提取基礎的網絡流量和關鍵信息

原有框架

nDPI基於opendpi,opendpi已停止維護

  • 包處理,解析ip和基礎端口信息
  • 解析器插件,負責檢測協議

不足

  • 數據類型為靜態,可辨認協議數存在限制
  • 匹配協議時,若第一個匹配不會返回,而是進行更多的協議匹配,造成額外檢測開銷
  • 不支持加密協議的檢測
  • 多線程、共享全局變量導致不安全性。
  • 很多部分都有問題檢測設計,造成額外開銷。
  • 協議並未分層,所有類型的流都按照同樣的協議順序檢測
  • 沒有運行時配置能力
  • 不支對流量的 metadata 解析

nDPI改進機制

  • 支持的協議越多,解析的參數越多,檢測的時間越久
  • 在檢測開始時一次性將所有協議初始化,無需運行過程的penalty
  • 流只解析一次,若第一次匹配不成功,則保留流的解析信息
  • 針對未解析的流,nDPI先根據傳輸層協議類型和端口號,來猜測匹配的協議,提升匹配速度
  • 如果存在一個登記好的針對包的端口和協議的解析器,那就優先使用這個。
  • 如果沒有協議匹配這個包,那麽後面的包也不會被檢測。
  • 一旦有協議匹配,那麽就停止檢測,
  • 每個流需要檢測包的數目根據協議來確定,大多數是 2~3 個包,最多8個包。
  • 使用 Aho-Corasick 算法處理字符匹配。
  • 內存使用:內存主要用於 ndpi 的配置和和字符串的自動匹配。無自定義配置的情況下,使用210KB的內存,使用自定義配置時,會上升25KB。
  • 記錄每個流的信息,每個流大約占用1KB

nDPI 的論文閱讀和機制解析