日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nDPI流量协议分析(应用软件识别) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nDPI識別的協議號大全

#ifndef _NDPI_H_
#define _NDPI_H_
typedef enum {
?NDPI_PROTOCOL_FTP_CONTROL=1 ?, ?// ?1 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_MAIL_POP ?, ?// ?2
?NDPI_PROTOCOL_MAIL_SMTP ?, ?// ?3
?NDPI_PROTOCOL_MAIL_IMAP ?, ?// 4
?NDPI_PROTOCOL_DNS ?????????????, ?// ?5
?NDPI_PROTOCOL_IPP ?, ?// ?6
?NDPI_PROTOCOL_HTTP ????????????, ??// ?7


?NDPI_PROTOCOL_MDNS ?, ?// ?8
?NDPI_PROTOCOL_NTP ?, ?// ?9
?NDPI_PROTOCOL_NETBIOS ?, ?// ?10
?NDPI_PROTOCOL_NFS ?, ?// ?11
?NDPI_PROTOCOL_SSDP ?, ?// ?12
?NDPI_PROTOCOL_BGP ?, ?// ?13
?NDPI_PROTOCOL_SNMP ?, ?// ?14
?NDPI_PROTOCOL_XDMCP ?, ?// ?15
?NDPI_PROTOCOL_SMB ?, ?// ?16
?NDPI_PROTOCOL_SYSLOG ?, ?// ?17
?NDPI_PROTOCOL_DHCP ?, ?// ?18
?NDPI_PROTOCOL_POSTGRES ?, ?// ?19
?NDPI_PROTOCOL_MYSQL ?, ?// ?20
?NDPI_PROTOCOL_TDS ?, ?// ?21
?NDPI_PROTOCOL_DIRECT_DOWNLOAD_LINK,// ?22
?NDPI_PROTOCOL_MAIL_POPS, ?// ?23
?NDPI_PROTOCOL_APPLEJUICE, ?// ?24
?NDPI_PROTOCOL_DIRECTCONNECT, ?// ?25
?NDPI_PROTOCOL_SOCRATES ?, ?// ?26
?NDPI_PROTOCOL_WINMX ?, ?// ?27
?NDPI_PROTOCOL_VMWARE ?, ?// ?28
?NDPI_PROTOCOL_MAIL_SMTPS, ?// ?29
?NDPI_PROTOCOL_FILETOPIA, ?// ?30
?NDPI_PROTOCOL_IMESH ?, ?// ?31
?NDPI_PROTOCOL_KONTIKI ?, ?// ?32
?NDPI_PROTOCOL_OPENFT ?, ?// ?33
?NDPI_PROTOCOL_FASTTRACK, ?// ?34
?NDPI_PROTOCOL_GNUTELLA ?, ?// ?35
?NDPI_PROTOCOL_EDONKEY ?, ?// ?36 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_BITTORRENT, ?// ?37
?NDPI_PROTOCOL_EPP, ?// ?38


?NDPI_PROTOCOL_XBOX=47, ?// ?47
?NDPI_PROTOCOL_QQ ?, ?// ?48
?NDPI_PROTOCOL_MOVE , ?// ?49
?NDPI_PROTOCOL_RTSP ?, ?// ?50
?NDPI_PROTOCOL_MAIL_IMAPS, ?// ?51
?NDPI_PROTOCOL_ICECAST ?, ?// ?52
?NDPI_PROTOCOL_PPLIVE ?, ?// ?53 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_PPSTREAM, ?// ?54
?NDPI_PROTOCOL_ZATTOO ?, ?// ?55
?NDPI_PROTOCOL_SHOUTCAST, ?// ?56
?NDPI_PROTOCOL_SOPCAST ?, ?// ?57
?NDPI_PROTOCOL_TVANTS ?, ?// ?58
?NDPI_PROTOCOL_TVUPLAYER, ?// ?59
?NDPI_PROTOCOL_QQLIVE ?, ?// ?61
?NDPI_PROTOCOL_THUNDER ?, ?// ?62
?NDPI_PROTOCOL_SOULSEEK ?, ?// ?63
?NDPI_PROTOCOL_IRC ?, ?// ?65
?NDPI_PROTOCOL_AYIYA ?, ?// ?66
?NDPI_PROTOCOL_UNENCRYPED_JABBER, ?// ?67
?NDPI_PROTOCOL_MSN ?, ?// ?68
?NDPI_PROTOCOL_OSCAR ?, ?// ?69
?NDPI_PROTOCOL_YAHOO ?, ?// ?70
?NDPI_PROTOCOL_BATTLEFIELD ?, ?// ?71
?NDPI_PROTOCOL_QUAKE ?, ?// ?72
?NDPI_PROTOCOL_STEAM ?, ?// ?74 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_HALFLIFE2, ?// ?75
?NDPI_PROTOCOL_WORLDOFWARCRAFT, ?// ?76
?NDPI_PROTOCOL_TELNET ?, ?// ?77
?NDPI_PROTOCOL_STUN ?, ?// ?78
NDPI_PROTOCOL_IP_IPSEC ????????, ?// ?????????79
NDPI_PROTOCOL_IP_GRE ????????????, ?// ?????????80
NDPI_PROTOCOL_IP_ICMP ???????????, ?// ?????????81
NDPI_PROTOCOL_IP_IGMP ???????????, ?// ?????????82
NDPI_PROTOCOL_IP_EGP ????????????, ?// ?????????83
NDPI_PROTOCOL_IP_SCTP ???????????, ?// ?????????84
NDPI_PROTOCOL_IP_OSPF ???????????, ?// ?????????85
NDPI_PROTOCOL_IP_IP_IN_IP ???????, ?// ?????????86


?NDPI_PROTOCOL_RTP ?, ?// ?87
?NDPI_PROTOCOL_RDP ?, ?// ?88
?NDPI_PROTOCOL_VNC ?, ?// ?89
?NDPI_PROTOCOL_PCANYWHERE, ?// ?90
NDPI_PROTOCOL_SSL ???, ?// ?91
?NDPI_PROTOCOL_SSH ?, ?// ?92
?NDPI_PROTOCOL_USENET ?, ?// ?93
?NDPI_PROTOCOL_MGCP ?, ?// ?94
?NDPI_PROTOCOL_IAX ?, ?// ?95
?NDPI_PROTOCOL_TFTP ?, ?// ?96
?NDPI_PROTOCOL_AFP ?, ?// ?97
?NDPI_PROTOCOL_STEALTHNET, ?// ?98
?NDPI_PROTOCOL_AIMINI ?, ?// ?99
?NDPI_PROTOCOL_SIP ?, ?// ?100
?NDPI_PROTOCOL_TRUPHONE ?, ?// ?101
?NDPI_PROTOCOL_DHCPV6 ?, ?// ?103
?NDPI_PROTOCOL_ARMAGETRON, ?// ?104
?NDPI_PROTOCOL_CROSSFIRE, ?// ?105
?NDPI_PROTOCOL_DOFUS ?, ?// ?106
?NDPI_PROTOCOL_FIESTA ?, ?// ?107
?NDPI_PROTOCOL_FLORENSIA, ?// ?108
?NDPI_PROTOCOL_GUILDWARS, ?// ?109
?NDPI_PROTOCOL_KERBEROS ?, ?// ?111
?NDPI_PROTOCOL_LDAP ?, ?// ?112
?NDPI_PROTOCOL_MAPLESTORY, ?// ?113
?NDPI_PROTOCOL_MSSQL ?// ?114
?NDPI_PROTOCOL_PPTP ?, ?// ?115
?NDPI_PROTOCOL_WARCRAFT3, ?// ?116
?NDPI_PROTOCOL_WORLD_OF_KUNG_FU ?, ?// ????117
?NDPI_PROTOCOL_MEEBO ?, ?// ?118
?NDPI_PROTOCOL_DROPBOX ?, ?// ?121
?NDPI_PROTOCOL_SKYPE ?, ?// ?125
?NDPI_PROTOCOL_DCERPC ?, ?// ?127
?NDPI_PROTOCOL_NETFLOW ?, ?// ?128
?NDPI_PROTOCOL_SFLOW ?, ?// ?129
?NDPI_PROTOCOL_HTTP_CONNECT ???, ?// ?????????130
?NDPI_PROTOCOL_HTTP_PROXY ??????, ?// ?????????131


?NDPI_PROTOCOL_CITRIX ?, ?// ?132
?NDPI_PROTOCOL_SKYFILE_PREPAID ?, ?// ?136
?NDPI_PROTOCOL_SKYFILE_RUDICS ?, ?// ?137
?NDPI_PROTOCOL_SKYFILE_POSTPAID ?, ?// ????138
?NDPI_PROTOCOL_CITRIX_ONLINE ?, ?// ?139
?NDPI_PROTOCOL_WEBEX ?, ?// ?141
?NDPI_PROTOCOL_VIBER ?, ?// ?144
?NDPI_PROTOCOL_RADIUS ?, ?// ?146
?NDPI_SERVICE_WINDOWS_UPDATE ?, ?// ?147
?NDPI_PROTOCOL_TEAMVIEWER ?, ?// ?148 /* xplico.org */
?NDPI_PROTOCOL_LOTUS_NOTES ?, ?// ?150
?NDPI_PROTOCOL_SAP ?, ?// ?151
?NDPI_PROTOCOL_GTP ?, ?// ?152
?NDPI_PROTOCOL_UPNP ?, ?// ?153
?NDPI_PROTOCOL_LLMNR ?, ?// ?154
?NDPI_PROTOCOL_REMOTE_SCAN ?, ?// ?155
?NDPI_PROTOCOL_SPOTIFY ?, ?// ?156
?NDPI_PROTOCOL_H323 ?, ?// ?158 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_OPENVPN ?, ?// ?159 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_NOE ?, ?// ?160 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_CISCOVPN ?, ?// ????161 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_TEAMSPEAK ?, ?// ?162 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_TOR ?, ?// ?163 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_SKINNY ?, ?// ?164 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_RTCP ?, ?// ?165 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_RSYNC ?, ?// ?166 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_ORACLE ?, ?// ?167 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_CORBA ?, ?// ?168 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_UBUNTUONE ?, ?// ??? ?169 /* Remy Mudingay <mudingay@ill.fr> */
?NDPI_PROTOCOL_WHOIS_DAS ?, ?// ?170
?NDPI_PROTOCOL_COLLECTD ?, ?// ????171
?NDPI_PROTOCOL_SOCKS5 ??????????, ?// ?????????172 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_SOCKS4 ??????????, ?// ?????????173 /* Tomasz Bujlow <tomasz@skatnet.dk> */


?NDPI_PROTOCOL_RTMP ?, ?// ?174 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_FTP_DATA ?, ?// ????????175 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_ZMQ ???????????????, ?// ??????????????????????177
?NDPI_PROTOCOL_MEGACO ???? , ?// ?181 /* Gianluca Costa <g.costa@xplico.org> */
?NDPI_PROTOCOL_REDIS ?????????????, ?// ??????????????????????182
?NDPI_PROTOCOL_PANDO ?, ?// ?183 /* Tomasz Bujlow <tomasz@skatnet.dk> */
?NDPI_PROTOCOL_VHUA ??????????????, ?// ??????????????????????184
?NDPI_PROTOCOL_TELEGRAM ?, ?// ????185 /* Gianluca Costa <g.costa@xplico.org> */
?NDPI_PROTOCOL_QUIC ?, ?// ????188 /* Andrea Buscarinu <andrea.buscarinu@gmail.com> - Michele Campus <michelecampus5@gmail.com> */
?NDPI_PROTOCOL_WHATSAPP_VOICE ?, ?// ????189
?NDPI_PROTOCOL_EAQ, ?//
?NDPI_PROTOCOL_STARCRAFT , ?// ????213 /* Matteo Bracci <matteobracci1@gmail.com> */
?NDPI_PROTOCOL_TEREDO , ?// ????????214


?NDPI_PROTOCOL_UNKNOWN
} L7ProtocolId;
#endif

1. 介紹

nDPI是一個從OpenDPI發展而來的DPI庫,現在由ntop組織負責維護。

為了給你提供一個跨平臺DPI的體驗,nDPI除了支持Unix平臺,還支持Windows(和Mac)。為了使nDPI更加適合應用于流量監控,我們將會持續進行優化,比如一旦發現存在對網絡流量監控非必須的、卻拖慢了DPI引擎的功能時,可以執行關閉。

不管使用了哪個端口,nDPI都可以探測到實際的應用層協議。這意味著既可以探測運行在非標準端口上的協議(e.g探測運行在非80端口上的http流量),又可以探測運行在一個標準端口上的其他協議(e.g探測運行在80端口上的Skype流量)。這是因為現在端口跟協議關聯的概念已經被打破。

在過去的幾個月里,我們已經為nDPI增加了以下多個功能:

一個名為ndpiReader的增強型demo

可以被編譯進kernel成為一個模塊,使其更加高效

從各方面提升了識別速度,目前nDPI在這方面已經遠遠超過了前代的OpenDPI

新增了大量的協議支持(目前為止已經支持超過180種協議),覆蓋范圍從商業類協議(如SAP和Citrix)到桌面協議(如Dropbox和Spotify)

可以定義基于端口(端口范圍)的協議探測,豐富了傳統的僅僅基于端口的探測手段

為了使nDPI支持探測加密連接,我們增加一個用于SSL的解碼器(同時支持客戶端和服務端),用以找出那些使用了加密證書的協議。這使我們可以識別那些以前無法探測到的協議,比如Citrix和AppleiCloud等

通過基于額外的一些字符串匹配方式,我們可以支持識別一些常見的應用子協議

2. 代碼下載

在你搭建ntop和nProbe的過程中nDPI就會自動被下載。也可以作為一個獨立的DPI庫來使用,源代碼可以通過gitclone https://github.com/ntop/nDPI.git下載。

或者:https://github.com/ntop/nDPI/archive/2.4.tar.gz


3. nDPI庫安裝

其他

安裝方式跟平臺以及發行版相關,這里列舉了一些:Ubuntu/Debian #apt-get install build-essential#apt-get install git autoconf automake autogen libpcap-dev libtoolFedora/CentOS #yum groupinstall "Development tools"#yum install git autoconf automake autogen libpcap-devel libtoolMacOSX(using http://brew.sh) # brew install autoconf automake libtool gitFreeBSD #pkg install autoconf automake libtool gmake git

依賴環境:

libpcap autotools libtool gawk gcc build-essential

安裝:

cd nDPI ./autogen.sh ./configure make cd example ./ndpiReader --help

Version2.0版本在工程目錄下執行make時,默認就編譯了example目錄下的ndpiReader

4. ndpiReader的命令行選項

以下列出了該demo程序的有效選項以及對應的簡單解釋

$./ndpiReader -hndpiReader-i <file|device> [-f <filter>][-s <duration>][-m<duration>][-p<protos>][-l <loops> [-q][-d][-h][-t][-v <level>][-n<threads>] [-w <file>] [-j <file>]Usage:-i<file.pcap|device>???????????????????|指定一個需要被識別的pcap文件/文件列表,或者需要被嗅探的|設備接口/接口列表(文件列表或接口列表使用","作為分隔符)-f<BPF filter>????????????????????????????|指定一條BPF規則的過濾字串-s<duration>?????????????????????????????|最大的嗅探時間(顯然只在嗅探接口時生效)-m<duration>????????????????????????????| pcap文件分段解析超時時間(顯然只在解析pcap文件時生效)-p<file>.protos??????????????????????????|指定一個自定義的協議識別配置文件(eg.protos.txt)-l<num loops>???????????????????????????|指定循環執行嗅探的次數(僅用于測試)-n<num threads>???????????????????????|指定線程數量,缺省跟設備接口數量對應|如果傳入的是pcap文件時固定使用單線程-j<file.json>???????????????????????????????|指定一個輸出包內容的json文件-g<id:id...>????????????????????????????????|指定線程-CPU親和關系映射表-d??????????????????????????????????????????????|禁止協議猜測功能-q??????????????????????????????????????????????|安靜模式,意味著不打印信息-t???????????????????????????????????????????????|解析GTP隧道協議-r???????????????????????????????????????????????|打印 nDPI版本和git版本-w<path>??????????????????????????????????|指定測試信息的輸出文件-h??????????????????????????????????????????????| help信息-v<1|2|3>??????????????????????????????????|按級別進一步打印包的詳細信息,分為1、2、3級


5. 協議文件

通過基于字符串的匹配方式,nDPI可以支持識別應用層的子協議。這是因為存在很多像AppleiCloud/iMessage,WhatsApp等新出現的子協議,以及其他使用http(s)的協議,這些協議可以通過解碼主機SSL證書或http頭中的"Host"字段而被識別。因此我們決定嵌入一個有效字符串匹配庫到nDPI中,這個庫基于AC自動機算法來匹配成百上千的有效子串(i.e運行在商業硬件上的nDPI可以處理超過10Gbit的流量)

通過使用一個協議文件,你可以在運行時設置自定義的子協議,這個協議文件的格式如下:


# Subprotocols

# Format:

# host:"<value>",host:"<value>",.....@<subproto>

host:"googlesyndication.com"@Google

host:"venere.com"@Venere

host:"kataweb.it",host:"repubblica.it"@Repubblica

host:"ntop"@ntop

你還可以配置基于IP的子協議,格式如下:


# IP based Subprotocols

# Format:

# ip:<value>,ip:<value>,.....@<subproto>

ip:213.75.170.11@CustomProtocol


你還可以配置基于端口的子協議,格式如下:

# Format:

# <tcp|udp>:<port>,<tcp|udp>:<port>,.....@<proto>

tcp:81,tcp:8181@HTTP

udp:5061-5062@SIP

tcp:860,udp:860,tcp:3260,udp:3260@iSCSI

tcp:3000@ntop

只需要在運行ndpiReader時加上使用“-p”選項,就可以測試你自定義的配置協議了。當然你也可以通過在你的程序中調用nDPI的APIndpi_load_protocols_file()來測試你的配置。

6 .示例

這節中我們將展示一些demo程序ndpiReader的使用范例。

6.1現場捕獲模式

下面這個例子展示了ndpiReader的現場捕獲模式,其中“-i”選項用來指定需要進行嗅探的設備接口,“-s”選項指定了嗅探的時間。

$sudo ./ndpiReader -i eth0 -s 20-----------------------------------------------------------*NOTE: This is demo app to show *some* nDPI features.*In this demo we have implemented only some basic features*just to show you what you can do with the library. Feel*free to extend it and send us the patches for inclusion------------------------------------------------------------UsingnDPI (2.0.0-838-6607c33) [1 thread(s)]Capturinglive traffic from device eth0...Capturingtraffic up to 5 secondsRunningthread 0...nDPIMemory statistics:nDPIMemory (once): 93.13 KBFlowMemory (per flow): 1.25 KBActualMemory: 1.49 MBPeakMemory: 1.49 MBTrafficstatistics:Ethernetbytes: 80367 (includes ethernet CRC/IFC/trailer)Discardedbytes: 1200IPpackets: 236 of 256 packets totalIPbytes: 74703 (avg pkt size 291 bytes)Uniqueflows: 165TCPPackets: 0UDPPackets: 230VLANPackets: 4MPLSPackets: 0PPPoEPackets: 0FragmentedPackets: 0MaxPacket size: 328PacketLen < 64: 28PacketLen 64-128: 9PacketLen 128-256: 6PacketLen 256-1024: 193PacketLen 1024-1500: 0PacketLen > 1500: 0nDPIthroughput: 47.22 pps / 125.62 Kb/secAnalysisbegin: 01/Jan/1970 08:00:00Analysisend: 01/Jan/1970 08:00:00Trafficthroughput: 47.22 pps / 125.62 Kb/secTrafficduration: 4.998 secGuessedflow protos: 1Detectedprotocols:Unknown packets: 194 bytes: 69976 flows: 143NetBIOS packets: 19 bytes: 2116 flows: 8SSDP packets: 2 bytes: 416 flows: 2IGMP packets: 2 bytes: 120 flows: 2ICMPV6 packets: 4 bytes: 344 flows: 1DHCPV6 packets: 3 bytes: 455 flows: 3LLMNR packets: 10 bytes: 760 flows: 5Cloudflare packets: 2 bytes: 516 flows: 1Protocolstatistics:Acceptable 4727 bytesUnrated 69976 bytes


6.2文件捕獲模式

最簡單的創建一個pcap文件的方法是使用tcpdump命令,就像下面這個例子一項:

$sudo tcpdump -i eth0 -w /var/tmp/capture.pcap -vtcpdump:listening on eth0, link-type EN10MB (Ethernet), capture size 262144bytes^C248packets captured252packets received by filter0packets dropped by kernel

一旦pcap文件被創建,你就可以像下面這樣運行ndpiReader:

$sudo ./ndpiReader -i /var/tmp/capture.pcap-----------------------------------------------------------*NOTE: This is demo app to show *some* nDPI features.*In this demo we have implemented only some basic features*just to show you what you can do with the library. Feel*free to extend it and send us the patches for inclusion------------------------------------------------------------UsingnDPI (2.0.0-838-6607c33) [1 thread(s)]Capturinglive traffic from device eth0...Capturingtraffic up to 5 secondsRunningthread 0...nDPIMemory statistics:nDPIMemory (once): 93.13 KBFlowMemory (per flow): 1.25 KBActualMemory: 1.49 MBPeakMemory: 1.49 MBTrafficstatistics:Ethernetbytes: 80650 (includes ethernet CRC/IFC/trailer)Discardedbytes: 1020IPpackets: 231 of 248 packets totalIPbytes: 75106 (avg pkt size 302 bytes)Uniqueflows: 164TCPPackets: 2UDPPackets: 227VLANPackets: 1MPLSPackets: 0PPPoEPackets: 0FragmentedPackets: 0MaxPacket size: 328PacketLen < 64: 19PacketLen 64-128: 6PacketLen 128-256: 13PacketLen 256-1024: 193PacketLen 1024-1500: 0PacketLen > 1500: 0nDPIthroughput: 155.03 K pps / 412.96 Mb/secAnalysisbegin: 14/Dec/2017 15:37:39Analysisend: 14/Dec/2017 15:37:44Trafficthroughput: 49.59 pps / 135.25 Kb/secTrafficduration: 4.659 secGuessedflow protos: 0Detectedprotocols:Unknown packets: 200 bytes: 71136 flows: 146MDNS packets: 6 bytes: 1197 flows: 3NetBIOS packets: 6 bytes: 552 flows: 3SSDP packets: 3 bytes: 624 flows: 2ICMPV6 packets: 1 bytes: 86 flows: 1DHCPV6 packets: 5 bytes: 761 flows: 5LLMNR packets: 10 bytes: 750 flows: 4Protocolstatistics:Acceptable 3970 bytesUnrated 71136 bytes

6.3協議文件

為了闡述清楚協議文件的作用,我們現在就來講解如何識別ntop.org的流量。

可以像下面這樣編輯protos.txt.

$echo 'host:"ntop.org"@nTop' > protos.txt

修改完協議文件之后,你就可以像下面這樣運行ndpiReader:

$sudo ./ndpiReader -i eth0 -s 30 -p ./protos.txt


7.API nDPI

這節中高亮的就是nDPI的API。

這節中將ndpiReader作為一個基本范例來展示如何初始化nDPI庫。首先需要一個編譯完成的庫以及一個合適的Makefile(i.e就像ndpiReader的Makefile那樣)

為了在你的程序中使用nDPI的API,你除了要include自己的頭文件外,還需要添加類似下面這一行:

#include<ndpi/ndpi_main.h>


庫可以按照下面的順序執行初始化:

[1].創建并初始化一個nDPI核心庫探測模塊

structndpi_detection_module_struct * module =ndpi_init_detection_module();


備注:本API格式在Version2.0版本中較之前版本差異很大。

這個探測模塊中維護了所有支持的協議。

本API只是注冊了所有支持的協議,但并未使能其中任何一個協議


[2].ndpiReader接下來通過一些宏使能了探測模塊中的所有協議(顯然你可以根據自己的需求來決定使能哪些協議)

NDPI_BITMASK_SET_ALL(all);

ndpi_set_protocol_detection_bitmask2(

structndpi_detection_module_struct *ndpi_struct,

constNDPI_PROTOCOL_BITMASK * dbm);

參數含義如下:

@ndpi_struct指向當前操作的探測模塊

@dbm調用者實際通過該集合來控制實際需要應用的協議,只有該字段中被置1的對應協議,其協議分析器才真正允許被加載

備注:本API的作用就是使能一個已經初始化的nDPI核心庫探測模塊中的協議

[3].為了導入已經存在的協議文件,你還必須調用下面的API

ndpi_load_protocols_file(structndpi_detection_module_struct *ndpi_mod, char* path);

參數含義如下:

@ndpi_mod指向當前操作的探測模塊

@path協議文件的路徑


[4].一旦從你的pcap文件或設備接口上捕獲到了數據流,就可以調用下面的API來進行分析

ndpi_protocolndpi_detection_process_packet(

structndpi_detection_module_struct *ndpi_struct,

structndpi_flow_struct *flow,

constunsigned char *packet,

constunsigned short packetlen,

constu_int64_t current_tick_l,

structndpi_id_struct *src,

structndpi_id_struct *dst)

參數含義如下:

@ndpi_struct指向傳入包所屬的探測模塊

@ndpi_flow指向傳入包所屬的數據流

@packet指向傳入包的IP頭

@packetlen IP包的長度

@current_tick_l收到該IP包的時間(ms)

@src指向源用戶狀態機

@dst指向目的用戶狀態機

備注:本API是ndpi核心庫處理收到包的入口,通過分析傳入的IP包,完成數據流的識別,最后返回是別結果.

如果想了解更深入的信息,我們建議你閱讀下面這些文件:

nDPI/example/pcapReader.c,

nDPI/src/include/ndpi_structs.h,

nDPI/src/include/ndpi_public_functions.h

nDPI/src/ndpi_main.c.

具體的協議解析器文件都被放在nDPI/src/protocols文件夾中。??????????????????

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的nDPI流量协议分析(应用软件识别)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一级片免费看 | 亚洲乱码国产一区三区 | 五月婷婷丁香综合 | 国产av一区二区三区最新精品 | 91视频免费在线观看 | 69日影院 | 二区三区偷拍浴室洗澡视频 | a天堂中文在线 | 自拍偷拍五月天 | 四虎在线看片 | 黄色免费在线网址 | 亚洲av中文无码乱人伦在线视色 | 伊人网影院 | www.xxxx欧美| 国产视频在线观看免费 | 成人福利视频在线观看 | 国产欧美视频一区二区三区 | 成人小视频在线 | 欧美日韩中文字幕视频 | 国产精品怡红院 | 色av色 | 澳门黄色 | 国产精品美女网站 | 欧美极品一区二区 | 天天干天天爱天天射 | 亚洲福利午夜 | 亚洲免费一区视频 | 免费看91视频 | 欧美日韩国产大片 | 国产欧美一区二区三区视频在线观看 | 欧美成人不卡视频 | 日韩 欧美 国产 综合 | 久热免费在线视频 | 毛片av在线播放 | 亚洲一区二区三区香蕉 | 欧美人体一区二区三区 | 精产国品一二三产品蜜桃 | 麻豆视频在线观看免费网站 | 黄色大片一级片 | 69av一区二区三区 | 午夜在线影院 | 成年人在线视频免费观看 | 国产精品美女久久久久图片 | 色婷婷国产精品视频 | 亚洲视频手机在线观看 | japan高清日本乱xxxxx | 国产精品黑丝 | 欧美色图久久 | 亚洲另类欧美日韩 | 伊人三区 | 精品一区二区三区精华液 | 国产91在线免费观看 | 精品国产鲁一鲁一区二区张丽 | a视频在线观看免费 | 精品影片一区二区入口 | 538国产视频 | 国产高清自拍一区 | 中文字幕精品无 | 中国女人一级片 | 亚洲大乳| 欧美aa大片| 秋霞一级全黄大片 | 91黄色在线观看 | 色网站入口 | 欧美bdsm调教视频 | 精品久久久久久久久久久久久久久久久久 | 亚洲福利一区二区三区 | 午夜影院入口 | 国产成年人视频 | 亚洲精品乱码久久久久久不卡 | 国产精品久久久久久亚洲色 | 欧美日韩精品三区 | www.成人网.com| 久久久精品人妻一区二区三区四 | 被黑人啪到哭的番号922在线 | 免费在线亚洲 | 色综合综合色 | 日本免费一区二区三区视频 | 成人宗合 | 东北熟女一区二区三区 | 韩国三级中文字幕hd久久精品 | 丰满护士巨好爽好大乳 | 免费看污的网站 | 日韩美女激情视频 | 色婷婷综合激情 | 久久国产精品免费看 | tube国产麻豆 | 操碰人人 | 欧美激情自拍 | 中文字幕在线观看视频一区 | 欧美丰满熟妇bbbbbb | 美女免费福利视频 | 欧洲-级毛片内射 | 熟妇人妻中文av无码 | 免费麻豆视频 | 在线免费日韩av | 色欲无码人妻久久精品 | av影库| 免费看国产曰批40分钟 |