免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6702 | 回复: 14
打印 上一主题 下一主题

[网络子系统] 请教高手:PACKET_MMAP PF_RING 的主要区别在哪里? [复制链接]

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-15 12:18 |只看该作者 |倒序浏览
本帖最后由 yjh777 于 2013-02-22 09:00 编辑

RT

看介绍,两者都是mmap一个大小可配置的ring buffer到用户空间 实现zero copy,并可以一次读取多个报文;

那么两者的主要区别在哪里? PF_RING 比 PACKET_MMAP 有性能提升 是什么机制占主要作用?





九贱的 pf_ring 源代码分析:
http://bbs.chinaunix.net/thread-1943951-1-1.html

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2013-03-15 15:58 |只看该作者
我也想知道区别。。。。

感觉一样啊!

请大家指点。。。谢谢!

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
3 [报告]
发表于 2013-03-15 16:17 |只看该作者
回复 1# yjh777
看介绍,两者都是mmap一个大小可配置的ring buffer到用户空间 实现zero copy,并可以一次读取多个报文;

那么两者的主要区别在哪里? PF_RING 比 PACKET_MMAP 有性能提升 是什么机制占主要作用?

之前玩过这个,好久没用了,不知道现在又没有变化
(1)PACKET_MMAP实现了用户空间和内核空间的零copy,但是从网卡到内核空间还是有一层copy的,所有不是真正的zero-copy。

(2)PF_RING提供免费版本和收费版本,其中免费模式,实现的原理跟PACKET_MMAP是类似的,不是真正的zero-copy;但是收费的DNA模式,实现了真正的zero-copy(由于收费模式提供时库,所有没法看代码是怎么实现的)
   

论坛徽章:
0
4 [报告]
发表于 2013-03-15 16:30 |只看该作者
本帖最后由 251300891 于 2013-03-15 16:33 编辑

回复 3# 瀚海书香


    哦,明白。用户态pf_ring 库 api(pfring_recv()等)用mmap取数据从pf_ring.ko的ring中取的,数据包从网卡到pf_ring.ko的ring需要一次拷贝,不知道有没理解错

论坛徽章:
0
5 [报告]
发表于 2013-03-15 16:32 |只看该作者
回复 4# 251300891

pfring.ko给数据包开辟的缓存区不知道够不够大,巨帧包会丢包

   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
6 [报告]
发表于 2013-03-15 16:41 |只看该作者
回复 5# 251300891
ring buffer的大小是可以通过module param设置的

   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2013-03-15 16:42 |只看该作者
我也觉得是类似的,呵呵。

都是用skb_copy_datagram_iovec()之类的拷贝一次。


回复 3# 瀚海书香


   

论坛徽章:
0
8 [报告]
发表于 2013-03-15 16:46 |只看该作者
回复 6# 瀚海书香


    具体怎么设置,跪求详细方法。开源的代码怎么看比较好,发现很难全面了解,只能按照例子学着改代码。

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2013-03-15 16:55 |只看该作者
我看代码就是跟着包走啊,这样就能抓住大概流程了。

回复 8# 251300891


   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
10 [报告]
发表于 2013-03-15 17:19 |只看该作者
回复 8# 251300891
代码不在这个本上,现在很难想起具体的参数了。你可以modinfo具体看看每个参数的意义,然后就可以改代码或者改设置了。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP