Libpcap编程(5)理论总结

前几篇文章分析和改写了libpcap编程的源代码,对libpcap有了一个初步的大致的了解。为了坚持一贯的理论与实际相结合的原则,这篇博文将进行一些理论性的总结和描述。

 

网络数据包捕获技术

         操作系统提供的捕获机制主要有三种:SOCK_PACKET类型接口、DLPI、BPF。这里对这三种捕获技术简单介绍。

  SOCK_PACKET:Linux套接字类型中提供的一种SOCK_PACKET套接字类型,该类型的socket可以接收网络上所有数据包(需要设置接受模式)、该方式的实现需要由操作系统提供的编程接口。

  DLPI:数据链路提供者接口,定义了数据链路层向上层网络层提供的服务,是数据链路服务的提供者和使用者之间的接口,实现上基于UNIX的流机制。

  BPF:伯克利数据包过滤器,高效的数据包捕获机制,工作于操作系统内核层。由两个部分构成:网络转发部分和数据包过滤部分。Libpcap就是使用的该机制。

 

         总结:基于BSD系统使用BPF,基于SRV4的系统使用DLPI。效率上BPD高于DLPI,更高于SOCK_PACKET。Libpcap为实现网络数据包捕获技术的代表,且是一个跨平台的网络数据包捕获开发包。Windos平台也有Libcap兼容的Winpcap。

 

         针对协议的分析主要分为三个层次:捕获数据包、过滤数据包、分析数据包。

 

Libpcap使用、原理介绍

         针对libpcap的相关历史和发展这里不再一一总结,重点总结技术相关部分。

安装:  在Ubuntu系统下使用:sudo apt-get install libpcap-dev

                   另外也可以在网上下载源代码安装。(具体安装细节可以参考REDME)

Libpcap组成:

1 BPF捕获机制

         BPF是一种高效的数据包捕获机制,主要由两个部分组成:网络转发、数据包过滤。网络转发从链路层中捕获数据包。并将其转发给数据包过滤部分;数据包过滤部分从接收到的数据包中接收过滤规则决定的数据包,其他的则抛弃。其整体架构如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值