nDPI代码深度解析(二)
来源:互联网 发布:java 数组 深入 编辑:程序博客网 时间:2024/05/14 23:35
进行业务识别,靠单纯的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.202.88 */, 32, NDPI_PROTOCOL_SOUNDCLOUD }, ... ... /* WeChat origin AS132203, AS132591, AS45090 */ { 0xCBCD93AB /* 203.205.147.171/32 */, 32, NDPI_PROTOCOL_WECHAT }, { 0xCBCD93AD /* 203.205.147.173/32 */, 32, NDPI_PROTOCOL_WECHAT }, { 0xCBCD97A2 /* 203.205.151.162/32 */, 32, NDPI_PROTOCOL_WECHAT }, { 0x67071E25 /* 103.7.30.37/32 */, 32, NDPI_PROTOCOL_WECHAT }, ... ... /* GitHub, Inc. origin AS36459 */ { 0xC01EFC00 /* 192.30.252.0/22 */, 22, NDPI_PROTOCOL_GITHUB }, ... ... };ndpi_protocol_match host_match[] = { { "amazon.", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_SAFE }, { "amazon.com", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_SAFE }, { "images-amazon.com", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_ACCEPTABLE }, { "amazonaws.com", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_UNSAFE }, { "amazon-adsystem.com", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_ACCEPTABLE }, { ".cloudfront.net", "Amazon", NDPI_PROTOCOL_AMAZON, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_ACCEPTABLE }, { ".apple.com", "Apple", NDPI_PROTOCOL_APPLE, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_SAFE }, { ".mzstatic.com", "Apple", NDPI_PROTOCOL_APPLE, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_SAFE }, { ".aaplimg.com", "Apple", NDPI_PROTOCOL_APPLE, NDPI_PROTOCOL_CATEGORY_WEB, NDPI_PROTOCOL_SAFE }, ... ... };ndpi_protocol_match content_match[] = { { "audio/mpeg", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "audio/x-mpeg", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "audio/mpeg3", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "audio/mp4a", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "video/mpeg", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "video/nsv", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, { "misc/ultravox", NULL, NDPI_CONTENT_MPEG, NDPI_PROTOCOL_CATEGORY_MEDIA, NDPI_PROTOCOL_FUN }, ... ... };
阅读全文
0 0
- nDPI代码深度解析(二)
- nDPI代码深度解析(一)
- HashMap深度解析(二)
- nDPI的DNS协议解析
- 深度解析 TypeConverter & TypeConverterAttribute (二)
- 模板方法模式深度解析(二)
- 深度解析 TypeConverter & TypeConverterAttribute (二)
- 模板方法模式深度解析(二)
- 模板方法模式深度解析(二)
- 模板方法模式深度解析(二)
- 【深度学习】caffe结构解析(二)
- 模板方法模式深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- HashMap深度解析(二)
- 生命太短,离别太长
- [Treap] [LIS] BZOJ[3173] [Tjoi2013]最长上升子序列
- 坚持#第212天~零基础自学云计算基础语言应用1~5节
- 《阿里巴巴Java开发手册》阅读笔记
- QT打开文件对话框和保存文件对话框介绍,以记事本为例
- nDPI代码深度解析(二)
- python数据类型(一)
- 关于台湾旅游和日本旅游以及港澳台旅游的经验
- 【论文阅读】Fused Text Segmentation Network for Multi-oriented Scene Text Detection
- 如何更改Eclipse里java项目的JRE
- 算法第四版 用java实现由中序表达式转换为后续表达式
- 72. Edit Distance
- hdu 3657 Game(最小割,方格取数)
- 单片机系列(1)从第一行代码到跑马灯的制作