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. Jmeter 重要测试指标释义

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...

  2. 顺序图(Sequence Diagram)

    顺序图(Sequence Diagram): 是一种强调对象间消息传递次序的交互图,又称为时序图或序列图.描述了在一个用例或操作的执行过程中对象如何通过消息相互交互,说明了消息如何在对象之间被发送和接 ...

  3. CursorFileManager对cursor文件的读写

    public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cur ...

  4. 4.0docker部署

    设置容器的端口映射 -P  :容器暴露的所有端口映射 -p :指定映射容器暴露的端口 Nginx部暑流程 docker run -p 80 --name web -t -i ubuntu /bin/b ...

  5. select下拉箭头改变,兼容ie8/9

    各个浏览器下select默认的下拉箭头差别较大,通常会清除默认样式,重新设计 <html> <head> <meta charset="utf-8"& ...

  6. kimbits_USACO

    StringsobitsKim Schrijvers Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits ...

  7. Exploring Qualcomm's TrustZone Implementation

    转自  http://bits-please.blogspot.com/2015/08   (需要FQ, 狗日的墙) In this blog post, we'll be exploring Qua ...

  8. 2012年Elsevier旗下Computer Science期刊最新SCI影响因子排名

    Latest Impact Factor figures from Elsevier's Computer Science Journals Medical Image Analysis Impact ...

  9. Bit banging

    Bit banging Bit banging is a technique for serial communications using software instead of dedicated ...

  10. USB 3.1 與 USB Type-C 解釋

    https://tw.transcend-info.com/Support/FAQ-940 以下的內容皆來自上面這個網址. 什麼是USB 3.1? 什麼是USB 3.1? USB 3.1為USB協會制 ...