- 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命令的设计与实现》
专业班级 计科094
同组人姓名
同组人学号
实验日期 2013-04-10
指导教师
成 绩
2013 年 04 月 10 日
设计目的和要求
1、实验目的:
Ping命令向目的主机发送ICMP ECHO—REQUEST请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。
2.实验要求:
利用ICMP数据包,测试主机的连通性,通过课程设计,使学生熟悉ICMP报文结构,使学生对ICMP有更深的理解。要求:输出参考系统自带ping程序,命令行运行:ping ip
二、设计说明
设计分析:
使用原始套接字可以读写ICMP分组,利用原始套接字发送ICMP回显请求,并接收ICMP回显应答,通过icmp_send()发送ICMP回显示请求包,icmp_recv() 接收ping目的主机的回复,并使用终端信号处理函数SIGINT处理信号,建立两个线程,一个用于发送数据,另一个用于接收响应数据,主程序等待两个线程运行完毕后再进行下一步动作。最后,主程序讲发送数据和接收的数据进行统计,并将结果打印出来。
系统运行环境:
虚拟机:Fedora14(linux操作系统) gcc
设计中的重点和难点:
ICMP数据包的打包和解包,以及从CRC16校验算法的分析实现
输入和输出条件:
在linux系统下运行ping 在出现4个响应包后按Ctrl+c键停止发送。
三、系统详细设计《 Ping命令的设计与实现 》
Ping命令向目的主机发送ICMP ECHO—REQUEST请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。
协议格式
图1.1中已经对ICMP协议的报文格式进行了说明。Ping 的客户端方式的类型为8,代码值为0,表示ICMP的回显请求。类型为0,代码为0是,是ICMP回显应答。检验和为16为的 crc16 的算法。
0 7 8 15 16 31
类型(8位) 代码(8位) 校验和(16位)
此部分不同的类型和代码格式不同
图 1.1 ICMP报文的数据格式
图1.2所示为 ping所使用的类型和代码格式。包含16位的标始符和16为的序列号。序列号是用于标识发送或者响应的序号,而标示符通常用于表明发送和接收此报的用户,一眼用进程的PID来识别。
0 7 8 15 16 31
类型
(8或0) 代码(0) 校验和 标示符 序列符
占位字节
图1.2 ping的数据格式
例如一个用户的进程PID为1000,发送了一个序列号为1的回显请求报文,当此报文被目的主机正确处理并返回后,可以用PID来识别是否为当前的用户,并且用序列号来识别哪个报文被返回,通过发送报文到目的主机并接受响应,可以计算发送和接收二者之间的时间差,来判断网络的状况。
如图1.3所示,ping程序一般按照图中的框架进行设计。主要分为发送数据和接收数据及计算时间差。发送数据对组织好的数据进行发送,接收数据从网络上接收数据并判断其合法性,例如判断是否本进程发出的报文等。
图1.3 ping程序的基本框架
由于ICMP必须使用原始套接字进行设计,要手动设置IP的头部和ICMP的头部并进行校验。
校验和函数
TCP/IP 协议栈使用的校验算法是比较经典的,对16为的数据进行累加计算,并返回计算结果。需要注意的是对奇数个字节数据的计算,是将最后的有效数据作为最高位的字节,低字节填充了0。
设置IP发送报文的头部
ip头部格式:
设置ICMP发送报文的头部
对于回显请求的ICMP报文,下面是ICMP结构简化形式:
即仅包含消息类型、消息代码、校验和、数据报的ID、数据报的序列号即ICMP数据段几个部分。校验和的值在计算之前其他的值应该先进行填充,而校验和也需要设置为0来占位,然后在计算真正的校验和值。
ICMP回显得数据部分可以任意设置,但是以太网包的总长度不能小于以太网的最小值,即总长度不能小于46,由于IP头部为20字节,ICMP头部为8个字节,以太网头部占用14个字节,因此ICMP回显包的最小值为46-20-8-14=4个字节。
ICMP回显请求的类型为8,即ICMP-ECHO。
您可能关注的文档
- 数据仓库设计与实现.doc
- -个人网站设计与实现.doc
- 家庭无线网络设计与实现.doc
- 门户网站设计与实现.doc
- 教学设备管理系统的设计与实现-毕业论文.doc
- (定稿)王波丽基于web的宠物领养助养系统的设计与实现0905170329-(1).doc
- 基于JSP的家教信息管理系统的设计与实现.doc
- 航空售票系统的设计与实现.doc
- 请求调页存诸管理系统的设计与实现.doc
- QPSK调制电路的设计与实现.doc
- 2026年消防设施操作员之消防设备基础知识考试题库500道带答案(新).docx
- 销售岗前培训课件.ppt
- 2026年消防设备操作员考试题库500道(典型题).docx
- 2026年消防设施操作员之消防设备高级技能考试题库300道附答案(实用).docx
- 2026年消防设施操作员之消防设备高级技能考试题库300道标准卷.docx
- 2026年材料员之材料员基础知识考试题库300道附完整答案(全优).docx
- 2026年材料员之材料员基础知识考试题库300道带答案(培优a卷).docx
- 2026年机械员考试题库含答案(轻巧夺冠).docx
- 2026年材料员之材料员基础知识考试题库300道【夺分金卷】.docx
- 2026年期货从业资格之期货法律法规考试题库500道(考点精练).docx
文档评论(0)