TTL即time to live
是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。当对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。
通常情况下Linux系统的TTL值为64/255,Windows NT的TTL为128,由此可以初步判断一个机器的系统,当然对方也是可以改的。下面看个例子吧,我在办公网进行了个测试
首先ping跟我同一网段的一台机器
这台就是windows系统,没有经过路由器直接收到数据包了
然后找一台不是同一网段的
这台就不是同一网段的,TTL为125,经过了3个路由器。TTL减为125
然后是一台Linux的机器
经过了3个路由器,TTL为64-3=61
虽说是一个非常简单的知识,不过我之前还真没好好研究过,我发现深入研究一个东西会收获很多,不仅是这个知识点,更是为何会这么设计。就像TTL,
通过这次的学习,我思考了为何要有TTL,这对我们后续设计一个新的系统有很大的启发。