libpcap+PF_RING源码分析---前言(一)
来源:互联网 发布:协同过滤算法的缺点 编辑:程序博客网 时间:2024/05/22 16:50
Libpcap是linux下用来捕获数据包的抓包库,它主要是基于socket的,和winpcap的本质的不同是,winpcap是和tcp/ip协议同层的,而libpcap是应用层的库,在tcp/ip层上对socket的又一次封装,所以从网卡得到的数据包需要经过多次拷贝才能达到应用程序,在千兆网的条件下,捕获包的性能较差,为了提高libpcap的包捕获性能,采用PF_RING对libpcap进行改进,改进后的libpcap采用环状缓冲区从网卡接收数据包,然后通过mmap映射到应用程序,减少内存拷贝的次数。为了更好的理解libpcap,pfring,libpfring等库函数,所以对这些源码进行分析,其中pfring是内核的源码,而libpfring是对pfring的封装,供应用程序调用,其实不采用libpcap,直接采用libpring也能捕获数据包,因为目前大部分的sniff工具都是建立在libpcap之上的,所以还是采用libpcap的接口,在底层采用pfring修改socket的实现过程。
Winpcap和libpcap捕获数据包的不同之处在于winpcap是与tcp/ip同层的协议,而libpcap是应用层的开发包,libpcap+pf_ring补丁后,和winpcap就有点类似了,都是采用环状的内核缓冲区,内核缓冲区的大小都可以设置。而winpcap和libpcap另外一个不同之处在于,它可以设定mintocopysize,即当内核缓冲区有这么多数据的时候,就将数据拷贝到应用程序缓冲区,而libpcap是没有这种功能的。Libpcap主要是基于网卡中断或轮询往上层传替数据的。
- libpcap+PF_RING源码分析---前言(一)
- libpcap+PF_RING源码分析---前言(一)
- libpcap+PF_RING源码分析一、二
- pf_ring 5.4.0源码分析
- libpcap源码分析
- libpcap源码分析
- libdvbpsi源码分析(前言)
- function源码分析 前言
- chromium源码分析系列:前言
- Java数据结构源码分析-前言
- Hadoop源码详解 前言(一)
- PF_RING实现分析
- PF_RING实现分析
- PF_RING实现分析
- PF_RING实现分析
- PF_RING实现分析
- 基于pf_ring特性的libpcap库安装与配置
- 混淆的艺术-(苍井空变凤姐)Proguard源码分析(一)前言和计划
- linux下安装apache并进行tomcat集群负载
- 菜鸟学习 设计模式——行为模式(2)
- 输出前n个fibonacci序列的值及它们的和(fibonacci序列为1,1,2,3,...)
- WinCE下的GPIO中断的处理
- Android开发学习笔记(九)Android应用界面编程 AutoCompleteTextView学习
- libpcap+PF_RING源码分析---前言(一)
- javascript事件大全
- Linux进程调度
- IT职场人生系列之二十四:程序员如何增加收入
- 软件架构师应该知道的97 件事笔记
- MySQL无法启动,错误码1067
- 地址栏".jsp"变为".action"的含义
- iOS 开发,工程中混合使用 ARC 和非ARC
- libpcap和pfring应用程序--Pcap_open_live(二)