网络协议分析课程设计

网络协议分析课程设计

ID:37053951

大小:688.00 KB

页数:17页

时间:2019-05-15

网络协议分析课程设计_第1页
网络协议分析课程设计_第2页
网络协议分析课程设计_第3页
网络协议分析课程设计_第4页
网络协议分析课程设计_第5页
资源描述:

《网络协议分析课程设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《网络编程语言》课程大作业报告题目:协议分析器的设计与分析专业:计算机科学与技术班级:计科5071班学号:920070619姓名:万昌雄时间:2010-10-21目录1概述11.1目的11.2选题12课程大作业过程及结果12.1编程环境及工具12.2实现原理分析12.3综合设计12.3.1协议分析器总体结构的设计与实现12.3.2数据捕获模块的设计与实现22.3.3协议解析模块的设计与实现23课程大作业总结43.1小结43.2我理解的网络通信编程53.3改进设想5附录关键代码515网络编程语言课程大作业报告1概述1.1目的(1)编写一个简化的协议分析器,了

2、解数据通过网络传输时的封装与解析过程,加深理解TCP/IP协议栈的工作原理和网络应用软件开发能力(2)掌握根据软件功能结构进行模块化设计的方法(3)掌握Winpcap编程与抓包方法;了解使用原始套接字(rawsocket)实现数据包捕获的方式;使用Winpcap库的流量统计和向网络中发包等高级特性。1.2选题协议分析器程序2课程大作业过程及结果2.1编程环境及工具(1)操作系统:WindowsXPSP2;(2)开发语言:C++/MFC;(3)编译环境:MSVisualC++6.0;(4)第3方函数库:Winpcap3.1;2.2实现原理分析Ethernet

3、是目前应用最广泛的计算机连网方式,它是基于总线结构的,物理层采用广播方式。当一台主机向另一台主机发送数据时,发送主机会将包含目的主机MAC地址的数据帧发送到总线上,因此同一链路上所有活跃主机的网卡都能接收到该帧。正常情况下,网卡收到数据帧后,会先检测帧头的目的地址字段,如果该地址不是本机的MAC地址,则丢弃不管,因此只有具有该地址的目的主机会接受这个数据帧。但是,如果某个主机上的程序能够修改网卡的接收方式,使其成为“混杂”模式,即程序可以接收网络上所有的数据帧而不理会帧头的目的地址,利用这一点,就可以实现协议分析器。因此协议分析器就是一种能将本地网卡状态设

4、成“混杂”模式并接收网络上所有数据帧的软件。协议分析器工作在网络环境中的底层,拦截所有正在网络上传送的数据,并且通过相应的解析处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体拓扑布局。当应用程序通过IP网络传送数据时,数据就被送入TCP/IP协议栈中,然后由上至下逐一通过每一层,直到最后被当做一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息这个过程被称作封装。通过以太网传输的比特流被称作帧。在传输的另一端,当目的主机收到一个以太网数据帧时,数据就开始从协议栈有底向上逐层解析,去掉各层协议所加上的报文头部。每层协议均要检查报头中的

5、协议标识字段,以确定要接收数据的上层协议,最终从报文中解析出应用层数据后交给应用程序处理。协议分析器就是从网络中捕获数据包并对其进行解析的过程。因此我们需要了解每层协议所规定的报文格式,然后由底向上逐层对数据包进行解码,最后将分析的结果显示出来。15网络编程语言课程大作业报告1.1综合设计1.1.1协议分析器总体结构的设计与实现协议分析器的整体结构按功能分成3个部分,自底向上分别是数据捕获模块、协议解析模块和用户显示模块。整体结构图1所示。图1协议分析器整体结构图1.1.2数据捕获模块的设计与实现数据捕获模块的主要功能是进行数据采集,这个是整个系统的基础和

6、数据来源。程序使用Winpcap来捕获网络中原始数据包。Winpcap是数据包捕获的开放代码函数库,它可以完成以下主要功能:(1)捕获网络中的的原始数据包。(2)使用用户自定义规则对数据包进行过滤。(3)发送用户自己构造的数据包到网络中。(4)统计网络流量。(5)使用Winpcap捕获数据包的算法使用Winpcap来捕获数据包的算法一般分为以下几步:(1)获取并列出当前网络设备列表。(2)由用户选择并打开指定网卡。(3)根据过滤规则设置过滤器。(4)捕获数据包并进行解析处理。编程流程如图2所示。15网络编程语言课程大作业报告图2数据包捕获流程图1.1.1协

7、议解析模块的设计与实现该模块的主要功能就是对捕获的数据包按照数据链路层(MAC)、网络层(IP、ARP)、传输层(TCP、UDP、ICMP)的层次结构自底向上进行解析,最后将解析结果显示输出。协议解析过程如图3所示。图3协议解析流程图15网络编程语言课程大作业报告(1).解析Ethernet帧Ethernet帧结构中,前导码、帧前定界符和帧校验和(CRC)3个字段均属于物理层内容,而我们使用的Winpcap抓包驱动程序不包含这些字段,因此只需解析目的地址、源地址、长度/类型和数据4个字段即可。图4Ethernet帧结构(2).解析ARP数据包此处不做过多说

8、明,主要代码分析见本文第5部分。图5ARP报文结构(3).解析IP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。