6.1因特网控制报文协议(cMP) ICMP协议设计的最初目的主要是用于IP层的 差错报告,由路由器或信宿以一对一的模式向 信源报告传输错误的原因。 随着网络的发展,检测和控制功能逐渐被引入 到ICMP协议中,使得ICMP协议不仅用于传 输差错报告,而且大量用于传输控制报文 ICMP与IP协议位于同一个层次(IP层),但 ICMP报文是封装在IP数据报的数据部分进行 传输的 ICMP协议是IP协议的补充,用于IP层的差错 报告、拥塞控制、路径控制以及路由器或主机 信息的获取。 返回
返回
62|cMP报文格式与类型 |CMP报文由首部和数据段组成。首部为定 长的8个字节,前4个字节是通用部分,后4 个字节随报文类型的不同有所差异。cMP 报文的一般格式如图所示。 0 16 类型 代码 校验和 8 首部 首部其他部分 数据 数据 图61OMP报文格式
代 码 校 验 和 数 据 0 8 16 31 类 型 首 部 其 他 部 分 首部 数据 8 字节 图6-1 ICMP报文格式
ICMP报文虽然细分为很多类,但总的来看 可以分为如图所示的三大类:差错报告 控制报文和请求应答报文。 ICMP报文 差错报告 控制报文 请求应答报文 源 重回路时1址 信宿不可达报 数据报超时报告 数据报参数错报告 抑 定 应请求与应答 由器请求与通告报文 隹 掩 码 向 求 报 报 与应答 报 告 文 文 文 报文 报 图6-2ICMP报文种类 返回
ICM P 报文 图 6-2 ICM P 报文种类 差错报告 控制报文 请求应答报文 信 宿 不 可 达 报 告 数 据 报 超 时 报 告 数 据 报 参 数 错 报 告 源 抑 制 报 文 重 定 向 报 文 回 应 请 求 与 应 答 报 文 地 址 掩 码 请 求 与 应 答 报 文 路 由 器 请 求 与 通 告 报 文 时 间 戳 请 求 与 应 答 报 文 返回
63CMP差错报告 ICMP差错报告的数据区包含出错数据报的首部及该 数据报的前64位数据,这些信息有助于信源或管理 人员发现错误原因 ICMP差错报告具有以下特点: 1)只报告差错,但不负责纠正错误,纠错工作留给 高层协议去处理。 2)发现出错的设备只向信源报告差错 3)差错报告作为一般数据传输,不享受特别优先权 和可靠性 4)产生ICMP差错报告的同时,会丢弃出错的IP数 据报
·形成CMP差错报告时有以下例外: 1)|cMP差错报文本身不会再产生 LCMP差错报告 2)分片报文的非第一个分片不会产生 CMP差错报告。 3)组播地址报文不会产生CMP差错报 4)特殊地址127.0.0.0和0.0.0.0的报文 不会产生|CMP差错报告
631信宿不可达报告 ·当路由器无法根据路由表转发IP数据报时或 主机无法向上层协议和端口提交IP数据报时, 将丢弃当前的数据报,并产生信宿不可达差 错报告,向信源报告出错。信宿不可达报文 如图所示。 8 16 31 8 类型:3 代码:0-15 校验和 字节 首部 未用(全0) 出错数据报的部分信息 数据 (IP数据报首部+数据报数据部分的前64位) 图6-3ICMP信宿不可达报文格式
代 码:0-15 校 验 和 出错数据报的部分信息 (IP 数据报首部+数据报数据部分的前64 位) 0 8 16 31 类 型:3 未 用(全0) 首部 数据 8 字节 图6-3 ICMP 信宿不可达报文格式
·信宿不可达报文可能由路由器产生,也可能由信宿机 产生。产生信宿不可达报文的原因的16种可能: 类型 报文 代码 描述 0网络不可达 1主机不可达 2协议不可达 3端口不可达 4|数据报无法分片 5源路由失败 6信宿网络未知 7|信宿主机未知 信宿不可达 8源主机被隔离 9与信宿网络的通信被禁止 10与信宿主机的通信被禁止 11对特定的服务类型Tos网络不可达 12对特定的服务类型(OS)主机不可达 13因管理者设置过滤而使主机不可达 14因非法的优先权而使主机不可达 15|因报文的优先级低于网络设置的最小优先级而使主机不可达
类型 报 文 代码 描 述 3 信宿不可达 0 网络不可达 1 主机不可达 2 协议不可达 3 端口不可达 4 数据报无法分片 5 源路由失败 6 信宿网络未知 7 信宿主机未知 8 源主机被隔离 9 与信宿网络的通信被禁止 10 与信宿主机的通信被禁止 11 对特定的服务类型(TOS)网络不可达 12 对特定的服务类型(TOS)主机不可达 13 因管理者设置过滤而使主机不可达 14 因非法的优先权而使主机不可达 15 因报文的优先级低于网络设置的最小优先级而使主机不可达