ICMP协议
前言:ICMP协议学习笔记
ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议,属于网络层协议。
ICMP作为IP的上层协议在工作,如下图可以看出来
默认ping 发4个请求报文,接收到4个应答报文,总共8条
ICMP报文结构:
前14个字节为以太网帧头 后20个字节为IP帧头 然后就是ICMP信息头,再后面就是ICMP数据
如下图所示
ICMP信息头和ICMP数据如下:
请求包:
响应包:
关于 Time to live(生存时间):
标识IP数据包还能生存多久,根据操作系统不同,TTL默认值不同,每次经过一个三层设备如路由器,TTL就会减一,当TTL为0的时候,还是没有传送到目的主机,那么就自动丢弃该数据包。
如ping ubuntu系统,结果如下:
默认情况下:
Linux系统的TTL值为64或255
Windows NT/2000/XP系统的TTL值为128
Windows 98系统的TTL值为32
UNIX主机的TTL值为255
那么可以初步判断为对方系统linux,并且在网络传输中经过了13个路由,也不一定准确,可能目标是windows经过75个路由,同样是51
tracert跟踪路由命令tracert baidu.com
tracert原理:
对于第一个路由,IP协议的TTL字段属性设置为1,到第一个路由-1=0就回来了,因此获取到了第一跳路由信息。
对于第二个路由,TTL = 2,到第二个路由器TTL减到0,转发信息回主机获取。
对于第三个路由,TTL = 3,以此类推。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY