实验一:TCP数据包捕获及分析
实验学时:4 实验类型:设计 实验要求:选做 一、实验目的
理解网络数据包的捕获原理及一般分析方法。
二、实验内容
根据参考程序编写一段基于Winpcap的TCP数据包捕获并分析的程序。 要求能正确解析TCP报头的相关内容。
三、 实验原理、方法和手段
以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。IEEE802.3 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。
Winpcap是针对Win32平台上的抓包和网络分析的一个架构。它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。抓包是NPF最重要的操作。在抓包的时候,驱动使用一个网络接口监视着数据包,并将这些数据包完整无缺地投递给用户级应用程序。
四、实验组织运行要求
1.安装Winpcap驱动及开发库。 2.在VC++6.0环境下进行程序编写
五、实验条件
PC机
VC++6.0,winpcap驱动及开发库
六、实验步骤
1、安装winpcap驱动
2、解压WpdPack_4_0_2.zip到磁盘,例如D盘,并将文件夹名改为WpdPack,即开发库放在D:\\WpdPack 目录下。 3、设置编程环境
要想例如Winpcap的开发库进行编程,就必须在VC++6.0配置与Winpcap相关的头文件和库文件的位置。其次,
为了在Microsoft VC++项目中添加一个新库连接,须要从菜单Project中选择Settings,再在tab控件中选择Link,然后在Objcet/library modules编辑框中加入要加入的新连接库名字(wpcap.lib ws2_32.lib)。
为了在Microsoft VC++项目中加入一个新的库文件搜索路径,必须从Tools菜单中选择Options,然后在tab控件中选择Directories页面,在Show Directories for下拉框中选择Library files,在Directories列表框中加入到要加入的库文件路径D:\\WpdPack\\LIB;同样,在Show Directories for下拉框中选择Include files在Directories列表框中加入到要加入的库文件路径D:\\WpdPack\\INCLUDE。
4、新建一个空的控制台文件 5、利用Winpcap函数库编程实现。
6、要求正确解析TCP报头的各字段的意义,选项字段可忽略 7、程序测试
七、思考题
1、如何设置过滤条件,比如按照特定协议来进行检测;在winpcap编程中对数据包进行过滤,涉及到哪些函数?
2、注意网络顺序与主机顺序的表示的不同,查阅相关资料进行转换。
八、实验报告
1、实验预习:前期实验和教材相关内容。 2、提交源代码和实验结果截图。 4、总结实验体会及实验中存在的问题。
九、其它说明
(无)