学习内容DPDK
2016-06-02 15:03
267 查看
DPDK是inter推出的性能不错的捕捉网卡数据的驱动程序,只是从网卡上读取数据,供用户层程序分析网络数据。
开源软件:suricata,网络数据包处理软件可以使用DPDK,且实现了协议栈功能,包括各种协议解析及重组,直至传送到应用层的用户程序。
=================================
1. 流表管理
流:每一个数据包就是一个数据流
流表:将相关数据流的关键信息保存到内存中比如链表,称为流表,系统对关键信息生成hash值,通过hash表实现快速查。
每个关键信息对应的hash项在流表中作为一项存储,流表项超时时回收该项的空间以后使用。
2. 数据流重组
重组:在TCP传输层的重组而非IP层的分片重组,TCP传输层的数据可能是乱序的,因此需要对收到的数据包
按照tcp协议中的序号及确认序号进行重组,供应用成程序使用。UDP不需要重组,非可靠协议。
==================================
1. 网卡收包模块
2. 协议解码模块(获得5元组等报文数据)
3. 流表管理模块(根据5元组创建或者更新流数据在流表中的状态)
4. DETECT:按照规则文件对数据包进行特征匹配,DETECT位置根据需求而定,比如需要处理ICMP协议内容就需要在IP层协议解码后处理,
如果需要处理端口相关的内容则需要在TCP、UDP协议解码后再进行DETECT处理。
5. 数据流重组:传输层中TCP协议根据序号及确认序号进行数据重组,之后给应用层程序使用。
6. 应用层解析
7. 输出(日志、文件)
==================================
开源软件:suricata,网络数据包处理软件可以使用DPDK,且实现了协议栈功能,包括各种协议解析及重组,直至传送到应用层的用户程序。
=================================
1. 流表管理
流:每一个数据包就是一个数据流
流表:将相关数据流的关键信息保存到内存中比如链表,称为流表,系统对关键信息生成hash值,通过hash表实现快速查。
每个关键信息对应的hash项在流表中作为一项存储,流表项超时时回收该项的空间以后使用。
2. 数据流重组
重组:在TCP传输层的重组而非IP层的分片重组,TCP传输层的数据可能是乱序的,因此需要对收到的数据包
按照tcp协议中的序号及确认序号进行重组,供应用成程序使用。UDP不需要重组,非可靠协议。
==================================
1. 网卡收包模块
2. 协议解码模块(获得5元组等报文数据)
3. 流表管理模块(根据5元组创建或者更新流数据在流表中的状态)
4. DETECT:按照规则文件对数据包进行特征匹配,DETECT位置根据需求而定,比如需要处理ICMP协议内容就需要在IP层协议解码后处理,
如果需要处理端口相关的内容则需要在TCP、UDP协议解码后再进行DETECT处理。
5. 数据流重组:传输层中TCP协议根据序号及确认序号进行数据重组,之后给应用层程序使用。
6. 应用层解析
7. 输出(日志、文件)
==================================
相关文章推荐
- iOS开发系列--UITableView全面解析
- C++ 引用
- Lua模拟继承行为
- Java随机抽取方法、去重的方法
- jquery Ajax 全局调用封装
- 缓存报错-初始化失败 ERROR [org.springframework.web.context.ContextLoader] - context initialization failed
- Android Studio中有用的快捷键栏
- js 操作cookie
- 利用adb 命令回到手机端某个app的页面
- iOS 基础篇3—手写控件,frame,center和bounds属性
- Nginx ----- Windows下Nginx的安装与部署
- lua CRC32校验码生成
- ADT bundle和Eclipse和Android Studio有什么区别?安卓开发该用哪个?
- django优化和扩展(一)
- FZU 2236 第十四个目标(严格上升子序列个数 离散化 + 树状数组)
- UE4 调试着色器编译过程
- SQL取当月某一天的日期
- MYSQL 5.7.12 ZIP 版本 windows安装步骤
- hdu 3338 Kakuro Extension(最大流,巧妙建图)
- UITableView 自带编辑删除