5-6 ICMP

5-6-1 ICMP

ICMP基础

ICMP(lnternet Control MessageProtocol,Internet控制报文协议),封装在IP报文中,协议号为1,用来传递差错、控制、查询等信息典型应用ping/tracert依赖ICMP报文。比如,防火墙上配置过滤ping报文,就需要在防火墙上配置过滤IP协议号为1的报文

ICMP报文封装在IP数据报中(IP报头协议字段值为1),包含以下核心字段:

  • 类型(Type):1字节,标识报文类型(如0为回显应答,3为目标不可达)。
  • 代码(Code):1字节,细化类型含义(例如Type 3中Code 0表示网络不可达)。
  • 校验和(Checksum):2字节,用于验证报文完整性。
  • 数据部分:可变长度,可能包含原始IP报头及数据前8字节(用于错误追踪)

ICMP有多种报文,主要通过类型和代码来区分。需要记忆下图中标记绿色、黄色的条目

image-20250303185312315

ICMP应用:ping

测试网络中的一台主机是否在线,通常使用ping命令。ping命令将向目标主机发送一个ICMP Echo Request报文(类型为8 代码为0),若目标主机在线且没有禁ping,则会回复一个ICMP Echo Reply报文(类型为0 代码为0)。Echo Request和Echo Reply分别用来查询和响应某些信息,进行差错检测

image-20250303190015451

ICMP应用:tracert

tracert用来测试起点到目标节点,中间经过了哪些节点。通过逐步递增TTL值触发路由器的ICMP超时报文(Type 11),逐跳追踪数据包路径。

  • 第1个报文:主机A发送ICMP Echo Request报文(类型为8 代码为0),目的地址为主机B,TTL值设置为1,则该报文到达RTA时超时,RTA返回ICMP超时报文(类型为11 代码为0),主机A收到该ICMP超时报文,记录第1跳的IP地址;

  • 第2个报文:主机A发送ICMP Echo Request报文(类型为8 代码为0),目的地址为主机B,TTL值设置为2,则该报文到达RTB时超时,RTB返回ICMP超时报文(类型为11 代码为0),主机A收到该ICMP超时报文,记录第2跳的IP地址;

  • 以此类推,从而跟踪到从源到目的的中间路径上的节点

image-20250303190746068

例题

例题1

image-20250303192250048

image-20250303192305726

解析:注意区分两种TTL值为0的差错报文

  • 专输期间生存时间为0:tracert过程中,TTL减为0时向源端回复该报文
  • 在数据包组装期间生存时间为0:分片丢失,不能完成IP数据包重组。
例题2

image-20250303192318888

image-20250303192327319

解析:

  • 给出的图显示已经将域名解析为IP地址202.117.112.36,故DNS正常,则B选项错误
  • DNS是应用层协议,所以也不可能是TCP/IP协议问题,则A选项错误。
  • 如果网关地址错误,DNS也不能正常解析,则C选项错误
  • 目标网络不可达,可能是目标主机的ACL拦截,选择D。
例题3

image-20250303192342280

解析:

  • 当路由器或目的主去弃该数据报,并向源站发送类型12,代码0的ICMP报文,意为“坏的IP首部”。

  • 实际网络中几乎不用纠错码,因为其开销较大;一般只是检错并通知重发

例题4

image-20250303192400268

image-20250303192417149

解析:

上表列出了不同操作系统的TTL值,常见ICMP报文TTL值初始值可能有如下几种:

  • 255:

  • 128:

  • 64:FreeBSD默认TTL是64。FreeBSD是FreeBSD项目的发展成果[3],是开放源代码的类Unix操作系统,基于BSD Unix的源代码派生发展而来

注意:通过TTL值判断操作系统类型,现在已经不准,一是因为操作系统的TTL值可以手动更改,二是因为同一操作系统不同版本都可能TTL值不同本题目主要要求掌握第2空,解析如下

1
来自180.101.49.12的回复:字节=32   时间=4ms   TTL=50

通过trancert可知,世界上访问任何主机,一般不超过30跳

假设180.101.49.12上ICMP报文的初始值为255,到达源端是TTL为50,说明经过了205跳,显然180.101.49.12上ICMP报文的初始值不是255;同理,也不是128。

因此64是合理的,说明经过14跳到达源端

例题5

image-20250303192432297

例题6

image-20250303192445319

解析:TTL超时报文,类型为11,代码为0

例题7

image-20250303192459002

解析:exceed,超过、超出

站内搜索

没有找到内容!