Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > linux下的数据报文截获机制(转载)
【标  题】:linux下的数据报文截获机制(转载)
【关键字】:linux
【来  源】:http://www.cublog.cn/u/8818/showart.php?id=205540

linux下的数据报文截获机制(转载)

Your Ad Here

linux下的数据报文截获机制
文章来源:http://rts.dec.ecnu.edu.cn/zsb/zjs/zjs99/zjs994/zjs99403/zjs994035.htm

很多数据包截获软件都使用特定的库,在windows下一般使用winpcap,而在linuxunix下一般都选用libpcap,使用这些库能在一定程度上减少工作量,加快程序的进程,但往往容易忽略了一些本质的东西,例如libpcap又是怎样来截获数据报文的。

分析和了解数据报文截获的机制对于了解如何才能截获到无线网络的管理报文有着重要的意义。

1、   通常数据报处理流程 

通常的数据报文是如何被处理的呢?如图3-1所示。当数据到达网卡时,网卡就把数据交给网卡的驱动程序,当驱动程序处理完数据时就把经过处理的数据交给上层的协议栈,当然也会丢弃一部分,上层一般是操作系统内核的一部分。

3-1

要截获到MAC层的数据报文就必须尽可能早的截获数据,也就是在尽可能在底层截获数据报文。

2、  Packet filter

Linuxunix系统提供了一种称为Packet filter的服务,它可以用来截获数据报文,它是作为内核的一部分存在的,它的层次及工作方式如图3-2所示。

3-2

没有程序使用Packet filter时,数据还是像图3-1那样由驱动程序传给协议栈,而当有程序使用Packet filter时,情况则会不同。驱动程序首先将数据报文拷贝给Packet filter,然后Packet filter经过程序定义的过滤方式将不需要的数据报文过滤掉,然后将报文放到应用程序的缓冲区中,这时截获数据报文的应用程序就完成了报文截获的工作。随后驱动程序再进行正常的处理,将数据报文传给协议栈。这就是Packet filter的工作原理。

2.1、 Packet filter的类型

不同的操作系统提供了不同Packet filter

BSD系统:BPFBerkeley Packet Filter

Solaris:         DLPI(Data Link Provider Interface)

Linux:            LSFLinux Socket filter

不同Packet filter的实现细节都不相同,但是大致的工作原理是相同的。

要截获数据报文,可以编写应用程序使用Packet filter,但是由于不用操作系统上的Packet filter又有差别,因此想要编写的应用程序能在不同操作系统上使用,就必须对不同Packet filter进行识别并使用。

3.  Libpcap及工作原理

Libpcap是一个在linuxunix操作系统下被广泛使用的数据报文截获的库,他被大量有名的软件所使用,例如tcpdump,ethereal等等。那它又是如何工作的呢?

Libpcap能识别不同操作系统的不同Packet filter,并正确的使用它们,而它向上提供了一个统一的接口让应用程序调用。他类似于一个抽象层,让应用程序可以无视底层的Packet filter而只要使用统一的接口就可以实现数据报文截获,做到了操作系统无关性。分析到这里也就可以知道linuxunix下基于libcap的数据报文截获工具本质上是使用了Packet filter来完成数据报文截获功能的,Ethereal也不例外。

grub问题的修复:【上一篇】
嵌入式系统词汇:【下一篇】
【相关文章】
  • Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍[转]
  • 发行版发布: Zenwalk Linux 4.0
  • 开发者发行版: Berry Linux 0.76
  • 开发者发行版: Damn Small Linux 3.1 RC4
  • 发行版发布: Vine Linux 4.0
  • 开发者发行版: Skolelinux 3.0 Test 2
  • 红旗软件携手劳动社会保障部打造Linux人才培训计划
  • linux技巧(33条)
  • linux技巧(65条)
  • linux启动提速
  • 【随机文章】
  • ASP进阶之文章在线管理更新(10)
  • 利用Excel模板输出EXcel报表
  • 制作我们自己的Ebay(拍卖系统)(4)
  • 屏幕抓图程序DIY
  • 用Maya制作眼泪的效果
  • 董唯元存储专栏 闲聊存储产品各种性能差异区别
  • 精彩的IIS7博客
  • Eclipse 插件之 Implementors
  • 如何将高版本的oracle备份文件导入到低版本的数据库中
  • Redhat AS3 bug 11681: Invalid ICMP type 11 message
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.