进行业务识别,靠单纯的DPI,是难以识别出具体应用的,比如,QQ、微信、微博、Facebook等。采用什么手段进行识别呢?很容易想到,特定的应用往往具有特定的IP地址,域名,url等。事实上,基于这些信息进行应用识别,具有较高的准确率。nDPI的总体思路,可总结为:报文解析DPI识别协议类别 + 内容特征识别具体应用。
我们走读nDPI代码,很容易便能印证我们的猜测:
static ndpi_network host_protocol_list[] = {
/*
SoundCloud
*/
{ 0x22FB2FEE /* 34.251.47.238 */, 32, NDPI_PROTOCOL_SOUNDCLOUD },
{ 0x23A06456 /* 35.160.100.86 */, 32, NDPI_PROTOCOL_SOUNDCLOUD },
{ 0x36C0CA58 /* 54.192