网络编程-PING程序设计实验指导书.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:9 大小:123KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

网络编程-PING程序设计实验指导书.doc

网络编程-PING程序设计实验指导书.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

网络编程-PING程序设计实验指导书一.实验目的(1)熟悉原始套接字编程。(2)了解网络的结构。(3)了解网络传输底层协议。二.实验要求PING程序是用于测试网络连通性的程序。要求在WINDOWS环境下实现基本的PING程序功能.在命令提示符下输入:PING***.***.***.***其中***为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。不带开关变量时,要求返回4次响应。返回信息的格式:REPLYFROM***.***.***.***或REQUESTTimeOut(无法PING通的情况)三.实验原理1、PING的工作原理ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。因此,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前16bit就组成了ICMP所要传递的信息。PING利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。2、RAW模式的SOCKET编程PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。熟悉SOCKET的编程,包括基本的系统HYPERLINK"http://blog.mop.com/diary/main/diarySearchMore.jsp?v=调用"\t"_blank"调用如SOCKET、BIND等.3、具体内容(1)定义数据结构需要定义好IP数据报、ICMP包等相关的数据结构(2)程序实现在WINDOWS环境下实现PING程序四.实验步骤和注意事项1、熟悉IP以及ICMP协议的工作机制2、熟悉RAW模式的SOCKET编程3、编写PING的实现程序4、编译环境中需要包括SOCKET库WS2_32.lib5、在模拟实现环境下调试并运行自己编写的PING程序6、最后提交源程序,撰写实验报告参考资料:WinsockProgrammer'sFAQExamples:Ping:RawSocketsMethod,HYPERLINK"http://tangentsoft.net/wskfaq/examples/rawping.html"http://tangentsoft.net/wskfaq/examples/rawping.html透析ICMP协议:协议原理,HYPERLINK"http://tieba.baidu.com/f?kz=70599632"http://tieba.baidu.com/f?kz=70599632ping原理与ICMP协议,http://hi.baidu.com/_ioini/blog/item/a64de1a75d34eb91d1435811.html附录:SOCKET编程SOCKET规范概述WindowsSockets规范以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套MicorosoftWindows下网络编程接口。它不仅包含了人们所熟悉的BerkeleySocket风格的库HYPERLINK"http://blog.mop.com/diary/main/diarySearchMore.jsp?v=函数"\t"_blank"函数;也包含了一组针对Windows的扩展库HYPERLINK"http://blog.mop.com/diary/main/diarySearchMore.jsp?v=函数"\t"_blank"函数,以使程序员能充分地利用Windows消息驱动机制进行编程。WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基