networking设备如何影响TTL

当我做一个ping,我可以看到每个数据包的TTL值。 对于我在计算机和连接到互联网的路由器之间插入的每个路由器,TTL值都降低一个。 但是,插入交换机或集线器对TTL值没有任何影响。 这是为什么?

TTL是IPv4协议的一部分(根据Steven星期一的评论,在第6版中它被称为“Hop Limit”)。 交换机和集线器在ISO / OSI模型的不同层上运行(第2层,而不是第3层 – 这里确实存在所谓的第3层交换机,但是我认为你也不要问,因为你也包含了集线器) 。

The TTL field is set by the sender of the datagram, and reduced by every host on the route to its destination. 

http://en.wikipedia.org/wiki/Time_to_live

交换机或集线器不是IP协议意义上的主机 – 它们通常没有IP地址。 如果它们(在交换机的情况下)用于pipe理目的,并不真正参与设备的实际function。 交换机使用MAC地址代替,映射到端口和“路由”的数据包,只是在正确的端口发送(集线器做更less的工作,并通过所有端口,而不是他们的意思)。 他们不检查或更改IP有效载荷 – 您也可以使用其他协议。

http://en.wikipedia.org/wiki/ISO_model

简而言之,实时生存是为了防止路由 (OSI第3层)循环。 这是为了防止数据包在相同的节点之间永远希望没有到达目的地。 因此,只有为数据包做出路由决策的节点才将其TTL减1。 当TTL达到零时,只有通过路由决策的设备再次丢弃数据包。