如何使用 TRACERT 解决 Windows 中的 TCP/IP 问题
如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。 例如,"sh int" 的意思是 "show interface"。现在 Windows 2000 也有了类似界面的工具,叫做 netsh。我们在 Windows 2000 的 cmd shell 下,输入 netsh就出来:netsh> 提示符,输入 int ip 就显示:interface ip>然后输入 dump ,我们就可以看到当前系统的网络配置:# ----------------------------------# Interface IP Configuration# ----------------------------------pushd interface ip# Interface IP Configuration for "Local Area Connection"set address name = "Local Area Connection" source = static addr = 192.168.1.168mask = 255.255.255.0add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1set dns name = "Local Area Connection" source = static addr = 202.96.209.5 set wins name = "Local Area Connection" source = static addr = none
那需要看你说的问题是什么 tracert 主要的功能是显示从你的网路去到目的地的地址所经过了那些地址,本身并没有解决问题的功能 要解决问题还需看你如何运用从tracert中得到的信息

关于tracert命令
本文是复制过来的 懒得打了 现存的 tracert /?Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout][-R] [-S srcaddr] [-4] [-6] target_nameOptions:-d Do not resolve addresses to hostnames.-h maximum_hops Maximum number of hops to search for target.-j host-list Loose source route along host-list (IPv4-only).-w timeout Wait timeout milliseconds for each reply.-R Trace round-trip path (IPv6-only).-S srcaddr Source address to use (IPv6-only).-4 Force using IPv4.-6 Force using IPv6.Tracert命令详解该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name使用 tracert 跟踪网络连接Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。Tracert 工作原理通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。C:>tracert 172.16.0.99 -dTracing route to 172.16.0.99 over a maximum of 30 hops1 2s 3s 2s 10,0.0,12 75 ms 83 ms 88 ms 192.168.0.13 73 ms 79 ms 93 ms 172.16.0.99Trace complete.用 tracert 解决问题可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。C:>tracert 192.168.10.99Tracing route to 192.168.10.99 over a maximum of 30 hops1 10.0.0.1 reports:Destination net unreachable.Trace complete.Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。Tracert 命令行选项Tracert 命令支持多种选项,如下表所示。tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name-d 指定不将 IP 地址解析到主机名称。-h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。-j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。-w timeout 等待 timeout 为每次回复所指定的毫秒数。target_name 目标主机的名称或 IP 地址。使用 tracert 命令跟踪路径打开 命令提示符,然后键入:tracert host_name或者键入 tracert ip_address其中 host_name 或 ip_address 分别是远程计算机的主机名或 IP 地址。例如,要跟踪从该计算机到 [url][/url] 的连接路由,请在命令提示行键入:tracert [url][/url]注意要打开“命令提示符”,请单击“开始”,指向“程序”、“附件”,然后单击“命令提示符”。tracert 命令跟踪 TCP/IP 数据包从该计算机到其他远程计算机所采用的路径。tracert 命令使用 ICMP 响应请求并答复消息(和 ping 命令类似),产生关于经过的每个路由器及每个跃点的往返时间 (RTT) 的命令行报告输出。如果 tracert 失败,可以使用命令输出来帮助确定哪个中介路由器转发失败或耗时太多。参数/d指定不将地址解析为计算机名。-h maximum_hops指定搜索目标的最大跃点数。-j computer-list指定沿 computer-list 的稀疏源路由。-w timeout每次应答等待 timeout 指定的微秒数。target_name 目标计算机的名称

windows 的tracert 和linux tracert 哪个用的是tcp哪个是udp?
我刚才抓了一下包. windows xp发出的数据是 icmp数据. linux traceroute 1.4a12-18 发出的是udp数据包.其实以前我也没听说过发 tcp数据包的.标准traceroute程序.看了下. hping2可以 tcp traceroute.需要对端 rest tcp连接来计算算时延.------------------原理是这样的. 先往外发 ttl为 1的数据包. 被路由扔掉时会向发出者发送icmp信息.这样就可以知道被哪个IP扔掉了数据.时延多少.之后再发 ttl为2的数据. 一直到到达目标IP返回信息.icmp和 udp数据都是收icmp的出错信息.hping2的 tcp traceroute应该是收到有tcp的 rest位的数据.不知道这样我说清楚了没有.感觉好像还中了.------------------ 这回答算很标准了吧! 没有被推贱或是选择为最佳答案! 前两天还有提交的正确回答说失效或是被删除了! 真迷糊. 这场子!
tracert 是通过发送icmp报文把ttl值设定为 1-64(或者128)。 因为internet上路由器会对转发报文的ttl减1,并且丢弃ttl减为0的报文(这样做是避免在路由成环的情况下,报文在网络上死循环,一直占用网络带宽),同时会向报文源地址发出icmp报文通告丢弃报文的ttl减为0并已经丢弃。这样途径的路由器,会对源发出的ttl为1 2 。。。的报文进行icmp回应。tracert程序就能获得途径路由器的ip地址。 linux和windows都是发送的icmp报文,当然现在很多路由器设置了不对这种错误发送icmp报文,所以你看到有很多的中间节点显示为*

为什么ICMP的ping和tracert不经过tcp或udp
TCP、UDP是传输层协议 ICMP在下层,与IP位于同一层,它被用来传送IP的的控制信息,当然不通过tcp、udp了

windows 的tracert 和linux tracert 哪个用的是tcp哪个是udp?
都是基于UDP协议的路由探测。工作原理和过程:通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。 Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。 Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。 在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/46071.html。