- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一网络数据包的监听与分析doc
实验一:网络数据包的监听与分析
实验目的
初步掌握网络监听与分析技术的实现方法,从而加深对网络协议的理解。了解以太网的帧格式,认识TCP/IP的层次结构。
实验要求
在VC++6.0开发环境下,利用WinPcap编写一个简单的网络数据包监听与分析程序,并对截获的数据包的进行解析,并显示出来。
实验原理以及相关内容
在分层模型中,主要利用数据封装来实现不同系统间的通信,在发送数据经过时,每经过一层就会被增加上本层的头部信息。本实验要分析数据包,就一层一层的分析这些头部信息。
本实验用WinPcap进行捕获数据包,它工作在底层。以太网中传输的数据被称为“帧”,帧的格式如下:
对于前导码和帧前定界符通常有硬件处理,在分析数据包时不予考虑。当捕获到一个以太网数据帧的时候,数据就开始从协议栈由底向上逐层解析,去掉各层所加上的报文协议头部,
图1:帧格式
WinPcap是一个开源的、运行于Win32平台的体系结构,是用于网络封包抓取的一套工具,包括一个内核级别的packet filter,一个底层的DLL(packet.dll)和一个高级的独立于系统的DLL(Wpcap.dll), packet.dll提供一个底层的API,可以直接访问网络设备驱动,Wpcap.dll是一个强大的捕获程序库。
它为win32应用程序提供访问网络底层的能力,Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据包。本实验利用WinPcap提供的函数来设置网卡模式并捕获响应的数据包,进行解析。
实验内容
1.4.1实验步骤
(1)安装WinPcap驱动和DLL程序。在VC++中配置WinPcap,Tools-options-Directories,添加WinPcap的Include和Lib文件。如下:
图2:添加WinPcap库
(2)新建MFCAppwizard(exe)工程,在打开的工程下,选择Project-Settings的C/C++选项卡,选择Link选项卡,在Object/library modules中添加wpcap.lib ws2_32.lib和packet.lib三个库文件(三者之间用空格隔开),使工程在编译连接的时候将WinPcap的响应的库模块加载进去。
(3)在Microsoft Visual C++6.0环境下设计界面,界面如下:
图3:界面设计
View--ClassWizard定义控件变量。
(4)在CapturePacket1Dialog.h添加头文件,把相应的库文件添加到工程里。
#includewinsock2.h
#include pcap.h
#include remote-ext.h
(5)在OnInitDialog()中添加初始化界面的代码。获取控件的句柄,对窗口进行设计,如:对Listbox的初始化(仅供参考):
// 初始化Listbox:
DWORD dwStyle;
dwStyle = m_list.GetStyle();//列表类型
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT |LVS_SHOWSELALWAYS ; //绘制表格 选择整行
m_list.SetExtendedStyle(dwStyle);//扩展类型
m_list.InsertColumn(0,时间);// 插入一列:
m_list.SetColumnWidth(0,80);//下面可以根据自己的需要插入列
(6)定义相关的结构体(仅供参考)
typedef struct ip_address{
u_char byte1;
u_char byte2;
u_char byte3;
u_char byte4;
}ip_address;
/* IPv4 header */
typedef struct ip_header{
u_char ver_ihl; // Version (4 bits) + Internet header length (4 bits)
u_char tos; // Type of service
u_short tlen; // Total length
u_short identification; // Identification
u_short flags_fo; // Flags (3 bits) + Fragment offset (13 bits)
u_char ttl; // Time to live
u_char proto; // Protocol
u_short crc; // Header checksum
ip_a
您可能关注的文档
最近下载
- 小学体育_队列队形教学设计学情分析教材分析课后反思.doc
- 中建项目商务策划汇报模板.pptx
- 公路中小跨径钢-混组合梁桥标准图集(制订)》技术方案报告.docx
- “设计思维与方法”教案.ppt
- 大职赛生涯闯关参考答案.docx VIP
- 2022《美宜佳公司营运资金管理存在的问题及对策研究》开题报告文献综述(含提纲)3200字.docx VIP
- 长垣市人民医院西学中培训班《方剂学》考试.pdf VIP
- 苏教版一年级科学上册4.1《自然物与人造物》(课件).pptx
- 电子商务招聘简章模板.pdf
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
文档评论(0)