




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书 网络工程 专业 2005 年级 1 班 伍南锦 一、 设计题目1. ICMP协议路由器管理设计2. 网络故障管理设计二、 主要内容1. ICMP协议路由器管理设计理解ICMP协议的工作原理,包括协议语法、语义、时序三要素;利用网络管理软件(仿真器的SNMP模块或Ethernet等)进行ICMP数据包的捕获,在此基础上进行ICMP协议分析;并利用高级语言进行Ping、Tracert的网络程序设计;2. 网络故障管理设计研究自己经历过的或者同学设置的特定的网络故障,从网络管理的观点进行局域网网络故障诊断、分析,并解决实际网络问题。三、 具体要求1、根据设计任务要求,首先选择、设计出课程设计的方案,写出主要步骤及程序框图,然后在实验室设计。2、 调试。通过调试,实现任务所要求的内容。3、 写出完整的设计报告,其中包括对调试中出现的异常现象的分析和讨论。本课程设计的主要环节如下:1)根据课程任务书的要求,选定设计题目,并进行分析研究,在此基础上完成以下任务:2)确定总体设计方案。首先阅读设计任务书,理解设计任务的要求,选定设计所使用的技术方法。确定总体方案应尽量简单、合理,确保设计任务的正确完成。3)查阅文献及有关的技术资料,为设计做好充分准备。熟悉相关的知识和资料,查阅已有的相关程序,深入理解借鉴已有的内容,为编制高质量的课程设计做好准备。4)设计课程内容。提高分析问题和解决问题的能力。5)需要编写程序的给出源代码。要求在源程序中标明程序名、适当添加注释,说明程序段的功能,以便自己检查或供他人阅读。6)调试、修改、运行设计方案,并分析实验结果。7)写课程设计报告说明书。程设计报告说明书是课程设计的全面总结和理论提高,是对整个设计的详细说明。四、 进度安排时间:十七、十八周,每天上午8:0011:30,下午2:005:30;地点:网络工程实验室(致用楼501)。1、第十七周星期一:课程设计要求、规范讲解;2、第十七周星期二:图书馆查阅资料、设计实施方案;3、第十七周星期星期三、星期四、星期五:在实验室进行设计;4、第十八周星期一、星期二、星期三:在实验室进行设计;5、第十八周星期四:设计总结、分析;6、第十八周星期五:撰写、上交课程设计报告书;五、 完成后应上交的材料 课程设计任务书。六、 总评成绩指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日佛山科学技术学院课程设计用纸目 录一设计任务分析4二ICMP协议路由器管理设计 421 ICMP协议语法、语义、时序分析422 Ping与Tracert的原理 42. 3高级语言实现ping524使用ping和tracert命令检测丢包11三SNMP协议网络故障管理设计14 3.1.网络管理基本模型143.2.用Ping命令判断TCP/IP网障143.3.网络故障的诊断与排除15四. 课程设计心得体会 16五. 参考文献 16佛山科学技术学院课程设计用纸一设计任务分析1、 SNMP协议路由器管理设计设计Cisco路由器网络管理的拓扑实验环境;利用网络管理软件(仿真器的SNMP模块或Ethernet等)进行网络管理数据包的捕获,在此基础上进行SNMP网络管理协议的行为分析;能进行简单的计算机网络通信设备管理;2、 网络故障管理设计研究自己经历过的或者同学设置的特定的网络故障,从网络管理的观点进行局域网网络故障诊断、分析,并解决实际网络问题。二ICMP协议路由器管理设计21 ICMP协议语法、语义、时序分析ICMP协议是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。我们可以通过Ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息,通过这些消息来对网络或主机的故障提供参考依据。 IP协议尽力传递并不表示数据报一定能够投递到目的地; IP协议本身没有内在的机制获取差错信息并进行相应的控制; 基于网络的差错可能性很多:如:通信线路出错、网关或主机出错、 信宿主机不可到达、数据报生存期(TTL时间)到、系统拥塞等等。 为了能够反映数据报的投递,因特网协议中增加了ICMP协议。22 Ping与Tracert的原理ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。我们可以看到, ping给出来了传送的时间和TTL的数据。我给的例子不太好,因为走的路由少,有兴趣地可以ping一下国外的网站比如,就可以观察到一些 丢包的现象,而程序运行的时间也会更加的长。 ping还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。如果要观察路由, 我们还是需要使用更好的工具,就是要讲到的Traceroute(windows下面的名字叫做tracert)。TracerouteTraceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。2. 3高级语言实现ping#pragma pack(4) #define WIN32_LEAN_AND_MEAN #include #include #include #define ICMP_ECHO 8 #define ICMP_ECHOREPLY 0 #define ICMP_MIN 8 / minimum 8 byte icmp packet (just header) /* The IP header */ typedef struct iphdr unsigned int h_len:4; / length of the header unsigned int version:4; / Version of IP unsigned char tos; / Type of service unsigned short total_len; / total length of the packet unsigned short ident; / unique identifier unsigned short frag_and_flags; / flags unsigned char ttl; unsigned char proto; / protocol (TCP, UDP etc) unsigned short checksum; / IP checksum unsigned int sourceIP; unsigned int destIP; IpHeader; / / ICMP header / typedef struct _ihdr BYTE i_type; BYTE i_code; /* type sub code */ USHORT i_cksum; USHORT i_id; USHORT i_seq; /* This is not the std header, but we reserve space for time */ ULONG timestamp; IcmpHeader; #define STATUS_FAILED 0xFFFF #define DEF_PACKET_SIZE 32 #define MAX_PACKET 1024 #define xmalloc(s) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(s) #define xfree(p) HeapFree (GetProcessHeap(),0,(p) void fill_icmp_data(char *, int); USHORT checksum(USHORT *, int); void decode_resp(char *,int ,struct sockaddr_in *); void Usage(char *progname) fprintf(stderr,Usage:n); fprintf(stderr,%s data_sizen,progname); fprintf(stderr,datasize can be up to 1Kbn); ExitProcess(STATUS_FAILED); int main(int argc, char *argv) WSADATA wsaData; SOCKET sockRaw; struct sockaddr_in dest,from; struct hostent * hp; int bread,datasize; int fromlen = sizeof(from); int timeout = 1000; char *dest_ip; char *icmp_data; char *recvbuf; unsigned int addr=0; USHORT seq_no = 0; if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0) fprintf(stderr,WSAStartup failed: %dn,GetLastError(); ExitProcess(STATUS_FAILED); if (argc h_addr,hp-h_length); else dest.sin_addr.s_addr = addr; if (hp) dest.sin_family = hp-h_addrtype; else dest.sin_family = AF_INET; dest_ip = inet_ntoa(dest.sin_addr); if (argc 2) datasize = atoi(argv2); if (datasize = 0) datasize = DEF_PACKET_SIZE; else datasize = DEF_PACKET_SIZE; datasize += sizeof(IcmpHeader); icmp_data = xmalloc(MAX_PACKET); recvbuf = xmalloc(MAX_PACKET); if (!icmp_data) fprintf(stderr,HeapAlloc failed %dn,GetLastError(); ExitProcess(STATUS_FAILED); memset(icmp_data,0,MAX_PACKET); fill_icmp_data(icmp_data,datasize); while(1) int bwrote; (IcmpHeader*)icmp_data)-i_cksum = 0; (IcmpHeader*)icmp_data)-timestamp = GetTickCount(); (IcmpHeader*)icmp_data)-i_seq = seq_no+; (IcmpHeader*)icmp_data)-i_cksum = checksum(USHORT*)icmp_data, datasize); bwrote = sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest, sizeof(dest); if (bwrote = SOCKET_ERROR) if (WSAGetLastError() = WSAETIMEDOUT) printf(timed outn); continue; fprintf(stderr,sendto failed: %dn,WSAGetLastError(); ExitProcess(STATUS_FAILED); if (bwrote h_len * 4 ; / number of 32-bit words *4 = bytes if (bytes sin_addr); icmphdr = (IcmpHeader*)(buf + iphdrlen); if (icmphdr-i_type != ICMP_ECHOREPLY) fprintf(stderr,non-echo type %d recvdn,icmphdr-i_type); return; if (icmphdr-i_id != (USHORT)GetCurrentProcessId() fprintf(stderr,someone elses packet!n); return ; printf(%d bytes from %s:,bytes, inet_ntoa(from-sin_addr); printf( icmp_seq = %d. ,icmphdr-i_seq); printf( time: %d ms ,GetTickCount()-icmphdr-timestamp); printf(n); USHORT checksum(USHORT *buffer, int size) unsigned long cksum=0; while(size 1) cksum+=*buffer+; size -=sizeof(USHORT); if(size ) cksum += *(UCHAR*)buffer; cksum = (cksum 16) + (cksum & 0xffff); cksum += (cksum 16); return (USHORT)(cksum); /* Helper function to fill in various stuff in our ICMP request. */ void fill_icmp_data(char * icmp_data, int datasize) IcmpHeader *icmp_hdr; char *datapart; icmp_hdr = (IcmpHeader*)icmp_data; icmp_hdr-i_type = ICMP_ECHO; icmp_hdr-i_code = 0; icmp_hdr-i_id = (USHORT)GetCurrentProcessId(); icmp_hdr-i_cksum = 0; icmp_hdr-i_seq = 0; datapart = icmp_data + sizeof(IcmpHeader); / / Place some junk in the buffer. / memset(datapart,E, datasize - sizeof(IcmpHeader); 当返回icmp回显应答时,要打印出序列号与ttl,并计算往返时间(ttl位于ip首部中的生存时间字段.当前的bsd系统中的ping程序每次收到回显应答时都打印出收到的ttl有些系统并不这样做.我们将在第8章中通过traceroute程序来介绍ttl的用法).从上面的输出中可以看出,回显应答是以发送的次序返回的(0,1,2等).ping程序通过在icmp报文数据中存放发送请求的时间值来计算往返时间.当应答返回时,用当前时间减去存放在icmp报文中的时间值,即是往返时间.注意,在发送端bsdi上,往返时间的计算结果都为0ms.这是因为程序使用的计时器分辨率低的原因.bsd/386版本0.9.4系统只能提供10ms级的计时器).查看tcpdump输出时会发现,icmp回显请求与回显应答的时间差在4ms以下。2. 4使用ping和tracert命令检测丢包从家里测试宽带网连接的丢包是一项非常困难的工作。丢包可以发生在从计算机到互联网上正在连接的目的地之间的线路上的任何一个地方。引起丢包的原因包括:网络阻塞、路由器或者交换机超过工作负荷、信号往返时间缓慢以及服务提供商或者托管访问的网站的公司使用的通信优先等级。没有主动测量实际重复传输的TCP流量(对于家庭宽带网连接来说,这类产品太昂贵了),很难确定是否真的发生了重复传输。你指出的机制ping和跟踪路由对于帮助家庭用户确定互联网上哪里的速度慢是最有用的工具。Ping测量你的计算机和你要连接的IP地址之间的信号往返时间。跟踪路由是测量路由器在你的计算机和你正在跟踪的路由的IP地址之间的通道的反应时间。使用Ping使用Ping测量丢包的最佳方法是向一个IP地址发送大量的Ping命令,然后检查没有应答的那些Ping命令。如果快速地发出了50次Ping命令, 可以检查没有没有应答的次数,并把没有应答的次数作为丢包。没有应答的次数超过5%可能就值得担心了。在一台Windows计算机上,在命令提示符后面输入如下命令就可以完成这个任务:Ping -n 50(IP地址或者域名,如)这个命令中的“-n”开关告诉发送ping命令的次数,“50”是发送的次数。然后,将得到一个测试总结。这个总结将包括丢失的数量和百分比:50地址Ping的统计结果:包: 发送 = 6, 接收 = 6, 丢失 = 0 (0%)大约往返时间以毫秒(ms)显示:最小 = 26ms, 最大 = 29ms, 平均 = 27ms如果看到平均往返时间较高(超过100ms),这也会降低你的网络下载速度。设法消除某些引起丢包的网络某些部分的故障的一种方法是在通道的各个部分进行ping测试。我首先开始进行测试的地方是本地的“缺省网关”。这是所有的数据传输到网络上经过的第一个路由器。如果在这一部分的丢包率很高,那么问题就在服务提供商的网络上。在Windows命令提示符后面输入“ipconfig”命令就可以发现缺省路由器的IP地址。这个结果显示如下:以太网接口本地区域连接:具体连接的DNS后缀:IP地址. . . . . . : 89子网掩码 . . . . . : 缺省网关 . . . : 在这里要查看的是缺省网关的IP地址。在上述例子中就。使用跟踪路由在Windows命令提示符后面使用跟踪路由命令就可以实施跟踪路由。在Windows XPZH中这个命令是:tracert (IP地址或者主机名)虽然结果不能向显示丢包,但是,可以显示在路径中路由器反应速度减慢的情况。这个输出结果将显示所有的路由器的反应时间。下面是一个例子:5 ms 2 ms 3 ms 10 ms 6 ms 7 ms 9 ms 7 ms 7 ms 6 ms 7 ms 7 ms 307 ms 7 ms 8 ms 697 ms 7 ms 7 ms 0510 ms 7 ms 8 ms 5310 ms 9 ms 11 ms 789 ms 10 ms 15 ms 14. 149 ms 10 ms 10 ms 929 ms 28 ms 29 ms 530 ms 29 ms 29 ms 2* * * Request timed out.* * * Request timed out.28 ms 28 ms 29 ms 50如果看到在路径中跟踪路由往返时间有超过100ms(十分之一秒)的,这就可能引起网络上传输的时间减慢。可以看到数据在很多不同的网络(XO, Qwest, ABC)上传输。这是互联网美妙的一部分。不利的方面是一个用户无法解决反应时间减慢的问题。最佳的出发点就是确认你和你的服务提供商之间没有出现丢包。三SNMP网络故障管理设计简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。 SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。它具有简单性,易于扩展性的特点。SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。名字说明MIB管理信息库SMI管理信息的结构和标识SNMP简单网络管理协议从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt-based)的方法。Snmp发展到现在共有三个版本,本课程设计是基于snmpv1版本。3.1.网络管理基本模型MIBmanagerMIBagentMIBagentMIBagentMDBv ManagerAgent模型(如上图所示)在网络管理中常用,其核心是管理进程与远程系统相互作用,实现对远程资源的控制。v 组成四要素:由网络管理系统(网管站manager)、被管网络设备(计算机系统或网络设备agent)、管理信息库(MIB)和网络管理通信协议(如SNMP等)组成。v 设计原则:尽量减少网络和被管设备的管理开销。 3.2.用Ping命令判断TCP/IP网络故障 Ping是Windows系统上用来验证与远程计算机的连接状况的命令程序,功能很强, 以下为命令 Ping 的常用方法的归纳,简称“由近及远四步Ping法” . 在运行栏输入 “CMD” 打开系统命令状态, 按序操作如下:(1)Ping 是本地循环(回送)地址。每台主机对应于它有一个回送口,数据报只直接送给主机,不上网。此命令可用来测试本地机的网络协议和网络软件是否正常,本地机进程之间是否通信。(2)Ping 本地机IP地址(可用ipconfig 命令查看到) 如Ping通,表明本地机网卡或Modem工作正常;否则不正常。(3)Ping 网段计算机IP地址 Ping一台与本地机同网段计算机的IP地址,如Ping通,说明该网段链路工作正常;否则,表明线路有故障;如果网段中包含路由器,则应先Ping路由器在本网段的端口IP地址,如不通,则此段线路有故障;否则,Ping路由器在目标计算机所在网段的端口IP地址,不通则表明路由器有故障。(4)Ping网址(带DNS服务的网络名)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水彩老师考试题及答案
- 成人音乐测试题及答案
- 安康药房面试题及答案
- 生猪屠宰面试题及答案
- 产业岗位面试题及答案
- 轻工分类考试题及答案
- 2025年桂平市教育系统招聘教师考试笔试试题(含答案)
- 2025年大同市消防员考试笔试试题(含答案)
- 2024年事业单位招聘考试公共基础知识必考题库及答案
- 2024年湖北直属事业单位招聘综合应用能力真题及答案(B类)
- 2025年发展对象考试题库附含答案
- 2025年新专长针灸考试题及答案
- 2025医院医疗器械不良事件监测与报告制度
- 2025年甘肃社会化工会工作者招聘考试(公共基础知识)模拟试题及答案
- 公司解散清算的法律意见书、债权处理法律意见书
- 《心系国防 强国有我》 课件-2024-2025学年高一上学期开学第一课国防教育主题班会
- 口腔科超声波洁牙知情同意书
- 公安派出所优质建筑外观形象设计基础规范
- C型钢检验报告
- 甲状腺腺瘤教学查房课件
- 人民法院法庭建设项目可行性研究报告
评论
0/150
提交评论