ping [选项] destination

ping命令向网络主机发送ICMP回传请求

详细描述:ping使用ICMP协议强制ECHO_REQUEST(回传请求)数据报从主机或网关获取ICMP协议的ECHO_RESPONSE(回传响应)。ECHO_REQUEST(回传请求)数据报(“ping”)有一个IP和ICMP头,之后是一个结构时间值,再之后是一个任意数量的“pad”字节,用于填充数据包。

(1).常用选项

-b 允许ping网关地址
-c count 发送count次ECHO_REQUEST(回传请求)数据包。当有deadline选项(最后期限,-w选项),在超时之前,ping等待ECHO_REPLY(回传响应)直到count次。
-d 在正在使用的socket(套接字)上设置SO_DEBUG选项。本质上,Linux内核不使用此套接字选项。
-f 大量ping,极限ping。每个ECHO_REQUEST(回传请求)打印一个点,每有一个ECHO_REPLY(回传响应)打印一个退格符(Backspace)。这样可以快速显示丢弃的数据包数量。如果没有给出间隔,它会将间隔设置为0,并按照它们返回或每秒百次的速度输出数据包,以多者为准。只有超级用户才可以0间隔使用此选项。
-i interval 发送每个数据包之间等待的间隔(单位秒)。默认设置是等待一秒,极限模式下不等待。只有超级用户可以设置间隔值小于0.2秒。
-I interface address 将源地址设置为指定的接口地址。参数可以是数字IP地址或设备名称。在ping IPv6 linklocal地址时,此选项是必需的。
-l preload 如果指定了preload,则ping发送许多不等待回复的数据包。只有超级用户可以选择超过3的预加载。
-n 仅限数字输出。不会尝试查找主机地址的符号名称
-p pattern 你可以指定最多16个“pad”字节来填充你发送的数据包。这对于诊断网络中的数据以来问题是有用的。例如-p ff将导致充满整个被发送包。
-q 静默输出。除启动和完成时的摘要行外,不显示任何内容
-r 绕过正常的路由表并直接发送到连接接口上的主机。如果主机不在直接连接的网络上,则返回错误。如果还是用了-I选项,则此选项可用于通过没有路由的接口ping本地主机。
-R 记录线路。包含ECHO_REQUEST数据包中的RECORD_ROUTE选项,并在返回的数据包上显示路由缓冲区。请注意,IP报头只能容纳9个这样的路由。许多主机忽略或放弃此选项。
-s packetsize 指定要发送的数据字节数。默认56,当与8字节的ICMP头数据组合时,转换为64个ICMP数据字节。
-t ttl 设置IP生存时间值(TTL)
-v 详细输出
-w deadline 指定一个以秒为单位的退出时间,不管ping退出之前发送或接收了多少数据包。在这种情况下,ping将一直发送数据包,直到deadline过期或count探针结束或一些来自网络的错误通知。

注释:这里的-w deadline选项的意思是ping命令的存活时间,而并非数据包的响应时间。

(2).实例

ping网关

[xf@xuexi ~]$ ping 192.168.128.255
Do you want to ping broadcast? Then -b. If not, check your local firewall rules.
[xf@xuexi ~]$ ping -b 192.168.128.255
WARNING: pinging broadcast address
PING 192.168.128.255 (192.168.128.255) 56(84) bytes of data.
64 bytes from 192.168.128.212: icmp_seq=1 ttl=64 time=0.621 ms
64 bytes from 192.168.128.213: icmp_seq=1 ttl=64 time=0.922 ms (DUP!)
64 bytes from 192.168.128.2: icmp_seq=1 ttl=64 time=2.30 ms (DUP!)
64 bytes from 192.168.128.218: icmp_seq=1 ttl=64 time=75.6 ms (DUP!)
64 bytes from 192.168.128.251: icmp_seq=1 ttl=64 time=76.1 ms (DUP!)
64 bytes from 192.168.128.212: icmp_seq=2 ttl=64 time=0.646 ms
64 bytes from 192.168.128.2: icmp_seq=2 ttl=64 time=1.20 ms (DUP!)
64 bytes from 192.168.128.213: icmp_seq=2 ttl=64 time=1.46 ms (DUP!)
64 bytes from 192.168.128.218: icmp_seq=2 ttl=64 time=91.8 ms (DUP!)
64 bytes from 192.168.128.251: icmp_seq=2 ttl=64 time=92.3 ms (DUP!)
^C
--- 192.168.128.255 ping statistics ---
2 packets transmitted, 2 received, +8 duplicates, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.621/34.326/92.387/40.904 ms

ping指定次数

[xf@xuexi ~]$ ping -c 5 baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=51 time=31.6 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=51 time=31.4 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=3 ttl=51 time=31.4 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=4 ttl=51 time=31.4 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=5 ttl=51 time=31.3 ms
--- baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 31.392/31.480/31.677/0.189 ms

ping指定时间间隔

[xf@xuexi ~]$ ping -c 5 -i 0.5 baidu.com
PING baidu.com (220.181.57.216) 56(84) bytes of data.
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=54 time=29.5 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=54 time=29.4 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=54 time=29.8 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=4 ttl=54 time=30.1 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=5 ttl=54 time=29.7 ms
--- baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 29.468/29.747/30.100/0.230 ms

(3).引申

1)数据帧、数据包、数据包

  数据帧(Frame)就是数据链路层的协议数据单元,它包括三部分:帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包

  数据包(Packet)是TCP/IP协议通信传输中的数据单元,位于网络层,在局域网中,“包”是在“帧”当中。

  数据报(Datagram)是通过网络传输的数据的基本单元,包含一个报头和数据本身,其中报头描述了数据的目的地和其他数据之间的关系。数据报是完整的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,该信息不依赖以前在源计算机和目的计算机以及传输网路按键的交换。

应用层

发送方产生上层数据(?)/接收方获得上层数据

表示层

会话层

传输层

TCP头+上层数据(segment/datagram)

网络层

IP头+[TCP头+上层数据](packet)

数据链路层

LLC头+[IP头+TCP头+上层数据]+FCS(LLC头作用已消失)

MAC头+[LLC头+IP头+TCP头+上层数据]+FCS(frame)

物理层

01101010101…(bit比特流)

  从应用层到物理层是数据封装过程,从物理层到应用层是数据解封装过程,这是一对逆过程。

  简单来说就是报头+上层数据=数据报,包头+数据报=数据包,帧头+数据包+帧尾=数据帧。

2)套接字

  TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这个端点就叫套接字或插口。套接字用[IP地址:端口号]表示,它是网络通信过程中端点的抽象表示,包含进行网络通信必要的五种信息:连接使用的协议,本地主机IP地址,本地进程的协议端口,目的主机IP地址,目的进程的协议端口。

  SO_DEBUG选项,本选项仅由TCP支持。当给一个TCP套接字开启本选项时,内核将为TCP在该套接字发送和接收的所有分组保留详细跟踪信息。这些信息保存在内核的某个环形缓存去中,并可使用trpt程序进行检查。

3)ICMP协议

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

4)TTL

  TTL字段指定IP数据包被路由器丢弃之前运行通过的最大网段数量。是为了防止数据包在网络中无限循环,而限定的最大转发次数,每经过一个路由器该字段就会减1,如果减到0还没到达目的主机,则会自动丢弃,并返回Request time out(请求超时)。最大值为255。

Linux命令之ping的更多相关文章

  1. 每天一个linux命令(41)--ping命令

    Linux系统的 ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,它通过发送 ICMP ECHO_REQUEST数据包到网络主机(send  ICMP  ECHO_REQUEST t ...

  2. linux 命令——54 ping(转)

    Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. linux命令之---ping

    1)命令简介 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常. 2)命令参数 ...

  5. linux 命令之 ping

    ping命令主要用于检測主机的连通性. 语法: ping [-dfnqrRv] [-c <完毕次数>] [-i <间隔秒数>] [-I <网络接口>] [-l &l ...

  6. Linux命令:ping命令

    ping命令:类似于windows的ping命令,用于测试网络主机ICMP请求回应的 ping选项 ping -c  #             # 执行次数 -w #             #测试 ...

  7. 2018/03/29 每日一个Linux命令 之 ping

    ping 用于测试两及其网络是否通 主要用于检测网络是否通畅. -- 具体语法 ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面&g ...

  8. windows 环境和linux环境下 ping命令的区别:

    Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...

  9. 每天一个linux命令(54):ping命令

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...

随机推荐

  1. [uva11997]k个最小和

    一个k*k的矩阵,每行选取一个数相加则得到一个和,求最小的前k个和. k<=750 已知前m行最小的前k个和d[1]…d[k],则前m+1行最小的前k个和都必定是d[i](i<=k)+a[ ...

  2. 【BZOJ4516】【SDOI2016】生成魔咒 [SAM]

    生成魔咒 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 魔咒串由许多魔咒字符组成,魔咒字符 ...

  3. MSSQL数据库 "无法删除数据库 "***",因为该数据库当前正在使用" 解决方案

    --1 创建数据库 create database AAA --2 使用数据库 use AAA --3 在AAA数据库下创建table create table BBB ( bId ,) primar ...

  4. linux c 执行新程序

    学习进程时,linu c上说新开的进程一般要执行另外一个程序,同时与父进程执行同一个程序没有意义 如下是如何执行一个新的程序 使用exec函数簇 exec函数簇包含如下函数

  5. PKUWC 2019 自闭记

    PKUWC 2019 自闭记 Day -1 考前天天在隔壁的物竞教室划水(雀魂,能和吉老师一起玩的游戏都是好游戏),没有做题. Day 0 早上8:16的高铁,到广州南居然要6个小时...不知道福州和 ...

  6. 2017-2018-1 20179205《Linux内核原理与设计》第七周作业

    <Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_for ...

  7. Django【进阶】数据库查询性能相关

    之前项目中没有考虑过数据库查询关于效率的问题,如果请求量大,数据庞大,不考虑性能的话肯定不行.     tips:如图之前我们遇到过,当添加一张表时,作为原来表的外键,要给个默认值,现在我们写null ...

  8. imx6设备树pinctrl解析【转】

    转自:http://blog.csdn.net/michaelcao1980/article/details/50730421 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在移植linu ...

  9. python基础===autopep8__python代码规范

    关于PEP 8 PEP 8,Style Guide for Python Code,是Python官方推出编码约定,主要是为了保证 Python 编码的风格一致,提高代码的可读性. 官网地址:http ...

  10. twemproxy 简介、安装配置

    twemproxy 简介.安装配置 http://www.xuchanggang.cn/archives/993.html