ICMP/ICMPv6:Internet控制信息协议

(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 包通告这一事实。 TraceRoute 是一个工具,它通过发送小 TTL 值的包及监视 ICMP 超时通告可以显示网络路由。

  ICMP 在 IPv6 定义中重新修订。此外, IPv4 组成员协议(IGMP)的多点传送控制功能也嵌入到 ICMPv6 中。


协议结构

8

  16

32bit

Type

  Code

Checksum

Identifier

Sequence number

Address mask


  • 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位掩码地址。

相关协议 IPTCPIGMPSNMPDNSTFTP、NFS
组织来源 ICMP 由 IETF(http://www.ietf.org)定义在 RFC 792和950中,ICMPv6 定义在 RFC 2461,2463中。
相关链接 http://www.javvin.com/protocol/rfc792.pdf: Internet Control Message Protocol
http://www.javvin.com/protocol/rfc950.pdf: Internet Standard Subnetting Procedure
http://www.javvin.com/protocol/rfc2461.pdf: Neighbor Discovery for IP Version 6 (IPv6).
http://www.javvin.com/protocol/rfc2463.pdf: ICMPv6 for the Internet Protocol Version 6 (IPv6) Specification

posted @ 2006-02-13 08:37  泡面 @ 幸福  阅读(666)  评论(0)    收藏  举报