snort從2.9.0版本開始引入了daq(packet acquisition), 該模塊其實是一個抽象層專門爲報文處理服務。ui
以往的snort以下圖所示,在報文獲取上與主體代碼混在一塊兒形成了如下問題:spa
分層不明顯,不便於改寫開發
只能編譯控制中決定報文獲取與處理方式,對於同一個平臺只能保留一種處理方式。it
加入daq後,將報文獲取的具體細節和主體代碼分離,有以下好處io
層次清晰便於繼續開發編譯
報文獲取的模塊能夠保留多個,snort能夠根據用戶配置以及具體平臺進行動態加載。並將從配置文件中獲取的參數傳入。配置