今天的贴士,tracert命令的原理。
例,如果主机被告知需要追踪到达主机地址为10.10.10.1的路径,他将发送数据包,其中数据包的TTL的值被设为1;这样到达第一台路由器时TTL字段减少到0,而且第一台路由器在丢包的同时会向源点发送错误信息。源点通过阅读错误信息从而得知发送错误信息的路由器就是到10.10.10.1路径上的第一台路由器。然后再一次发送数据包,此数据包中的TTL值为2,这样这个数据包在到达第二台路由器时TTL值自动减为0,与第一台路由器一样第二台路由器向源地址发送一个错误信息,这样去往目标地址路径中的第二台路由器就跟踪出来了;第三、第四台路由器以此类推,直到目的地被发现。最终,沿着网络路径的所有路由器就都会被标识出来了。
今天的问题
在设计之初TTL被用于防治数据包无限制的在网络中传输或转发,并且是以秒为单位,如果数据包在路由器上被延迟的时间超过1秒,路由器将会相应的调整TTL值。后来一些大神们觉得这样的设置不好实现,于是就不管3721,无论路由器的实际时延是多少,统统将TTL值减1,所以TTL实际上表示条数。那么利用TTL为0时丢包这一特性除了tracert命令,还有什么需求是可以用TTL实现的?可以用来限制二级路由么?