pf_ring 5.4.0源码分析

815阅读 0评论2012-12-21 lujian19861986
分类:

pf_ring是一款开源的高性能抓包库,项目的网址是:

同经典的libpcap比较,pf_ring提高性能的关键在以下三点:
1) pf_ring利用mmap将内核态开辟的内存空间映射进用户态空间,避免了收包时内核态和用户态之间的数据拷贝以及发包时用户态和内核态之间的数据拷贝
2) pf_ring利用预先分配的环形缓冲队列存储网络包,避免了libpcap的为每个包分配和释放资源的开销
3) 利用pf_ring自带的网卡驱动,从不同程度上减短了数据包处理路径(参见《pf_ring quick_mode原理》和《pf_ring透明工作模式(transparent_mode)原理》)。

一、环形缓冲队列
1.1 数据结构
TODO
1.2 操作函数
TODO
二、网络处理路径
2.1 收包路径优化
TODO
2.2 包入环形缓冲队列处理优化
TODO
三、mmap实现
TODO
四、ring socket操作接口
TODO
五、总结
TODO
上一篇:PF_RING使用BPF过滤器
下一篇:pfring自带pfcount bps统计值偏小问题与解决方法