ping命令、tracert命令的详细介绍

本文涉及的产品
云防火墙,500元 1000GB
简介:

虽然DOS系统早已被淘汰,但是在管理维护网络时,DOS命令给我们提供了一种更加方便快捷、系统资源占用更少的操作方式。在这个系列中将陆续介绍一些在网络管理中经常用到的网络命令。

一、ping命令     

1、ping命令的工作原理

Ping是最常用的网络命令,对这个我们最熟悉的命令非常有必要首先对它的原理进行深入了解。
ping命令利用ICMP协议进行工作。ICMP,Internet控制消息协议,主要用来在网络中的IP主机、路由器之间传递一些控制消息,所谓控制消息是指网络通不通、目的主机是否可达等消息。ICMP协议中包括了很多不同类型的控制消息,ping命令主要利用了其中的两种:“echo request”(回显请求)消息和“echo reply”(回显应答)消息。
ping命令的工作原理是在发送方主机上发送“echo request”(回显请求)控制消息,接收方正确接收后即发回“echo reply”(回显应答)控制消息,从而判断出双方能否正常通信。其过程如下图所示。

 假设在A计算机上ping B,如果能ping通,在A计算机上显示的信息是从B计算机上返回来的。如果不能ping通,A计算机上显示的信息则是由系统产生的错误提示。

2、ping命令的显示信息
Windows系统中,默认情况下,每次执行ping命令会发送4个“echo request”消息,每个数据包大小为32字节,如果一切正常,应能收到4个同样为32字节大小的“echo reply”消息。如对百度执行ping命令显示的消息如下:
 
  从这些消息中,首先可以获知百度的IP地址,当然这是由DNS服务器解析出来的。        
 另外,通过回显应答中的“time”,可以大致推断出网速情况,数据传递经过的时间越长,网速越慢。
回显应答中的“TTL”,即数据包的生存周期。每个系统对其所发送的数据包都要赋一个TTL的初始值,默认情况下,Windows XP和Window 2003系统的TTL初始值为128,Win7和Linux系统为64(当然,系统的TTL初始值都是可以修改的)。当数据包被发送到网络上之后,每经过一次路由,TTL值就要减1,所以通过TTL值,我们可以大概地推算出推断出数据包在传送过程中经过了多少次路由。像ping百度的回显应答中显示的TTL值为54,首先可以推断出对方的TTL初始值应该为64,数据包在传送过程中经过了10次路由。
       
如果执行 ping命令后,无法接收到对方的回显应答,则错误提示通常为:“Request timed out”(请求超时),出现这种提示,表示网络不通,但具体故障原因要视实际网络情况而定。
另外还有一种错误提示为:“Destination host unreachable”(目的主机不可达),
出现这种提示,则通常是因为没有设置网关或网关设置不正确。
比如,有台 PC的IP地址为192.168.0.10,子网掩码255.255.255.0,默认网关为192.168.0.1。在PC机上随便ping另外一个网段中的不存在的IP,如ping 172.16.1.10,因为这个IP根本不存在,所以显示错误提示“Request timed out”;将PC机的默认网关删掉,再次ping 172.16.1.10,此时则因为没有网关为其转发数据,所以显示错误提示“Destination host unreachable”。因而通过不同的错误提示,我们可以大致地判断出故障原因。
 
3、防火墙中对ICMP协议的设置
由于ICMP协议是一个比较复杂的协议,功能强大,经常被黑客利用来攻击网络上的路由器和主机,所以目前的很多杀毒软件或防火墙都提供了过滤ICMP控制消息的功能。如Windows XP中自带的防火墙就提供了这样的设置,在防火墙的高级选项中有一项专门针对ICMP协议的设置,如下图所示。

点击设置按钮之后,可以设置是否过滤某种类型的ICMP控制消息,默认情况下,所有类型的控制消息都被禁止传入,所以此时即使在网络正常连通的情况下别人也无法ping通这台主机。为了能够正常地执行ping命令,必须 启用“允许传入回显请求”。

WIN7系统中的防火墙默认也过滤了回显请求消息,在防火墙设置的入站规则中启用“网络-回显请求(ICMPv4-In)”,并将操作设置为“允许”,如下图所示。

3、ping命令的常用参数

1)ping IP地址 –t
连续不停对IP地址发送ICMP数据包,直到被用户以Ctrl+C中断。
如:ping 192.168.1.1 -t
2)ping IP地址 –n
自由指定所发送的ICMP数据包的个数,并且个数没有限制。
如:ping 192.168.1.1 –n 10
3)ping IP地址 –l n
自由指定所发送的ICMP数据包的大小,上限为65500B。
如:ping 192.168.1.1 –l 100

这些参数也可以同时使用,如执行“ ping IP地址 –l 65500 –t”命令,连续向某一主机发送最大数据包,则很有可能使对方系统资源耗尽而死机或无法上网,所以这个命令也被称为“死亡之ping”。
死亡之 ping是一种典型的DoS(denial of service)攻击,即拒绝服务攻击。拒绝服务攻击以被攻击者的机器无法提供正常服务为攻击目的,常见的DoS攻击都是向被攻击者发送大量的垃圾数据包,使被攻击者一直在处理这些垃圾数据包而浪费资源,同时也消耗大量的网络带宽,最后导致被攻击者宕机,或者网络迟缓。但对于目前的计算机来讲,由于大多性能强劲,带宽也很高,所以死亡之ping以及一些类似的攻击方法已无法发挥作用。
单独一台计算机对目标机器发动死亡之 ping无法发挥作用,但是如果有多台计算机同时向目标机器发动死亡之ping,则威力仍然是巨大的。这种攻击方式就被称为DDoS(Distribution Denial of service),即分布式拒绝服务攻击。大规模的DDoS攻击很难防御,这也是目前一直无法从根本上解决的一个重要的网络安全问题。

二、tracert命令

Tracert也是一个利用ICMP协议工作的常用命令,它的工作原理是向指定的目的主机发送回显请求消息,并把封装该消息的数据包的TTL值从1开始递增。这样当数据包发送到网络中后,每经过一个路由器,路由器都要检查该报文的TTL是否到期,没有到期则把TTL值减1并传送到下一个路由器,如果到期了,则向发送方主机发送超时“Timed out”的ICMP消息。通过这种递进的查询过程,查询端就可以追踪到达目的主机所经过的所有路由器的情况。
例如,通过tracert跟踪到达百度所经过的路由,如下图所示。

 

Tracert命令每次发出3个回显请求消息,所以执行命令后首先看到的是路由器发回的3个超时消息所经过的时间,然后依次是所经过的每一个路由器的IP地址。从执行的结果看,从主机发出数据包直至百度,中间的确是经过10次路由,这也印证了从ping命令中推测的结果。
不过需要指出的是数据包途经的路由器,在每次传递过程中都可能不一样。

如果网络出现故障,通过tracert命令可以确定数据包在网络上的停止位置,从而使我们能够发现故障点。


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

相关文章
|
3天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
57 20
|
1月前
|
Linux iOS开发 网络架构
如何使用 Ping 命令监测网络丢包情况?
如何使用 Ping 命令监测网络丢包情况?
137 48
|
1月前
|
Linux iOS开发 MacOS
如何设置 Ping 命令的超时时间?
如何设置 Ping 命令的超时时间?
92 2
|
1月前
|
运维 监控 Linux
别再只会使用简单的 ping 命令了,Linux 中这些高级 ping 命令可以提高工作效率!
在 Linux 系统中,ping 命令不仅用于检测网络连通性和延迟,还拥有多种高级选项和技巧,如定制数据包大小、获取详细统计信息、持续 ping、指定源地址和多目标 ping。本文详细介绍这些高级命令及其在性能测试、故障排查和网络监控中的实际应用,帮助你提升网络管理效率。
124 3
|
1月前
|
Linux 网络安全 Android开发
高级 ping 命令及技巧
Ping命令是一种常用的网络诊断工具,用于测试网络连接的可达性和延迟等信息
79 1
|
1月前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
81 3
|
2月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
186 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
2月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
4月前
|
域名解析 监控 网络协议
Ping命令的替代工具有哪些?
【8月更文挑战第14天】Ping命令的替代工具有哪些?
233 2
|
4月前
|
网络协议 Linux 网络安全
如何使用 ping 命令进行故障排除**
【8月更文挑战第24天】
71 0

热门文章

最新文章

下一篇
DataWorks