Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
! b0 U% z' v9 P: d# [) P, R( x9 }* O& H* D8 w5 |- B- U
Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。
v4 u4 d- x; v$ A, b7 f, y& _) | N9 w% Y( U- Y9 z$ r& H
例: 9 G# g) d0 U; B6 h' N% o4 q
数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。
. i" S8 `; w7 l- N主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。 1 A0 A1 T W3 M% ^* A! g
* l. o( G( a& N# Z3 F C:\>tracert 172.16.0.99 -d
$ z. C, ?6 v4 v2 g6 U. Y. j
4 w" }9 `8 w- Z1 k0 u" o2 E* G Tracing route to 172.16.0.99 over a maximum of 30 hops
& k4 h) R& k2 K) E
, s0 E6 _% e5 b. ~" ?0 c 1 2s 3s 2s 10,0.0,1
8 ]% m" h, h4 F0 o# n6 N2 Z% `& u! g# Q, I2 h8 x; l
2 75 ms 83 ms 88 ms 192.168.0.1
" [% B4 R1 G5 M. T( P0 j5 L. Z
6 c; o0 r, L& S( w 3 73 ms 79 ms 93 ms 172.16.0.99 & `0 e6 p8 N/ w9 U2 m( y; q; _
" R" d* y! L& b O; l% G! Z
Trace complete. - t5 {" X6 v7 [- {/ k7 Q) M4 I
W- O) f0 M6 X- S. ~& g用 tracert 解决问题
8 r' j' M$ n, g' A7 P2 E( ?- c+ e* D; F1 ?5 {/ c
可以使用 tracert 命令确定数据包在网络上的停止位置。 ) o* c/ B6 v. P( k
例: / j9 c( D _- h3 w8 R& V1 a, E
默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。
- Z* v- u5 p2 V1 [
$ f! I" e, g+ y0 ]) E/ J- }8 o C:\>tracert 192.168.10.99
' a& P7 W# t. x* o' C
1 m1 e% m# S/ v) [ Tracing route to 192.168.10.99 over a maximum of 30 hops
5 B' n( ?; G7 P; T( f
C9 `4 k! T) q: q$ n# c4 f 1 10.0.0.1 reports:Destination net unreachable. # o9 [* n4 v+ d4 {
G: I* V0 Q$ E& n Trace complete.
: {' Q% {& e3 B9 V/ [/ _3 S+ o' @
Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。
' v, a) A( _" ^' V) Y4 u8 y/ G$ }, {) |1 P
Tracert 命令行选项 " s) i' d/ d+ r' h
& W" z7 u3 H m( K" {; e/ j; V Tracert 命令支持多种选项,如下表所示。
7 T. B; Z7 N$ e6 x3 \9 h( @ tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name - y5 y( ]" t" b
-d " u& S8 |8 f" M4 j- y0 k
指定不将 IP 地址解析到主机名称。 ) T, f. \) z) y- b w! f
-h maximum_hops 4 q* N+ @( K1 l% }
指定跃点数以跟踪到称为 target_name 的主机的路由。 0 V+ N* _* Z/ L. W7 z0 |' I/ y
-j host-list
* {" N( C1 g! {" [ E y# o; i 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。 ( E" q) z, F9 P( S7 _
-w timeout
! U) c# H: b6 | 等待 timeout 为每次回复所指定的毫秒数。
# `4 k! ~) k- h7 ^6 [6 z, Itarget_name
! j6 t1 j9 N; s" l$ v 目标主机的名称或 IP 地址。 |