为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

毕业设计开题报告---网络连通性测试软件的设计与实现

2017-10-25 8页 doc 30KB 42阅读

用户头像

is_353097

暂无简介

举报
毕业设计开题报告---网络连通性测试软件的设计与实现毕业设计开题报告---网络连通性测试软件的设计与实现 题 目 网络连通性测试软件的设计与实现 学生姓名 班级学号 专业 一. 对指导教师下达的课题任务的学习与理解 Internet是一个跨越全球的计算机网络。通过Internet可以在全球范围内将信息快速、有效和方便地传递。Internet就像信息高速公路,它是人们日常生活的重要组成部分,所以对网络连通性的研究很有实用价值。本次毕设主要是研究网络的连通性,并研究网络的带宽和拓扑特性。 设计并实现一个基于ICMP协议的网络连通性测试软件,用于测试网络的连通性。当源主机与...
毕业设计开题报告---网络连通性测试软件的设计与实现
毕业报告---网络连通性测试软件的设计与实现 题 目 网络连通性测试软件的设计与实现 学生姓名 班级学号 专业 一. 对指导教师下达的课题任务的学习与理解 Internet是一个跨越全球的计算机网络。通过Internet可以在全球范围内将信息快速、有效和方便地传递。Internet就像信息高速公路,它是人们日常生活的重要组成部分,所以对网络连通性的研究很有实用价值。本次毕设主要是研究网络的连通性,并研究网络的带宽和拓扑特性。 设计并实现一个基于ICMP协议的网络连通性测试软件,用于测试网络的连通性。当源主机与目的主机之间的链路可达时,给出链路的时延特性,和所经历的路由;当源主机与目的主机之间的链路不可达时,报告故障结点的IP地址。 二. 阅读文献资料进行调研的综述 1 Winsock API编程 传统的网络API有NetBIOS、重定向器、邮槽和管道,现今比较普遍使用的网络编程是Winsock API。Winsock API是一种与协议无关的网络API。 2 TCP/IP协议 TCP/IP协议包含的范围非常的广,是一种四层协议,包含了各种硬件软件需求的定义,我们这里只介绍软件方面的知识。 UDP协议(User Datagram Protocol 用户数据报协议)。是一种保护消息边界的,不保障可靠数据的传输。 TCP协议(Transmission Control Protocol 传输控制协议)。是一种流传输的协议.他提供可靠的,有序的,双向的,面向连接的传输。 其中,保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。而面向流则是无保护消息保护边界的,如果发送端连续发送数据,接收端有可能在 一次接收动作中,会接收两个或者更多的数据包。 所以,UDP协议的保护消息边界使得每一个消息都是独立的。而流传输,却把数据当作一串数据流,它不认为数据是一个一个的消息。 ICMP通常被认为是IP层的一部分。它传递差错报文以及其他需要注意的信息。 ICMP协议通常被IP层或更高层使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。类型字段可以有15个不同的值,以描述特定类型的ICMP报文。 某些ICMP报文还使用代码字段的值来进一步描述不同的条件。检验和字段覆盖整个ICMP报文。ICMP的检验和是必需的。 3 TCP/IP协议与Winsock网络编程接口的关系 Winsock实际上可看作是TCP/IP协议的一种封装,你可以通过调用Winsock的接口函数来调用TCP/IP的各种功能。例如我想用TCP/IP协议发送数据,你就可以使用Winsock的接口函数send()来调用TCP/IP的发送数据功能,至于具体怎么发送数据,Winsock已经帮你封装好了这种功能。 4 Winsock编程的流程 对于任何基于Winsock的编程首先我们必须要初始化Winsock DLL库。 int WSAStarup( WORD wVersionRequested , LPWSADATA lpWsAData ); 其中,wVersionRequested是我们要求使用的Winsock的版本。调用这个接口函数可以初始化Winsock 。然后我们必须创建一个套接字(socket)。 SOCKET socket( int af , int type , int protocol ); 套接字可以说是Winsock通讯的核心。Winsock通讯的所有数据传输,都是通过套接字来完成的,套接字包含了两个信息,一个是IP地址,一个是Port端口号,使用这两个信息,我们就可以确定网络中的任何一个通讯节点。 当我们调用了socket()接口函数创建了一个套接字后,我们必须把套接字与你需要进行通讯的地址建立联系,我们可以通过绑定函数bind()来实现这种联系。在联系之前,我们必须把主机字节转换成网络字节的顺序。当绑定完成之后,服务器端必须建立一个监听的队列来接收客户端的连接请求。 int listen( SOCKET s ,int backlog ); 这个函数可以让我们把套接字转成监听模式。如果客户端有了连接请求,我们还必须使用 int accept( SOCKET s , struct sockaddr FAR* addr , int FAR* addrlen ); 来接受客户端的请求. 而客户端的建立的流程则是初始化WinSock ,然后创建socket套接字,再使用 int connect( SOCKET s , const struct sockaddr FAR* name , int namelen ) ; 来连接服务端。 当服务器端和客户端建立连接以后,无论是客户端,还是服务器端都可以使用 int send( SOCKET s , const char FAR* buf , int len , int flags ); int recv( SOCKET s , char FAR* buf , int len , int flags ); 函数来接收和发送数据,因为,TCP连接是双向的.当要关闭通讯连结的时候,任何一方都可以调用 int shutdown( SOCKET s , int how ) ; 来关闭套接字的指定功能。再调用 int closesocket( SOCKET s) ; 来关闭套接字句柄。 5 网络连通性测试原理 网络连通性测试使用ICMP报文和IP首部中的TTL字段(生存周期)。TTL字段是由发送端初始设置一个8 bit字段。每个处理数据报的路由器都需要把TTL的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒钟,因此TTL最终成为一个跳站的计数器,所经过的每个路由器都将其值减1。 当路由器收到一份IP数据报,如果其TTL字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是在通常情况下,系统不应该接收TTL字段为0的数据报)。相反,路由器将该数据报丢弃,并给信源机发一份ICMP“超时”信息。连通性测试的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。 我们现在可以得到连通性的操作过程。它发送一份TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份ICMP超时报文(报文格式如图1所示)。这样就得到了该路径中的第一个路由器的地址。然后模块发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到TTL值为1的IP数据报,也不会丢弃该数据报并产生一份超时ICMP报文,这是因为数据报已经到达其最终目的地。那么我们该如何判断是否已经到达目的主机了呢, 0 7 8 15 16 31 类型(0或1) 代码(0或1) 检验和 未用(必须为0) IP首部(包括选项),原始IP数据报中数据的前8字节 图1 ICMP超时报文 发送一份UDP数据报给目的主机,但选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文(如图2所示)。 当到达故障节点时,路由器收到一份IP数据报但又不能转发时,就发送一份ICMP主机不可达报文。这样我们就知道故障结点的IP地址了。 图2 UDP端口不可达返回的ICMP报文 这样,连通性测试所要做的就是区分接收到的ICMP报文是超时报文还是端口不可达报文,或是主机不可达以判断什么时候结束。 连通性测试通过在UDP数据报中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在UDP报文中的时间值,即是往返时间。 6 拓扑推测方法 ICMP 协议是用于在主机、路由器之间传送控制信息或差错信息的协议。通常用这种协议来测试主机是否可达、路由是否可用等网络信息。 基于ICMP 协议的拓扑发现方法的原理是,首先对一个指定的地址空间所有可能的IP 地址发出ICMP ECHO 请求,通过ICMP ECHO 应答来判断网络中设备的可达性,发现活动结点。然后再测量已发现的活动结点,利用ICMP 超时和端口不可达信息来发现源结点到目的结点的路由信息;最后,分析获取的数据,构造网络拓扑连接情况。 使用ICMP 协议原理较为简单,对目标网络所做的限制条件少,适用性强,在进行拓扑发现的同时也检测了网络设备的活动性。但拓扑发现的准确性不好,对于路由器之间的连接关系的分析比较麻烦,构造网络拓扑图较困难。而且,如果对一定范围的IP 逐一测试,费时且增加网络的负担。 三. 根据任务书的任务及文献调研结果,初步拟定的执行(实施)(含具体进度计划) 1 实施方案 此次毕设主要分为以下几个部分一步步实现:1、向目标主机发送UDP报文,TTL从1开始依次增加,UDP端口大于30000。2、根据路由器返回的报文得到网络的连通性、主机之间路径的每个路由节点、往返时间。3、结果用可视化界面显示,并完善界面使得整个界面更人性化。 2 设计进度 (1)认真学习和理解毕业设计任务书的要求,完成开题报告。 2周 (2)学习和掌握网络套接口API,学习和理解ICMP协议的编程接口。 2周 (3)对系统各模块的功能进行详细设计。 2周 (4)编程实现基于ICMP协议的网络连通性测试软件的功能模块,并所设计的软件进行测试和分析。 6周 (5)整理资料,撰写,准备答辩。 2周 参考文献 [1] N. Hu, P. Steenkiste. Evaluation and characterization of available bandwidth probing techniques[J]. IEEE Journal on Selected Areas In Communications, 2003, 21(6): 879-894. [2] A. Feldmann, C. Greenberg. NetScope: Traffic Engineering for IP networks[J]. IEEE Network Special Issue on Internet Traffic Engineering, 2000: 11-19. [3] G.Bianchi,A.Capone.Throughput analysis of end-to-end measurement-based admission control in IP[C]. Proceedings of IEEE INFOCOM, 2000: 1461-1470. [4] W(Richard Stevens.TCP,IP详解卷1:协议[M].范建华,胥光辉,张涛等译,北京:机械工 业出版社,2006:50-80. [5] 汪晓平,钟军等,Visual C++网络通信协议分析与应用实现[M].北京:人民邮电出版 社,2003:445-463. [6] 刘 敏, 李忠诚, 过晓冰等. 端到端的可用带宽测量方法[J]. 软件学报, 2006, 17(1): 108-116. [7] 林宇, 程时端, 邬海涛等. IP网端到端性能测量技术研究的进展[J]. 电子学报, 2003, 31(8): 1227-1233. [8] 刘星成, 何莉, 余顺争. 网络可用带宽的高精度测量算法[J]. 电子学报, 2007, 35(1): 68-72. [9] 李子柱, 倪春胜, 王继龙. 网络拓扑发现系统的设计与实现[J]. 计算机工程, 2006, 32(2): 104-107. [10] 闫兴篡, 殷建平, 蔡志平.网络拓扑发现算法综述[J].计算机工程与应用,2007, 43( 14),131-135. 指导 老师 批阅 指导教师(签名): 注:可另附A4纸
/
本文档为【毕业设计开题报告---网络连通性测试软件的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索