Ping 命令详解

2023-11-10

简述:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ping 命令详解 的相关文章

  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 在 Blogger 中使用相对链接

    我正在使用博主 当我需要在我的博客文章中提到一个链接并且该链接实际上是我自己的博客文章的链接时 我在其旁边提到标签 www my blog name blogspot in 12 2013 how to do html if i chang
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • Python:无法使用 os.system() 打开文件

    我正在编写一个使用该应用程序的 Python 脚本pdftk http www pdflabs com tools pdftk the pdf toolkit 几次来执行某些操作 例如 我可以在 Windows 命令行 shell 中使用
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 将文件夹中的所有文件及其所有子文件夹移动到一个大文件夹中 - windows xp

    我有一个文件夹 c downloads ffme 里面有很多子文件夹 每个子文件夹中都有不同数量的文件 我想将所有这些单独的文件合并到一个大文件夹中 同时将它们从子文件夹中删除 我希望最终得到一个包含大量文件的文件夹 但没有子文件夹 我怎样
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 有没有办法在 MS Windows(Powershell 或 CMD)的 ripgrep 中转义引号?

    我想找一个字符串 Hello Hello 以双引号开头 在文本文件中使用ripgrep 通常 在 Bash 或 ZSH 中 这可以通过用反斜杠转义或用单引号括起来来实现 rg Hello rg Hello 然而 在 MS Windows P
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C

随机推荐

  • 【01】花卉识别-基于tensorflow2.3实现

    2021年6月18日重大更新 目前已经退出bug修复之后的tensorflow2 3物体分类代码 大家可以训练自己的数据集 快来试试吧 csdn教程链接 手把手教你用tensorflow2 3训练自己的分类数据集 CSDN博客 b站视频链接
  • APP自动化测试-4. App控件交互

    APP自动化测试 4 App控件交互 文章目录 APP自动化测试 4 App控件交互 前言 一 元素常用的操作方法 二 元素的常用属性 总结 前言 简单介绍元素的操作方法和元素的属性 一 元素常用的操作方法 click 元素点击 send
  • Mybatis使用in传入List的三种方法

    1 非xml方式 使用注解传in 要使用 Select
  • 全国计算机等级考试三级数据库技术(十一)

    第十一章 故障管理 考点分析 在考试中一般情况下会出现在选择题 填空题部分 常考知识点有 1 掌握故障类型及相应的解决方法 2 掌握数据转储与日志文件的相关内容 3 掌握RAID的冗余技术和服务器容错技术 4 熟悉数据库镜像与数据库容灾 1
  • Java 实战项目-- 家庭记账程序

    模拟实现一个基于文本界面的 家庭记账软件 该软件能够记录家庭的收入 支出 并能够打印收支明细表 项目采用分级菜单方式 主菜单如下 具体要求 查询收支明细 菜单1 时 将显示所有的收入 支出名细列表 每次登记收入 菜单2 后 收入的金额应累加
  • 一、C语言初阶:指针

    1 指针 1 1 指针的算术运算 指针移动 int arr 1 2 3 4 5 int p arr int q 移动指针顺序打印 for int i 0 i lt 5 i q p i printf d q printf n 移动指针倒序打印
  •  RedHat 7.2 安装 Zabbix 监控程序详解(适合对linux初级用户)

    目录 RedHat 7 2 安装 Zabbix 监控程序详解 适合对linux初级用户 2020 0927 1 安装环境 查看环境 2 准备yum环境 3 安装LAMP架构 4 zabbix的安装和配置 4 1 第一次出现报错 4 2 第二
  • Rust——Macos安装使用

    进入官网会自动检测当前是什么操作系统 我的是Mac 所以使用官网给的命令安装就可以了 终端输入 curl proto https tlsv1 2 sSf https sh rustup rs sh 安装过程中 最后一步需要输入选择 输入1是
  • 光线追踪

    光追比较流行 其实很多公司也没用到 学习了下 就是反过来进行了 颜色从物体到像素 改为颜色从像素到物体了 碰撞检测就是射线和球之间的三角形关系 根据韦达定理可以判断 不相交 一个值或者两个值 即中学数学 上图
  • windows更改远程桌面端口命令和手动更改方法

    打开命令提示符窗口 按 Win R 快捷键 输入 cmd 然后按 Enter 键 输入以下命令并按 Enter 键 例子 reg add HKLM SYSTEM CurrentControlSet Control Terminal Serv
  • 买彩票能中大奖?用Java盘点常见的概率悖论

    引言 双色球头奖概率与被雷劈中的概率哪个高 3人轮流射击 枪法最差的反而更容易活下来 让我们用Java来探索ta们 悖论1 著名的三门问题 规则描述 你正在参加一个游戏节目 你被要求在三扇门中选择一扇 其中一扇后面有一辆车 其余两扇后面则是
  • C++进阶篇5:字符串查找

    在STL中 字符串查找可以实现多种功能 例如 搜索单个字符 搜索子串 实现前向搜索 后向搜索 分别实现搜索第一个和最后一个满足条件的字符 或子串 要明确的一点是 所有查找find 函数的返回值均是size type类型 即无符号整数类型 该
  • Qt connect信号槽多次定义,会多次触发槽函数

    问题描述 点击Websocket 连接 按钮的时候将open连接到指定的地址 websocket在连接成功后会发出 connected信号 同时我们在初始化的时候就将 connected信号和我们的onconnected 函数建立连接 on
  • ubuntu 进入 recovery mode

    一 选择打开电源时进入固件 F 二 点击Esc按键 三 选择Enter 四 进入如下界面后点击Esc按键 四 选择 Advanced options for Ubuntu 五 选择recovery mode 六 选择root resume
  • 苹果真伪查询_二手MacBook Pro Air等苹果笔记本验货 鉴定 基本方法 流程

    资深果粉 苹果售后兼二手MacBook卖家教你如何鉴定二手Mac 一些基本要点 学会这几点办法 包你不会翻车 一 主板序列号是否与底壳一致 二 屏幕有无坏点亮点 更改纯色背景查看 三 配置要与年代一致 避免买到修改序列号改年份冒充新款的机器
  • RFID叉车纸滑托盘管理应用方案

    1 RFID使用场景和意义 工业送货车单件满载卷烟1600件 按RFID纸滑托盘卷烟24件 托盘 上下两层左右两垛 一个横切面四托盘的装载模式 可装载卷烟64托盘1536件 装载率达96 采用RFID纸滑托盘比传统托盘联运960件的装载率提
  • 解决ctypes.ArgumentError: argument 1: <class ‘TypeError‘>: wrong type

    在python2转换python3时报错 ctypes ArgumentError argument 1
  • 华为无盘服务器,无盘服务器

    无盘服务器 内容精选 换一换 网吧网络系统需要有很高的带宽 要支持大量的数据传输 因此 网吧对网络硬件有较高的要求 网吧网络在设计的时候 需要保证优质的网络传输速度 而且还要考虑到日后的网络升级和维护 下面 易天光通信 ETU LINK 就
  • c++的默认拷贝构造函数,从深度拷贝和浅拷贝说起

    本文收录于微信公众号 LinuxOK ID为 Linux ok 关注公众号第一时间获取更多技术学习文章 1 c 类的默认拷贝构造函数的弊端 c 类的中有两个特殊的构造函数 1 无参构造函数 2 拷贝构造函数 它们的特殊之处在于 1 当类中没
  • Ping 命令详解

    简述 ICMP协议是 Internet Control Message Protocol 因特网控制消息协议 的缩写 它是TCP IP协议族的一个子协议 用于在IP主机 路由器之间传递控制消息 ping Packet Internet Gr