欢迎来到天天文库
浏览记录
ID:8496247
大小:391.50 KB
页数:18页
时间:2018-03-29
《解析ip数据包网络协议分析课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、郑州轻工业学院网络协议分析课程设计设计题目:解析IP数据包姓名:院(系):专业班级:学号:指导教师:成绩:时间:2011年6月12日至2011年6月17日18郑州轻工业学院课程设计任务书题目解析IP数据包专业、班级学号姓名程序在Windows窗口环境下捕获IP数据报,并解析出各个字段信息,显示在窗口中。选定本机IP后,程序捕获经过对应网卡的IP数据报,根据IP数据报的结构,拆分获得各字段的值,显示在窗口上。同时程序可以将捕获的所有数据信息导出到日志文件。参考资料:《网络协议分析》 寇晓蕤罗军勇蔡延荣机械工业出版社完成期限:2011.
2、6.13-2010.6.17指导教师签名:课程负责人签名:2010年6月17日18目录第一章引言41.1.关于题目41.1.1.题目要求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.获得主机IP93.4.3.显示列表103.4.4.详细信息113.4.5.导出日志12第四章程序测试144.
3、程序测试14总结与体会15附录:1518第一章引言1.1.关于题目1.1.1.题目要求(1)捕获网络中的IP数据包,解析数据包的内容,显示结果,并将结果写入日志文件。(2)显示的内容包括:捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。(3)设置停止标志,当程序接收到停止命令时即停止。1.1.2.选题背景IP数据包是网络协议学习过程中容易接触到的,选择这个题目一是为了将自己的所学知识加以运用,二是希望通过探索实践去实现题目,在实践
4、和实际的项目中提高自己的编程能力。因此我选定了这个题目。1.2.关于编译软件本程序使用C#语言,MicrosoftVisualStudio2005进行编译。VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。181.1.关于稳定性经测试,本程序可以在windows操作系统中稳定运行,较为稳定。要求至少安装.NetFramework2.0。第一章程序设计2.主要功能设计根据分析,这个
5、程序要实现如下几个功能,初始化、捕获数据包、显示、导出日志。其中捕获数据包是程序的核心部分,是后续操作的基础。程序结构如图2-1所示。图2-1程序结构图2.1.程序流程根据分析后的程序结构图设计出相应的流程图。内容主要包括初始化,获得主机IP列表,绑定Socket,开始捕获数据,分析数据,显示数据项,导出日志文件,根据用户操作退出程序。18图2-2流程图第一章程序实现1.类设计声明根据程序的结构,将程序需要实现的功能细化为相应的类属性和成员函数。程序有两个类,一个RawSocket类,用于数据包相关捕获和处理。一个EventArgs
6、类,用于类间传递信息。同时还有一个公共结构体,对应IP数据包的格式。181.1.RawSocket类publicclassRawSocket{privateboolerror_occurred;//是否产生错误publicboolKeepRunning;//是否继续进行privatestaticintlen_receive_buf;//得到的数据流的长度byte[]receive_buf_bytes;//收到的字节privateSocketsocket=null;//声明套接字publicvoidRun()//开始接收publicv
7、oidCreateAndBindSocket(stringIP)//建立并绑定套接字publicvoidShutdown()//停止接收privateboolSetSocketOption()//设置套接字privatevoidReceive(byte[]buf,intlen)//解析接收的数据包};1.2.EventArgs类classsquar{privatestringip_version;//版本privateuintheader_length;//首部长度privatestringservice_type;//服务类型pr
8、ivateuinttotal_packet_length;//总长度privatestringidentification;//标识privatestringflags;//标志privatestringfragment_offset
此文档下载收益归作者所有