8.1 作用
ip协议没有提供直接的方法发现那些发往目的地失败的ip数据包。因此采用internet控制报文协议提供ip协议层配置和ip数据报存执相关的诊断和控制信息。一般认为是ip层的一部分。但是使用ip层进行传输,因此是一个介于网络层和传输层之间的协议。
8.1 报文格式
icmp使用网络层传出,协议字段为1,表示报文类型为icmpv4.
-
8位 类型
-
8位 代码
-
16位 校验和
-
依赖于类型和代码的内容
可变
校验和涵盖一个为头部,是一个端到端的,每一跳都不会改变。
8.2 查询报文
目前仅仅是ping在用了。
格式为
数据中包含了本地时间的一份拷贝,因此可以估算RTT
8.3 差错报文
类型 | 代码 | 描述 | |
---|---|---|---|
0 查询报文 | 回显应答 | 回显ping,返回数据 | |
8 查询报文 | 回显请求 | ping | |
3 目的地不可达 | 0 | 网络不可达 | |
1 | 主机不可达 | 出现在直接交付时,对端主机没找到,比如arp失败 | |
2 | 协议不可达 | ||
3 | 端口不可达 | 找到了主机,但是对应端口没有被监听 | |
4 | 需要分片,但是设置了部分偏 | MTU包含在生成的差错报文中 | |
5 | 源路由失败,中间跳不可达 | ||
5 重定向 | 0 | 网络或子网重定向数据报 | 路由器收到了一个数据包对应的下一跳并不是自身的包。发送给主机重定向报文,包含下一跳ip地址,并且将报文正确投递 |
1 | 主机重定向 | ||
2 | 服务类型和网络重定向 | ||
3 | 服务类型和主机重定向 | ||
9 | 0 | 正常路由通告 | |
11 | 0 | ttl超时 | |
1 | 分片重组超时 | ||
12 | 0 | 指针只是差错,字节偏移量指针指示的第一个问题字段 | |
2 | 错误的总长度字段 |
8.4 生成条件
一下情况不产生icmp差错报文
-
icmp差错差错报文
-
目的地为广播或是组播地址的数据报
-
链路层广播的数据报
-
不是第一片的分片
-
源地址不是单个主机地址。也就是说不是0地址,环回地址,广播组播地址
主要是为了限制生成广播风暴。
8.5 相关攻击
icmp相关的攻击主要分为3类,泛洪、炸弹、信息泄露。
-
泛洪
产生大量流量,对一台或多太计算机攻击
-
炸弹
发送经过特殊构造的报文,导致ip或是icmp处理崩溃或是终止