网络协议试验报告6.doc

网络协议试验报告6.doc

ID:52698888

大小:43.50 KB

页数:4页

时间:2020-03-29

网络协议试验报告6.doc_第1页
网络协议试验报告6.doc_第2页
网络协议试验报告6.doc_第3页
网络协议试验报告6.doc_第4页
资源描述:

《网络协议试验报告6.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《网络协议分析》实验报告2011至2012学年第1学期姓名系别计算机实验地点学号年级班试验时间2011年10月6日实验项目实验六基于ICMP协议的ping程序设计实验一、实验目的1.分析ICMP协议报文,理解和掌握ICMP协议报文头各字段的含义和作用;2.熟悉原始套接字编程;了解网络结构与网络传输底层协议。二、实验环境连通的局域网络、若干PC机、WindowsXP/2000等操作系统、VisualC等编程软件等。三、实验原理1.PING的工作原理PING利用ICMP协议包来侦测另一个主机是否可达。其原理是用类型码为8的ICMP发请求,受到请求的主机则用类型码

2、为0的ICMP回应。2.RAW模式的SOCKET编程为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。3.ICMP协议位于网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。四.实验内容及步骤及注意点实验内容:1.掌握ICMP协议报文格式和各字段含义;2.在WINDOWS环境下设计与实现基于ICMP协议的PING程序,该程序可以用于测试网络连通性。具体要求如下:在命令提示符下输入:PIN

3、G***.***.***.***,其中***为目的主机的IP地址;不要求支持域名,对是否带有开关变量也不做要求,当不带开关变量时,要求返回4次响应。返回信息的格式:REPLYFROM***.***.***.***或REQUESTTimeOut(无法PING通的情况)。实验步骤及注意点:1.熟悉IP以及ICMP协议的工作机制;2.熟悉RAW模式的SOCKET编程;3.编写PING的实现程序;4.在模拟实现环境下调试并运行自己编写的PING程序;5.编译环境中需要包括SOCKET库WS2_32.lib。voidPing(LPCSTRpstrHost){SOCKE

4、TrawSocket;LPHOSTENTlpHost;sockaddr_insaDest;sockaddr_insaSrc;DWORDdwTimeSent;DWORDdwElapsed;u_charcTTL;intnLoop;intnRet;//创建一个原始套接口rawSocket=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);if(rawSocket==SOCKET_ERROR){ReportError("socket()");return;}//根据主机名查询主机地址lpHost=gethostbyname(pstrHost

5、);if(lpHost==NULL){fprintf(stderr,"Hostnotfound:%s");return;}//设置目标套接口地址saDest.sin_addr.s_addr=*((u_longFAR*)(lpHost->h_addr));saDest.sin_family=AF_INET;saDest.sin_port=0;//输出Ping程序的提示信息printf("Pinging%s[%s]with%dbytesofdata:",pstrHost,inet_ntoa(saDest.sin_addr),REQ_DATASIZ

6、E);//控制Ping执行的次数for(nLoop=0;nLoop<4;nLoop++){SendEchoRequest(rawSocket,&saDest);//使用select()等待接收回送的数据nRet=WaitForEchoReply(rawSocket);if(nRet==SOCKET_ERROR){ReportError("select()");break;}if(!nRet){printf("TimeOut");//输出超时提示break;}//接收应答dwTimeSent=RecvEchoReply(rawSocket,&saSrc,&

7、cTTL);//计算传输时间dwElapsed=GetTickCount()-dwTimeSent;printf("Replyfrom:%s:bytes=%dtime=%ldmsTTL=%d",inet_ntoa(saSrc.sin_addr),REQ_DATASIZE,dwElapsed,cTTL);printf("");}nRet=closesocket(rawSocket);if(nRet==SOCKET_ERROR){ReportError("closesocket()");}}intSendEchoRequest(SOCKETs,LPSOC

8、KADDR_INlpstToAddr)//给目标站点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。