- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编程实现ping命令
哈尔滨理工大学
《UNIX/Linux程序设计》
课程设计报告
题 目: 编程实现ping命令
院 系:计算机科学与技术学院 网络工程系
班级学号: 网络二班 1304020217
姓 名:
指导教师:
成 绩:
2016年01月07日
目 录
第1章 绪论 2
1.1 ping工作原理 2
1.2 ICMP协议 2
1.3 内容及功能描述 3
1.4 设计目的 3
第2章 系统设计 4
2.1系统流程设计 4
2.2数据结构设计 5
第3章 系统实现 8
3.1程序测试结果 8
结 论 10
参考文献 11
附录A 核心程序代码 12
绪论
ping命令是使用频率极高的一个网络测试命令,用以测试从一个主机到另一个主机间的网络上否可达。windows自带的ping命令具有强大的功能,它有很多选项用于实现不同的测试目的。本章模仿windows的ping命令,用c语言实现了一个简单的命令。本章着重讲述ping命令的实现原理和c语言的网络编程方法。读者可以在本章的基础上,对本章实现的ping命令进行扩展,开发出功能更强大、更完善的ping命令,并进一步掌握网络编程的方法。
Ping工作原理
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方。ICMP协议是IP层的一个协议,但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。编程实现ping命令c语言实现的ping命令,能用于测试一个主机到另一个主机间的联通情况,程序还提供了几个选项以实现不同的功能。?
(1)实现ping功能。程序能实现基本的ping操作,发送ICMP回显请求报文,接收显应答报文。
?(2)能记录路由。程序提供了“-r”选项,用以记录从源主机到目的主机的路由。
?(3)能输出指定条数的记录。程序提供了“-n”选项,用以输出指定条数的记录。
(4)能按照指定大小输出每条记录。程序提供了“datasize”选项,用以指定输出的数据报的大小。
(5)能输出用户帮助。程序提供了用户帮助,显示程序提供的选项以及选项格式等
设计目的
PING 程序是我们使用的比较多的用于测试网络连通性的程序。PING 程序基于 ICMP,使 用 ICMP 的回送请求和回送应答来工作。由计算机网络课程知道,ICMP 是基于 IP 的一个协 议,ICMP 包通过 IP 的封装之后传递。 课程设计中选取 PING 程序的设计, 其目的是希望同学们通过 PING 程序的设计, 能初步 掌握 TCP/IP 网络协议的基本实现方法,对网络的实现机制有进一步的认识。
Ping是使用得比较多的用于测试网络联通性的程序,Ping是基于ICMP协议,使用ICMP的回送请求和回送应答来工作。
系统设计
系统流程设计
系统流程图
程序首先初始化各全局变量,然后获取用户输入的参数,检查用户输入的参数,如果参数不正确或者没有输入参数,则显示用户帮助信息(User help ),并结束程序;如果参数正确,则对指定目的地执行Ping命令,如果Ping通,则显示Ping结果并释放占用资源,如果没有Ping通,则报告错误信息,并释放占用资源。
数据结构设计
1.ICMP数据报与程序定义
Ping命令中需要显示的信息,包括icmp_seq和ttl都已有实现的办法,但还缺rtt往返时间。为了实现这一功能,可利用ICMP数据报携带一个时间戳。时间戳其中timeval结构如下:struct timeval{
long tv_sec; long tv_usec;
}
其中tv_sec为秒数,tv_usec微秒数。在发送和接收报文时由 gettimeofday分别生成两个timeval
您可能关注的文档
- 管道工程讲稿 铁路槽车装卸设计.ppt
- 管道清灰机器人设计.doc.doc
- 箱体压盖铸件铸造工艺设计.doc
- 管理者的心态培养与潜能激发.doc
- 管理科学与工程介绍与前沿清华大学.ppt
- 篮球专项评分表格-高考田径专项评分标准.doc
- 篮球比赛计时计分实时时钟系统.doc
- 篮球竞赛的记录台工作与 编排名次排列.ppt
- 粉末静电喷涂油漆及热镀锌和冷镀锌.doc
- 粉末冶金偏心轮模具设计论文.doc
- 江苏省南京市2025届高三学业水平调研考试数学试卷(含答案).pdf
- 22《为中华之崛起而读书》 课件(共30张PPT).pptx
- 18古诗三首 《江南春》课件(共28张PPT) (1).pptx
- 24《古人谈读书》课件(共31张PPT).pptx
- 喜迎国庆,盛世中华——国庆节主题班会 课件(共37张PPT内嵌视频).pptx
- 期中测试卷(1-4单元)(试题)(含答案)-2024-2025学年六年级上册数学人教版.pdf
- 吉林省吉林市吉林省实验中学2025届高三上学期开学学业诊断考试数学试题(含答案).pdf
- 江西省赣州市第一中学2024-2025学年高三上学期开学考试政治试题(无答案).pdf
- 统编版语文八年级上册第五单元训练题(含答案).pdf
- 27故事二则《扁鹊治病》 课件(共15张PPT).pptx
文档评论(0)