nDPI 的论文阅读和机制解析
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 的论文阅读和机制解析的更多相关文章
- [论文阅读]阿里DIN深度兴趣网络之总体解读
[论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...
- [论文阅读] RNN 在阿里DIEN中的应用
[论文阅读] RNN 在阿里DIEN中的应用 0x00 摘要 本文基于阿里推荐DIEN代码,梳理了下RNN一些概念,以及TensorFlow中的部分源码.本博客旨在帮助小伙伴们详细了解每一步骤以及为什 ...
- 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)
今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- 转 Java Classloader机制解析
转 Java Classloader机制解析 发表于11个月前(2014-05-09 11:36) 阅读(693) | 评论(0) 9人收藏此文章, 我要收藏 赞1 慕课网,程序员升职加薪神器,点 ...
- NASNet学习笔记—— 核心一:延续NAS论文的核心机制使得能够自动产生网络结构; 核心二:采用resnet和Inception重复使用block结构思想; 核心三:利用迁移学习将生成的网络迁移到大数据集上提出一个new search space。
from:https://blog.csdn.net/xjz18298268521/article/details/79079008 NASNet总结 论文:<Learning Transfer ...
- 论文阅读笔记:《Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling》
论文阅读:<Interconnected Question Generation with Coreference Alignment and Conversion Flow Modeling& ...
- [论文阅读]阿里DIEN深度兴趣进化网络之总体解读
[论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...
- BERT 论文阅读笔记
BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...
随机推荐
- php中模糊查询并关联三个select框
1.在php中我们经常用到下拉框,并相互关联,如果下拉框的option非常多,那么我们就要用到模糊搜索功能,那么怎么做呢? 在此功能中,走了弯路,最好不要关联两个select的id值后select属性 ...
- js类的笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- BZOJ4568: [Scoi2016]幸运数字(线性基 倍增)
题意 题目链接 Sol 线性基是可以合并的 倍增维护一下 然后就做完了?? 喵喵喵? // luogu-judger-enable-o2 #include<bits/stdc++.h> # ...
- Node.js 学习笔记(一)--------- Node.js的认识和Linux部署
Node.js 一.Node.js 简介 简单的说 Node.js 就是运行在服务端的可以解析并运行 JavaScript 脚本的软件. Node.js 是一个基于Chrome JavaScript ...
- laravel之引入图片上传类
1.在官网http://www.uploadify.com/ 下载插件,flash verison 的版本是免费版 2.解压后将文件夹放置在指定的目录下 3.前端导入css,js文件,可以仿照文件夹中 ...
- 使用iview时,页面没了滚动条
场景:页面中有一个确认按钮,保存后弹框预览在点保存按钮,实现数据提交.提交后回到数据列表页,用this.$router.push('list'),返回后页面无法滚动了. 原因:排查后发现弹框时在bod ...
- css3+javascript实现翻页幻灯片
先上效果图 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- JDBC中处理事务,小Demo
事务的四大特性(ACID): 原子性(Atomicity):事务中所有操作是不可再分割的原子单位.事务中所有操作要么全部执行成功,要么全部执行失败. 一致性(Consistency):事务执行 ...
- 使用NodeJs搭建的小型web应用
原文英文链接:http://www.nodebeginner.org 中文翻译链接:http://www.nodebeginner.org/index-zh-cn.html 学习链接:一本全面的Nod ...
- 浅谈count(*)、count(1)、count(列名)
count(*) 和 count(1)和count(列名)区别 执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL count(1)包括了所有列, ...