深入应用看本质之-ICMP(1)

时间:2024-09-02 21:07:08

在网络层的学习时我们easy忽略IP的一个字段--存活时间

以下是百度上的解释

(8)生存时间 占8位,生存时间字段经常使用的的英文缩写是TTL(Time
To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。后来把TTL字段的功能改为“跳数限制”(但名称不变)。路由器在转发数据报之前就把TTL值减1.若TTL值降低到零,就丢弃这个数据报,不再转发。因此,如今TTL的单位不再是秒,而是跳数。TTL的意义是指明数据报在网络中至多可经过多少个路由器。显然,数据报在网络上经过的路由器的最大数值是255.若把TTL的初始值设为1,就表示这个数据报仅仅能在本局域网中传送。

目的我这里再重申一下,网络中总会有错误配置的路由,假设错误了,非常有可能产生类似我们程序中的死循环,这样可用带宽越来越来少,最后就垮掉了。ICMP利用IP传递数据包

使用ping www.baidu.com測试设备之间的通信

数据从我们的主机发一个数据包,相应的主机就得回复一个相同的数据包

深入应用看本质之-ICMP(1)

这里的ttl-Time to live=64  这是请求

深入应用看本质之-ICMP(1)

回复 这里的ttl=50

64-50=14说明中间非常可能经过了14个路由器