在网络层的学习时我们容易忽略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测试设备之间的通信
数据从我们的主机发一个数据包,对应的主机就得回复一个同样的数据包
这里的ttl-Time to live=64 这是请求
回复 这里的ttl=50
64-50=14说明中间很可能经过了14个路由器