2022年网络协议分析课程设计IP协议 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年网络协议分析课程设计IP协议 .pdf》由会员分享,可在线阅读,更多相关《2022年网络协议分析课程设计IP协议 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、郑州轻工业学院网络协议分析课程设计设计题目:解析IP 数据包姓名:院 (系) :专业班级:学号:指导教师:成绩:时间:2011 年 6 月 12 日至 2011年 6 月 17 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 2 郑州轻工业学院课 程 设 计 任 务 书题目解析 IP 数据包专业、班级学号姓名程序在 Windows窗口环境下捕获IP 数据报,并解析出各个字段信息,显示在窗口中。选定本机 IP 后,程序捕获经过
2、对应网卡的IP 数据报,根据 IP 数据报的结构, 拆分获得各字段的值, 显示在窗口上。 同时程序可以将捕获的所有数据信息导出到日志文件。参考资料:网络协议分析寇晓蕤罗军勇 蔡延荣 机械工业出版社完成期限:2011.6.13-2010.6.17 指 导教 师签 名:课程负责人签名:2010 年 6 月 17 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 3 目录第一章引言 .41.1.关于题目 .41.1.1.题目要求 .
3、41.1.2.选题背景 .41.2.关于编译软件.41.3.关于稳定性 .5第二章程序设计 .52.主要功能设计 .52.1.程序流程 .5第三章程序实现 .63.类设计声明 .63.1.RawSocket 类.73.2.EventArgs 类.73.3.Header 结构 .83.4.主要功能的实现 .83.4.1.程序界面 .83.4.2.获得主机IP .93.4.3.显示列表 . 103.4.4.详细信息 . 113.4.5.导出日志 . 12第四章程序测试 . 144.程序测试 . 14总结与体会 . 15附录:. 15名师资料总结 - - -精品资料欢迎下载 - - - - - -
4、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 4 第一章引言1.1. 关于题目1.1.1. 题目要求(1) 捕获网络中的IP 数据包,解析数据包的内容,显示结果,并将结果写入日志文件。(2) 显示的内容包括:捕获的 IP 包的版本、 头长度、 服务类型、 数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源 IP 地址和目的IP 地址等内容。(3) 设置停止标志,当程序接收到停止命令时即停止。1.1.2. 选题背景IP 数据包是网络协议学习过程中容易接触到的
5、,选择这个题目一是为了将自己的所学知识加以运用,二是希望通过探索实践去实现题目,在实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。1.2. 关于编译软件本程序使用C#语言, Microsoft Visual Studio 2005 进行编译。 Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
6、心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 5 1.3. 关于稳定性经测试,本程序可以在windows 操作系统中稳定运行,较为稳定。要求至少安装.Net Framework 2.0 。第二章程序设计2. 主要功能设计根据分析,这个程序要实现如下几个功能,初始化、捕获数据包、显示、导出日志。其中捕获数据包是程序的核心部分,是后续操作的基础。程序结构如图2-1 所示。图 2-1 程序结构图2.1. 程序流程根据分析后的程序结构图设计出相应的流程图。内容主要包括初始化,获得主机 IP 列表,绑定Socket ,开始捕获数据,分析数据,显示数据项
7、,导出日志文件,根据用户操作退出程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 6 图 2-2 流程图第三章程序实现3. 类设计声明根据程序的结构, 将程序需要实现的功能细化为相应的类属性和成员函数。程序有两个类,一个RawSocket 类,用于数据包相关捕获和处理。一个EventArgs 类,用于类间传递信息。同时还有一个公共结构体,对应IP 数据包的格式。名师资料总结 - - -精品资料欢迎下载 - - - - -
8、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 7 3.1. RawSocket类public class RawSocket private bool error_occurred;/ 是否产生错误public bool KeepRunning;/ 是否继续进行private static int len_receive_buf;/ 得到的数据流的长度byte receive_buf_bytes;/ 收到的字节private Socket socket = null; /声明套接字pu
9、blic void Run()/ 开始接收public void CreateAndBindSocket(string IP)/建立并绑定套接字public void Shutdown()/ 停止接收private bool SetSocketOption()/ 设置套接字private void Receive(byte buf, int len) /解析接收的数据包; 3.2. EventArgs类class squar private string ip_version;/ 版本private uint header_length;/ 首部长度private string service
10、_type;/ 服务类型private uint total_packet_length;/ 总长度private string identification;/ 标识private string flags;/ 标志private string fragment_offset;/ 片偏移量private string time_to_live;/ 寿命private string protocol;/ 协议private string checksum;/ 校验和private string destination_address;/ 目的 IP 地址private string origi
11、nation_address;/ 源 IP 地址private uint message_length; /数据长度; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 8 3.3. Header 结构public struct IPHeader public byte ip_verlen; public byte ip_tos; public ushort ip_totallength; public ushort ip_id
12、; public ushort ip_offset; public byte ip_ttl; public byte ip_protocol; public ushort ip_checksum; public uint ip_srcaddr; public uint ip_destaddr; 3.4. 主要功能的实现3.4.1. 程序界面菜单栏及工具栏包含了基本操作按钮,包括退出程序,关于信息,选择IP,开始捕获和导出日志。窗体主要为显示报文信息的列表区和具体字段区,分别用树视图显示。具体界面如图3-1 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
13、- - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 9 图 3-1 3.4.2. 获得主机IP 通过 System 的 Net 类函数,容易获得主机的所有IP。代码如下:private void GetHostIP() string hostName = Dns.GetHostName(); IPHostEntry ipEntry = Dns.GetHostEntry(hostName); IPAddress addr = ipEntry.AddressList; foreach (IPAddress ip i
14、n addr) toolStripComboBox1.Items.Add(ip.ToString(); 具体结果如图3-2 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 10 图 3-2 3.4.3. 显示列表捕获数据后,触发事件,在事件处理函数里,将传递的参数信息添加到主窗体信息列表里。void rawSocket_PacketArrival(object sender, RawSocket.PacketArrive
15、dEventArgs args) TreeNode rootNode = new TreeNode(); TreeNode ipNode = MakeIPTreeNode(args); rootNode.Nodes.Add(ipNode); rootNode.Text = args.OriginationAddress + - + args.DestinationAddress; AddTreeNode addTreeNode = new AddTreeNode(OnAddTreeNode); reeView1.Invoke(addTreeNode, new object rootNode )
16、; 结果如图3-3 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 11 图 3-3 3.4.4. 详细信息点击列表项,该项对应数据包的详细信息会显示在窗体右侧树形显示。private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) TreeNode curr = e.Node; if (curr.Level = 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网络协议分析课程设计IP协议 2022 网络 协议 分析 课程设计 IP
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内