毕业设计(论文)基于IP、TCP协议分析器的开发.doc
《毕业设计(论文)基于IP、TCP协议分析器的开发.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于IP、TCP协议分析器的开发.doc(25页珍藏版)》请在三一办公上搜索。
1、摘 要TCP/IP协议是网络通信中应用广泛的协议,通过它可以实现不同网络媒介之间的信息传递。分析TCP/IP协议,了解网络通信的基本流程,对于网络通信,网络优化和网络安全都有重要的意义。通过程序截获TCP/IP协议并对其内容进行相应的提取分析,基本的流程是利用程序将网卡设置成混乱模式,对截取的数据包按相应的协议规格分析,提取相应的地址、端口号以及数据内容,并显示出来。程序中应用了线程的处理方法,使得抓取数据包和分析数据包分离,便于实时监控,并且解决了共享资源的访问冲突的问题。在程序中,截获到的数据都以文件保存下来,方便对已截获的数据进行查询。程序主要涉及到TCP/IP协议的基本知识,网络套接字
2、的应用,线程处理问题的方法,数据的存储,MFC框架下相关的可视化编程等方面的基本知识和实际应用。关键词: TCP/IP,协议,数据包,网络套接字,线程 ABSTRACTTCP/IP protocol is used widely in the network communication, which can realize the message transmission between different network media machines. That has important significance for network optimization, network comm
3、unication and network security through analyzes of the TCP/IP protocol and understanding of the basic process of network communication. The program can intercept TCP/IP protocol to analyze the messages of the protocol. The basic process is using the program set to mix mode at the network card, analy
4、zing the packet from the network card as relevant protocols, extraction of corresponding specification and address, the socket data content, and displayed. The thread is used in the program, it can make grab packet part and analysis data part in different parts, it make program monitor the network c
5、ard all the time, and resolve the problem about the share resource. In the program, the data got from the network card is saved as file, it is convenient for check of data. This program mainly involves the TCP/IP protocols basic knowledge, socket, thread of the method to deal with problems, data sto
6、rage, MFC framework related visual programming. KEY WORDS: TCP/IP, protocol, packet, network socket, thread目录前 言3第1章 技术可行性分析31.1网络协议实现可行性分析31.2 开发环境可行性分析31.3 程序设计可行性分析3第2章 相关知识32.1 TCP/IP协议32.2 socket简介32.3 线程原理3第3章 设计思路33.1 总体设计33.2详细设计33.2.1 变量的说明33.2.2 数据结构说明33.2.3 网络协议截获部分设计33.2.4数据分析部分设计33.2.5
7、线程部分设计33.2.6 不同部分数据传递设计3第4章 编码及实现34.1 网络协议截获部分34.2 数据分析部分34.3模块整合部分及线程添加部分34.4出现的其他问题及解决方案3第5章 结果分析3第6章 总结3致谢3参考文献3前 言TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议。TCP/IP协议是目前应用最广技术最成熟的网络协议,通过TCP/IP协议可以实现不同网络设备之间的相互通信。通过对网络协议的基本内容的分析,可以了解网络通信的基本原理,对网络通信中的数据传输有清晰的概念,对
8、于网络优化,网络通信安全等有基础性的意义。本文主要对IP协议,TCP协议和UDP协议进行截获分析,并在特定的窗口中显示。TCP/IP的体系结构是一个四层结构,从下至上包含网络接口层,网际层,运输层,应用层。网络接口层没有什么具体内容,网际层涉及到的主要协议是IP协议,运输层的主要协议是TCP或UDP,应用层用到的协议是TELNET,FTP,SMTP等。本文主要针对网际层和运输层的协议进行分析,主要研究方向是对比相关的协议格式,通过编写程序提取网络报文的响应内容。程序中用到的开发环境是Microsoft Visual C+ 6.0(以下简称VC6),本文中对网络报文进行截获并分析的程序是在VC6
9、的MFC框架下实现的,应用到的技术主要包括:socket编程,VC中线程的处理方法,MFC框架下图形的显示,MFC框架下的消息响应机制和文件的读写等。本文中第1章主要针对设计的要求分析了技术方面的可行性。第2章主要介绍了设计中应用的一些知识的相关情况。第3章具体介绍了程序设计实现过程中的思路,包括总体设计和详细设计两部分,并且针对具体的设计进行了方法和算法上的分析。第4章是程序的编码和测试部分,主要讲了相对第2章中的提出的设计对应的程序实现方法以及调试过程中发现的错误和处理方法。还有关于在程序设计编码测试过程中遇到的一些问题和相应的解决方案,主要涉及一些连接和版本的问题。第5章是和本设计相关的
10、一些总结性陈述。通过本程序的书写,可以了解MFC框架运行机制,深入理解在C/C+编程中类的应用,熟练在网络编程中使用socket编程,对可视化编程的方法有了进一步的理解,对线程在程序中的使用和对共享资源的理解有了更加准确的认识。程序主要实现的功能是对网络协议进行截获和分析,为后续的网络信息的智能监视分析提供技术支持。通过程序的书写,已经对网络协议的截获和分析部分基本了解,在智能分析框架完善的情况下就可以将网络协议的截获和分析部分嵌入,就可以实现网络信息的智能监视和分析。第1章 技术可行性分析在编写程序之前,对程序用到的知识和开发环境进行了选择和可行性分析。本程序的技术可行性分析涉及到三个方面:
11、网络协议实现的可行性分析,开发环境可行性分析,程序设计可行性分析。1.1网络协议实现可行性分析 TCP/IP协议是网路协议中规范最成熟,应用最广泛的协议,与之相关的技术文档比较多,协议简单容易分析,并且在VC6的开发环境中利用socket得到的基本的协议内容,可以直接保存到数组中去,方便后续的协议分析。本文主要分析的协议是IP,TCP和UDP三个,这三个协议的报文头部分明确,信息都是以字节为基本单位存储,报文的具体信息的定位方便,对于这三种协议的报文头将在3.2.3中详细说明。1.2 开发环境可行性分析 本程序用的开发语言是C/C+语言,C语言具有简洁,高效和可移植性高的特点,C+克服了C语言
12、的类型检查机制薄弱和不适合开发大型程序的缺点。C+语言为程序设计者提供了良好的程序开发环境,能产生模块化程度高,重用性和可维护性好的程序。本程序用的的开发环境是VC61,因为在此开发环境中可以方便快捷地设置网卡模式和网卡过滤数据的类型,便于直接对特定的网络报文进行截获操作。VC6中对于socket的函数支持比较完善,对于网络通信和线程间通信的设计容易实现。对于图形开发,VC6的可视化编程体系比较完善。本程序是在VC6中的MFC框架下书写的,MFC框架比较完善,不用书写大量的关于的窗口框架的代码,在程序的线程处理中,VC6框架比较清晰,对数据的共享处理比较方便。在VC6开发环境下,可以方便定义类
13、,本程序中用到了类的基本操作,可以为以后程序的工程或平台移植提供支持。socket是网络通信的基本构件,一个socket对应于通信的一端,网络通信的socket接口模型将通信主机或进程作为端点。每个网络对话包括两个端点,本地端点和远程端点,在本程序的设计中,是监视网卡的实时动态,所以远程端点可以理解为网卡,程序从网卡中获得信息。1.3 程序设计可行性分析 程序的主要功能分为四部分:数据的截获,数据的分析,不同线程之间的资源共享,窗口相应显示,以下对这四个方面分别做可行性分析。数据的截获部分的实现:将网卡设置成混听模式2,将网卡的过滤类型设置为接受IP协议,然后设置端口,用RECV函数就可以得到
14、网卡上截获的数据。将此部分的函数设置一个while循环就可以达到实时运行的功能,利用文件的读写就可以将得到的数据及时的返回存储。数据的分析:对已知的TPC/IP协议进行数据分析,把一条完整的IP协议报文按字节进行处理。本程序中建立了比较完整的协议处理函数和协议储存的数据结构,将数据的获取和数据的储存设定为两个互不干扰的线程,避免数据的处理过程中出现数据的改动和丢失。在截获数据之后可以进行相应的数据存储,避免了短时间内接收报文过多,数据不能及时分析处理而造成的数据丢失。不同线程之间的资源共享:建立一个独立的数据空间,截获到得数据及时地存储到此数据空间,数据分析的时候,对此数据空间进行访问,避免了
15、直接访问线程的数据,这样实现了数据截获的实时性,同时也避免了数据的丢失。窗口相应显示:VC6工程下的MFC框架体系比较简单,相应的消息响应的添加比较方便快捷,对于图形化的操作比较完善。C+中类的应用比较广泛,可以将各部分的功能分别写入不同的类中,方便平台移植和工程的扩展。在本程序中,将以上几个方面的功能分别写成不同的类,对于每个类都有详细的定义和说明,在每个类中都添加了详细的出错检验,在程序调试的过程中可以进行断点测试,这是C+编程中重要的应用方面。第2章 相关知识程序开发的过程中用到了TCP/IP协议,socket知识和线程原理。2.1 TCP/IP协议网络的体系结构3大致分为三类,OSI的
16、体系结构,TCP/IP的体系结构,五层协议的体系结构。OSI的七层协议体系结构概念清晰,理论也比较完整,但它既复杂又不实用,TCP/IP体系结构则不同,得到了非常广泛的应用。TCP/IP是一个四层的体系结构,包含应用层,运输层,网际层和网络接口层。每一层都有相应的网络协议,本文中涉及到的IP,TCP和UDP协议在TCP/IP体系结构中都有相应的说明,网际层主要的协议是IP,运输层主要的协议是TCP或UDP。网络层主要是负责为分组交换网上的不同主机提供通信服务,在发送数据时,网络层把运输层产生的报文段封装成分组或包进行传送。运输层的任务就是负责向两个主机进程之间的通信提供服务,将收到的信息交付给
17、应用层中的相应的进程。网际层主要是进行更低层网络接口层(如以太网设备驱动程序)和更高层运输层之间的信息传递。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 运输层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的,在TCP/UDP报文头中没有相关源地址和目的地址的信息,报文段中关于端口号的信息都是在运输层上添加的,TCP/UDP报文头里面包含了网络通信端口号。IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项IP
18、 source routing,可以用来指定一条源地址和目的地址之间的直接路径,这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。TCP是面向连接的通信协议,通过三次握手建立连接,通讯时完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。UDP是面向无连接的通信协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要
19、接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求在程序员编程验证。UDP与TCP位于同一层,但它不保证数据包的顺序、差错检验或出错重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务。UDP没有建立初始化连接,所以TCP比UDP更加安全,但是TCP数据报文头比UDP复杂,并且有相应的检验字段。2.2 socket简介socket(套接字),用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上,不同的端口对应于不同的服务。套接字
20、是网络通信的基础,套接字中包括网络通信中需要的地址,端口等信息。套接字可以根据通讯性质分类,这种性质对于用户是可见的。应用程序一般仅在同一类的套接字间通讯,不过只要底层的通讯协议允许,不同类型的套接字间也照样可以通讯。用户目前可以使用两种套接口,即流套接字和数据报套接口。流套接字提供了双向的,有序的,无重复并且无记录边界的数据流服务,数据报套接字支持双向的数据流,但并不保证是可靠,有序,无重复的。在程序中,通过设置套接字的选项就可以实现不同程序或线程的网络通信,windows下的socket技术很成熟,Windows Sockets 规范定义并记录了如何使用API 与Internet 协议族(
21、IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets 实现都支持流套接字和数据报套接字。2.3 线程原理线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在
22、运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。线程处理中一个基本的问题是解决共享资源的竞争问题,当一个系统或者进程中有对个线程同时对共享资源进行操作时,容易引起死锁,会导致系统或者程序不正常运行。避免死锁的方法中有一种方法是避免共享资源的错误操作,通过设置某些限制条件,对共享资源设定相应的条件,通过合理分配资源来避免死锁。对共享资源的限制条件的设定必须明确,一般是通过设定标志来实现,在多个线程中每个线程都有相应的优先级,优先级高的线程可以剥夺优先级较低的线程的资源操作权限。第3章 设计思路3.1 总体设计本程序的总体设计分为三个基本的模块:网络协议截获函数,数据分析函数,显示函数,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 IP TCP 协议 分析器 开发
链接地址:https://www.31ppt.com/p-2401015.html