全面掌握ping命令(一) ping命令的基本原理

简介:

原文发表于《网络运维与管理》2013年第21期 

 

Ping命令是在日常网络管理维护工作中最常用到的命令之一,对于这个熟悉的命令,我们是否已经掌握了它的方方面面呢?本文就来全面深入地介绍一下ping命令,只有透彻地掌握了它的各个知识点,才能更好地利用它来为我们服务。

 

1. ping命令的基本原理

Ping命令利用ICMP协议进行工作,ICMP是Internet控制消息协议,用于在主机和路由器之间传递控制消息。Ping命令利用了ICMP两种类型的控制消息:“echo request”(回显请求)、“echo reply”(回显应答)。

比如在主机A上执行ping命令,目标主机是B。在A主机上就会发送“echo request”(回显请求)控制消息,主机B正确接收后即发回“echo reply”(回显应答)控制消息,从而判断出双方能否正常通信。其工作原理如图1所示。

image

如果在A主机上能够ping通B主机,那么主机A上显示的信息就是从主机B上返回来的“回显应答”。如果不能ping通,主机A上显示的信息则是由系统自身所产生的错误提示。

在Windows系统中,默认情况下,每次执行ping命令会发送4个“回显请求”消息,每个消息的数据包大小为32字节,如果一切正常,应能收到4个同样为32字节大小的“回显应答”消息。其格式如下:

Reply from *.*.*.*(IP):bytes=32 time<1ms TTL=128

在这些“回显应答”中包含了丰富的信息:

通过回显应答中的“time”时间,可以大致的推断出网速情况,数据传递经过的时间越长,网速越慢。

回显应答中的“TTL”,即数据包的生存周期。每个系统对其所发送的数据包都要赋一个TTL的初始值,默认情况下,Windows XP系统为128,Win7系统为64,Linux系统为64或255(当然,系统的TTL值都是可以修改的)。数据包每经过一次路由,TTL值就要减1,所以通过TTL值,我们既可以大概地推算出对方主机所用的操作系统,又可以推断出在数据包在传送过程中经过了多少次路由。比如,在执行“ping www.baidu.com”命令时,回显应答中显示的TTL值为52,则首先可以大概推断出百度使用的是Linux系统,其次可以得知数据在传送过程中经过了12次路由。

这点可以通过tracert命令进行验证,执行“tracert www.baidu.com”命令,发现数据包正是经过了12次路由。tracert也是一个利用ICMP协议工作的命令,它的原理非常巧妙:它向指定的目的主机发送多次回显请求消息,并把封装该消息的数据包的TTL值从1开始递增。即tracert命令第一次发送出去的数据包的TTL为1,这些数据包在经过第一个路由器时,TTL值便被减为了0,这台路由器就要将数据包丢弃,并同时向源主机发回一个回显应答消息,通过这种方式就获得了数据包所经过的第一台路由器的信息。通过这种递进的查询过程,查询端就可以追踪到达目的主机所经过的所有路由器的情况。

另外,大家可能会发现,每次执行tracert命令所查询到路径都不大一样,这是完全正常的,数据包每次传送时采用不同的路径,这正是Internet所采用的分组交换方式的特点。


本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1391983

相关文章
|
1月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
43 1
|
5月前
|
运维 网络协议 网络安全
百度搜索:蓝易云【你知道ping命令是如何工作的吗?】
需要注意的是,某些网络环境下,ICMP流量可能被防火墙或路由器过滤或限制,因此 `ping`命令可能无法正常工作。此外,`ping`命令只能提供基本的连通性和延迟信息,并不能完全反映网络的性能状况。
69 2
|
5月前
|
Python Windows
ping命令无法使用~弹出ping.py
ping命令无法使用~弹出ping.py
44 0
|
1月前
|
域名解析 网络协议 测试技术
Ping 命令是如何工作的?
【2月更文挑战第9天】
29 0
Ping 命令是如何工作的?
|
3月前
|
网络协议 网络架构
比较ping,tracert和pathping等命令之间的关系
比较ping,tracert和pathping等命令之间的关系
25 0
|
3月前
|
运维 安全 网络协议
面试题:说下ping的原理
面试题:说下ping的原理
29 0
|
3月前
|
运维 网络协议 网络架构
百度搜索:蓝易云【比ping还好用的排障命令有哪些?】
这些命令可以提供更多详细的网络排障信息,帮助您诊断和解决网络问题。根据具体情况,您可以选择适当的命令来进行故障排查。请注意,使用这些命令可能需要适当的权限和网络访问权限。
46 0
|
8月前
Ping 命令配置 -c、-i、-w 指令使用
Ping 命令配置 -c、-i、-w 指令使用
104 0
|
4月前
|
网络协议 网络安全
百度搜索:蓝易云【你知道ping命令是如何工作的吗?】
需要注意的是,某些网络环境或目标主机的防火墙设置可能会禁止或过滤ICMP消息,导致ping命令无法正常工作或返回超时错误。
27 0
百度搜索:蓝易云【你知道ping命令是如何工作的吗?】
|
4月前
通过ping命令查询域名对应的ip信息
通过ping命令查询域名对应的ip信息
162 0