网学网为广大网友收集整理了,分析网络流量监控的工具的设计|计算机网络论文|网络毕业设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | ||
该网络流量监控及分析工具主要用途是通过实时连续地采集网络数据并对其进行统计,得到主要成分性能指标,结合网络流量的理论,通过统计出的性能指数观察网络状态,分析出网络变化趋势,找出影响网络性能的因素。 本设计题目是教师自拟项目,前期任务主要是设计并完成系统的初步框架,实现网络数据的捕获,并解决相应问题,后期主要是通过一些API函数完成对各类数据信息的统计。 本系统实现以下功能: (1)采用Winsock编写原始套接字Socket-Raw对数据包进行采集捕获,并可实现分类及自定义范围进行捕获; (2)对捕获的数据包进行一定的解析; (3)访问操作系统提供的网络性能参数接口,得到网卡总流量、输入流量和输出流量; (4)系统提供了多种方式显示结果,如曲线图、列表等; (5)使用IP帮助API获取网络统计信息; (6)实现对部分常见威胁的预警,可继续开发扩展其报警功能。 1.2 论文结构安排 本论文围绕Winsock标准套接字网络编程的各项实践内容展开。具体内容安排如下:第一章是引言,简要介绍开发背景、设计任务和论文结构安排;第二章介绍网络基础理论研究、数据包捕获与流量检测的技术原理;第三章介绍如何使用原始套接字实现数据捕获;第四章重点介绍网络流量监测工具的设计与实现过程,并且详细阐述了从系统功能总体设计、详细设计、具体实现的全部过程;第五章介绍了软件测试情况。 2 相关的概念与技术 2.1 OSI参考模型与TCP/IP体系结构 2.1.1 OSI参考模型 开放系统互联参考模型OSI是由国际标准化组织ISO制定的标准化开放式的计算机网络层次结构模型,其结构如图1所示。 可以看出,该结构共有七层,各层主要实现如下功能: (1)物理层,利用传输介质实现相邻节点间的物理连接,主要对机械、电气、功能和规程四个方面及信号传输速率方面进行规定; (2)数据链路层,完成管理数据的传输,提供差错检测和恢复,并且提供流量控制,最终实现向上一层提供无差错、高可靠性的传输链路; (3)网络层,执行路由算法和流量控制算法,完成数据分组传输,它是通信子网的最高层; (4)传输层,提供端到端的无差错传输,同时,它也提供属于局通信网络接口,比如SOCKET; (5)会话层,完成用户之间会话的组织、协调、分配用户名等; (6)表示层,解决数据格式问题,规定编码方式; (7)应用层,OSI的最高层,利用应用进程提供网络访问手段。
2.1.2 TCP/IP体系结构 由于TCP/IP比其之前的OSI模型更具体实现,随着互联网的不断发展,遵循TCP/IP结构的网络不断普及,因此现在通常采用TCP/IP代表Internet体系结构。TCP/IP的目的是在网络标准不同的情况下解决互联问题,可以说,网络互联是TCP/IP的核心。TCP/IP的体系结构如图2所示。
TCP/IP在设计时重点并没有放在具体通信的实现上,所以对最后两层没有做出具体规定,同时表明它允许不同类型的通信网络参与通信。它的四个层次功能如下。 (1)应用层,提供常用的应用程序及自定义的应用程序,数据传输时用TCP/IP协议来进行; (2)传输层,提供端到端的应用程序之间的通信,可以使用传输控制协议TCP(Transmission Control Protocol)或用户数据报协议UDP(User Datagram Protocol)协议,前者提供可靠传输,传送单位是报文段,后者提供不可靠服务,传输单位是数据报,即分组。此外,传输层另外一个功能就是区别应用程序; (3)网际层,负责计算机之间的通信,采用的协议是IP协议,数据传送单位是分组,向上提供不可靠的传输服务; (4)网络接口层,负责接收数据报,并实现发送,或者接收帧,提取IP数据报,交给互联网层。 2.1.3 OSI模型与TCP/IP体系结构的区别 从前面的分析可以看出OSI模型和TCP/IP体系有许多不同之处,主要体现在问题的处理上面,例如: (1)TCP/IP一开始就考虑的是异构网络的互联问题,并将IP看作是整个体系的重要组成部分,而ISO并没有认识到网际协议IP的重要性,导致最后只能单独划分一个子层来完成IP的作用; (2)OSI最开始只注意到了面向连接的服务,而TCP/IP一开始就注意了面向连接和无连接的并重。相比起来,TCP/IP更注重了数据传输的效率,而OSI则注重了传输的可靠性; (4)TCP/IP虽然分层,但是调用关系并不像OSI那样严格,减少了不必要的开销,提高了传输效率。 2.2 传输层的编程接口—Windows套接字编程技术 2.2.1 Windows套接字的概念 Windows套接字—SOCKET,是为Windows系统开发的一套标准通用支持网络协议数据通信的API,它是网络通信的基础,即TCP/IP的网络编程接口,1994年被定为网络编程标准后,主要经历了Winsock1.1和Winsock2.0两种版本,它产生最终目的是可以适应应用程序开发者、网络服务商的需求,进程通过套接字的通信域来完成通信。需要指出的是,套接字主要负责控制数据的输入与输出,主要在传输层和网络层,屏蔽了数据链路层和物理层[2]。 2.2.2 套接字类型 根据通信性质把套接字主要分为流式套接字和数据报套接字两种。它们的区别在于流式套接字提供双向、有序、无重复的数据流服务,但相对于数据报套接字来说系统开销较大。数据报套接字也支持双向数据流,但并不注重传输可靠性、无重复性和有序性,但它保留了记录边界,由于数据报传输效率较高,所以还是得到了比较广泛的应用。 2.2.3 涉及的几个基本概念 (1)字节顺序,不同的计算机采用不同的自己顺序存储数据,所以在这些数据进行通信时需要进行字节顺序的转换,所有传送给网络上套接字函数的IP地址和端口号均按照网络顺序安排,主要由sockaddr_in这个结构规范。特别要注意的是,应用程序建立地址结构之前,用户输入需要将主机序列转换为网络序列(使用htons函数,反之使用ntohs函数)。 (2)阻塞与非阻塞,套接字有同步阻塞和异步非阻塞两种方法,阻塞模式时,套接字需要等待操作全部完成才结束,而当套接字处于非阻塞模式时,套接字以是否有新数据到达作为阻塞的标志。阻塞方式套接字简单、方便,但是效率比较低,而非阻塞模式使用复杂点,但效率很高。但是仍需强调一点,Winsock提供了几种I/O模型来解决异步问题,如“选择”、“重叠”、“事件选择”、“异步选择”等[3]。 2.3 原始套接字 从用户的角度来看,标准的流式套接字和数据报套接字这两类套接字似乎涵盖了TCP/IP应用的全部,因为基于TCP/IP的应用,从协议栈的层次(如图3所示)上讲,在传输层的确只可能建立于TCP或UDP协议之上,而流式套接字和数据报套接字又分别对应于TCP和UDP,所以几乎所有的应用都可以用这两类套接字实现。但是,当需要自定义数据包发送时或者需要分析所有经过网络的数据包的时候,就必须面临一种不同于前两者的方式—Raw Socket,即原始套接字,程序员可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP,TCP, UDP等,不仅这样,它还可以实现如伪装本地IP、发送ICMP包等功能。 目 录
| ||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | ||
本文选自计算机毕业设计http://myeducs.cn |