Linux基础命令---ping
ping
ping指令可以发送ICMP请求到目标地址,如果网络功能正常,目标主机会给出回应信息。ping使用ICMP协议强制发送ECHO_REQUEST报文到目标主机,从主机或网关获取ICMP ECHO_RESPONSE。ECHO_REQUESTt数据报(‘pings’)有一个IP和ICMP报头,后面跟着一个timeval结构体,然后是用于填充数据包的任意数量的“pad”字节。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
ping [选项] destination
2、选项列表
| 
 选项  | 
 说明  | 
| 
 -a  | 
 可听的ping  | 
| 
 -A  | 
 自适应平包间隔适应往返时间,因此有效地不超过一个(或多个,如果设置了预加载)未回答的探针在网络中存在。对于非超级用户,最小间隔为200毫秒。在RTT低的网络上,这种模式实质上等同于flood模式。  | 
| 
 -b  | 
 允许ping广播地址  | 
| 
 -B  | 
 不允许ping更改探针的源地址。当ping启动时,该地址绑定到选定的地址。  | 
| 
 -c count  | 
 指定ping的次数  | 
| 
 -d  | 
 在所使用的套接字上设置SO_DEBUG选项。实际上,linux内核不使用这个套接字选项。  | 
| 
 -F flowlabel  | 
 在回送请求数据包上分配和设置20位flow label。(只有平6)。如果值为零,内核将分配随机flow label。  | 
| 
 -f  | 
 极限检测,不等收到回复就发送下一个请求,只有超级管理员才可以使用  | 
| 
 -i interval  | 
 指定发送的时间间隔  | 
| 
 -Iinterfaceaddress  | 
 将源地址设置为指定的接口地址。参数可以是数字IP地址或设备名称。当选择ipv 6链路本地地址时,此选项是必需的。  | 
| 
 -l preload  | 
 如果指定了预加载preload,ping将发送许多未等待回复的数据包。只有超级用户才能选择超过3的预加载  | 
| 
 -L  | 
 抑制组播数据包的回送。此标志仅适用于ping目标为多播地址的情况  | 
| 
 -n  | 
 用数字方式显示  | 
| 
 -p pattern  | 
 您可以指定多达16个“PAD”字节来填充您发送的数据包。这对于诊断网络中与数据相关的问题很有用  | 
| 
 -Q tos  | 
 在ICMP数据报中设置与服务相关的比特的质量。TOS可以是十进制数,也可以是十六进制数。传统上(RFC 1349),它们被解释为:0表示保留(当前被重新定义为拥塞控制),1-4表示服务类型,5-7表示优先级。服务类型的可能设置是:最低成本:0x02,可靠性:0x04,吞吐量:0x08,低延迟:0x10。不能同时设置多个TOS位。特殊优先级的可能设置范围从优先级(0x20)到净控制(0xe0)。  | 
| 
 -q  | 
 不显示执行过程  | 
| 
 -r  | 
 忽略正常的路由表  | 
| 
 -R  | 
 记录路由  | 
| 
 -spacketsize  | 
 指定数据包的大小  | 
| 
 -S sndbuf  | 
 设置套接字发送缓冲区sndbuf。如果没有指定,则选择它来缓冲不超过一个数据包  | 
| 
 -t ttl  | 
 指定数据包的生存期TTL  | 
| 
 -Ttimestampoption  | 
 设置特殊的ip时间戳选项。可以是tsonly (only timestamps), tsandaddr (timestamps and addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp prespecified hops)  | 
| 
 -M hint  | 
 选择路径MTU发现策略,可以是do(禁止碎片,即使是本地的)、want(当数据包大小较大时,在本地发现pmtu)、don’t(不设置DF标志)  | 
| 
 -U  | 
 打印完整的user-to-user延迟  | 
| 
 -wdeadline  | 
 在ping退出之前指定一个超时(以秒为单位),而不管发送或接收了多少数据包。  | 
| 
 -Wtimeout  | 
 等待响应的时间,以秒为单位。该选项只影响任何响应的超时,否则ping将等待两个RTT  | 
| 
 -v  | 
 显示详细执行过程  | 
| 
 -V  | 
 显示版本  | 
3、ICMP报文
没有选项的IP报头是20个字节。ICMP echo_Request数据包包含另外8字节的ICMP报头,后面跟着任意数量的数据。当给定一个数据包大小时,这表明了这个额外数据块的大小(缺省值为56)。因此,在ICMP ECHO_REPLY类型的IP数据包中接收的数据量总是比请求的数据空间(ICMP报头)多8个字节。
如果数据空间至少是结构体timeval的大小,Timeval ping使用这个空间的起始字节来包含它在计算往返时间时使用的时间戳。如果数据空间较短,则不提供往返时间。
4、 重复和损坏的数据包
ping将报告重复和损坏的数据包。重复的数据包不应该发生,似乎是由不适当的链路级重传引起的.重复可能在许多情况下发生,很少(如果有的话)是一个好的迹象,尽管低水平的重复可能并不总是引起恐慌。损坏的数据包显然是引起警报的严重原因,并且经常表示ping数据包路径(网络中或主机中)的某个硬件出现故障。
5、尝试不同的数据模式
(内部)网络层不应根据数据部分中包含的数据对分组进行不同的处理。不幸的是,依赖于数据的问题已经被人们知道潜入网络,并且在很长一段时间内没有被发现。在许多情况下,会出现问题的特定模式是没有足够的“转换”的东西,例如所有的1或所有的零,或者在边缘的一个模式,例如几乎所有的零。仅仅指定命令行上所有零的数据模式(例如)并不一定足够,因为感兴趣的模式是在数据链接级别上,而且您键入的内容与控制器发送的内容之间的关系可能很复杂。
这意味着,如果您有一个数据依赖的问题,您可能需要做大量的测试才能找到它。如果幸运的话,您可能会设法找到一个文件,该文件要么无法通过您的网络发送,要么需要比其他类似长度的文件更长的传输时间。然后,您可以检查这个文件是否有重复的模式,可以使用ping的-p选项进行测试。
6、TTL
IP数据包的TTL值表示数据包在被丢弃之前可以通过的最大IP路由器数。在当前的实践中,您可以期望Internet中的每个路由器将TTL字段减少一个。TCP/IP规范规定,TCP数据包的TTL字段应该设置为60,但许多系统使用较小的值(4.3BSD使用30,4.2使用15)。该字段的最大可能值为255,大多数Unix系统将ICMP ECHO_REQUEST数据包的TTL字段设置为255。这就是为什么您会发现您可以“ping”一些主机,但不能通过telnet(1)或ftp(1)到达它们。
在正常操作中,ping从它接收的数据包打印ttl值。当远程系统收到ping数据包时,它可以在响应中使用ttl字段执行以下三项任务之一。
1)不改变它;这是Berkeley Unix系统在4.3BSDTahoe发布之前所做的事情。在这种情况下,接收到的数据包中的TTL值将为255减去往返路径中的路由器数量。
2)将其设置为255;这是目前BerkeleyUnix系统所做的。在这种情况下,接收到的数据包中的TTL值将为255减去从远程系统到ping主机的路径中的路由器数量。
3)将其设置为其他值。有些机器对ICMP数据包使用的值与它们对TCP数据包使用的值相同,例如30或60。其他人可能会使用完全狂野的价值观。
7、实例
1)ping广播地址
| 
 
 
 
 
 
 
 
 
 
 
 
 
 
  | 
2)测试目标地址是否畅通
| 
 
 
 
 
 
 
 
 
 
 
  | 
Copyright@david zhytwj2018@163.com
Linux基础命令---ping的更多相关文章
- 【Python之路】第一篇--Linux基础命令
		
pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 . 表示当前目录 .. 表示上级目录 / 表示根目录 ls ...
 - Linux基础命令-文件与目录
		
Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...
 - Linux基础命令-查看基本硬件信息
		
Linux基础命令-查看基本硬件信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看CPU信息 [root@node101.yinzhengjie.org.cn ~]# l ...
 - [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
		
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
 - Linux基础命令小结(超全!!)
		
Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...
 - 第四节,Linux基础命令
		
第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令 ...
 - linux基础命令学习笔记(二)
		
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
 - 2.Linux基础命令
		
linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...
 - linux基础命令一
		
linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date [options...] [+FORMAT] FORMAT:为显示日期的格 ...
 
随机推荐
- 0703-spring cloud config-git配置属性加解密之对称加密
			
一.概述 可以使用{cipher} *格式的加密值,只要有一个有效的密钥,那么它们将在主应用程序上下文获取环境之前被解密.要在应用程序中使用加密功能,您需要在您的类路径中包含Spring Securi ...
 - 小程序 input 键盘弹出时样式遮盖问题
			
设置cursor-spacing,具体可参考官方文档,代码如下: <input type='text' bindinput="bindKeyInput" placehold ...
 - Java中基本数据类型byte,short,char,int,long,float,double 取值范围
			
部分内容转自:java 彻底理解 byte char short int float long double 首先说byte: 这段是摘自jdk中 Byte.java中的源代码: /** * A co ...
 - Django基础之MTV模型
			
一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Control ...
 - SpringBoot java.lang.IllegalArgumentException: Request header is too large
			
在application.properties##tomcat 请求设置server.max-http-header-size=1048576server.tomcat.max-connections ...
 - SIP协议流程
			
1.注册流程: 2.注销流程: 3. 基本呼叫建立过程: 4. 会话更改流程: 5. 正常呼叫释放过程: 6. 被叫忙呼叫释放: 7.被叫无应答流程一: 8.被叫无应答流程二: 9.遇忙呼叫前转:
 - selenium及webdriver的原理【转】
			
selenium与webdriver整合后,形成的新的测试工具叫做selenium2.x.在selenium1时间,selenium使用javascript来达到测试自动化的目标. 1. seleni ...
 - Entity Framework学习初级篇2
			
Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍 本节,简单的介绍E ...
 - _proto_ 和prototype自己的理解
			
对象(obj)并不具有prototype属性,只有函数(function)才有prototype属性 1.在JS里,万物皆对象. 方法(Function)是对象,方法的原型(Function.prot ...
 - recover database noredo时报错ORA-19573
			
环境: RHEL6.4 + Oracle 11.2.0.4 Primary RAC + Standby RAC 今天发现DG备库归档空间满,清理后发现备库出现GAP,需要从主库做基于SCN的增量备份进 ...