1 / 22
文档名称:

ping命令的设计与实现.doc

格式:doc   大小:111KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ping命令的设计与实现.doc

上传人:rdwiirh 2018/2/21 文件大小:111 KB

下载得到文件列表

ping命令的设计与实现.doc

相关文档

文档介绍

文档介绍:设计报告
课程计算机网络
设计名称《ping命令的设计与实现》
专业班级计科094
同组人姓名
同组人学号

实验日期 2013-04-10
指导教师
成绩
2013 年 04 月 10 日
设计目的和要求
1、实验目的:
Ping命令向目的主机发送ICMP ECHO—REQUEST请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。
:
利用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请求并接收目的主机返回的响应报文,用来检验本地主机和远程的主机是否连接。
协议格式
。Ping 的客户端方式的类型为8,代码值为0,表示ICMP的回显请求。类型为0,代码为0是,是ICMP回显应答。检验和为16为的 crc16 的算法。
0 7 8 15 16 31
类型(8位)
代码(8位)
校验和(16位)
此部分不同的类型和代码格式不同

图 ICMP报文的数据格式
ping所使用的类型和代码格式。包含16位的标始符和16为的序列号。序列号是用于标识发送或者响应的序号,而标示符通常用于表明发送和接收此报的用户,一眼用进程的PID来识别。
0 7 8 15 16 31
类型
(8或0)
代码(0)
校验和
标示符
序列符
占位字节
ping的数据格式
例如一个用户的进程PID为1000,发送了一个序列号为1的回显请求报文,当此报文被目的主机正确处理并返回后,可以用PID来识别是否为当前的用户,并且用序列号来识别哪个报文被返回,通过发送报文到目的主机并接受响应,可以计算发送和接收二者之间的时间差,来判断网络的状况。
,ping程序一般按照图中的框架进行设计。主要分为发送数据和接收数据及计算时间差。发送数据对组织好的数据进行发送,接收数据从网络上接收数据并判断其合法性,例如判断是否本进程发出的报文等。
开始
设置发送数据
计算机发送数据校验和
发送数据
接收数据
计算时速差
解包判断正误
结束
ping程序的基本框架
由于ICMP必须使用原始套接字进行设计,要手动设置IP的头部和ICMP的头部并进行校验。
校验和函数
TCP/IP 协议栈使用的校验算法是比较经典的,对16为的数据进行累加计算,并返回计算结果。需要注意的是对奇数个字节数据的计算,是将最后的有效数据作为最高位的字节,低字节填充了0。
/* CRC16校验和计算icmp_cksum
参数:
data:数据
len:数据长度
返回值:
计算结果,short类型
*/
static unsigned short icmp_cksum(unsigned char *data, int len)
{
int sum=0;/* 计算结果*/
int odd = len & 0x01;/*是否为奇数*/
unsigned short *value = (unsigned short*)data;
/*将数据按照2字节为单位累加起来*/
while( len & 0xfffe) {
sum += *(unsigned short*)data;
data += 2;
len -=2;
}
/*判断是否为奇数个数据,若ICMP报头为奇数个字节,会剩下最后一字节。*/
if( odd) {
unsigned short tmp = ((*data)<

最近更新

给员工的生日祝福语句短句29句 53页

第十章-起诉与受理-行考诉讼法学课件 20页

高中通用技术情境教学的实践研究的开题报告 2页

高中生数学思维能力现状实证研究的开题报告 2页

高中化学探究性实验的创新研究的开题报告 2页

饱和砂土中裙式吸力桶形基础竖向承载力分析的.. 2页

2024年最新-高考工作总结优秀 8页

2024年最佳贡献获奖感言通用 6页

2024年暖春优秀观后感 5页

计算机组装与维护06系统与文件的备份和还原课.. 36页

韩日学生“把”字句偏误类型对比研究——基于.. 2页

谵妄护理查房-课件 18页

面向网络交易信任缺失模型研究的开题报告 2页

面向地质科普的影像设计研究的开题报告 2页

面向全光样本的距离测量算法研究的开题报告 2页

2024年晚自习申请书[共14篇] 13页

附网存储系统-信息存储理论与技术-教学课件 21页

2024年春节走访慰问主题活动方案范文 7页

2024年春节的小学作文 9页

妇产科市级重点专科汇报 26页

停车位标线施工技术交底 2页

(完整版)北京市家庭居室装饰装修工程施工合同.. 15页

历城县志正续合编 3 3页

省级道路交通事故紧急医疗救治工作机制 5页

QB T 1690-2021 贵金属饰品质量测量允差的规.. 8页

再生资源回收有限公司企业管理制度汇编 62页

梦参老和尚主讲大乘大集地藏十轮经 95页

完全电子版非扫描 《110kV~500kV架空电力线路.. 28页

《净土资粮—信愿行》---大安法师讲-word资料.. 28页