当今世界是一个网络的世界,互联网已经覆盖了整个地球,我们可以通过网络访问万里之外的用户,与之交流通信,那么当我们访问一个网站的时候,我们如何知道从当前主机到目的主机之间经过了多少个路由器、路由IP是什么?在Windows操作系统下有个网络命令可以帮助我们完成,那就是神奇的Tracert。
一、什么是tracert命令:
Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。它可以列出分组经过的路由节点,以及它在IP 网络中每一跳的延迟。(这里的延迟是指:分组从信息源发送到目的地所需的时间,延迟也分为许多的种类——传播延迟、传输延迟、处理延迟、排队延迟等,是大多数网站性能的瓶颈之一) Tracert(跟踪路由)将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP)回显数据包发送到目标,以决定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源系统。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。
二、tracert命令的工作原理:
①、-d表示不将地址解析成主机名。
②、-h maximum_hops表示搜索目标的最大跃点数。
③、-w timeout表示等待每个回复的超时间(以毫秒为单位)。
其他还有几种不是很常用的命令:
④、-j host-list表示与主机列表一起的松散源路由(仅适用于IPv4)。
⑤、-R表示跟踪往返行程路径(仅适用于IPv6)。
⑥、-S srcaddr表示要使用的源地址(仅适用于IPv6)。
⑦、-4和-6表示强制使用IPv4或者IPv6。
⑧、target_name表示目标主机的名称或者IP地址。