![当路由器发送ICMP协议错误消息时它如何设置自己的TTL?](https://linux22.com/image/766710/%E5%BD%93%E8%B7%AF%E7%94%B1%E5%99%A8%E5%8F%91%E9%80%81ICMP%E5%8D%8F%E8%AE%AE%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%E6%97%B6%E5%AE%83%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%B7%B1%E7%9A%84TTL%EF%BC%9F.png)
当使用 (traceroute -q 1 serverAddress) 时,我们知道它以 TTL(生存时间)= 1 开始。当它通过路由器时,路由器将 TTL 减 1。如果 TTL 在该路由器上变为 0,它会发回 ICMP 错误 TTL 超出消息。现在,告诉我路由器会将错误消息发送回客户端(即我/我们)。现在路由器如何知道要设置什么 TTL。当我使用 wireshark 时,我收到接收 ICMP 错误消息,显示 UDP 数据包的 TTL=64,初始 TTL=5。路由器如何设置 TTL??
答案1
路由器将 TTL 设置为路由器操作系统对路由器自身生成的流量使用的默认值。64 是一个常见值。