网络实验课程设计-ping-马聪敏.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计(综合实验)报告 ( 2012 -- 2013 年度第 2 学期) 名 称: 网络综合实验 题 目:(1)Ping命令的设计与实现 (2)列车时刻表查询程序 院 系: 计算机 班 级: 网络工程1002 学 号: 201009030212 学生姓名: 马聪敏 指导教师: 李丽芬 设计周数: 2周 成 绩: 日期: 2013 年 6月4 日 课程设计的目的与要求 1.1.目的: 1.1.1任务:设计并实现一个Ping程序,以掌握UDP套接字的使用以及ICMP协议中ECHO报文的发送和接受方法 1.1.2目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。 1.1.3要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。 1.1.4学生要求人数:1人。 1.2.要求: 用标准的UDP套接字和ECHO报文实现一个简单的基于UDP的Ping程序,要求: 1.2.1发送方发送ECHO报文,远程主机对发送方返回响应; 1.2.2发送方能够确定他和被探测机器之间的往返时延。 二、设计正文 2.1总体设计 2.1.1 本系统共有 4 个模块,分别是初始化模块、功能控制模块、数据控制模块、数据报解读模块和ping测试模块,如图2.1所示。各模块功能描述如下。 Ping程序设计初始化模块 Ping程序设计 初始化模块 数据报解读模块 功能控制模块 Ping 测试模块 图 2.1 (1) 初始化模块。改模块用于初始化各个全局变量,为全局变量赋初始值;初始化,加载库。 (2)功能控制模块。改模块是被其它模块调用,其功能包括获取参数、计算校验和填充数据报文、释放占用资源和显示用户帮助。 (3)数据报解读模块。改模块用于解读接收到的报文和选项。 (4)测试模块。改模块是本程序的核心模块,调用其他模块实现其功能,主要是实现的功能。 2.1.2系统流程图 系统执行的流程图2.1.2所示。程序首先用AppWizard从VC++中生成一个基于对话框的工程MyPing,界面如下图: 将Ping服务封装成一个类CPing。在Ping.h中,先定义ICMP报数据结构常量: #define IP_RECORD_ROUTE 0x7 #define DEF_PACKET_SIZE 32 #define MAX_PACKET 1024 #define MAX_IP_HDR_SIZE 60 #define ICMP_ECHO 8 #define ICMP_ECHOREPLY 0 #define ICMP_MIN 8 程序流程图2.1 typedef struct _iphdr定义IP报文格式 typedef struct _icmphdr定义ICMP报文格式 typedef struct _ipoptionhdrIP头选项结构,当socket可选项设置成IP OPTIONS使用这个结构。用classCPing解析。 h-len:4 : 表示IP报头长度,首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4bit 字段,因此首部最长为60个字节,不包括任何选项的IP报头是20个字节。 Version:4: 表示IP的版本号,这里表示Ipv4.。 Top: 表示服务的类型,可以表示最小时延,最大吞吐量,最高可靠性和最小费用。 Total –len: 整个IP数据报的总长度。 Ident: 唯一的标识符,标识主机发送的每一份数据报。 Frag-flags: 分段标志,表示过长的数据报是否要分段。 Ttl: 生存期,表示数据报可以经过的最多路由器数。 Proto: 协议类型(TCP、UDP等)。 Checksum: 校验和。 sourceIP: 源IP地址。 destIP: 目的IP地址。 I_tye : ICMP 报文类型。  I_code : 该类型中的代码号,一种ICMP 报文的类型号和该类型中的代码号共同决定。、 I_cksum: 校验和。 I_se

文档评论(0)

mingqing18 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档