一、简介
Ping是一种计算机网络管理应用,用于测试网络连接量,它通过向特定目的主机发送ICMP(Internet Control Message Protocol)Echo回显请求报文,并根据回复的ICMP回显应答消息,来测试目的站是否可达并获取连接的丢包率和平均往返时间等状态信息。
二、实现方式
1、ICMPPing:这是最常见的ping方式,利用ICMP协议进行探测,当发送一份ICMP差错报文时,始终包含了IP首部和产生ICMP差错报文的IP数据报的前8个字节,可用于Ping的信息报文有回应请求与响应报文、时间戳请求与响应报文和掩码请求与响应报文。
2、TCPPing:在进行ICMPPing时,如果目标主机的网络网关过滤了ICMP Ping包,结果可能不准确,此时可考虑使用TCPPing,它通过向目标主机发送TCPSYN包或TCPACK包来判断目标主机是否可达,且目标主机无法屏蔽TCPSYN包和TCPACK包,因此准确性比ICMPPing高,在实现时需利用RAW Socket定制TCP包并封装在IP包中,但非root用户在Linux系统下没有此项权利,Windows的非Administrator组用户也不能直接填写TCP包头和IP包头。
3、UDPPing:与TCPPing原理类似,通过RAW Socket定制UDP包,格式化UDP包中的目的端口号,一般指定一个数量值很大的目的端口号,若目标主机不可达,路由器将发送目的不可达ICMP报文;若目标主机可达,其UDP实体会判断接收到的目的端口号是否与当前使用的某端口号匹配,若不匹配则丢弃数据报并回送“端口不可达”的ICMP报文。
三、工作原理
Ping命令本质上是发送ICMP回显请求和响应消息的组合,当网络管理员在命令提示符下输入ping命令时,主机会向目标设备或指定的IP地址发送ICMP回显请求消息,这些请求消息是最多64字节的小数据包,用于判断数据包是否成功到达对端,发送请求的本地计算机将等待远程主机的响应,如果远程主机正在运行且网络可达,目标计算机收到回显请求消息后,会将ICMP回显响应消息送回原始计算机。
四、使用方法
1、基本语法:ping [options] <destination>
,其中<destination>
可以是IP地址或DNS域名。
2、常用选项:
t
:Ping指定的主机,直到停止,若要查看统计信息并继续操作,请键入Ctrl+Break;若要停止,请键入Ctrl+C。
a
:将地址解析为主机名。
n count
:要发送的回显请求数。
l size
:发送缓冲区大小。
f
:在数据包中设置“不分段”标记,仅适用于IPv4。
i TTL
:生存时间。
v TOS
:服务类型,仅适用于IPv4,该设置已被弃用,对IP标头中的服务类型字段没有任何影响。
r count
:记录计数跃点的路由,仅适用于IPv4。
s count
:计数跃点的时间戳,仅适用于IPv4。
j hostlist
:与主机列表一起使用的松散源路由,仅适用于IPv4。
k hostlist
:与主机列表一起使用的严格源路由,仅适用于IPv4。
w timeout
:等待每次回复的超时时间,以毫秒为单位。
R
:同样使用路由标头测试反向路由,仅适用于IPv6,根据RFC5095,已弃用此路由标头,如果使用此标头,某些系统可能丢弃回显请求。
S srcaddr
:要使用的源地址。
c compartment
:路由隔离舱标识符。
p pattern
:填充字节的内容。
q
:安静的输出。
Q tclass
:使用服务质量tclass位。
s size
:使用size作为要发送的数据字节数。
S size
:使用size作为SO_SNDBUF套接字选项的值。
t ttl
:定义生存时间。
U
:打印用户到用户的延迟。
v
:详细输出。
V
:打印版本信息并退出。
五、相关问题与解答
1、问题:为什么ping通了但无法访问网站?
解答:ping通只能说明本机与目标主机之间的网络连接是正常的,但网站能否访问还涉及到其他因素,如目标服务器的Web服务是否正常、DNS解析是否正确、网站的服务器配置是否有限制等,如果网站的服务器正在进行维护或出现故障,即使ping通了也无法正常访问网站,如果DNS解析出现问题,也可能导致无法访问网站,即使ping通了目标主机的IP地址。
2、问题:如何通过ping命令检测网络故障?
解答:可以通过以下几种方式来检测网络故障:
检测本机与网关的连接:先使用ipconfig
命令查看本机的网卡信息和默认网关地址,然后使用ping <网关IP地址>
命令来检测本机与网关的连接是否正常,如果无法ping通网关,可能是网线、路由器或本机网卡存在问题。
检测DNS解析是否正常:使用ping <域名>
命令来检测DNS解析是否正常,如果无法ping通域名,但可以ping通对应的IP地址,说明DNS解析存在问题。
检测目标主机是否可达:使用ping <目标主机IP地址>
命令来检测本机与目标主机之间的网络连接是否正常,如果无法ping通目标主机,可能是网络中间的某个环节出现了问题,如路由器故障、网络拥塞等。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/131700.html