概述
生存期(TTL)是IPv4头部中定义的字段,一共8位,定位于网络层;
它用于设置一个数据报可经过的路由器数量的上限;
发送方将它初始化为某个值([RFC1122]建议为64,但128或255也存在),每台路由器在转发数据报时,将该值减1;
当这个字段值达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方;
防止由于出现的路由环路而导致数据报在网络中永远循环。
抓包实验解读
模拟组网拓扑图如下图所示;
实验模拟1-正常发起ICMP报文
对SW1交换机G1/0/3接口开启抓报,然后在VPCS_3终端上发起ICMP报文至各个终端、SW1和SW2,如下图所示;
抓取的ICMP数据报文中TTL值,如下图所示;
根据ICMP数据报文,得出的TTL分析如下图所示;
实验模拟2-设置特定TTL值发送ICMP报文
对SW1交换机G1/0/3接口开启抓报,然后在VPCS_3终端上发起ICMP报文并设置TTL值为“2”至VPCS_6终端,发现“TTL expired in transit”报错信息,如下图所示;
SW1交换机G1/0/3接口抓取的ICMP数据报文,如下图所示;
VPCS_3终端上发起ICMP报文,TTL值的确设置了“2”,而当报文达到SW2交换机时,该报文TTL值是“1”;
SW2交换机向VPCS_3终端返回“Time-to-live exceeded”报错信息。
Frame 2号报文返回的详细信息,如下图所示;
总结
通过抓包实验解读可深入理解和验证TTL的理论知识;
以上分享,希望各位小伙伴有所收获,欢迎各位点赞收藏和指正。
Tips:
经实际测试,发送方将TTL初始化为某个值,Linux系统默认64,Windows系统默认128,而网络设备默认255。