libpcap丢包原理分析及Fedor…
来源:互联网 发布:海阳淘宝客服招聘信息 编辑:程序博客网 时间:2024/06/07 05:47
看到网上有人讲解fedora9下安装PF-RING的过程,都是几年前的了,比较老了,我安装PF-RING就是为了使用libpcap库,libpcap的原理是通过socket将数据包从网卡捕获数据包,然后在提交给应用程序,和winpcap很大的区别是,libpcap采用的是2个缓冲区,内核类似的一个乒乓操作,详细见我的庖丁解牛--winpcap源码彻底解密一系列的文章。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接口->用户应用程序http://www.bakaw.com/,在这个流程中,可以看出数据的copy比较多。所以libpcap抓包丢包严重也不用感到奇怪了,为了减少丢包率,采用libpcap-pfring方法。
下面讲解fedora 9下如何安装PF-RING,安装过程如下:
1)cd /home 然后再这里建立一个目录 mkdir rfring-libpcap
2)cd rfring-libpcap
3)svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/下载PF-RING
4)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 -p0
7)cd linux-2.6.25 编译内核
#vi Makefile在这个地方加上一个自定义http://www.hunantaobao.com的后缀:EXTRAVERSION = -PF_RING,这会显示在界面启动的时候看到
8)make oldconfig 主要目的是选择RF_RING
9) make menuconfig 检查Networking->Networkingoptions —>PF_RINGsockets(EXPERIMENTAL)
10) 然后就开始编译内核了,按我以前写的一篇博客操作 make
11)ma
SMIL转换器
ke modules12)make modules_install
13) make install
14) cd /root/grub
15) vim menu.lst 删除menuhidden
16) cd ../..
cp kernel/include/linux/ring.h /usr/include/linux/
17)编译源码和libpcap
cd userland
make
cd lib/
make install
cd ../libpcap-1.1.1-ring/
make install
18) reboot 重启系统
- libpcap丢包原理分析及Fedor…
- libpcap抓包原理分析
- libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过程
- libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过
- libpcap丢包原理分析及Fedora 9 内核2.6.25.14下安装PF-RING的详细过程
- libpcap抓包原理
- Libpcap抓包原理
- Libpcap抓包原理
- libpcap抓包原理
- Libpcap抓包原理
- libpcap抓包原理
- Libpcap抓包原理
- libpcap原理分析
- libpcap原理及使用
- LibPcap丢包问题
- LibPcap丢包问题
- LibPcap丢包问题
- libpcap原理及函数介绍
- Android开发环境搭建:SDK在…
- 突破google封锁,自由使用google
- 四种可行办法解决Android SDK Manager 下载问题
- 各种语言的Hello World程序
- js;打开窗口window
- libpcap丢包原理分析及Fedor…
- (转载)MySQL使用裸设备存…
- (转载)[精华]什么叫做裸设备
- SVN文件冲突解决
- snort数据包记录模式修改包的大小…
- DDOS工具
- hdu 3722 Card Game (km)
- 同时运行两个TOMCAT的配置
- 黑马程序员-类和继承-学习笔记