基于零拷贝的网络数据包捕获技术简述

基于零拷贝的网络数据包捕获技术简述

所谓零拷贝是指在某节点的报文收发过程中不会出现任何内存间的拷贝,发送时数据包由应用程序的用户缓冲区直接经过网络接口到达外部网络,接收时网络接口直接将数据包送入用户缓冲区。这是“真正的零拷贝(True Zero Copy)”。



如图1零拷贝工作流程图所示,图形的上部为传统的捕包模块,下部为采用零拷贝技术的捕包模块。零拷贝技术通过操作系统给网卡和用户区开了一段共用内存,网卡接收到的数据都被写到这段共用内存中,在这段内存区中存在着接收环和发送环,接收环存储着从网卡上接收来的数据,发送环存储着要通过网卡进行发送的用户数据。因为这段内存是网卡和用户区共用的,所以只要网卡接收到数据,用户程序就可以直接对这些数据进行访问和操作。同样的只要用户区程序有网络数据要发送,就可以由网卡程序直接发送。这减少了不必要的系统数据调用,减少了中断,使CPU能够有更多的时间来处理其它事情。

零拷贝具有很高的性能,我们将Libpcap捕包模块与零拷贝技术进行试验对比,得出下表的性能对比图,其中网卡为Intel 845系列千兆光纤网卡。



包都是传统的Libpcap系统的5倍以上,该技术极大地提高了系统的数据处理能力,使得CPU能够有更多的宝贵时间来处理其他的高级应用。


原文地址 http://blog.csdn.net/efan_linux/archive/2009/09/27/4600892.aspx

TAG network sniffer libpcap

http://blogold.chinaunix.net/u3/106533/showart_2099950.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值