一、Ping的基本概念与作用
1、定义:Ping(Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序,它通过向特定的目的主机发送ICMP(Internet Control Message Protocol)Echo回显请求报文,并根据回复的ICMP Echo应答消息,来测试目的站是否可达并获取连接的丢包率和平均往返时间等有关状态信息。
2、主要作用:确定本地主机是否能与另一台主机成功交换数据包;推断TCP/IP参数是否设置正确以及运行是否正常;检测网络是否通畅。
二、Ping的原理及实现方式
1、原理:当在命令提示符下输入ping命令时,主机会向目标设备或指定的IP地址发送ICMP回显请求消息,这些请求消息是最多64字节的小数据包,用于判断数据包是否成功到达对端,如果远程主机正在运行且网络可达,目标计算机收到回显请求消息后,会将ICMP回显响应消息送回原始计算机。
2、实现方式
ICMPPing:向目标主机发送ICMP信息报文,如回应请求与响应报文、时间戳请求与响应报文等,若网络管理员在命令提示符下输入ping命令,主机会向目标设备或指定的IP地址发送ICMP回显请求消息,然后等待远程主机的响应。
TCPPing:利用RAW Socket定制TCP包并封装在IP包中,通过向目标主机发送TCPSYN包或TCPACK包来判断目标主机是否可达,因为无论端口是否打开,总会有某一种数据包返回,所以可以判定目标主机的可达性,不过在Linux系统下,非root用户没有此项权利,Windows系统的非Administrator组用户也不能直接填写TCP包头和IP包头。
UDPPing:与TCPPing的原理类似,通过RAWSocket定制UDP包,主要是格式化UDP包中的目的端口号,一般指定一个数量值很大的目的端口号,若目标主机可达,UDPPing程序将收到一个UDP回应包或者“端口不可达”的ICMP报文,若目标主机不可达,路由器将发送一个目的不可达ICMP报文。
三、Ping命令的使用方法及参数详解
1、基本用法:在命令提示符下输入“ping [目标地址或域名]”,即可开始对目标进行ping操作,ping www.baidu.com”,会不断向百度的服务器发送ICMP回显请求消息,并显示相关的响应信息。
2、常用参数
t:持续对指定的主机执行Ping命令,直到用户以Ctrl+C中断,若要查看统计信息并继续操作,可键入Ctrl+Break;若要停止,可键入Ctrl+C。
a:将地址解析为主机名。
n count:要发送的回显请求数,默认值为4。
l size:指定发送缓冲区大小,默认为32字节。
f:在数据包中设置“不分段”标记(仅适用于IPv4),当数据包太大无法在一条数据链路帧中传输时,路由器会对其进行分片处理,使用该参数可以避免路由过程中的分片。
i TTL:指定TTL(Time To Live)生存时间字段的值,该字段用于限制数据包在网络中的存活时间。
v TOS:指定服务类型(Type of Service)字段的值(仅适用于IPv4)。
r count:记录计数跃点的路由(仅适用于IPv4),每次记录的路由条目的最大数量为9个。
s count:记录计数跃点的时间戳(仅适用于IPv4),最多记录4个时间戳。
j hostlist:与松散源路由一起使用(仅适用于IPv4),中间节点依次经过hostlist中指定的IP地址。
k hostlist:与严格源路由一起使用(仅适用于IPv4),中间节点依次经过hostlist中指定的IP地址,不允许路由器选择其它路径。
w timeout:指定等待每次回复的超时时间(毫秒),默认为1000毫秒。
R:同样使用路由标头测试反向路由(仅适用于IPv6),根据RFC5095,此路由标头已被弃用,如果使用此标头,某些系统可能丢弃回显请求。
S srcaddr:要使用的源地址。
c compartment:路由隔离舱标识符。
p:PingHyperV网络虚拟化提供程序地址。
4:强制使用IPv4。
6:强制使用IPv6。
四、相关问题与解答
1、问题:Ping命令中的TTL参数有什么作用?
解答:TTL(Time To Live)生存时间字段用于限制数据包在网络中的存活时间,每经过一个路由器,TTL值会减1,当TTL值降为0时,路由器会丢弃该数据包,并发送ICMP超时报文给源主机,通过设置不同的TTL值,可以测试数据包在网络中的传输路径和经过的跳数,从而帮助诊断网络故障。
2、问题:为什么Ping成功并不一定代表网络连接正常?
解答:Ping成功只能说明从源主机到目标主机之间存在一条连通的物理路径,且目标主机能够响应ICMP回显请求,网络连接是否正常还涉及到许多其他因素,如应用程序的可用性、网络带宽、延迟、丢包率等,即使Ping成功,但如果目标主机上的某个应用程序无法正常工作,或者网络存在大量的丢包现象,那么在实际使用该应用程序时仍然会遇到问题。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/138877.html