



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络协议分析实验报告 2011至2012学年第1学期姓 名系 别计算机实验地点学 号年级 班试验时间2011年10月 6日实验项目实验六 基于ICMP协议的ping程序设计实验一、实验目的1. 分析ICMP协议报文,理解和掌握ICMP协议报文头各字段的含义和作用;2. 熟悉原始套接字编程;了解网络结构与网络传输底层协议。二、实验环境 连通的局域网络、若干PC机、Windows XP /2000等操作系统、Visual C等编程软件等。三、实验原理1. PING的工作原理 PING利用ICMP协议包来侦测另一个主机是否可达。其原理是用类型码为8的ICMP发请求,受到请求的主机则用类型码为0的ICMP回应。2. RAW模式的SOCKET编程 为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。3. ICMP协议 位于网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。四 实验内容及步骤及注意点实验内容: 1. 掌握ICMP协议报文格式和各字段含义; 2. 在WINDOWS环境下设计与实现基于ICMP协议的PING程序,该程序可以用于测试网络连通性。具体要求如下:在命令提示符下输入:PING *.*.*.*,其中*为目的主机的IP地址;不要求支持域名,对是否带有开关变量也不做要求,当不带开关变量时,要求返回4次响应。返回信息的格式:REPLY FROM *.*.*.*或REQUEST TimeOut (无法PING通的情况)。实验步骤及注意点: 1. 熟悉IP以及ICMP协议的工作机制; 2. 熟悉RAW模式的SOCKET编程; 3. 编写PING的实现程序; 4. 在模拟实现环境下调试并运行自己编写的PING程序; 5. 编译环境中需要包括SOCKET库 WS2_32.lib。void Ping(LPCSTR pstrHost) SOCKET rawSocket; LPHOSTENT lpHost; sockaddr_in saDest; sockaddr_in saSrc; DWORD dwTimeSent; DWORD dwElapsed; u_char cTTL; int nLoop; int nRet; /创建一个原始套接口 rawSocket=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); if(rawSocket=SOCKET_ERROR) ReportError(socket(); return; /根据主机名查询主机地址 lpHost=gethostbyname(pstrHost); if(lpHost=NULL) fprintf(stderr,nHost not found:%sn); return; /设置目标套接口地址 saDest.sin_addr.s_addr=*(u_long FAR*)(lpHost-h_addr); saDest.sin_family=AF_INET; saDest.sin_port=0; /输出Ping程序的提示信息 printf(nPinging %s %s with %d bytes of data:n, pstrHost,inet_ntoa(saDest.sin_addr),REQ_DATASIZE); /控制Ping执行的次数 for(nLoop=0;nLoop4;nLoop+) SendEchoRequest(rawSocket,&saDest);/使用select()等待接收回送的数据 nRet=WaitForEchoReply(rawSocket); if(nRet=SOCKET_ERROR) ReportError(select(); break; if(!nRet) printf(nTimeOut);/输出超时提示 break; /接收应答 dwTimeSent=RecvEchoReply(rawSocket,&saSrc,&cTTL);/计算传输时间 dwElapsed=GetTickCount()-dwTimeSent; printf(nReply from:%s:bytes=%d time =%ld ms TTL=%d, inet_ntoa(saSrc.sin_addr),REQ_DATASIZE,dwElapsed,cTTL); printf(n); nRet=closesocket(rawSocket); if(nRet=SOCKET_ERROR) ReportError(closesocket(); int SendEchoRequest(SOCKET s,LPSOCKADDR_IN lpstToAddr)/给目标站点发送回送请求 static ECHOREQUEST echoReq; static int nRet; /填写回送请求信息 echoReq.icmpHdr.Type=ICMP_ECHOREQ; echoReq.icmpHdr.Code=0; echoReq.icmpHdr.Checksum=0; echoReq.icmpHdr.ID=nId+; echoReq.icmpHdr.Seq=nSeq+; /填写要发送的数据 for(nRet=0;nRet1) sum+=*w+; nleft-=2; if(nleft=1) u_short u=0; *(u_char*)(&u)=*(u_char*)w; sum+=u; sum=(sum16)+(sum&0xffff); sum+=(sum16); answer=sum; return(a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源产业绿色制造与产业升级报告
- 一帆风顺英语真题及答案
- 2025年全省职业技能竞赛(政务服务办事员赛项)初赛高分题库500题(含答案)
- 光大银行沈阳市浑南区2025秋招笔试性格测试题专练及答案
- 2025计算机一级真题附答案详解【能力提升】
- 教师招聘之《中学教师招聘》考前冲刺测试卷讲解及完整答案详解(各地真题)
- 平安银行上海市松江区2025秋招笔试性格测试题专练及答案
- 浦发银行临沂市沂水县2025秋招笔试英文行测高频题含答案
- 广发银行衡阳市蒸湘区2025秋招结构化面试经典题及参考答案
- 2024年无锡城市职业技术学院单招《语文》考前冲刺测试卷(夺冠)附答案详解
- 养老护理员中级考试题库2025年(附答案)
- 2024年河北石家庄交通投资发展集团有限责任公司招聘考试真题
- 公安援疆工作总结
- 湖南省益阳市2026届高三9月教学质量监测数学试题(含答案)
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 2025秋人教版美术七年级第一单元 峥嵘岁月第1课 情感表达2
- 装饰工程拆除施工方案(3篇)
- 2025至2030年中国车载摄像头行业市场调研及投资战略规划建议报告
- 2025年招聘市场年中洞察报告-瀚纳仕
- 物业管理人员考核制度及标准
- 2025宁波写字楼租赁市场半年度研究报告-中艾世联
评论
0/150
提交评论