网络层ICMP/ICMPv6:信报控制协议


ICMP/ICMPv6:信报控制协议(ICMP/ICMPv6:Internet Control Message Protocol)
Internet 控制信息协议(ICMP)是 IP 组的一个完整部分 。IP 包中发送的 ICMP 信息主要用于涉及网络操作或错误操作的不可达信息 。ICMP 包发送是不可靠的 , 所以主机不能依靠接收 ICMP 包解决任何网络问题 。ICMP 的主要功能如下:
通告网络错误 。比如 , 主机或整个网络部分由于某些失败类型是不可达的 。与端口号对应的没有接受人的 TCP 或 UDP 包途径 ICMP 报告 。
通告网络拥塞 。当路由器缓存太多包 , 由于传输速度无法达到它们的接收速度 , 将会生成ICMP 源结束信息 。针对发送者 , 这些信息将会导致传输速度降低 。当然 , ICMP 源结束信息的生成也将引起更多的网络拥塞 , 所以使用起来较为保守 。
协助解决故障 。ICMP 支持 Echo 功能 , 即在两个主机间一个往返路径上发送一个包 。Ping 是一种基于这种特性的通用网络治理工具 , 它将传输一系列的包 , 测量平均往返次数并计算消耗百分比 。
通告超时 。假如一个 IP 包的 TTL 域降低到零 , 路由器就会放弃包 , 这时会生成一个 ICMP 包通告这一事实 。路由跟踪器是一件通过 TTL 小值发送包及监视 ICMP 超时通告转换网络路由器的工具 。
ICMP 在 IPv6 定义中重新修订 。此外 , 在 ICMPV6 中 IPv4 组成员协议(IGMP)的多点传送控制功能重装成一体 。
协议结构
Type ― 错误消息或信息消息 。错误消息可能是不可获得目标文件 , 数据包太大 , 超时 , 参数问题等 。可能的信息消息有:Echo Request、Echo Reply、Group Membership Query、Group Membership Report、Group Membership RedUCtion 。
Code ― 每种消息类型具有多种不同代码 。不可获得目标文件正式这样一个例子 , 即其中可能的消息是:目标文件没有路由 , 禁止与目标文件的通信 , 非邻居 , 不可获得地址 , 不可获得端口 。具体细节请参照相关标准 。
Checksum ― 计算校验和时 , Checksum 字段设置为0 。
Identifier ― 帮助匹配 Requests/Replies 的标识符 , 值可能为0 。
Sequence Number ― 帮助匹配 Requests/Replies 的序列号 , 值可能为0 。
Address Mask ― 32位掩码地址 。

    推荐阅读