Welcome 微信登录

首页 / 操作系统 / Linux / libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过程

看到网上有人讲解Fedora 9下安装PF-RING的过程,都是几年前的了,比较老了,我安装PF-RING就是为了使用libpcap库,libpcap的原理是通过socket将数据包从网卡 捕获数据包,然后在提交给应用程序,和winpcap很大的区别是,libpcap采用的是2个缓冲区,内核类似的一个乒乓操作。winpcap采用的是环状缓冲区,在winpcap下当网卡有数据到来时,npf.sys就会将数据拷贝到内核缓冲区中,而内核驱动实际上是一个Ndis协议驱动,当内核缓冲区的数据包大小达到一个阈值mintocopysize时,它就会将数据包拷贝到应用缓冲区中,kernelbuffer和userbuffer,及mintocopysize都提供了函数进行设置的。那么为什么在windows平台进行包捕获的时候,千兆网的条件下,都很少有包丢失呢,为什么在linux环境下进行包捕获,丢包率很大,这就要仔细分析源码了,winpcap的npf.sys是一个Ndis协议驱动,它和TCP/IP协议是同一层的,即采用winpcap捕获数据包,数据包就不需要经过tcp/ip层了,而libpcap是linux下的捕获包,他是在应用层之上的,及在tcp/ip协议上,本来通过socket可以捕获包的,libpcap不过是对socket进行了一次封装,在socket上面有提供了一层接口,方面用户的调用。libpcap捕获包的流程如下:
Linux 的 libpcap 详细流程为:网卡硬中断 -> 软中断 -> 内核协议栈 -> 系统调用 ->socket 接口 ->libpcap 接口 -> 用户应用程序,在这个流程中,可以看出数据的 copy 比较多。所以 libpcap 抓包丢包严重也不用感到奇怪了,为了减少丢包率,采用 libpcap-pfring 方法。下面讲解 Fedora 9 下如何安装 PF-RING ,安装过程如下:1)cd /home 然后再这里建立一个目录 mkdir rfring-libpcap2)cd rfring-libpcap3)svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/  下载 PF-RING4)PF-RING 下载完后, cd /PF-RING/legacy 下, vi mkpatch.sh 修改内核版本号 ={SUBLEVEL : -25.14}5)./mkpatch.sh 下载内核到 workspace 中,生成目录 linux-2.6.25-14-686-smp-PF_RING 和补丁文件 linux-2.6.25-14-686-smp-PF_RING.patch.gz 。6) 按下面操作mv linux-2.6.25-14-686-smp-PF_RING/ linux-2.6.25-14-686-smp-PF_RING.bak/zcat linux-2.6.25-14-686-smp-PF_RING.patch.gz | patch -p07 ) cd linux-2.6.25 编译内核#vi Makefile 在这个地方加上一个自定义的后缀:  EXTRAVERSION = -PF_RING ,这会显示在界面启动的时候看到
  • 1
  • 2
  • 下一页
Linux下PDF批注编辑软件XournalLinux Fedora 14(内核2.6.35.6) PF_RING+libpcap 极速捕获千兆网数据包,不丢包相关资讯      Fedora教程 
  • Fedora安装之rpmfusion:获取 GPG   (03/02/2014 12:57:18)
  • Win7下安装Fedora 17注意点  (10/07/2012 20:47:42)
  • 编译自己功能定制的Fedora 7内核  (09/12/2012 09:31:23)
  • Fedora如何设置启动默认进入文本模  (04/06/2013 08:23:46)
  • Windows 7 + Fedora 17 双系统 硬  (10/07/2012 18:43:52)
  • Fedora下adsl共享上网  (09/11/2012 08:11:46)
本文评论 查看全部评论 (0)
表情: 姓名: 字数
版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图