1、xxxxxxx信息科学与技术学院毕业论文课题名称: 网络协议仿真软件的设计与实现学生姓名: xxxxx xxxxxxxxxxxxx xxxxxxxx学 院: 信息科学与技术学院专业年级: 信息管理与信息系统指导教师: xxxxxx 讲师完成日期: 年 月I网络协议仿真软件的设计与实现学生:xxxxxxxxx指导老师:xxxxx摘 要由于网络模型和协议的抽象性,即使专业人员对其理解也有很大困难。为了将抽象的难以理解的网络模型框架、协议原理、网络应用等专业知识,用易于理解的通俗易懂的形式将其理解。非专业的人员在使用网络协议仿真软件的同时可以对网络协议有基本的理解,有一定专业知识的人员更好的理解网络
2、协议原理、掌握学习要领。本课题通过对网络抓包软件的实现,来详细深入的了解网络协议如何工作,文中首先分析了抓包的原理和技术,并介绍了几种常见的抓包软件,然后研究了入侵检测系统中使用的包捕获技术,利用 winpcap 接字在 windows 平台下实现了一个网络抓包软件程序,具有对数据包进行拆包、解包等功能,最后通过动画演示生动形象的描述网络协议如何运行。关键词 网络抓包软件 数据包捕获 数据包分析 WinpcapIINetwork protocol emulation software design and implementationStudents:xxxxxxxxxxxInstructor
3、:xxxxxxxxxAbstract As the network model and agreement of the abstract, even to the professional understanding will have great difficulty. In order to bring the abstract to understand the network model of the framework agreement, principle, network application and other professional knowledge, in an
4、understandable easy-to-read formats will be the understanding. Casual personnel to use network protocol emulation software on the network at the same time can be a basic understanding of the agreement, have certain professional knowledge workers better understanding of network protocol principle, le
5、arning will bring.This topic through network caught software to realize, to a detailed understanding of how the network protocol, this paper first analyzes the principle and technology of caught, and introduces several common caught software, and then studied the intrusion detection system used in t
6、he packet capture technology, using winpcap meet word in Windows the workbench implements a network caught a software program, has for packet for unpacking, solution package, and other functions, the last through the animation of vivid description network protocol how to run.Key words network sniffe
7、 ; capture data packet ; analyze data capture ; WinpcapIII目录第一章 绪论 .11.1 课题背景 .11.2 课题研究的目的及意义 .11.3 任务书 .11.3.1 设计时间 .11.3.2 课题分工 .21.3.3 设计成果 .21.3.4 论文组织 .2第二章 网络协议及协议仿真技术 .32.1 网络协议 .32.1.1 OSI 七层参考模型 .32.1.2 TCP/IP 参考模型 .32.1.3 OSI 模型与 TCP/IP 模型的比较 .42.1.4 主要协议 .52.1.5 数据包在 TCP/IP 网络中的封装解封过程 .1
8、02.2 仿真技术简介 .112.3 反嗅探措施 .132.3.1 嗅探的检测 .132.3.2 嗅探的防御 .132.4 Windows 下的网络嗅探及 WinPcap 研究 .132.4.1 WinPcap 简介 .132.4.2 WinPcap 体系结构 .162.4.3 Windows 下的网络嗅探 .192.4.4 基于 WinPcap 的包捕获过程 .21第三章 需求分析与动画演示设计 .233.1 功能需求 .233.2 性能需求 .233.3 可行性分析 .243.4 动画演示设计 .24第四章 详细设计 .284.1 开发环境 .284.2 系统功能模块图 .294.3 系统
9、流程图 .304.4 详细设计 .314.4.1 界面实现 .31IV4.4.2 选择网卡 .344.4.3 过滤规则 .344.4.4 数据包捕获 .364.4.5 数据包分析 .37第五章 系统测试 .465.1 编写目的 .465.2 测试概要 .465.3 对软件功能的评价 .49第六章 开发总结 .51致谢 .53XX 大学学士学位论文 第一章 绪论1第一章 绪论1.1 课题背景近年来,数据通信网络无论就其物理的规模还是应用范围来讲,都获得了巨大的发展。Internet 上不断地有新的需求出现,人们开发新的协议和算法来满足这些变化的需求。这种需求的例子包括服务质量支持、组播传输、安全
10、性、移动组网和策略管理。对这些领域的协议和算法的开发和评价要求人们回答很多设计上的问题。由于网络协议是抽象的,很多学生不易理解,所以用仿真软件的设计与实现来了解网络协议。本论文采用了 WinPcap 驱动对链路层数据帧进行高效捕获,并针对四种具体协议ARP、IP、TCP、UDP 进行协议分析。借助 WinPcap 来研究 Windows 平台下的网络协议仿真技术是具有现实意义的,这不仅能促进网络嗅探系统的改进和发展,还能促进 WinPcap 本身的发展。在本论文的程序开发过程中涉及到较多方面,如协议分析,MFC 编程,及对 WinPcap 驱动框架的理解,这些工作在很大程度上加深了自己对网络协
11、议应用的理解。本课题主要通过对数据包的抓捕与分析机制进行研究, 参考了大量有关抓捕数据包的专业文献,由此了解国内以及国际上主要的抓捕分析数据包的技术方法,并通过制作一个共享环境下的的数据抓包软件的具体实现以对该机制进行深一步的了解。1.2 课题研究的目的及意义网络协议具有抽象、难以理解等特点,学生在学习计算机网络相关课程时总感到协议难懂、不具体。设计一个网络协议仿真软件可形象的将网络协议的运行原理和过程演示出来,学生对网络原理理解就会更深、学习的进度也会加快。由于网络模型和协议的抽象性,即使专业人员对其理解也有很大困难。为了将抽象的难以理解的网络模型框架、协议原理、网络应用等专业知识,用易于理
12、解的通俗易懂的形式将其理解。非专业的人员在使用网络协议仿真软件的同时可以对网络协议有基本的理解,有一定专业知识的人员更好的理解网络协议原理、掌握学习要领。1.3 任务书1.3.1 设计时间(1)第 1-3 周 搜集相关文献文档(2)第 4 周 系统功能模块分析(3)第 5 周 系统技术实现分析 (4)第6-13周 程序编写,系统调试,相关文档的撰写(5)第14周 完善系统和对论文的撰写XX 大学学士学位论文 第一章 绪论2(6)第15周 准备预审和相关毕业答辩文档(7)第16周 终期答辩总计 16 周1.3.2 课题分工徐婷:开题报告、文献综述、论文初稿搜集整理相关文献资料、需求分析、系统测试
13、饶冬冬:功能模块的分析和设计、动画演示制作、系统调试修改共同合作:结构设计、整体模块设计、系统编写实现1.3.3 设计成果毕业设计相关文献及成果清单包括:可执行软件一份开题报告文献综述用户手册XX 大学信息科学与技术学院 2012 毕业设计论文1.3.4 论文组织下面是本论文的章节组织:第一章:绪论,概括介绍了论文的研究背景、研究目的及意义。第二章:网络协议及协议仿真技术,系统介绍网络协议框架结构,每层的相关的协议,以及协议仿真技术的知识,包括嗅探的原理,以及一些反嗅探的方法。研究分析网络 TCP/IP 协议,并对本嗅探器基于的 WinPcap 的框架体系进行深入地研究。第三章:需求分析与可行
14、性分析,动画演示设计。 第四章:主要是网络数据包捕获工具实现的详细步骤及设计,主要分为界面,网卡选择模块、数据包过滤模块、数据包捕获模块和数据包分析模块。第五章:对本文所构建的数据包嗅探器进行测试,实验证明系统达到了预期的设计目标。第六章:总结了本论文的主要工作。XX 大学学士学位论文 第二章 网络协议及协议仿真技术3第二章 网络协议及协议仿真技术 2.1 网络协议2.1.1 OSI 七层参考模型要使两台计算机进行通信,必须让它们使用同一种“语言” ,通信协议就是两台计算机交换信息所使用的共同语言,它规定了通信双方在通信中所应共同遵守的规则,精确地定义了计算机在相互通信过程中的所有细节。我们利
15、用一个共同遵守的通信协议,从而使 Intemet 成为一个允许连接不同类型的计算机和不同操作系统的网络。例如,协议规定了每台计算机发送报文的格式和每个字段的含义,还规定了在各种情况下计算机应该做出什么反应,以避免差错从而达到最好的通信效果。在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型 6,它是一种抽象的包含七层通信协议的参考模型,其中每一层执行某一规定的任务,每层之间都有相应的接口,除了第一层和第七层外,每一层即使用下层提供的服务,又给上层提供服务,也就是说它即是服务的享有者,又是服务的提供者。这种设计模型可以简化协议开发
16、过程中的难度,每一层只需做好该层的工作并提供好向上的接口即可,在保证每一层实现效率的前提下,具体怎么实现要根据具体情况来确定。该模型的目的是使各种硬件在相同的层次上相互通信,表 2-1 表示了 OSI 七层参考模型。表2-1 OSI七层参考模型应用层表示层会话层传输层网络层数据链路层物理层按照 OSI 开放系统互联参考模型的观点,可将网络系统划分为 7 层结构,每一个层次上运行着不同的协议和服务,并且上下层之间互相配合,完成网络数据交换的功能。然而,OSI 模型仅仅是一个参考模型,并不是实际网络中应用的模型。实际上应用最广泛的商用网络模型是 TCP/IP网络参考模型,将网络划分为四层,每一个层
17、次上运行着不同的协议和服务 4。2.1.2 TCP/IP 参考模型TCP/IP 参考模型被称作因特网分层模型、因特网参考模型(Intemet Reference Model),表2-2 表示了 TCP/IP 分层模型的四层。TCP/IP 协议被设计成四个层次,其中应用层对应于 OSI 模型XX 大学学士学位论文 第二章 网络协议及协议仿真技术4中的应用层、会话层、表示层,传输层和网络层分别对应 OSI 中的相应层,网络接口层对应于OSI 中的数据链路层和物理层。TCP/IP 分层模型的四个协议层分别完成以下的功能 5:第一层网络接口层:网络接口层包括用于协作 IP 数据在已有网络介质上传输的协
18、议。它对实际的网络媒体进行管理,定义了将资料组成正确帧的规则和在网络中传输帧的规则,定义如何使用实际网络如以太网 Ethemet 等来传送数据。实际上 TCP/IP 标准并不定义与 ISO 数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(ARP-Address Resolution Protocol)这样的协议,提供 TCP/IP 协议的数据结构和实际物理硬件之间的接口。表2-2 TCP/IP参考模型应用层 DINS、FTP、HTTP、TELNET、SMTP、USENET、FINGER、WHOIS、GOPHER、IRC、其他传输层 TCP UDP网络层 ICMP IP网络接口层 A
19、RP/RARP 其他协议第二层网络层:负责提供基本的数据封包路由功能,让每一个数据包都能够到达目的主机,但不检查是否被正确接收,如网际协议 IP。本层包含 IP 协议、RIP 协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网问控制报文协议(ICMP Intemet Control Message Protocol)用来提供网络诊断信息。第三层传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接,提供两种端到端的通信服务。其中 TCP 协议(Transmission Control Protocol)提供可靠的
20、数据流传输服务,UDP 协议(Use Datagram Protocol)提供不可靠的用户数据报服务。第四层应用层:因特网的应用层协议包括 FTP(文件传输协议)、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。2.1.3 OSI 模型与 TCP/IP 模型的比较与 OSI 参考模型不同,TCP/IP 协议并不完全符合 OSI 的七层参考模型,如表 2-3 所示。TCP/IP 参考模型更侧重于互联设备间的数据传送,更注重实用性,而不是严格的功能层次划分。OSI 参考模型在解释互联网络通信原理上比较
21、适合,TCP/IP 在实用性上面比较好,因而成为了互联网络协议的市场标准。TCP/IP 参考模型是在它所解释的协议出现很久以后才发展起来的,并吸取了 OSI 模型的经验和教训,比 OSI 模型更灵活,这也是 TCP/IP 协议之所以流行的原因。表 2-3 OSI 模型与 TCP/IP 模型的比较OSI 参考模型 OSI 层号 TCP/IP 参考模型应用层 7表示层 6会话层 5应用层XX 大学学士学位论文 第二章 网络协议及协议仿真技术5传输层 4 传输层网络层 3 网络层数据链路层 2物理层 1 网络接口层2.1.4 主要协议1)IP网际协议 IP 是 TCP/IP 的心脏,也是网络层中最重
22、要的协议。IP 层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP 或 UDP 层;相反,IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。IP数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址) 。高层的 TCP 和 UDP 服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP 地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP 确认包含一个选项,叫作 IP source r
23、outing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些 TCP 和 UDP 的服务来说,使用了该选项的 IP 包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠 IP 源地址做确认的服务将产生问题并且会被非法入侵。IP 数据报格式,如图 2-1 所示:图 2-1 IP 数据报格式版本:4 位,标识 IP 版本号。目前有 IPv4、IPv6。我们目前所用的 IP 协议基本都是 IPv4 版本。首部长度:4 位,度指的是首部占 32bit 字的数目,包括任何选项。由图 3-1 可知首部所占字节数为(4+4+8+16+16+3+13+8+8+16+32+32+0)160bit,正好是 32bit 的 5 倍,所以首部长度最小为 5。如果选项字段有其它数据,则这个值会大于 5。由上面也可知 IP 首部最小长度为 20 字节,最大长度为(2 的 4 次方-1)*32/860 字节。