首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 消费类电子 > Linux下Libpcap源码分析和包过滤机制

Linux下Libpcap源码分析和包过滤机制

资料介绍
Linux下Libpcap源码分析和包过滤机制
Linux下Libpcap源码分析和包过滤机制(1)
libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为
基础。Libpcap可以在绝大多数类unix平台下工作,本文分析了libpcap在linux
下的源代码实现,其中重点是linux的底层包捕获机制和过滤器设置方式,同时也简要的
讨论了 libpcap使用的包过滤机制 BPF。

网络监控


绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制,在捕获机制之上可以
建立网络监控(Network
Monitoring)应用软件。网络监控也常简称为sniffer,其最初的目的在于对网络通信情
况进行监控,以对网络的一些异常情况进行调试处理。但随着互连网的快速普及和网络
攻击行为的频繁出现,保护网络的运行安全也成为监控软件的另一个重要目的。例如,
网络监控在路由器,防火墙、入侵检查等方面使用也很广泛。除此而外,它也是一种比
较有效的黑客手段,例如,美国政府安全部门的"肉食动物"计划。

包捕获机制

从广义的角度上看,一个包捕获机制包含三个主要部分:最底层是针对特定操作系统的
包捕获机制,最高层是针对用户程序的接口,第三部分是包过滤机制。

不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。数据
包常规的传输路径依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应
用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做
过滤/缓冲等相关处理,最后直接传递到应用程序。值得注意的是,包捕获机制并不影响
操作系统对数据包的网络栈处理。对用户程序而言,包捕获机制提供了一个统一的接口
,使用户程序只需要简单的调用若干函数就能获得所期望的数据包。这样一来,针对特
定操作系统的捕获机制对用户透明,使用户程序有比较好的可移植性。包过滤机
Linux下Libpcap源码分析和包过滤机制
本地下载

评论