Chinaunix首页 | 论坛 | 博客
  • 博客访问: 419735
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-29 14:38
个人简介

默默的一块石头

文章分类

全部博文(124)

文章存档

2022年(26)

2021年(10)

2020年(28)

2019年(60)

我的朋友

分类: LINUX

2020-03-27 11:23:29

用Wireshark抓取一个ping包,(最高层是ICMP协议,也是属于网络层,在IP协议之上)查看IP协议层



protocal字段表示IP协议上层协议,此为ICMP。

此外,设计TTL可以有效地防止数据包环路,有时候,拓扑过于复杂,处于疏忽,路由器Bug之类的,会不知道怎么转发数据包。会出现下面的情况



图片来自拼客学院院长手绘:

所以TTL很有效解决了这个问题。

另外,Linux下的traceroute hostname 和 Windows下的tracert hostname 也是发送一个ICMP 数据包来测试的,原理就是Ping。使用的就是TTL字段。


Windows的更清楚。 
原理:


对于第一个路由,IP协议的TTL字段属性设置为1,到第一个路由-1=0就回来了,因此获取到了第一跳路由信息。


对于第二个路由,TTL = 2,到第二个路由器TTL减到0,转发信息会主机,也获取了。


对于第三个路由,TTL = 3,以此类推 


。。。。




————————————————
版权声明:本文为CSDN博主「Chgl16」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenbetter1996/java/article/details/80869679
阅读(1589) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~