湖南工业大学
课 程 设 计
资 料 袋
计算机与通信学院 学院(系、部)
2013 ~ 2014
学年第
1
学期
课程名称
网络协议分析
指导教师
李建设
职称
副教授
学生姓名
肖国华
专业班级
网络 102 班
学号
10408400231
题
成
目
绩
数据包的捕获和分析
起止日期 2013 年 11 月 25 日~ 2013 年 12 月 13 日
目 录 清 单
材 料 名 称
课程设计任务书
课程设计说明书
资料数量
备 注
序号
1
2
3
4
5
6
1
课程设计任务书
2013 —2014 学年第 1 学期
学院(系、部)
计算机与通信学院
专业
网络工程
班级
102
课程名称:
网络协议分析
设计题目:
数据包的捕获与分析
学 生 姓 名 :
指 导 教 师 :
肖国华
李建设
完成期限:自 2013 年 11 月 25 日至 2013 年 12 月 13 日 共 3 周
一、设计内容
程序在 Windows 窗口环境下捕获 IP 数据报,并解析出各个字段信息,显示在窗口中。
1. 捕获网络中的 IP 数据包,解析数据包的内容,显示结果,并将结果写入日志文件。
2. 显示的内容包括:捕获的 IP 包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、
分段偏移值、生存时间、上层协议类型、头校验和、源 IP 地址和目的 IP 地址等内容。
3. 设置停止标志,当程序接收到停止命令时即停止。
二、设计任务
课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能
分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据
结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。
三、设计要求
1. 按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。
2. 课程设计所使用的编程语言任选,但建议使用 C 和 C++;
3. 绿色软件:程序运行不需安装,避免写系统和注册表;
起止日期
工作内容
系统分析和设计;
熟悉软件开发工具、编码系统、系统测试
撰写并提交课程设计说明书 (含电子文档)、源程序等。
2013-11-25~2013-11-30 选题
2013-12-1~2013-12-3
2013-12-4~2013-12-8
2013-12-9~2013-12-13
[1](美)W.Rechard Steven 著,范建华等译,《TCP/IP 详解》卷 1:协议,机械工业出版社, 2000.4
[2](美)Douglas E.Comer 著,林瑶等译,《用 TCP/IP 进行网际互联》第 1 卷-原理、协议与
结构(第 5 版, 电子工业出版社)2007.2;
[3] (荷) Andrew S.Tanenbaum 著,潘爱民译. 《计算机网络》(第 4 版),清华大学出版社, 2004
[4]谢希仁著.《计算机网络》((第 5 版) ,电子工业出版社,
2008.1
[5]吴功宜等著.《计算机网络课程设计》,机械工业出版社,2005
内
容
及
任
务
进
度
安
排
主
要
参
考
资
料
指 导 教 师 (签字):
系 ( 教 研 室 ) 主 任 ( 签字):
年 月
年 月
日
日
2
课 程 设 计 说 明 书
课程名称:
网络协议分析
设计题目:
数据包的捕获和分析
专
业:
网络工程
班级: 102 班
学生姓名: 肖国华 学 号:
10408400231
指导教师:
李建设老师
年 月 日
.3.
目录
1 课程设计简介..........................................................................5
1.1 课程设计目的 ................................... 5
1.2 课程设计内容 ................................... 5
2 课程设计实现过程............................................ 错误!未定义书签。
2.1 Visual C++简介 ..................... 错误!未定义书签。
2.2 MFC 的简介 .......................... 错误!未定义书签。
2.3 建立工程 ........................................7
2.4 界面设计........................................8
2.5 程序设计.......................................9
2.6 运行结果......................................25
3.设计总结................................................................................26
4.参考文献................................................................................27
.4.
1.课程设计简介
1.1 课程设计目的
本课程设计通过 Ethereal 捕捉实时网络数据包,并根据网络协议分析流程对
数据包在 TCP/IP 各层协议中进行实际解包分析,让网络研究人员对数据包的认
识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据 Ethereal
的工作原理,用 Visual C++编写一个简单的数据包捕获与分析软件。
1.2 课程设计内容
1.捕获网络中的 IP 数据包,解析数据包的内容,显示结果,并将结果写入日志
文件。
2.显示的内容包括:捕获的 IP 包的版本、头长度、服务类型、数据包总长度、
数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源
IP 地址和目的 IP 地址等内容。
3.设置停止标志,当程序接收到停止命令时即停止。
.5.
2 课程设计实现过程
2.1 Visual C++简介
Visual C++即 VC,微软公司出品的高级可视化计算机程序开发工具。
他提供了一套开发环境:Visual Studio,Visual Studio 本身包括一个文
本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、
集成调试工具,以及一套联机文档,借助这套工具,用户可以随心所欲地
开发出各种功能的应用软件以及借助 OpenGL 和 DirectX 技术开发游戏软
件。Visual C++可以识别 C/C++并编译,支持 MFC 类库,并提供了一系列模
板,常用的 MFC AppWizard(EXE/DLL),MFC
ActiveXControlWizard,Win32Application,Win32ConsoleApplication,AT
LCOMAppWizard。这种可视化编程环境可以令程序员花更多精力在程序功能
的实现上,而不是底层的建设上,这就大大加快了程序开发速度和效率,
这也是 Visual C++一个显著的特点。利用 Visual C++编译出的程序空间小,
运行快,比其他的编译工具编译出的软件占据较多优势。现在常用的版本
有 Visual C++ 6.0/.Net/2005 [5]。
2.2 MFC 的简介
微软基础类,同 VCL 类似,是一种应用程序框架,随微软 Visual C++开发工
具发布。目前最新版本为 10.0(截止 2011 年 3 月),并且发布了中文版。该类
库提供一组通用的可重用的类库供开发人员使用,大部分类均从 CObject 直接
或间接派生,只有少部分类例外。[1]
MFC 应用程序的总体结构通常由开发人员从 MFC 类派生的几个类和一个
CWinApp 类对象(应用程序对象)组成。MFC 提供了 MFC AppWizard 自动生成框
.6.
架
Windows 应用程序中,MFC 的主包含文件为 Afxwin.h
此外 MFC 的部分类为 MFC/ATL 通用,可以在 Win32 应用程序中单独包含并
使用这些类。
由于它的易用性,初学者常误认为 VC++开发必须使用 MFC,这种想法是错误
的。作为 Application Framework,MFC 的使用只能提高某些情况下的开发效率,
只起到辅助作用,而不能替代整个 Win32 程序设计。
2.3建立工程
在 VC++ 6.0 下创建一个单文档的 MFC 应用程序,工程名:Sniffer 如图 3-1->
图 3-2->图 3-3。
图 3-1 建立工程
图 3-2 选中单文档
.7.
图 3-3 自动生成的类列表
到 http://www.winpcap.org/devel.htm 下载 WinPcap 4.0.2.zip,然后解
压,解压缩就可以看见 Includelib;在 "Project->Settings"标签栏中选择
"C/C++" ,在 "Preprocessor definitions"的输入 框里添加 "WPCAP" ;再选 择
"Link",在"Object/library modules"的输入框里添加"wpcap.lib "。然后再设
置 VC++环境变量:选择 Tools->options->Directories 的 include 里面加入下
载 的 winpcap 开 发 包 解 压 以 后 的 include 文 件 选 择
Tools->options->Directories 的 lib 里面加入下载的 winpcap 开发包解压以后
的 lib 文件夹[7]。
2.4 界面设计
工程建好了,下面进行界面的设计:
.8.