tracert和ping的原理总结.doc

合集下载

tracert与ping命令的详解

tracert与ping命令的详解

PING命令入门详解1、Ping的基础知识ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。

Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP工具。

它主要的功能是用来检测网络的连通情况和分析网络速度。

Ping有好的善的一面也有恶的一面。

先说一下善的一面吧。

上面已经说过Ping的用途就是用来检测网络的连同情况和分析网络速度,但它是通过什么来显示连通呢?这首先要了解Ping的一些参数和返回信息。

2、Ping命令详解首先需要打开DOS命令界面,通过点击开始菜单中的“运行”选项,输入“cmd”,回车即可打开(如下图)。

回车后我们输入 ping /? 例出ping 以下是PING的一些参数(如图):下面我和大家讲解一下,每个参数意思和使用。

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list -t Ping 指定的计算机直到中断。

-a 将地址解析为计算机名。

-n count 发送 count 指定的 ECHO 数据包数。

默认值为 4。

-l length 发送包含由 length 指定的数据量的 ECHO 数据包。

默认为 32 字节;最大值是65,527。

-f 在数据包中发送"不要分段"标志。

数据包就不会被路由上的网关分段。

-i ttl 将"生存时间"字段设置为 ttl 指定的值。

-v tos 将"服务类型"字段设置为 tos 指定的值。

关于ping和tracert的描述

关于ping和tracert的描述

关于ping和tracert的描述1.引言1.1 概述概述是一篇文章的引言部分,用于介绍文章所讨论的主题以及相关背景信息。

在本文中,我们将讨论ping和tracert这两个网络工具的描述。

首先,ping是一种常用的网络工具,用于测试与目标主机之间的网络连接。

它通过向目标主机发送数据包,并测量数据包的往返时间来判断网络连接的质量。

通过ping命令,我们可以确定网络是否稳定,以及判断是否存在延迟或数据丢失等问题。

Ping工具对于网络管理员和用户来说都是非常有用的,它可以帮助我们诊断网络故障和调试网络问题。

另一个我们将讨论的工具是tracert,它是一个用于追踪数据包路径的网络工具。

tracert命令通过发送一系列的数据包,并记录每个跃点的响应时间,以及保存在数据包中的数据。

通过这些数据,我们可以分析和确定数据包在经过网络时所经过的路由路径,以及判断是否存在数据包丢失、拥塞或其他网络问题。

Tracert工具对于网络管理员和专业用户来说非常有价值,它可以帮助我们找到网络连接的瓶颈,并在需要时采取相应的措施进行优化和改进。

通过本文,我们将详细描述ping和tracert这两个网络工具的功能、使用方法以及它们在网络故障排查和网络性能优化中的重要性。

我们还将探讨它们的未来发展方向,以及如何更好地利用它们来提高网络的可靠性和性能。

总之,本文将全面介绍ping和tracert这两个网络工具的描述,以及它们在网络管理中的作用。

通过理解和掌握这些工具的原理和用法,我们可以更好地解决网络故障和提高网络性能,从而更好地满足用户的需求和期望。

1.2 文章结构本文将分为三个主要部分,包括引言、正文和结论。

每个部分的内容如下:1. 引言:1.1 概述:介绍ping和tracert这两个网络工具的基本概念和作用。

说明它们在网络诊断和故障排除中的重要性。

1.2 文章结构:说明本文的组织结构和内容安排,包括各个部分的主要内容和目标。

Ping和Tracert命令原理详解

Ping和Tracert命令原理详解

Ping和Tracert命令原理详解Ping和Tracert是在计算机网络中常用的网络诊断工具,它们用于测试网络的连通性和追踪数据包的路径。

Ping命令基于ICMP协议,而Tracert命令则基于ICMP和TTL(Time to Live)字段。

下面将详细介绍Ping和Tracert的原理。

一、Ping命令原理:Ping命令用来测试两台计算机之间的网络连通性,它基于ICMP (Internet Control Message Protocol)协议工作。

Ping的原理是发送一个ICMP Echo请求报文到目标主机,并等待目标主机返回一个ICMP Echo回应报文。

通过观察发送和接收时间,可以判断网络是否正常连接。

当我们在命令行界面中输入“ping 目标主机”时,Ping命令会创建一个ICMP Echo请求报文,其中包含了一个序列号和时间戳等信息。

这个报文会被封装在IP(Internet Protocol)数据包中,并通过IP协议进行网络传输。

目标主机接收到ICMP Echo请求报文后,会生成一个ICMP Echo回应报文,并将其发送回源主机。

源主机可以通过比较发送和接收的序列号和时间戳来计算网络延迟(RTT,Round Trip Time)和丢包率。

通过Ping命令,我们可以测试两台计算机之间的网络延迟和丢包率,从而判断网络是否正常工作。

二、Tracert命令原理:Tracert命令用于追踪数据包的路径,它基于ICMP和TTL(Time to Live)字段的工作原理。

TTL字段是每个IP数据包中的一个字段,用来指定该数据包可以经过的最大路由器数。

当我们在命令行界面中输入“tracert 目标主机”时,Tracert命令会发送一系列的ICMP Echo请求报文到目标主机,每个报文有一个不同的TTL值。

初始的TTL值设置为1,然后每发送一个报文,TTL值递增1、当一个数据包到达一些主机时,这个主机会将TTL值减一,并将数据包转发到下一个主机。

ping命令和tracert命令的作用和原理

ping命令和tracert命令的作用和原理

ping命令和tracert命令的作用和原理Ping命令和Tracert命令是网络工具中常用的命令,它们用于检测网络连接的质量和诊断网络故障。

Ping命令用于测试主机之间的连通性,而Tracert命令则用于跟踪网络数据包在互联网中的路径。

下面将逐步介绍这两个命令的作用和原理。

一、Ping命令的作用和原理1. 作用:Ping命令用于测试与目标主机之间的网络连接情况,可以判断目标主机是否能够响应网络请求,以及网络延迟和丢包率等。

通过发送ICMP(Internet Control Message Protocol)数据包到目标主机,然后等待目标主机的响应,从而判断网络的连通状况。

2. 原理:Ping命令发送一个ICMP Echo Request消息(ping请求)到目标主机的IP地址。

目标主机收到该请求后,会返回一个ICMP Echo Reply消息(ping 响应)给源主机。

Ping命令根据发送请求和接收响应的时间来计算网络延迟(即Round Trip Time),以及统计发送和接收的数据包数量和丢失率。

Ping命令的执行步骤如下:Step 1: 用户在命令提示符下输入ping命令,后面跟上目标主机的IP地址或域名。

Step 2: 操作系统根据输入的IP地址或域名解析得到目标主机的IP地址。

Step 3: 操作系统创建一个ICMP Echo Request消息,并填充一些必要的字段,例如序列号和时间戳。

Step 4: 操作系统将ICMP Echo Request消息封装成一个IP数据包,并填写源IP地址和目标IP地址等信息。

Step 5: 操作系统将IP数据包发送到本地网络的网卡。

Step 6: IP数据包在本地网络中被交换机或路由器转发,依次经过多个网络节点,直到到达目标主机所在的网络。

Step 7: 目标主机收到ICMP Echo Request消息后,会生成一个ICMP Echo Reply 消息作为响应。

ping与Traceroute的工作原理

ping与Traceroute的工作原理

ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping程序的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者.
(1)假定:主机A的IP地址是192.168.1.1 主机B的IP地址是192.168.1.2
(2)在主机A上运行Ping192.168.1.2
(4)主机B端收到这个数据帧后,首先,检查它的目的地址,并和本机的MAC地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议。ICMP协议处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一摸一样。主机A收到了主机B的一个应答包,说明两台主机之间的去、回通路均正常。也就是说,无论从aceroute的工作原理:traceroute送出一个TTL是1的IP数据报(每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router )收到这个数据报时,它将TTL 减1 。此时,TTL 变为0 ,所以该路由器会将此数据报丢掉,并送回一个超时ICMP报文消息(包括发IP 包的源地址,IP 包的所有内容及路由器的IP地址),traceroute收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2的数据报 ,现第2 个路由器...... traceroute 每次将送出的数据报的TTL加1来发现另一个路由器,这个重复的动作一直持续到某个数据报抵达目的地。当数据报到达目的地后,该主机并不会送回超时ICMP报文,因为它已是目的地了。
(3)主机A端 首先,Ping命令构建一个固定格式的ICMP请求数据包。其次,由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议。接着,IP层协议以地址“192.168.1.2”作为目的地址,本机IP作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应MAC地址,一并交给数据链路层,然后数据链路层构建一个数据帧,目的地址是IP层传过来的MAC地址,源地址是本机的MAC地址,还要附加一些控制信息,依据以太网的介质访问规则,将他们传送出去。

ping和traceroute的区别

ping和traceroute的区别

ping和traceroute原理分析---异同----为什么不能ping通却能traceroute2007年02月02日星期五10:05关于ping和trace命令,有2个发现首先是ping和trace的不同,虽然都是ICMP协议,但是可以有ping过trace不过或者相反的情况再一个是pc的ping&trace和UNIX/router的不同,曾发生过某些节点前者不能过但后者却能够过的情况,当时也和同事讨论过,也没讨论出个子丑寅卯来不知道这有啥解释么?关于你的第一个问题,是很正常的,因为ping和traceroute的原理不同,对于ping,发送的是一个echo request包,类型为 8 0,当被ping者接到相关icmp包的时候,根据实际情况,逻辑是,就发回 reply 0 0,逻辑否,则根据具体情况发出一些其他的信息,总结起来的说,是看目的是否能及时的把icmp reply包送回到源,一当路径上的某个节点把reply包给deny掉了,就肯定ping不通了,比如会是time out,下面是对ping的一些debug 输出,debug ip pa de 100,access-list 100 permit icmp any any,1、这个是ping通的Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 36/51/68 msR4(config)#*Mar 1 00:03:20.579: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.1 (Serial1/0), routed via FIB *Mar 1 00:03:20.583: IP: s=172.16.14.2 (local), d=192.168.100.1 (Serial1/0), len 100, sending*Mar 1 00:03:20.587: ICMP type=8, code=0*Mar 1 00:03:20.639: IP: tableid=0, s=192.168.100.1 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RIB*Mar 1 00:03:20.643: IP: s=192.168.100.1 (Serial1/0), d=172.16.14.2 (Serial1/0), len 100, rcvd 3*Mar 1 00:03:20.647: ICMP type=0, code=02、有路由,ping不通的,我在R1上做了如下设置access-list 100 deny icmp any anyaccess-list 100 permit ip any anyint s1/0ip access-group 100 in然后在R4上 do debug ip pa de 100R4(config)#do ping 192.168.100.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.100.2, timeout is 2 seconds:U.U.USuccess rate is 0 percent (0/5)R4(config)#do debug ip pa de 100IP packet debugging is on (detailed) for access list 100R4(config)#R4(config)#R4(config)#do ping 192.168.100.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.100.2, timeout is 2 seconds:U*Mar 1 00:21:11.031: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:21:11.035: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 100, sending*Mar 1 00:21:11.039: ICMP type=8, code=0*Mar 1 00:21:11.075: IP: tableid=0, s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RIB *Mar 1 00:21:11.079: IP: s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:21:11.083: ICMP type=3, code=13-----tcp/ip 上看出,3 13代码暗示着由于过滤,通讯被禁止下面是有路由,因为reply包被deny而time out的,我把R1上的acl设置改成access-list 100 deny icmp any anyaccess-list 100 permit ip any anyint s1/0ip access-group 100 outR4(config)#do ping 192.168.100.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.100.2, timeout is 2 seconds:*Mar 1 00:25:15.735: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:25:15.735: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 100, sending*Mar 1 00:25:15.735: ICMP type=8, code=0.总结起来,ping能否成功有三个必要条件,1、互相有到达对端的路由,2、echo包没被禁止,3、别time out 掉(这个实验不好做,本来想通过设置timeout时间为10ms来做,哈哈,最小是1s.)对于traceroute,本质可以理解为hop by hop的ping,但这个ping和上面讲的ping不一样,这个ping和我们的ping命令不同,traceroute包发出去后,途经的每个站点都会发回一个类型代码为11 0的icmp 包回去,到了终点,才回发送一个代码为3 3的icmp包回到源,下面是一个traceroute的debug 输出R4(config)#do tracer 192.168.100.2Type escape sequence to abort.Tracing the route to*Mar 1 00:47:11.567: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:47:11.571: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 28, sending*Mar 1 00:47:11.571: UDP src=49234, dst=33434*Mar 1 00:47:11.599: IP: tableid=0, s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RIB *Mar 1 00:47:11.603: IP: s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:47:11.607: ICMP type=11, code=0*Mar 1 00:47:20.643: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:47:20.643: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 28, sending*Mar 1 00:47:20.647: UDP src=49235, dst=33435*Mar 1 00:47:20.707: IP: tableid=0, s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RIB *Mar 1 00:47:20.711: IP: s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:47:20.715: ICMP type=11, code=0*Mar 1 00:47:20.719: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:47:20.723: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 28, sending*Mar 1 00:47:20.723: UDP src=49236, dst=33436*Mar 1 00:47:20.767: IP: tableid=0, s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RIB *Mar 1 00:47:20.771: IP: s=172.16.14.1 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:47:20.775: ICMP type=11, code=0*Mar 1 00:47:20.783: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:47:20.787: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 28, sending*Mar 1 00:47:20.791: UDP src=49237, dst=33437*Mar 1 00:47:20.867: IP: tableid=0, s=172.16.123.2 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RI B*Mar 1 00:47:20.871: IP: s=172.16.123.2 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:47:20.875: ICMP type=3, code=3*Mar 1 00:47:26.903: IP: s=192.168.100.4 (Loopback0), d=255.255.255.255, len 71, unroutable*Mar 1 00:47:26.903: UDP src=57768, dst=53172.16.123.2*Mar 1 00:47:29.907: IP: tableid=0, s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), routed via FIB *Mar 1 00:47:29.907: IP: s=172.16.14.2 (local), d=192.168.100.2 (Serial1/0), len 28, sending*Mar 1 00:47:29.911: UDP src=49238, dst=33438*Mar 1 00:47:29.987: IP: tableid=0, s=172.16.123.2 (Serial1/0), d=172.16.14.2 (Serial1/0), routed via RI B*Mar 1 00:47:29.991: IP: s=172.16.123.2 (Serial1/0), d=172.16.14.2 (Serial1/0), len 56, rcvd 3*Mar 1 00:47:29.995: ICMP type=3, code=3从输出中可以验证一些东西,比如traceroute进程每跳发出三个探测包,上面也是中途站点R1的debug 输出R1(config)#do debug ip pa de 100IP packet debugging is on (detailed) for access list 100R1(config)#*Mar 1 00:47:20.311: IP: tableid=0, s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), routed via FIB*Mar 1 00:47:20.315: IP: s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), len 56, sending*Mar 1 00:47:20.319: ICMP type=11, code=0*Mar 1 00:47:29.387: IP: tableid=0, s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), routed via FIB*Mar 1 00:47:29.391: IP: s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), len 56, sending*Mar 1 00:47:29.395: ICMP type=11, code=0*Mar 1 00:47:29.467: IP: tableid=0, s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), routed via FIB*Mar 1 00:47:29.471: IP: s=172.16.14.1 (local), d=172.16.14.2 (Serial1/0), len 56, sending*Mar 1 00:47:29.475: ICMP type=11, code=0目的站点R2的输出R2(config)#do un allAll possible debugging has been turned offR2(config)#do debug ip pa de 100IP packet debugging is on (detailed) for access list 100R2(config)#*Mar 1 00:53:49.315: IP: s=172.16.14.2 (Serial1/2.1), d=192.168.100.2, len 28, rcvd 0*Mar 1 00:53:49.319: UDP src=49251, dst=33437*Mar 1 00:53:49.319: IP: tableid=0, s=172.16.123.2 (local), d=172.16.14.2 (Serial1/2.1), routed via FIB *Mar 1 00:53:49.323: IP: s=172.16.123.2 (local), d=172.16.14.2 (Serial1/2.1), len 56, sending*Mar 1 00:53:49.327: ICMP type=3, code=3R2(config)#*Mar 1 00:53:58.447: IP: s=172.16.14.2 (Serial1/2.1), d=192.168.100.2, len 28, rcvd 0*Mar 1 00:53:58.451: UDP src=49252, dst=33438*Mar 1 00:53:58.455: IP: tableid=0, s=172.16.123.2 (local), d=172.16.14.2 (Serial1/2.1), routed via FIB *Mar 1 00:53:58.455: IP: s=172.16.123.2 (local), d=172.16.14.2 (Serial1/2.1), len 56, sending*Mar 1 00:53:58.459: ICMP type=3, code=3*Mar 1 00:53:58.587: IP: s=172.16.14.2 (Serial1/2.1), d=192.168.100.2, len 28, rcvd 0*Mar 1 00:53:58.591: UDP src=49253, dst=33439由此可以看出,一样的道理,在中间站点上只要禁止代码11 0的icmp包输出,那么traceroute的输出中,关于那个站点就是*号了,或者在路上把代码为3 3 的禁止掉,一样会traceroute不通,而此时,ping通是一点问题都没有的,因为ping没有用到这些类型的icmp包,具体实验就不做了,时间紧张。

网络连通命令ping tracert pathping详解

网络连通命令ping tracert pathping详解

ping tracert pathping 详解说到ping 和tracert 命令大家都不陌生了,特别是在检测网络时,但pathping可能还有很多人没用过,现就讲解下并结合几个案例来说明。

1.ping(用来检测目标主机的连通)Ping原理发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答,然后打印出回显的报文。

Ping不通一个目的ip地址,并不一定表示这个IP不存在或者没有连接到网络上,因为对方主机有可能做了限制,比如防火墙做了禁ping,因此Ping不通并不是说主机挂了,这点需注意。

ping得到的结果包括字节数(bytes)、反应时间(time)、以及生存时间(TTL),如下结果: C:\Documents and Settings\sunjh>ping Pinging [125.39.127.25] with 32 bytes of data:Reply from 125.39.127.25: bytes=32 time=69ms TTL=50Reply from 125.39.127.25: bytes=32 time=66ms TTL=502.tracert(用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间)tracert原理通过向目标发送不同IP生存时间(TTL)值的“Internet控制消息协议(ICMP)”回应数据包,tracert诊断程序确定到目标所通过的路由。

要求路径上的每个路由器在转发数据包之前至少将数据包上的TTL递减1。

数据包上的TTL减为0时,路由器应该将“ICMP 已超时”的消息发回源系统。

tracert先发送TTL为1的回应数据包(默认最大30跳),并在随后的每次发送过程将TTL递增1,直到目标响应或TTL达到最大值,从而确定路由。

TTL(Time To Live)是一个IP数据报的生存时间,当每个IP数据报经过路由器的时候都回把TTL值减去1或者减去在路由器中停留的时间,但是大多数数据报在路由器中停留的时间都小于1秒种,因此实际上就是在TTL值减去了1。

Tracert命令和ping命令的作用

Tracert命令和ping命令的作用

TRACERT命令详解1.具体功能RACERT诊断实用程序通过向目的计算机发送具有不同生存时间的ICMP(Internet控制信息协议)回应报文,以确定至目的地的路由。

也就是说,TRACERT命令可以用来跟踪一个报文从一台计算机到另一台计算机所走的路径。

要在转发数据包上的TTL之前至少递减1,必需路径上的每个路由器,所以TTL是有效的跃点计数。

数据包上的TTL到达0时,路由器应该将“ICMP已超时”的消息发送回源系统。

TRACERT先发送TTL为1的回显数据包,并在随后的每次发送过程将TTL递增1,直到目标响应或TTL达到最大值,从而确定路由。

路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。

不过,有些路由器悄悄地下传包含过期TTL值的数据包,而TRACERT看不到。

2.语法详解tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name3.参数说明-d 指定不将地址解析为计算机名。

-h maximum_hops 指定搜索目标的最大跃点数。

-j computer-list 指定沿computer-list的稀疏源路由。

-w timeout 每次应答等待timeout指定的微秒数。

target_name 目标计算机的名称。

PING命令详解1.Ping命令的参数ping只有在安装了TCP/IP协议以后才可以使用:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list-tPing the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.不停的ping主机,直到你按下Control-C。

ping与tracert网络命令详解

ping与tracert网络命令详解

ping与tracert网络命令详解Pingping 的作用:简单来说,就是判断网站的延迟或是连通率。

形象的说就是通过露西这个名字查出露西家住哪里,并计算出A从自己家到B家走个来回需要多长时间,路上堵不堵车。

ping 的用法:ping 域名例子:上图是在网络畅通无误,DNS解析正确的情况下 ping 的结果。

发现露西家的地址是104.57.183.198,走个来回需要212ms,速度相当美丽,而且图中显示从A这里到B家的路上很通畅。

上图是昨天新网DNS故障时 ping 的结果。

Ping request could not find host. Please check the name and try again.找不到主机,请检查域名是否输入正确,当然咯,域名是没错的,那为什么找不到B家的地址呢?Tracerttracert 的作用:从你的电脑到你的网站,中间经过了多少个网络节点。

换句话说,从A这里到B 家需要走多少条街~进而可以知道到底是哪条路出了问题。

tracert 的用法:tracert 域名例子:上图是在网络畅通无误,DNS解析正确的情况下 tracert 的结果。

恩,路上有点堵车,延迟有点高啊(因为我这里在下电影^^),而且当我走到第8和第9条街的时候,IP显示虽在国内,但还是耽搁了不少时间,为什么呢,因为那里有岗哨,要检查!但最终还是走到了B的家~敲开了门上图是在昨天新网DNS故障时 tracert 的结果。

Unable to resolve target system name . 无法解析 这个域名,也就不知道去B的家该怎么走,网站自然就无法打开咯~再举个例子我们分别 ping 和 tracert 一下下面这两个MM,这两个MM虽然也很美,但是家长说她们是坏孩子,所以,是不允许A到他们家里滴~结果就只只能是这样咯~再看看前段时间刚被XX的免费域名。

仔细注意 tracert 的结果,有兴趣的朋友可以查查被截断的IP是哪里的,这样那个岗哨的位置我想大家就明白在哪里了吧。

01-05 Ping和Tracert

01-05 Ping和Tracert

5 Ping和Tracert 关于本章5.1 介绍5.2 原理描述5.1 介绍定义ping命令是最常见的用于检测网络设备可访问性的调试工具,它使用ICMP(InternetControl Message Protocol)的echo信息来决定:l远程设备是否可用l与远程主机通信的来回旅程(round-trip)的延迟(delay)l包(packet)的丢失情况tracert命令用于测试数据包从发送主机到目的地所经过的路径。

目的当设备出现故障时,可以首先使用ping与tracert测试网络连接是否正常工作。

ping主要用于检查网络连接及主机是否可达。

源主机向目的主机发送ICMP请求报文,目的主机向源主机发送ICMP回应报文。

tracert主要检查网络连接是否可达以及分析网络什么地方发生了故障。

5.2 原理描述5.2.1 Ping/TracertPingPing的工作过程在Ping过程中,发起端会发送ICMP(Internet Control Message Protocol) Echo Request报文到指定的某个地址,然后等待的应答。

目的端接收到ICMP Echo Request后,将返回ICMP Echo Reply报文给发起端。

若在超时时间之内ICMP Echo Reply报文能够到达发起端,说明目的端可达。

否则,说明目的端不可达,并在发起端显示超时。

Ping命令是把ICMP报文中的标识符置为发送该ICMP报文的进程的ID号,这样即使在同一台主机上同时运行了多个Ping程序,可以识别出返回的信息。

Ping命令每发送一个ICMP Echo Request报文,报文序号就加1(从1开始增加),在不同的Ping过程中,发送ICMP Echo Request的数量也有所不同,默认情况发送5个,如果对端可达,则在对端会相应回应5个和请求端同样序号的ICMP Echo Reply报文。

也可以通过命令行参数设置发送ICMP Echo Request报文的个数。

ping 与 traceroute 的工作原理分析

ping 与 traceroute 的工作原理分析

一、pingping 程序的主要目的是测试主机是否可达,它发送ICMP 回显请求报文给目的主机,并等待返回ICMP 回显应答ping 程序一般会周期性持续地发送ICMP 请求报文,除非用户手动终止,或指定了发送报文个数回显请求和回显应答通过序列号(icmp_seq)进行匹配,下图中序列号依次为1、2、3、4 ...ping 程序通过数据报中记录的发送请求时间值和接收到回显应答报文的当前时间值,计算往返耗时(time)常见问题:1. 为什么ping 第一次一般会产生更多耗时?因为ping 第一次的时候,需要首先进行ARP 解析,获取IP 地址对应的MAC 地址(同时将映射关系缓存),而下次ping 的时候会直接从ARP 高速缓存读取,少了一个步骤,自然时间就缩短了!二、traceroutetraceroute 程序的主要目的是获取从当前主机到目的主机所经过的路由官方方案(TCP/IP详解里提供的基于UDP 的方案):通过封装一份UDP 数据报(指定一个不可能使用的端口,30000以上),依次将数据报的TTL 值置为1、2、3...,并发送给目的主机。

当路径上第一个路由器收到TTL 值为1 的数据报时,首先将该数据报的TTL 值减1,发现TTL 值为0,而自己并非该数据报的目的主机,就会向源主机发送一个ICMP 超时报文,traceroute 收到该超时报文,就得到了路径上第一台路由器的地址;然后照此原理,traceroute 发送TTL 为 2 的数据报时,会收到路径上第二台路由器返回的ICMP 超时报文,记录第二台路由器的地址;直到报文到达目的主机,目的主机不会返回ICMP 超时,但由于端口无法使用,就会返回一份端口不可达报文给源主机,源主机收到端口不可达报文,证明数据报已经到达了目的地,停止后续的UDP 数据报发送,将记录的路径依次打印出来,使命完成,结束任务。

注意:目的主机端口号最开始设置为33435,且每发送一个数据报加1,可以通过命令行选项来改变开始的端口号约束:1. 不能保证现在的路由也是将来所要采用的路由,甚至两份连续的IP 数据报都可能采用不同的路由;2. 不能保证ICMP 报文的路由与traceoute 程序发送的UDP 数据报采用同一路由,时间测量可能不准;3. 返回的ICMP 报文中的信源IP 地址是UDP 数据报到达的路由器接口的IP 地址;当从网络1某主机执行traceroute 程序到网络3某主机,返回的路径将是if1 和if3 的地址;而反方向,将打印出if4 和if2 的地址缺陷:1. 中间路由器有可能做了限制,不返回ICMP 超时报文,traceroute 就无法获得其地址了,只能打印出* 或no reply2. 目的主机可能由于安全原因不会向源主机返回端口不可达的ICMP 报文,尽管探测数据报已经到达了目的主机,但traceroute 程序收不到端口不可达报文,就仍会持续发送请求...————————————————版权声明:本文为CSDN博主「shida_csdn」的原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

ping和tracert的原理

ping和tracert的原理

ping和tracert的原理
Ping和Tracert是常用的网络诊断工具,用于测试和跟踪网络连接的可用性和路由路径。

它们的原理如下:
1. Ping(ICMP Echo Request/Reply):
- Ping发送一个ICMP(Internet Control Message Protocol)的回声请求消息到目标主机。

-目标主机收到请求后,会发送一个回声应答消息回到源主机。

-源主机通过测量往返时间(RTT)来计算出目标主机的响应时间和可达性。

-如果成功接收到回应,表示目标主机可达;如果无法接收到回应,表示目标主机不可达或存在网络问题。

2. Tracert(ICMP/TCP/UDP):
- Tracert发送一系列的ICMP/TCP/UDP数据包从源主机到目标主机,并在每一跳上记录经过的路由器。

-每个数据包在经过路由器时,路由器将其TTL(Time To Live)字段减1。

-当TTL为0时,路由器将数据包丢弃,并发送一个ICMP超时消息回到源主机。

-源主机通过追踪收到的超时消息,就可以识别出所有经过的路
由器以及它们的响应时间。

- Tracert通过对多个数据包的发送和超时消息的收集,来计算出整个路径的响应时间和路由路径。

总结:
-Ping通过发送回声请求和接收回声应答来测试目标主机的可达性和响应时间。

- Tracert通过发送多个数据包和收集超时消息来跟踪网络路径,并确定经过的路由器和响应时间。

Tracert命令和ping命令的作用

Tracert命令和ping命令的作用

TRACE‎R T命令详‎解1.具体功能RACER‎T诊断实用‎程序通过向‎目的计算机‎发送具有不‎同生存时间‎的ICMP‎(Inter‎n et控制‎信息协议)回应报文,以确定至目‎的地的路由‎。

也就是说,TRACE‎R T命令可‎以用来跟踪‎一个报文从‎一台计算机‎到另一台计‎算机所走的‎路径。

要在转发数‎据包上的T‎TL之前至‎少递减1,必需路径上‎的每个路由‎器,所以TTL‎是有效的跃‎点计数。

数据包上的‎T TL到达‎0时,路由器应该‎将“ICMP已‎超时”的消息发送‎回源系统。

TRACE‎R T先发送‎T TL为1‎的回显数据‎包,并在随后的‎每次发送过‎程将TTL‎递增1,直到目标响‎应或TTL‎达到最大值‎,从而确定路‎由。

路由通过检‎查中级路由‎器发送回的‎“ICMP已超时”的消息来确‎定路由。

不过,有些路由器‎悄悄地下传‎包含过期T‎TL值的数‎据包,而TRAC‎ER T看不‎到。

2.语法详解trace‎r t [-d] [-h maxim‎u m_ho‎p s] [-j compu‎t er-list] [-w timeo‎u t] targe‎t_nam‎e3.参数说明-d 指定不将地‎址解析为计‎算机名。

-h maxim‎u m_ho‎p s 指定搜索目‎标的最大跃‎点数。

-j compu‎t er-list 指定沿co‎m pute‎r-list的‎稀疏源路由‎。

-w timeo‎u t 每次应答等‎待ti me‎o u t指定‎的微秒数。

targe‎t_nam‎e目标计算机‎的名称。

PING命‎令详解1.Ping命‎令的参数‎ping只‎有在安装了‎T C P/IP协议以‎后才可以使‎用:ping [-t] [-a] [-n count‎] [-l lengt‎h] [-f] [-i ttl] [-v tos] [-r count‎] [-s count‎] [[-j compu‎t er-list] | [-k compu‎t er-list]] [-w timeo‎u t] desti‎n atio‎n-list‎-tPing the speci‎f ied host until‎stopp‎e d.To see stati‎s tics‎and conti‎n ue - type Contr‎o l-Break‎;To stop - type Contr‎o l-C.不停的pi‎n g主机,直到你按下‎C o ntr‎o l-C。

华为Ping命令和Tracert原理及参数介绍

华为Ping命令和Tracert原理及参数介绍

华为Ping命令和Tracert原理及参数介绍华为Ping命令和Tracert原理及参数介绍Ping原理Ping命令的使用方法命令功能ping命令用来检查IP网络连接及主机是否可达。

命令格式ping [ ip ] [ -a source-ip-address | -c count | -d | -f | -h ttl-value | -i interface-type interface-number | -m time | -n | -p pattern | -q | -r | -s packetsize | -system-time | -t timeout | -tostos-value | -v | -vpn-tancevpn-instance-name ] * hostping ipv6 [ -a source-ip-address | -c count | -m time | -s packetsize | -t timeout | -tc [ traffic-class-value ] | vpn6-instance [ vpn6-instance-name ] ] * host [ -i interface-type interface-number ]Ping命令的参数介绍参数说明ping -s 500 -c 1000 -a 10.10.10.103.3.3.3S包大小c次数a源地址ip:使用IP协议。

-a source-ip-address:设置发送ICMP ECHO-REQUEST报文的源IP地址。

-c count:发送ICMP ECHO-REQUEST报文次数,范围1~4294967295。

缺省为5次。

-d:设置socket为debug模式。

缺省为非debug模式。

-f:设置报文发送的过程中不分片,只有IPv4支持。

-h ttl-value:设置TTL的值,范围1~255。

tracert_与_ping_程序设计与实现实验目的_概述说明

tracert_与_ping_程序设计与实现实验目的_概述说明

tracert 与ping 程序设计与实现实验目的概述说明1. 引言1.1 概述:本文旨在详细介绍tracert和ping程序的设计与实现以及相关实验结果分析。

tracert和ping是常用的网络诊断工具,在网络故障排除和性能优化中起着重要作用。

tracert用于跟踪数据包从源主机到目标主机的路由路径,可以帮助定位网络延迟和丢包问题的根源;ping则通过发送ICMP回显请求来测试目标主机的连通性,并计算往返时间(RTT)和丢包率。

1.2 文章结构:本文共分为五个部分。

引言部分对实验内容进行概述,说明文章结构,并明确目的。

第二部分将详细介绍tracert和ping程序的设计与实现过程。

第三部分将对tracert程序的实验结果进行分析,包括路由跟踪过程、延迟和丢包率等方面。

第四部分类似地对ping程序进行结果分析,并比较两者之间的差异及讨论。

最后一部分是结论部分,总结了实验成果并展望了未来研究方向。

1.3 目的:本文旨在通过对tracert和ping程序设计与实现实验结果的详细分析,揭示这些网络诊断工具背后的原理和机制,以及它们在网络故障排除中的作用。

通过本实验可以更好地理解网络通信过程中的延迟和丢包问题,并为进一步优化网络性能提供指导意见。

此外,本文还将展示程序设计和开发的一般方法和技巧,从而对读者在相关领域开展研究提供帮助。

2. 实验设计与实现:2.1 tracert程序设计与实现:在本实验中,我们着重研究和设计了tracert程序的实现。

tracert程序是一个网络工具,用于追踪数据包从源主机到目标主机经过的路由路径。

为了完成tracert 程序的设计和实现,我们需要遵循以下步骤:首先,我们需要使用编程语言(如Python或C++)来编写tracert程序的代码。

这个程序将利用操作系统提供的套接字和ICMP协议来发送和接收网络数据包。

其次,在代码中,我们需要定义一个函数或子程序来处理和解析收到的ICMP 回复数据包。

24张图搞定ICMP:最常用的网络命令ping和tracert

24张图搞定ICMP:最常用的网络命令ping和tracert

24张图搞定ICMP:最常用的网络命令ping和tracertICMPIP 是尽力传输的网络协议,提供的数据传输服务是不可靠的、无连接的,不能保证数据包能成功到达目的地。

那么问题来了:如何确定数据包成功到达目的地?这需要一个网络层协议,提供错误检测功能和报告机制功能,于是出现了 ICMP(互联网控制消息协议)。

ICMP 的主要功能是,确认IP 包是否成功送达目的地址,通知发送过程中 IP 包被丢弃的原因。

有了这些功能,就可以检查网络是否正常、网络配置是否正确、设备是否异常等信息,方便进行网络问题诊断。

举个栗子:如果在传输过程中,发生了某个错误,设备便会向源设备返回一条 ICMP 消息,告诉它发生的错误类型。

ICMP 消息是通过 IP 进行传输,但它的目的并不是让 IP 成为一种可靠的协议,而是对传输中发生的问题进行反馈。

ICMP 消息的传输同样得不到可靠性保证,也有可能在传输过程中丢失。

因此ICMP 不是传输层的补充,应该把它当做网络层协议。

ICMP 消息封装ICMP 消息使用 IP 来封装,封装格式如下图。

其中 type(类型)字段表示 ICMP 消息的类型,code(代码)字段表示 ICMP 消息的具体含义。

例如:type 值为 3 表示目的不可达消息( Destination Unreachable Message ),若 code 值为 0 表示目的网络不可达(Network Unreachable )。

常见的 ICMP 消息类型如下图。

从功能上,ICMP 的消息可分为两类:一类是通知出错原因的错误消息,另一类是用于诊断的查询消息。

常见的 ICMP 消息类型•回送请求消息( Echo Request ):是由源设备(主机或路由器等)向一个指定的目的设备发出的请求。

这种消息用来测试目的地是否可达。

•回送响应消息( Echo Reply ):对 Echo Request 的响应。

目的设备发送Echo Reply 来响应收到的Echo Request 。

简述tracert的原理

简述tracert的原理

简述tracert的原理Tracert(traceroute)是一种网络诊断工具,用于确定数据包从计算机到特定目标主机的路径,并显示它们在互联网上的每一跳的延迟时间。

它通过发送一系列的ICMP回显请求(ping)来实现这个过程,每次将TTL(生存时间)字段设为逐步递增的值,使数据包在网络中逐跳地转发,同时记录下每一跳的信息。

Tracert的原理基于IP协议和ICMP协议。

Tracert的工作方式可以分为三个主要步骤:发送数据包、处理回显报文、显示结果。

下面将详细介绍这三个步骤,并且对Tracert的原理进行阐述。

第一步,Tracert发送数据包。

在开始时,Tracert会向目标主机发送一系列的ICMP回显请求数据包(ping包)。

这些数据包的TTL字段初始值通常为1,然后逐个递增。

TTL表示数据包在网络中可以经过的最大路由器跳数。

当设置为1时,数据包只能在本地网络内进行转发,在第一个路由器上即被丢弃,路由器向源主机返回"Time Exceeded"(超时)的错误消息。

通过逐个递增TTL字段的值,Tracert可以获取到数据包经过的每一跳的路由信息。

第二步,处理回显报文。

当目标主机收到Tracert发送的ICMP回显请求数据包后,会返回ICMP回显回复数据包(pong包)。

这些回复数据包携带着关键的信息,包括源主机的IP地址、返回时间和中间路由节点的IP地址。

Tracert通过截取和解析这些回复数据包,提取所需的信息,并计算每一跳的延迟时间。

第三步,显示结果。

Tracert将处理后的信息显示在命令行窗口或图形化界面上。

通常,Tracert会显示每一跳的IP地址、域名(如果有)、该跳的延迟时间和数据包是否丢失。

根据这些信息,用户可以确定数据包到达目标主机所经过的路由,并判断网络连接是否正常。

Tracert的原理基于IP协议和ICMP协议。

IP(Internet Protocol)是一种互联网协议,是在网络中进行数据传输的基础协议,决定了数据包如何在网络中寻址和路由。

tracert的原理

tracert的原理

tracert的原理tracert的原理:tracert(跟踪路由器)是一种网络诊断工具,用于确定数据包在互联网上的路由路径。

它的原理是通过发送一系列的Internet控制消息协议(ICMP)回显请求(Ping命令),并监听每个路由器的回应时间来生成一条路由路径。

当我们运行tracert命令时,它会向目标主机发送一份特定的IP数据包,并在数据包的TTL(Time to Live)字段中设置初始值。

该数据包的目标地址是目标主机的IP地址,但TTL字段的初值比实际的网络跳数大。

例如,如果目标距离我们有10个路由器,则将TTL设置为11。

一旦数据包离开我们的计算机,TTL字段的值就会减少1。

当一个中间路由器收到该数据包时,它会将TTL值减少1,并尝试将该数据包转发到下一跳。

如果TTL减为0,路由器将丢弃该数据包,并发送一个「超时」(time exceeded)的ICMP消息回到源主机。

这个ICMP消息是tracert所关注的内容之一。

当我们运行tracert时,它将发送一系列的数据包,每个数据包的TTL值依次增加,以便逐个路由器地进行探测。

通过检查每个数据包的超时反馈和回传时间,tracert可以确定数据包经过的路由路径。

tracert还可以显示每个路由器的IP地址,以及数据包在每个路由器上的传输时间。

这对于诊断网络延迟问题以及确定在网络路径上是否存在潜在的问题非常有用。

总结而言,tracert的原理是通过发送一系列带有不同TTL值的数据包,监测每个数据包的返回时间和超时消息,以确定数据包在互联网上的路由路径和每个路由节点的IP地址。

它可以为网络故障排查和网络性能优化提供重要的信息。

关于Ping和Tracert命令原理详解

关于Ping和Tracert命令原理详解

关于Ping和Tracert命令原理详解本文只是总结了两个常用的网络命令的实现原理和一点使用经验说明。

这些东西通常都分布在各种书籍或者文章中的,我勤快那么一点点,总结一下,再加上我的一点理解和使用经验,方便大家了解。

这些也是很基础的东西,没什么高深的。

Ping这个应该大家都会用的吧,最主要的就是检测目标主机是不是可连通。

Ping程序实际就是发送一个ICMP回显请求报文(就是请求别人收到这个报文之后回显)给目的主机,并等待回显的ICMP应答。

然后打印出回显的报文。

Ping不通一个地址,并不一定表示这个IP不存在或者没有连接在网络上,因为对方主机可能做了限制,比如安装了防火墙,因此Ping不通并不表示不能使用FTP或者TELNET连接。

C:\Documents and Settings\snoopy> ping 202.103.176.22 /t Pinging 202.103.176.22 with 32 bytes of data: Reply from 202.103.176.22: bytes=32 time=6ms TTL=58 Reply from 202.103.176.22: bytes=32 time=6ms TTL=58PING得到的结果包括字节数、反应时间、以及生存时间。

Ping 程序通过在ICMP报文数据中存放发送请求的时间来计算返回时间。

当应答返回时,根据现在时间减去报文中存放的发送时间就得到反应时间了。

生存时间(TTL),本来就存放在IP数据报的头部,直接就能够获取。

在返回的报文显示的TTL值表示从目标主机到源主机剩下的跳数。

Tracert首先,要知道一个路由器的原理:当路由器接收到一个TTL为1的IP数据报的时候,路由器就不再转发这个数据了,而直接丢弃,并且发送一个ICMP“超时”信息给源主机,这个信息会带上自己的接口地址。

(当路由器接收到TTL=1的数据包时,它会将TTL值减1,这时TTL值减为0,路由器将会丢弃该报文并向源点发送错误信息。

ping和tracert命令

ping和tracert命令

ping和tracert命令Ping简介Ping是基于ICMP协议实现的。

通过从源端向⽬的端发送ICMP回显请求(Echo Request)报⽂后,根据是否收到⽬的端的ICMP回显应答(Echo Reply)报⽂来判断⽬的端是否可达。

即源端在⼀个有效时间内(等待回显应答报⽂超时时间之前)收到⽬的端返回的ICMP回显应答报⽂,则说明⽬的端可达。

如果在有效时间内,没有收到应答报⽂,则说明⽬的端不可达。

对于可达的⽬的端,根据发送报⽂个数、接收到响应报⽂个数来判断链路的质量,根据Ping报⽂的往返时间来判断链路的质量。

ping命令格式这⾥只列举了常⽤的参数,并对参数进⾏解释说明。

详细的命令参数解释和使⽤⽅法请参见相应版本“命令参考” ⽹络管理与监控命令-Ping和Tracert配置命令中的ping命令。

ping [ ip ] [ -a source-ip-address | -c count | -f | -s packetsize | -t timeout ] *host-a:设置发送ECHO-Request报⽂的源IP地址,如果不指定源IP地址,将采⽤出接⼝的IP地址作为ICMP ECHO-Request报⽂发送的源地址。

-c:设置发送ECHO-Request报⽂的次数,缺省为5。

当⽹络质量不⾼时,可以增加发送报⽂数⽬,通过丢包率来检测⽹络质量。

-f:设置发送的报⽂不分⽚,如果MTU值⼩于报⽂⼤⼩会丢弃该报⽂。

-s:设置发送ECHO-Request报⽂⼤⼩(不含IP和ICMP头),缺省报⽂长度是56字节。

-t:设置发送完ECHO-Request后,等待ECHO-REPLY的超时时间。

在⽹络状况不好的情况下,可以适当改⼤该参数。

缺省为2s,即2s内没有收到回复报⽂即认为⽬的不可达。

host:可以是IP地址或域名,如果是域名会⾸先进⾏DNS解析,并显⽰解析后的IP地址。

可以配合-s和-f参数来探测中间链路最⼤的MTU(链路PMTU),如设置-s为1472可以通⽽1473不通,则该链路最⼤MTU为1500(1472+20IP头+8ICMP头)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

今天仔细的看了下PING和TRACERT的原理,然后又请教了一下高手并且自己和同事做了一下实验,总结如下: 1、PING命令主要作用是测试2台设备网络层之间是否。

其工作原理:假设A路由器PING B路由器,A路由器会先发一个ICMP ECHO报文(TYPE=8,CODE=0),如果2台设备之间路由是可达的,B收到后会回一个ICMP REPLY的报文(TYPE=0,CODE=0)。

ping命令也可以显示经过的跳数,这样也可以通过PING命令查看我经过了哪几跳,每一跳的IP地址,命令参数是-R。

但不是所有的路由器均支持该命令,并且IP首部中留给选项的空间有限,不能存放太多的路径,一般最多就只能存放9个IP地址。

2、TRACERT命令主要作用和PING -R的作用一样,是测试2台设备之间经过的跳数和每一跳的IP地址。

其工作原理分2种情况说明:
1)假设A是一台PC机,由A来TRACERT B,A首先会发送一个ICMP ECHO的报文(TYPE=8,CODE=0),并且该报文的TTL=1,第一个路由器收到后会丢弃该报文不转发,并返回一个ICMP超时的报文(TYPE=11,CODE=0),然后A会在发送一个ICMP ECHO的报文,这时TTL=2,下一个路由器收到后又回一个ICMP超时报文。

当报文到达B后,B会回给A一个ICMP端口不可达的报文(TYPE=3,CODE=3)。

2)假设A是一台路由器,由A来TRACERT B,A首先会发送一个UDP报文,并且UDP的端口号大于30000以保证这个端口号在B上未被占用,该报文的TTL=1,第一个路由器收到后会丢弃该报文不转发,并返回一个ICMP 超时的报文(TYPE=11,CODE=0),然后A会在发送一个UDP的报文,这时TTL=2,下一个路由器收到后又回一个ICMP超时报文。

当报文到达B后,B会回给A一个ICMP端口不可达的报文(TYPE=3,CODE=3)。

PS:A发送出第一个报文后不需要等到收到应答包后才发第二个报文,我们在抓包的时候先收到了B发过来的ICMP端口不可达的包,后收到ICMP超时的包。

但在另一台电脑上抓包就是先收到ICMP超时的包,后收到ICMP端口不可达的包。

总结:我们在实际应用中可以针对ICMP的类型做限制,完全可以做到能PING通不能TRACERT通、能TRACERT 通不能PING通、PC能TRACERT通路由器而路由器不能TRACERT通PC。

相关文档
最新文档