读书狐 commented on TCP/IP详解 卷1:协议 by W·Richard Stevens
原来 traceroute 命令是用了数据包 TTL 归零会返回一份超时报文,再分析记录下超时报文里的地址,然后发送 TTL 加 1 的数据包这样一个个的报文试过去……就能得知整个路由路径了。 同时报文使用了一个不可能的端口值(大于 30000),到达目的主机就会返回一个“端口不可达”错误,这样就和之前的超时报文区分开来从而得知可以结束了。 这实现真有趣,有效利用起了 TTL 这个设计。
原来 traceroute 命令是用了数据包 TTL 归零会返回一份超时报文,再分析记录下超时报文里的地址,然后发送 TTL 加 1 的数据包这样一个个的报文试过去……就能得知整个路由路径了。 同时报文使用了一个不可能的端口值(大于 30000),到达目的主机就会返回一个“端口不可达”错误,这样就和之前的超时报文区分开来从而得知可以结束了。 这实现真有趣,有效利用起了 TTL 这个设计。