欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【网络命令】Ping 详解

程序员文章站 2022-06-30 20:49:26
...
㈠ Ping 工作原理

源主机(输ping命令的主机)向对方主机发送一个 ICMP 协议中的 echo 包
而对方如果存活,就向源主机返回一个 ICMP 协议的 echo-reply 包

㈡ TTL

Ping 输出中的 TTL 是什么意思?

C:\Users\asus>ping www.csdn.net

正在 Ping www.csdn.net [117.79.93.222] 具有 32 字节的数据:
来自 117.79.93.222 的回复: 字节=32 时间=219ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=64ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=66ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=374ms TTL=54

上述输出、我们知道 CSDN 服务器的地址是 117.79.93.222
那 TTL=54 是什么意思?

首先、TTL 是 echo 包在网络上的生存时间
当我们对网络上的主机进行ping操作的时候、我们本地机器会发出一个数据包
数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机
那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大
当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失

其次、TTL 字段值可以帮助我们识别操作系统类型
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
WINXP-32bit 回显应答的 TTL 字段值为 64
微软 Windows NT/2K/2003操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
当然,返回的TTL值是相同的
但有些情况下有所特殊:
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
FreeBSD 4.1, 4.0, 3.4;
Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
OpenBSD 2.6, 2.7,
NetBSD
HP UX 10.20
ICMP 回显应答的 TTL 字段值为 255
Windows 95/98/98SE
Windows ME
ICMP 回显应答的 TTL 字段值为 32
Windows NT4 WRKS
Windows NT4 Server
Windows 2000
Windows XP
ICMP 回显应答的 TTL 字段值为 128
这样,我们就可以通过这种方法来辨别操作系统
TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255

㈢ Ping 工作过程

① 如果不知道对方的MAC地址,则要发送ARP的广播出去,解析对方的MAC地址
② 知道MAC地址后,再发送单播ICMP包(即上面说所的ICMP协议中echo包)


㈣ Ping 常见结果

① ping www.csdn.net



来自 117.79.93.222 的回复: 字节=32 时间=66ms TTL=54

返回语句表示与目的主机连接成功

② ping Rocky.csdn.net

Ping 请求找不到主机 Rocky.csdn.net。请检查该名称,然后重试

对方主机不存在,此次ping在工作过程中的第一步就结束了
因为目的主机不存在;无法解析到目的主机的MAC地址

③ ping 192.168.2.78

请求超时

echo 包顺利达到目的主机,且目的主机也向源主机返回 echo-reply包
但是 echo-reply包在半路上丢失,无法到达源主机

④ ping 192.168.1.10

来自 192.168.1.113 的回复: 无法访问目标主机

这是因为发送给目的主机的echo包在192.168.1.125上*终止,即echo包无法到达目的主机
可能原因:某个路由器192.168.1.125的端口上,禁止来自源主机的数据包通过

㈤ Ping 常用命令

① -t:ping指定的计算机直到我们按Ctrl+C键来停止

C:\Users\asus>ping -t blog.csdn.net

正在 Ping blog.csdn.net [117.79.93.222] 具有 32 字节的数据:
来自 117.79.93.222 的回复: 字节=32 时间=184ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=222ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=154ms TTL=54
请求超时。
来自 117.79.93.222 的回复: 字节=32 时间=177ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=159ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=342ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=156ms TTL=54
请求超时。
来自 117.79.93.222 的回复: 字节=32 时间=163ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=293ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=69ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=227ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=64ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=98ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=65ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=261ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=161ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=66ms TTL=54

117.79.93.222 的 Ping 统计信息:
    数据包: 已发送 = 19,已接收 = 17,丢失 = 2 (10% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 64ms,最长 = 342ms,平均 = 168ms
Control-C
^C

② -n count:发送指定次数的echo数据包、不加-n 参数的话,系统默认是 ping 4次

C:\Users\asus>ping -n 6 blog.csdn.net

正在 Ping blog.csdn.net [117.79.93.222] 具有 32 字节的数据:
来自 117.79.93.222 的回复: 字节=32 时间=96ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=275ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=368ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=98ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=67ms TTL=54
来自 117.79.93.222 的回复: 字节=32 时间=208ms TTL=54

117.79.93.222 的 Ping 统计信息:
    数据包: 已发送 = 6,已接收 = 6,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 67ms,最长 = 368ms,平均 = 185ms

③ -l length:指定echo数据包的大小、系统默认的数据包是32字节,最大的字节数是65527

C:\Users\asus>ping -l 100 blog.csdn.net

正在 Ping blog.csdn.net [117.79.93.222] 具有 100 字节的数据:
来自 117.79.93.222 的回复: 字节=100 时间=68ms TTL=54
来自 117.79.93.222 的回复: 字节=100 时间=73ms TTL=54
来自 117.79.93.222 的回复: 字节=100 时间=67ms TTL=54
来自 117.79.93.222 的回复: 字节=100 时间=67ms TTL=54

117.79.93.222 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):

㈥ IP 寻址的 troubleshoting 步骤

① ping 127.0.0.1 检查本机IP栈是否初始化,失败则重装TCP/IP协议
② ping 本主机IP 检查网卡NIC功能是否正常
③ ping 网关 成功则NIC连接到网络,并且网络通信正常
④ ping 远端主机 成功则表示主机与远端主机可进行IP通信