下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目网络连通性测试软件的设计与实现学生姓名班级学号专业一. 对指导教师下达的课题任务的学习与理解internet是一个跨越全球的计算机网络。通过internet可以在全球范围内将信息快速、有效和方便地传递。internet就像信息高速公路,它是人们日常生活的重要组成部分,所以对网络连通性的研究很有实用价值。本次毕设主要是研究网络的连通性,并研究网络的带宽和拓扑特性。设计并实现一个基于icmp协议的网络连通性测试软件,用于测试网络的连通性。当源主机与目的主机之间的链路可达时,给出链路的时延特性,和所经历的路由;当源主机与目的主机之间的链路不可达时,报告故障结点的ip地址。二. 阅读文献资料进行调
2、研的综述1 winsock api编程传统的网络api有netbios、重定向器、邮槽和管道,现今比较普遍使用的网络编程是winsock api。winsock api是一种与协议无关的网络api。2 tcp/ip协议tcp/ip协议包含的范围非常的广,是一种四层协议,包含了各种硬件软件需求的定义,我们这里只介绍软件方面的知识。udp协议(user datagram protocol 用户数据报协议)。是一种保护消息边界的,不保障可靠数据的传输。tcp协议(transmission control protocol 传输控制协议)。是一种流传输的协议.他提供可靠的,有序的,双向的,面向连接的传
3、输。其中,保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。而面向流则是无保护消息保护边界的,如果发送端连续发送数据,接收端有可能在 一次接收动作中,会接收两个或者更多的数据包。所以,udp协议的保护消息边界使得每一个消息都是独立的。而流传输,却把数据当作一串数据流,它不认为数据是一个一个的消息。icmp通常被认为是ip层的一部分。它传递差错报文以及其他需要注意的信息。icmp协议通常被ip层或更高层使用。一些icmp报文把差错报文返回给用户进程。icmp报文是在ip数据报内部被传输的。
4、所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。类型字段可以有15个不同的值,以描述特定类型的icmp报文。某些icmp报文还使用代码字段的值来进一步描述不同的条件。检验和字段覆盖整个icmp报文。icmp的检验和是必需的。3 tcp/ip协议与winsock网络编程接口的关系winsock实际上可看作是tcp/ip协议的一种封装,你可以通过调用winsock的接口函数来调用tcp/ip的各种功能。例如我想用tcp/ip协议发送数据,你就可以使用winsock的接口函数send()来调用tcp/ip的发送数据功能,至于具体怎么发送数据,winsock已经帮你封装好了这种功能。4
5、winsock编程的流程对于任何基于winsock的编程首先我们必须要初始化winsock dll库。int wsastarup( word wversionrequested , lpwsadata lpwsadata );其中,wversionrequested是我们要求使用的winsock的版本。调用这个接口函数可以初始化winsock 。然后我们必须创建一个套接字(socket)。socket socket( int af , int type , int protocol );套接字可以说是winsock通讯的核心。winsock通讯的所有数据传输,都是通过套接字来完成的,套接字包含
6、了两个信息,一个是ip地址,一个是port端口号,使用这两个信息,我们就可以确定网络中的任何一个通讯节点。当我们调用了socket()接口函数创建了一个套接字后,我们必须把套接字与你需要进行通讯的地址建立联系,我们可以通过绑定函数bind()来实现这种联系。在联系之前,我们必须把主机字节转换成网络字节的顺序。当绑定完成之后,服务器端必须建立一个监听的队列来接收客户端的连接请求。int listen( socket s ,int backlog );这个函数可以让我们把套接字转成监听模式。如果客户端有了连接请求,我们还必须使用 int accept( socket s , struct sock
7、addr 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* bu
8、f , 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最终成为
9、一个跳站的计数器,所经过的每个路由器都将其值减1。当路由器收到一份ip数据报,如果其ttl字段是0或1,则路由器不转发该数据报(接收到这种数据报的目的主机可以将它交给应用程序,这是因为不需要转发该数据报。但是在通常情况下,系统不应该接收ttl字段为0的数据报)。相反,路由器将该数据报丢弃,并给信源机发一份icmp“超时”信息。连通性测试的关键在于包含这份icmp信息的ip报文的信源地址是该路由器的ip地址。我们现在可以得到连通性的操作过程。它发送一份ttl字段为1的ip数据报给目的主机。处理这份数据报的第一个路由器将ttl值减1,丢弃该数据报,并发回一份icmp超时报文(报文格式如图1所示)。
10、这样就得到了该路径中的第一个路由器的地址。然后模块发送一份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),使目的主机的任何一个应用程序都不
11、可能使用该端口。因为,当该数据报到达时,将使目的主机的udp模块产生一份“端口不可达”错误的icmp报文(如图2所示)。当到达故障节点时,路由器收到一份ip数据报但又不能转发时,就发送一份icmp主机不可达报文。这样我们就知道故障结点的ip地址了。图2 udp端口不可达返回的icmp报文这样,连通性测试所要做的就是区分接收到的icmp报文是超时报文还是端口不可达报文,或是主机不可达以判断什么时候结束。连通性测试通过在udp数据报中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在udp报文中的时间值,即是往返时间。6 拓扑推测方法icmp 协议是用于在主机、路由器之间传送控
12、制信息或差错信息的协议。通常用这种协议来测试主机是否可达、路由是否可用等网络信息。基于icmp 协议的拓扑发现方法的原理是,首先对一个指定的地址空间所有可能的ip 地址发出icmp echo 请求,通过icmp echo 应答来判断网络中设备的可达性,发现活动结点。然后再测量已发现的活动结点,利用icmp 超时和端口不可达信息来发现源结点到目的结点的路由信息;最后,分析获取的数据,构造网络拓扑连接情况。使用icmp 协议原理较为简单,对目标网络所做的限制条件少,适用性强,在进行拓扑发现的同时也检测了网络设备的活动性。但拓扑发现的准确性不好,对于路由器之间的连接关系的分析比较麻烦,构造网络拓扑图
13、较困难。而且,如果对一定范围的ip 逐一测试,费时且增加网络的负担。三. 根据任务书的任务及文献调研结果,初步拟定的执行(实施)方案(含具体进度计划)1 实施方案此次毕设主要分为以下几个部分一步步实现:1、向目标主机发送udp报文,ttl从1开始依次增加,udp端口大于30000。2、根据路由器返回的报文得到网络的连通性、主机之间路径的每个路由节点、往返时间。3、结果用可视化界面显示,并完善界面使得整个界面更人性化。2 设计进度(1)认真学习和理解毕业设计任务书的要求,完成开题报告。 2周(2)学习和掌握网络套接口api,学习和理解icmp协议的编程接口。 2周(3)对系统各模块的功能进行详细
14、设计。 2周(4)编程实现基于icmp协议的网络连通性测试软件的功能模块,并所设计的软件进行测试和分析。 6周(5)整理资料,撰写论文,准备答辩。 2周参考文献1 n. hu, p. steenkiste. evaluation and characterization of available bandwidth probing techniquesj. ieee journal on selected areas in communications, 2003, 21(6): 879-894.2 a. feldmann, c. greenberg. netscope: traffic en
15、gineering for ip networksj. 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 ipc. proceedings of ieee infocom, 2000: 1461-1470.4 wrichard stevens.tcpip详解卷1:协议m.范建华,胥光辉,张涛等译,北京:机械工业出版社,2006:50-80.5 汪晓平,钟军等,visual c+网络通信协议分析与应用实现m.北京:人民邮电出版社,2003:445-463.6 刘 敏, 李忠诚, 过晓冰等. 端到端的可用带宽测量方法j. 软件学报, 2006, 17(1): 108-116.7 林宇, 程时端, 邬海涛等. ip网端到端性能测量技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《书法基础》2021-2022学年第一学期期末试卷
- 淮阴师范学院《教师职业道德与教育政策法规》2021-2022学年第一学期期末试卷
- 淮阴师范学院《运动技能学习与控制》2022-2023学年期末试卷
- 淮阴工学院《青少年社会工作》2023-2024学年第一学期期末试卷
- 淮阴工学院《证券投资学2》2021-2022学年第一学期期末试卷
- 中国马克思主义当代作业
- 售后服务网点方案三篇
- 市场机会识别运用金融科技助力企业发展考核试卷
- 森林经济发展与生态修复技术考核试卷
- 民族风情体验深入了解各地的民族文化考核试卷
- 大模型应用开发极简入门基于GPT-4和ChatGPT
- 2024年河南中考历史试卷试题答案解析及备考指导课件
- 河南省郑州枫杨外国语学校2025届物理九年级第一学期期中综合测试模拟试题含解析
- 食品安全与营养健康自查制度(学校食堂)
- 车位去化方案
- 中医护理三基理论知识习题+参考答案
- 糖尿病与糖尿病并发症
- 小学校情学情分析
- 项目、项目群和项目组合管理 项目管理指南
- (正式版)JTT 1482-2023 道路运输安全监督检查规范
- 人工智能算力中心平台建设及运营项目可行性研究报告
评论
0/150
提交评论