Tracert有啥用途?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tracert有啥用途?相关的知识,希望对你有一定的参考价值。
对ISP而言,设立Traceroute网关,将使网络服务提供商帮助用户建立并维持对服务商服务质量的信心。
服务质量高的ISP可以通过设立Traceroute网关,使用户了解其与网络连接以及数据传输的效率。当然,基础设施差,服务质量低的ISP是比较害怕提供这种服务。
因为,这样用户可以使用这一工具了解服务商网络连接情况。
在一台主机安装了相关的Traceroute的CGI程序后,您可以输入相应的目的主机的IP地址或者名字,就可以得到相关的数据。
应用
Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。
Traceroute收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。
主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。
实现
主叫方首先发出 TTL=1 的数据包,第一个路由器将 TTL 减1得0后就不再继续转发此数据包,而是返回一个 ICMP 超时报文,主叫方从超时报文中即可提取出数据包所经过的第一个网关地址。
然后又发出一个 TTL=2 的 ICMP 数据包,可获得第二个网关地址,依次递增 TTL 便获取了沿途所有网关地址。
需要注意的是,并不是所有网关都会如实返回 ICMP 超时报文。出于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可被管理员主动修改配置变为不返回 ICMP 报文。
因此 Traceroute 程序不一定能拿全所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。一直达到默认或用参数指定的追踪限制(maximum_hops)才结束追踪。
依据上述原理,利用了 UDP 数据包的 Traceroute 程序在数据包到达真正的目的主机时,就可能因为该主机没有提供 UDP 服务而简单将数据包抛弃,并不返回任何信息。
为了解决这个问题,Traceroute 故意使用了一个大于 30000 的端口号,因 UDP 协议规定端口号必须小于 30000 ,所以目标主机收到数据包后唯一能做的事就是返回一个“端口不可达”的 ICMP 报文,于是主叫方就将端口不可达报文当作跟踪结束的标志。
以上内容参考 百度百科-traceroute
参考技术A Tracert命令用来显示数据包到达目标主机所经过的路径,并显示到达每个节点的时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。 命令格式:tracert IP地址或主机名 [-d][-h maximumhops][-j host_list] [-w timeout] 参数含义:-d 不解析目标主机的名字;-h maximum_hops 指定搜索到目标地址的最大跳跃数;-j host_list 按照主机列表中的地址释放源路由;-w timeout 指定超时时间间隔,程序默认的时间单位是毫秒。例如:测试自己的计算机与目标主机gd.vnet.cn之间详细的传输路径信息。 <img xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" style="width:520px;height:286px;cursor:pointer;" tabIndex="-1" src="/ckb/knlgfile/kmweb/km/XMLAttachment/附件/eb111093e4cb4c79" xd:inline="" onClick="openImg('/ckb/knlgfile/kmweb/km/XMLAttachment/附件/eb111093e4cb4c79')</img>谢谢您对电信产品的关注,祝您生活愉快。 如果以上信息没有解决您的问题,也可登录广东电信手机商城(http://m.gd.189.cn),向在线客服求助,7X24小时在线喔!本回答被提问者采纳 参考技术B Tracert是路由的跟踪实用程序,用于确定IP数据报访问目标所采取的路径,我们在上网的时候,需要追踪本机到指定网址经过哪些路由器,这时候就需要使用到Tracert命令。那么Win10系统Tracert命令如何使用?下面小编和大家分享系统Tracert命令的使用方法。1、在CMD命令提示符下使用tracert命令,打开CMD 可以WIN+R 然后在运行中输入CMD 确定;
2、在命令行中输入“tracert ”并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址。下图中后面的IP地址为同一个路由器下的局域网中的另一个电脑的IP地址。
3、从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。 参考技术C Tracert命令用来跟踪一个分组从源点到终点的路径。 参考技术D 一、tracert命令简介:
Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
二、tracert命令格式:tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name。
三、tracert命令作用:
RACERT诊断实用程序通过向目的计算机发送具有不同生存时间的ICMP(Internet控制信息协议)回应报文,以确定至目的地的路由。也就是说,TRACERT命令可以用来跟踪一个报文从一台计算机到另一台计算机所走的路径。要在转发数据包上的TTL之前至少递减1,必需路径上的每个路由器,所以TTL是有效的跃点计数。数据包上的TTL到达0时,路由器应该将“ICMP已超时”的消息发送回源系统。TRACERT先发送TTL为1的回显数据包,并在随后的每次发送过程将TTL递增1,直到目标响应或TTL达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期TTL值的数据包,而TRACERT看不到。
在对象文字(...object)中传播语法有啥用途?
【中文标题】在对象文字(...object)中传播语法有啥用途?【英文标题】:What purpose does spread syntax inside an object literal (...object) serve?在对象文字(...object)中传播语法有什么用途? 【发布时间】:2021-06-08 15:55:26 【问题描述】:我已经阅读了I don't understand about spread syntax inside objects 上的答案,但仍然不太明白使用(特别是)...object
的目的。
...object
的作用是什么?
我已经在节点 REPL 中对此进行了测试,假设我创建了一个对象:
> const object = foo: "hello", bar: "world" ;
并在新的对象字面量中使用扩展运算符来引用它:
> ...object
foo: 'hello', bar: 'world'
输出与仅使用对象本身相同:
> object
foo: 'hello', bar: 'world'
...object
的作用是什么?
【问题讨论】:
不,那不是同一个对象。它是对象的(浅)副本。const object = foo: "hello", bar: "world" ; const foo = ...object ; object.foo = "bar"; console.log(object, foo);
@trincot 我没有说它是同一个对象,而是说输出与仅使用对象本身相同。
@T.J.Crowder 谢谢,我已将标题更新为“语法”而不是“运算符”
【参考方案1】:
这不是同一个对象。它制作对象自己的可枚举属性的浅表副本(例如Object.assign(, object)
(MDN)。您可以在需要时使用它...具有对象自己的可枚举属性的副本。:-D
例如,对于多个 MVC 或类似库中的任何一个,您可以在更新状态时使用它,因为不应直接修改状态:
this.setState(oldState => (...oldState, prop: "new value"));
【讨论】:
谢谢@T.J.Crowder。我已经检查过这个问题是重复的,没有其他答案。 @mikemaccana - 如果有一些我不会感到惊讶。真的很难找到这个。我还没有找到一个好的。 大声笑,它被标记为关于扩展语法含义的通用问题的重复。这不是问题所在。 @mikemaccana 第一个是“catch all”,用于针对缺乏对这种浅拷贝用例的解释的运算符/符号的问题。第二个是错误的恕我直言。第三个并不完美,但有很好的提示。第四部分解释了您的用例的详细信息。不是最佳的,但最后一个应该足以回答您的问题。 @Andreas 我不确定关于何时问题不同但其他问题的答案有帮助的 SO 政策。但是是的,我同意 - 前 3 个链接无关紧要,第四个有实际有用的答案。以上是关于Tracert有啥用途?的主要内容,如果未能解决你的问题,请参考以下文章