- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一、实验题目
编程模拟ping程序,实现Ping程序的根本功能,即接收到一个ping程序数据包后给出回应。
二、原理概述
ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。想要了解ping命令的原理必须了解ICMP协议、ICMP报文格式和IP报文格式。
〔1〕ICMP报文结构
ICMP报文结构:ICMP报文前四个字节为报文头局部,第一个字节为报文类型,第二个字节未用,第三四个字节为报文的校验和。从第四个字节开始为长度可变的数据段,该段的内容取决于ICMP的类型,本文所要使用的请求报文和请求应答报文的数据段中前四个字节是报文的标识符和顺序号。对于整个ICMP报文来说其长度最长不能超过64K字节。ICMP报文结构如图1所示。
0781516313247486364
类型
未用
校验和
标识符
顺序号
数据
〔2〕IP报文结构
ICMP报文和其它位于IP层的报文一样是作为IP报文的数据段加上IP报文头组成IP数据报发出,其中IP报文头长度一般为20个字节。如图2所示。
IP报文头
ICMP报文〔数据段〕
三、设计方案
根据实验题目查找相关资料,熟悉及理解ping的工作原理,从而进一步设计ping程序的功能图和系统流程图。准备工作做好后就可上机调试,验证其可行性并查找漏洞,完善ping程序。
ping程序的设计包含了4局部:IP、ICMP的头结构,主函数模块,CMP数据包校验和的计算和使用说明模块。
Ping程序设计
Ping程序设计
IP、ICMP的头结构
ICMP数据包校验和
主函数
模块
使用说明模块
SHAPE〔2〕系统流程图
首先在主函数里定义变量同时进行初始化,然后检查参数的正确性,如果参数不正确或者没有输入参数,那么显示用户帮助信息(Usage),并结束程序;如果参数正确,那么对指定目的地执行Ping命令,如果Ping通,那么显示Ping结果并释放占用资源,如果没有Ping通,那么报告错误信息,并释放占用资源。如图3所示。
开始
开始
初始化变量
获取参数信息
输入参数是否正确?
Ping目的地
成功?
输出Ping结果
释放占用资源
结束
输出错误信息
显示帮助信息
图3系统流程图
〔3〕数据结构设计
本程序定义了2个结构体:iphdr、-ihdr,分别用于存放IP报头信息、ICMP报头信息。
〔4〕主函数,使用说明,数据包校验和的计算的相关程序在程序中会有表达。
四、程序编写
#includewinsock2.h//WinsockAPI头文件
#includestdio.h
#includestdlib.h
#pragmacomment(lib,ws2_32.lib)//WinsockAPI连接库文件
/*IP头结构*/
typedefstructiphdr{
BYTEh_len:4;//首部长度指的是IP层头部占32bit字的数目
//(也就是IP层头部包含多少个4字节,实际字节数4*hlen),
BYTEversion:4;//IP版本号
BYTEtos;//效劳类型TOS
USHORTtotal_len;//IP包总长度
USHORTident;//标识
USHORTfrag_and_flags;//标志位
BYTEttl;//生存时间
BYTEproto;//协议
USHORTchecksum;//IP首部校验和
UINTsourceIP;//源IP地址(32位)
UINTdestIP;//目的IP地址(32位)
}IpHeader;
/*ICMP头结构*/
typedefstruct_ihdr{
BYTEi_type;//类型发出的ICMP为8(ICMP_ECHO_REQUEST),接受到的ICMP为0
BYTEi_code;//代码
USHORTi_cksum;//ICMP包校验和
USHORTi_id;//识别号(一般用进程号作为标识号)
USHORTi_seq;//报文序列号(一般设置为0)
ULONGtimestamp;//时间戳
}IcmpHeader;
USHORTchecksum(USHORT*,int);/
您可能关注的文档
- 唐传奇与俗讲.ppt
- 美国联邦快递物流经营模式分析报告.doc
- 同李十一醉忆元九.pptx
- 因为你真好---洛杉矶真理堂Truth-Evangelical-ChurchOF-….ppt
- 周三多管理学-第十二激励.ppt
- 组合图形的面积练习题.doc
- 团队建设-团队四戒.ppt
- 苏州邻里中心.doc
- 苏教版小学二年级数学下册第7单元角的认识练习一.doc
- 美丽乡村建设项目施工组织方案.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 第三节 免疫分析仪器的维护_医疗设备维护概论_第四章 医用检验设备的维护.pptx
- 垃圾分类整治工作总结.pptx
- 2024年常见人力资源面试题库(通用7篇).pdf
- 《糟糕,身上长条纹了!》绘本故事PPT2套.pptx
- 25题规划发展岗位常见面试问题含HR问题考察点及参考回答.pdf
- 清华大学央企班组长远程培训自测题及答案(17门课合集).pptx
- 英语国家概况课后习题答案解析(完整版).doc
- 幼儿园 大班数学《美丽的对称图形》.pptx VIP
- 新视野大学英语(第三版)读写教程Section B-Too much of a good thing – A real addiction.ppt
- 2023年中小学教师职称考试试题含答案.docx
文档评论(0)