Ping 命令详解

article/2025/10/7 6:04:03

简述:

ICMP协议是“Internet Control Message Protocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

 

 

ping (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令

 

 

ping命令通常用来作为网络可用性的检查。ping命令可以对一个网络地址发送测试数据包,看该网络地址是否有响应并统计响应时间,以此测试网络。

 

ping和ICMP的关系:ping命令发送数据使用的是ICMP协议。

 

ping的原理

向指定的网络地址发送一定长度的数据包,按照约定,若指定网络地址存在的话,会返回同样大小的数据包,当然,若在特定时间内没有返回,就是“超时”,会被认为指定的网络地址不存在。

ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。在Unix/Linux,序号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。

ICMP协议在实际传输中数据包:20字节IP首部 + 8字节ICMP首部 + 1472字节<数据大小>38字节。

ICMP报文格式:IP首部(20字节) + 8位类型 + 8位代码 + 16校验和 + (不同类型和代码,格式也有所不同)。

 

 

1、打开DOS命令界面

通过点击开始菜单中的“运行”选项,输入“cmd”, 回车即可打开。

 

2、输入ping /? ,列出ping的相关参数

 

 

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

           [-r count] [-s count] [[-j host-list] | [-k host-list]]

           [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

 

3、ping命令详解

 

 

-t :Ping 指定的计算机直到中断。

-a :将地址解析为计算机名。

-n count :发送 count 指定的 ECHO 数据包数。默认值为 4。

-l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。

-f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。

-i ttl :将"生存时间"字段设置为 ttl 指定的值。

-v tos :将"服务类型"字段设置为 tos 指定的值。

-r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

-s count :指定 count 指定的跃点数的时间戳。

-j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

-k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

-w timeout :指定超时间隔,单位为毫秒。

destination-list :指定要 ping 的远程计算机。

 

4、使用Ping这命令来测试网络连通

 

连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。

首先我们讲一下使用Ping命令的步骤。

使用Ping检查连通性有五个步骤:

 

A. 使用ipconfig /all观察本地网络设置是否正确,如图;

 

 

B.Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;

 

 

C. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;

 

 

D. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)

 

E. Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。

 

 

5、用Ping命令来判断一条链路好坏

 

Ping这个命令除了可以检查网络的连通和检测故障以外,还有一个比较有趣的用途,那就是可以利用它的一些返回数据,来估算你跟某台主机之间的速度是多少字节每秒。

 

 

在例子中:

"字节=32"表示ICMP报文中有32个字节的测试数据;

"时间=6ms"是往返时间。 

"已发送=4"发送多个秒包、"已接收=4"收到多个回应包、"丢失=0"丢弃了多少个;

Minmum 最小值 、MAXimun 最大值、Average 平均值。

所在图上来看,来回只用了6MS 时间,lost =0 即是丢包数为0,网络状态相当良好;

 

6、对Ping后返回信息的分析

6.1  Request timed out

这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,从上面工作过程来看,这是不完全正确的,至少有下几种情况:

A. 对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中Ping 192.168.0.7,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。

B. 对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。

C. 对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。

怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。

D. 错误设置IP地址

正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:

a. 主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。

b. 主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。

 

6.2 Destination host Unreachable

A. 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping 192.168.0.1.4就会出现“Destination host Unreachable”。

B. 网线出了故障

这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。

 

6.3 Bad IP address

这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。

 

6.4 Source quench received

这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

 

6.5 Unknown host——不知名主机

这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

 

6.6 No answer——无响应

这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

 

6.7 Ping 127.0.0.1:127.0.0.1是本地循环地址

如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作

 

6.8 no rout to host

网卡工作不正常。

 

6.9 transmit failed,error code

10043网卡驱动不正常。

 

6.10 unknown host name

DNS配置不正确。

 

 

需要了解其他请参考以下:

http://blog.csdn.NET/WaderChan/article/details/4199913

http://blog.163.com/dl_hao/blog/static/212541180201441210585525/

http://blog.csdn.Net/lvc851116/article/details/8137202

http://blog.csdn.net/dbzhang800/article/details/6876451

http://www.cnblogs.com/wang1994/p/5943154.html


http://chatgpt.dhexx.cn/article/yRLgSPkr.shtml

相关文章

ping命令详解 ping命令入门详解

在这个时代&#xff0c;科技越来越发达&#xff0c;网络已经越来越成为人们不可缺少的一部分。计算机也已经是很多学校的课程了&#xff0c;因为计算机技术是非常有技术性的专业&#xff0c;它其中涉及到很多专业知识&#xff0c;需要通过学习才能掌握。今日小编就为大家介绍一…

ping命令(详解)

简述&#xff1a; ICMP协议是“Internet Control Message Protocol”&#xff08;因特网控制消息协议&#xff09;的缩写。它是TCP/IP协议族的一个子协议&#xff0c;用于在IP主机、路由器之间传递控制消息。 ping (Packet Internet Groper)&#xff0c;因特网包探索器&#xf…

Ubuntu系统中清理DNS缓存

在下一篇文章中&#xff0c;我们将看一看 我们如何在Ubuntu中刷新DNS缓存。 DNS被认为是Internet连接的关键部分之一。 目的是更快地访问访问的网站。更常见的是&#xff0c;我们的机器会跟踪DNS记录&#xff0c;或者将其缓存。 迄今为止&#xff0c;IP地址的命名是DNS协议中…

DNS 缓存查看以及清除(转载)

转载地址&#xff1a;https://blog.csdn.net/cogbee/article/details/27535039 你是否因修改网站DNS解析后&#xff0c;却因本机DNS缓存而需要等待... 你是否遇到修改了本机的hosts文件后&#xff0c;必须重起firefox和ie才起作用... 其实只要清空DNS缓存这些问题都可以解决。 …

【DNS】Linux上DNS缓存的开启和清理

DNS 缓存是一个临时数据库&#xff0c;用于存储有关以前的 DNS 查找的信息。 换句话说&#xff0c;每当你访问网站时&#xff0c;你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。 这消除了对远程 DNS 服务器重复查询的需要&#xff0c;并允许你的 OS 或浏览器快…

如何刷新DNS缓存(Windows,Mac,Chrome)

对网站进行故障排除可能是一个令人生畏的责任。当涉及到诸如刷新域名服务器&#xff08;DNS&#xff09;缓存之类的任务时&#xff0c;在您开始之前就很容易感到不知所措和困惑。 幸运的是&#xff0c;即使没有什么技术经验&#xff0c;您也可以快速&#xff0c;轻松地执行此特…

如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari

请访问原文链接&#xff1a;https://sysin.org/blog/clear-browser-dns-cache/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者&#xff1a;gc(at)sysin.org&#xff0c;主页&#xff1a;www.sysin.org 对普通用户而言&#xff0c;关闭后重新打开浏览器一…

本机电脑清除DNS缓存+浏览器清除DNS缓存

目录 前言 一、Windows 二、Mac OS 三、Linux 四、路由器 五、浏览器 谷歌浏览器 Edge浏览器 火狐浏览器 总结语 前言 有时候在我们配置好了DNS地址后没有生效&#xff0c;可能是缓存导致的&#xff0c;这个时候我们就需要通过清除缓存的手段才能使DNS生效了&#xff…

如何查看浏览器的DNS 缓存信息

浏览器的DNS缓存查看和清除 有dns的地方&#xff0c;就有缓存。浏览器、操作系统、Local DNS、根域名服务器&#xff0c;它们都会对DNS结果做一定程度的缓存。本文总结一些常见的浏览器和操作系统的DNS缓存时间 浏览器先查询自己的缓存&#xff0c;查不到&#xff0c;则调用域…

Linux服务器如何清除dns缓存

Linux服务器如何清除dns缓存 DNS缓存是一个临时数据库&#xff0c;用于存储已解释的DNS查询信息。换句话说&#xff0c;每当你访问网站时&#xff0c;你的操作系统和网络浏览器都会保留域名和相应IP地址的记录。 这消除对远程DNS服务器重复查询&#xff0c;并允许你的操作系统…

DNS 刷新:清除 DNS 缓存的方法详解

Windows 等操作系统会在所谓的 DNS 缓存中自动生成访问网站的临时条目。 缓存中包含的信息在定义的时间段内有效。 DNS 刷新&#xff0c;即清空缓存&#xff0c;会在时间限制到期之前从系统中删除数据。 什么是 DNS 刷新&#xff1f; DNS 刷新是手动删除 DNS 缓存的临时条目的…

DNS服务与缓存

DNS服务 DNS的作用DNS的解析方式DNS的协议端口号DNS的解析过程DNS 缓存 DNS 缓存服务搭建 DNS的作用 将域名解析成IP地址 DNS的解析方式 正向解析&#xff1a;域名解析出IP。 反向解析&#xff1a;IP解析出域名 DNS服务器存储着大量的ip和域名映射记录&#xff0c;它的记录…

刷新DNS缓存

小知识: 当dns堆积过多,或者指向出现错误时,会影响网页速度,甚至上不了网(感觉上),所以刷一下还是可以的 winR键 cmd回车 输入 ipconfig/flushdns (不用担心该作用仅刷新缓存&#xff09; 好了 备注&#xff1a;dns缓存是干啥的&#xff0c;就是用来记录网址对应的ip地址的…

macOS如何刷新DNS缓存

有的时候&#xff0c;我们会遇到网页打不开或者访问慢的情况&#xff0c;这个时候&#xff0c;我们一般可以通过刷新DNS缓存来解决。今天我就教一教大家macOS如何刷新DNS缓存。 什么是DNS 域网络系统 (DNS) 服务器将熟悉的域名&#xff08;如 howtogeek.com&#xff09;转换为…

怎么清除DNS缓存?

怎么清除DNS缓存&#xff1f; 一、DNS相关概念认知1、DNS是什么?2、DNS缓存是什么?3、为什么要清理DNS缓存? 二、清理DNS缓存方法1、MacOS 清除DNS缓存第一步 进入终端 (MacOS)第二步 执行指令 (MacOS)1&#xff09;OS X 10.12 (Sierra) and later2&#xff09;OS X 10.11 (…

你真的知道如何正确清除 DNS 缓存吗?( 附全平台详细教程 )

DNS 缓存是一个临时数据库&#xff0c;用于存储有关以前的 DNS 查找的信息。换句话说&#xff0c;每当你访问网站时&#xff0c;你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。这消除了对远程 DNS 服务器重复查询的需要&#xff0c;并允许你的 OS 或浏览器快速解…

DNS服务与配置缓存服务

文章目录 前言一、了解DNS1.DNS的作用2.DNS的解析方式3.使用DNS的原因4.DNS的协议端口号5.DNS的5层层级 二、DNS的解析过程三、DNS缓存1.DNS缓存服务器解析2.DNS缓存服务搭建 前言 DNS又称域名解析服务&#xff0c;因为我们对数字不敏感&#xff0c;记不住IP地址&#xff0c;所…

DNS高速缓存

DNS相关资料&#xff1a; 1.什么是DNS DNS&#xff08;Domain Name System域名系统&#xff09; 是互联网上存储域名和ip映射关系的一个分布式数据库&#xff0c;它负责把域名转换成ip地址&#xff0c;或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。 2.什么是高速…

DNS 缓存、CDN 缓存、浏览器缓存,JVM DNS 缓存详解

最近测试遇到修改host文件后&#xff0c;清除浏览器缓存后&#xff0c;重启浏览器后&#xff0c;发现浏览器还是访问老DNS服务&#xff0c;于是网上查查原因&#xff0c;豁然开朗。 这里对互联网上一些文章进行整理&#xff0c;原文可查看参。 1、DNS 缓存 1.1 什么是DNS 全…

2020年IT技术趋势概览

RW网站发布了2020最新技术发展趋势及2019数据统计&#xff0c;几乎涵盖了IT&#xff0c;通信&#xff0c;AI等领域的所有技术。 语言方面&#xff0c;python发展最快&#xff0c;使用最多的是JS 5G,BI,区块链都在2019年有了爆炸式的发展