- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络程设计
课 程 设 计
课程名称 计算机网络课程设计
题目名称 PING程序设计
学生学院 计算机学院
专业班级 计算机科学与技术
学 号
学生姓名
指导教师 丁国芳
2008 年 12 月
目 录
1摘要 ……………………………………………………………… 3
2正文 ………………………………………………………………. 3
2.1 具体设计任务 …………………………………………… 3
2.2基本思路及所涉及的相关理论 ………………………….. 4
2.3方案设计 ………………………………………………… 4
2.4网络具体配置步骤与结果 ……………………………… 8
2.5 个人体会与建议 …………………………………………..10
3 参考文献 ……………………………………………………… 10
1 摘 要
我们常用Ping程序来判断一个特定的主机是否处于活动状态.该程序发送一个ICMP回应请求报文给主机,然后等待返回的ICMP报文回应应答就可以知道自己是否能成功的访问到那台机器.本次实验涉及到MFC的应用,要在充分了解套接字的实现以及IP,ICMP的格式,功能等的基础上才能实现此设计.
2 正 文
2.1具体设计任务:
2.1.1目的:
PING程序是我们使用的比较多的用于测试网络连通性的程序。PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。课程设计中选取PING程序的设计,其目的是希望同学们通过PING程序的设计,能初步掌握TCP/IP网络协议的基本实现方法,对网络的实现机制有进一步的认识。
2.1.2内容和要求:
1、RAW模式的SOCKET编程
PING程序是面向用户的应用程序,该程序使用ICMP的封装机制,通过IP协议来工作。为了实现直接对IP和ICMP包进行操作,实验中使用RAW模式的SOCKET编程。
熟悉SOCKET的编程,包括基本的系统调用如SOCKET、BIND等;
2、具体内容
1) 定义数据结构
需要定义好IP数据报、ICMP包等相关的数据结构;
2) 程序实现
在WINDOWS环境下实现PING程序;
3) 程序要求
在命令提示符下输入: PING ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ
其中ΧΧΧ为目的主机的IP地址,不要求支持域名,对是否带有开关变量也不做要求。不带开关变量时,要求返回4次响应。
返回信息的格式:REPLY FROM ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ或
REQUEST TimeOut (无法PING通的情况)。
熟悉IP以及ICMP协议的工作机制
熟悉RAW模式的SOCKET编程
编写PING的实现程序
编译环境中需要包括SOCKET库 WS2_32.lib
在模拟实现环境下调试并运行自己编写的PING程序
保留你实现的程序在你的用户目录下,以备辅导教师检查
最后提交源程序,撰写实验报告
2.2 基本思路及所涉及的相关理论:
Ping程序的实现方法是:主机向远程计算机发出ICMP回应请求以后,远程计算机会处理这个请求,然后生成一条回应应答消息,再通过网络传回给发送主机;假如由于某些原因不能抵达目标主机,就会生成对应的ICMP错误消息由那个路径上某处的一个路由器返回.如果是与远程主机的连接没问题,只是远程主机已经关机,便需要由自己的程序来执行超时检查.
2.3 方案设计;
用AppWizard从VC++中生成一个基于对话框的工程MyPing,将Ping服务封装成一个类Cping, Ping的头文件中包括了ICMP包数据结构常量定义,ICMP及IP的头结构定义, 完成了CPing类后还要把这个类用到对话框架中,所以在程序最后还要对界面的ping按钮功能关联到Cping类的函数中,用了一个Onping的函数,这里不作介绍.接下来介绍类Cping的代码:,
class CPing
{
public:
void SetConfigure(char * host,BOOL recordrout=FALSE,int size=DEF_PACKET_SIZE); //设置ping参数
void DecodeIPOptions(char *buf, int bytes); //解析IP可
文档评论(0)