PING 命令

ping(package internet grope,因特网包探索器)是一个用于测试网络连接量的程序。
它使用的是ICMP,ping发送一个ICMP(Internet control and message protocol,因特网控制报文协议)请求消息给目的地并报告是否收到希望的ICMP应答。
ICMP是TCP/IP 协议族的一个子协议,用于在IP主机、路由器之间传递信消息。它是用来检测网络是否畅通或者网络连接速度的命令。

ICMP是(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议族的一个子协议(网络层协议),用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。icmp百度百科

ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.
如下图所示,ICMP包有一个8字节长的包头,其中前4个字节是固定的格式,包含8位类型字段,8位代码字段和16位的校验和;后4个字节根据ICMP包的类型而取不同的值。


icmp结构

但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成(ping)。
Ping的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。


该协议的应用

ps: ping 是一个程序,是基于ICMP上进行开发的程序。

由于网络上的机器都有唯一的IP地址,当给目标IP地址发送一个数据包(包括对方的IP地址和自己的地址以及序列数)时,对方就要返回一个同样大小的数据包(包括对方地址),根据返回的数据包可以确定目标主机存在,可以初步判断目标主机的操作系统等。

eg:
执行:ping www.xidian.edu.cn 通常是通过DNS服务器,如果这里出现了故障,则表示DNS服务器的IP地址配置不正确和DNS服务器故障。
一定可以利用ping 实现域名对IP地址的转换功能。
eg:

下面ping www.baidu.com

表示此事发送的小数据包与该网络地址是畅通的;
ping www.google.com

下面表示发送的小数据不能够到达目的地。
导致的原因:(1)网络不通 (2)网络连接状况不佳
使用带有参数的ping来进行判断是哪一种情况
ping www.google.com -t -w 3000 不断的向目的主机发送数据,并且相应时间增加到3000。
如果还是现实request time out ,表示网络确实不通
如果不是全部显示'request timed out' 则表示网站还是通的,只会响应时间长或者通讯状况不佳。
ps:由于ping使用的是ICMP,有一些防火墙软件会屏蔽掉ICMP,所以有的时候ping的结果只能够作为参考(ping 不通不能够说明对方的IP不存在)。
通常情况下:通过ping进行网络故障判断时,如果ping运行正确,大体上就可以排除网络访问层、网卡、modern的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。

ICMP 在编程中会用到吗?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,174评论 6 174
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 6,002评论 1 13
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,116评论 0 8
  • 9.1 引言 选路是IP最重要的功能之一。图9-1是IP层处理过程的简单流程。需要进行选路的数据报可以由本地主机产...
    张芳涛阅读 1,218评论 0 2
  • 1、Ping的基础知识 ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当...
    爱睡觉的魚阅读 8,459评论 1 10