网络协议试验报告6

网络协议试验报告6

ID:42677336

大小:71.00 KB

页数:5页

时间:2019-09-20

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

《网络协议试验报告6》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《网络协议分析》实验报告2011至2012学年第]_学期姓名系别计算机实验地点学号年级班试验时间2011年10月6H实验项n实验六基于ICMP协议的ping程序设计实验一、实验目的1.分析ICMP

2、办议报文,理解和掌握ICMPI办议报文头各字段的含义和作用;2.熟悉原始套接字编程;了解网络结构与网络传输底层协议。二、实验环境连通的局域网络、若干PC机、WindowsXP/2000等操作系统、VisualC等编程软件等。三、实验原理1.PING的工作原理P1NG利用1CMP协议包来侦测另一个主机是否可达。其原理是

3、川类型码为8的1CMP发请求,受到请求的主机则用类型码为0的ICMP回应。2.RAW模式的SOCKET编程为了实现肓接对TP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。3.TCMP协议位于网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的1CMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点捉供发生在网络层的错谋信息反馈。四、实验内容及步骤及注意点实验内容:1.掌握ICMP协议报文格式和各字段含义;2.在WINDOWS环境下设计与实现

4、基于ICMP协议的PING程序,该程序可以用于测试网络连通性。具体要求如下:在命令提示符下输入:PING***.***.******,其中*和为目的主机的IP地址;不要求支持域名,对是否带有开关变量也不做要求,当不帯开关变量吋,要求返回4次响应。返回信息的格式:REPLYFROM***.***.***.***或REQUESTTimeOut(无法PING通的情况)。实验步骤及注意点:1.熟悉IP以及ICMP协议的工作机制;2.熟悉RAW模式的SOCKET编程;3.编写PING的实现程序;4.在模拟实现环境下调试并

5、运行自己编写的PING程序;5.编译环境屮需要包扌舌SOCKET库WS2_32.1ibovoidPing(LPCSTRpstrHost){SOCKETrawSocket;LPHOSTENTIpHost;sockaddr_insaDest;sockaddrinsaSrc;DWORDdwTimeSent;DWORDdwElapscd;u_charcTTL;intnLoop;intnRet;〃创建一个原始套接口rawSocket=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);if(raw

6、Socket==SOCKET_ERROR){ReportError("socket()n);return;}〃根据主机名查询主机地址lpHost=gethostbyname(pstrHost);if(lpHost==NULL){fprintf(stdcrr/Hostnotfound:%s,r);return;}〃设置目标套接口地址saDest.sin_addr.s_addr=*((u_longFAR*)(lpHost->h_addr));saDest.sin_family=AF_INET;saDest.

7、sin_port=0;〃输出Ping程序的提示信息printf("Pinging%s[%sjwith%dbytesofdata:u,pstrHost,inet_ntoa(saDest.sin_addr),REQ_DATASIZE);〃控制Ping执行的次数fbr(nLoop=0;nLoop<4;nLoop++){SendEchoRequest(rawSocket,&saDest);//{$川select()等待接收回送的数据nRet=WaitForEchoReply(rawSocket);if(nRet

8、==SOCKET_ERROR){ReportError(nselect()");break;}if(!nRet){printf(MTimeOut");//输出超时提示break;}〃接收应答dwTimeSent=RecvEchoReply(rawSocket,&saSrc,&cTTL);//计算传输时间dwElapsed=GetTickCount()-dwTimeSent;printf(nReplyfrom:%s:bytes=%dtime=%ldmsTTL=%dinet_ntoa(saSrc.sin_

9、addQREQ_DATASIZE,dwElapsed,cTTL);printf(uM);nRet=closesocket(rawSocket);if(nRet==SOCKET_ERROR){ReportError("closesocket()");)}intSendEchoRequest(SOCKETs,LPSOCKADDR_INIpstToAdd"〃给目标站点发送冋送请求{sta

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

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

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