Linux命令之ping
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的更多相关文章
- 每天一个linux命令(41)--ping命令
Linux系统的 ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,它通过发送 ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST t ...
- linux 命令——54 ping(转)
Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...
- N天学习一个linux命令之ping
用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...
- linux命令之---ping
1)命令简介 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常. 2)命令参数 ...
- linux 命令之 ping
ping命令主要用于检測主机的连通性. 语法: ping [-dfnqrRv] [-c <完毕次数>] [-i <间隔秒数>] [-I <网络接口>] [-l &l ...
- Linux命令:ping命令
ping命令:类似于windows的ping命令,用于测试网络主机ICMP请求回应的 ping选项 ping -c # # 执行次数 -w # #测试 ...
- 2018/03/29 每日一个Linux命令 之 ping
ping 用于测试两及其网络是否通 主要用于检测网络是否通畅. -- 具体语法 ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面&g ...
- windows 环境和linux环境下 ping命令的区别:
Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...
- 每天一个linux命令(54):ping命令
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...
随机推荐
- C11简洁之道:tupe元祖
tuple元组是一个固定大小不同类型的值的集合,是泛化的std::pair.我们也可以把它当作一个通用的结构体来使用,不需要创建结构体有获取结构体特征,在某些情况可以取代结构体,使程序更简洁.直观. ...
- ionic@2.0 beta版本安装指南
由于访问npm官方源下载ionic速度缓慢,淘宝提供了npm源,方便国内人士访问. 1.通过config命令 npm config set registry https://registry.npm. ...
- React的单向数据流与组件间的沟通
今天来给大家总结下React的单向数据流与组件间的沟通. 首先,我认为使用React的最大好处在于:功能组件化,遵守前端可维护的原则. 先介绍单向数据流吧. React单向数据流: React是单向数 ...
- js_数组去重效率对比
学习javascript已经快两年了,也不知道到了什么程度了. 说说我对javascript的理解,在电脑的世界里,只有数据. 数组,对象,字符串.对这些数据进行操作就可以完成很多业务逻辑,和页面的交 ...
- ubuntu 提速
linux的各大发行版,都有些不必要的服务被默认开启了,针对ubuntu,我们可以采用选择性关闭的方法加速起动,提高系统性能. 这里我们安装一个软件: sudo apt-get install sys ...
- [Leetcode Week16]Range Sum Query - Mutable
Range Sum Query - Mutable 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/range-sum-query-mutable/de ...
- thread线程栈size及局部变量最大可分配size【转】
转自:http://blog.csdn.net/sunny04/article/details/46805261 版权声明:本文为博主原创文章,未经博主允许不得转载. 进程是操作系统的最小资源管理单元 ...
- 一个无线通信类投稿的期刊list
转载一个,但是有些期刊的影响因子不是很对,要投的时候还是再到期刊主页上面看一看吧~ 期刊缩写 期刊全名 近年影响因子 P IEEE Proceedings Of The IEEE 3.686 IEEE ...
- MACACA===gradle下载和安装
gradle下载地址: http://services.gradle.org/distributions/ 或者直接点击这个: http://services.gradle.org/distribut ...
- python基础===修改属性的值
可以以三种不同的方式修改属性的值:直接通过实例进行修改:通过方法进行设置:通过方法进行递增(增加特定的值).下面依次介绍这些方法. class Car(): def __init__(self, ma ...