1 / 6
文档名称:

1 数据包捕获原理.docx

格式:docx   大小:19KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

文档介绍:青岛农业大学
计算机网络综合实习
论文 题目:UDP包解析软件的设计与实现
专业班级: 计本0803
姓名(学号): 周方盼(20082845)
2011 年 11 月 16 日

UDP 包解析软件的设计与实现
数据包捕些数据包应该丢弃,哪些数据包应该接收,是否需要将接收到的数据拷贝 到相应的应用程序。5、通过分组过滤器后,将数据未过滤掉的数据包提交给核心缓冲区。然后等待系统缓 冲区满后,再将数据包拷贝到用户缓冲区。监听程序可以直接从用户缓冲区中读取捕获的数据包。
6、关闭 网卡。
数据包捕获实现
关于数据包捕获的实现算法是十分的简单的,当网卡设置为混杂模式时,在网内的数据包都会被发送 一份到网卡上。以电子邮件为例,在发送邮件连接信息和邮件头的端口号是 25 端口。据此,只需要监听 网络是否25端口的数据包,如果有,则进一步判断其数据报的IP是否是我们需要监听的计算机的IP,如 果是,则检查是否有以指定 IP 命名的文件夹,动态命文件名存储数据包;如果不是,一方面我们可以存储 数据包,也可以丢弃[8]。程序主要函数如下:void CMainFrame: : OnOptAdpater () 〃提取网卡信息void CMainFrame: : OnUpdateOptAdpater ( CCmdUI* pCmdUI) //数据包捕获开始后,禁止选择网卡 void CMainFrame:: OnFileStart() //开始捕获 void CMainFrame:: OnFileStop() //暂停捕获 UINT ReceivePacket (LPVOID param) 〃接收数据包CListCtrl &Ctrl = this —>GetListCtrl (); 〃将所捕获数据包的内容复制下来, 并保存到 CArray 数组中,以备将来使用在实际应用中,用户系统只关心一些特定的数据。因此高效的信 息过滤机制是系统的重要组成部分,它使得用户系统可以指定特定的子网主机以及指定的协议类型,只将 用户关心的数据向上层提交,从而提高系统的工作效率。 WinPCap 使用了一个高效的数据包过滤机制, BPF (伯克利数据包过滤)。与应用层过滤机制相比, BPF 机制是一种内核层的过滤机制,通过它可以大幅度 地提高包过滤时的性能。在过滤机制中,对于开发人员来说,最重要是要掌握它的过滤规则,因为 WinPCap 就是通过调用相应的函数,来使用这些过滤规则实现对数据包实现过滤的[ 9]。考虑到性能的因素,在使 用过滤器前, NPF 提供一个 JIT 编译器将它转化成本地的 80x86 函数。当一个数据包被捕获, NPF 调用 这个本地函数而不是调用过滤器的解释器,这使得处理过程相当快。程序主要函数如下:void CMainFrame:: OnOptFilter () 〃设置过滤器 BOOL CMainFrame:: Filter (const unsigned char *pkt_data) 〃过滤数据包 void CMainFrame:: OnUpdateOptFilter( CCmdUI* pCmdUI) //数据包捕获开始后禁止设置过滤器捕获结 果如图 2 所示。图2 数据包捕获结果
具体代码如下:
#include "stdio.h"

分享好友

预览全文

1 数据包捕获原理.docx

上传人:jiyudian11 2022/5/20 文件大小:19 KB

下载得到文件列表

1 数据包捕获原理.docx

相关文档