分享

ICMP在IPv4和IPv6中的对比总结

 wq2g2ds152m668 2019-08-31

一、IPv4中的ICMP

ICMP(Internet Control Message Protocal),网际消息控制协议,ICMP向源节点报告关于向目的地传输IP数据包过程中的错误和信息。IP协议不是一个面向连接的协议,也就意味不是绝对可靠。ICMP提供了很多类型的消息反馈一些错误问题。IP Protocal值为1。

ICMP在IPv4和IPv6中的对比总结

ICMP报文详解

Type:8bit,类型;

Code:8bit,代码;

Checksum:16bit,校验和;

接着的4个字节内容与Type有关,最后是数据字段,其长度取决于ICMP类型。以下是常用Tpye类型可分差错报告报文和询问报文:

差错报告报文

3 Destination Unreachable 终点不可达 含13种Code,即13种不可达的原因

4 Source Quench 源点抑制 路由器或主机由于拥塞而丢弃数据报时发送

5 Redirect 重定向 为让主机知道更好的路由

11 Time Exceeded 时间超时 TLL=0时发送

12 Parameter Problem 参数错误 数据包的首部有字段值不正确时

询问报文

8 Echo 回送请求,通过这种询问测试destination是否可达

0 Echo Reply 回送应答

13 Timestamp 时间戳请求 请某主机或路由器回答当前日期和时间,可以用来进行时钟同步和测量时间

14 Timestamp Reply 时间戳应答

Code的详细说明:未提及的Type类型只有Code=0一种情况

Destination Unreachable Type=3:

  • Code=0:网络不可达;Code=1:主机不可达;Code=2:协议不可达;Code=3:端口不可达;
  • Code=4:需要分段和不需要分段标记置位;
  • Code=5:源路由失效;Code=6:目的网络未知;Code=7:目的主机未知;Code=8:源主机被隔离;
  • Code=9:与目的网络的通信被禁止;Code=10:与目的主机的通信被禁止;
  • Code=11:对请求的服务类型,目的网络不可达;Code=12:对请求的服务类型,目的主机不可达;

Redirect Type=5:

  • Code=0:为网络 (子网)重 定向数据报;Code=1:为主机重定向数据报;
  • Code=2:为网络和服务类型重定向数据;Code=3:为主机和服务类型重定向数据报;

Time Exceeded Type=11:

  • Code=0:传输种超出TTL;Code=1:超出分段重组时间;

Parameter Problem Type=12:

  • Code=0:指定错误的指针;Code=1:缺少需要的选项;Code=2:错误长度;

ping原理:利用Echo/Echo Reply测试两个主机的连通性;

traceroute原理:利用Time Exceeded,traceroute向目标主机发一连串的IP数据报,封装着无法交付的UDP用户数据包,第一个数据报P1的TTL设置为1,第1个路由器R1收到后TTL减一后等于零了,R1丢弃P1,返回源主机Time Exceeded;第二个数据包P2的TTL设置为2,等传到第2个路由器时TTL=0了,R2丢弃P2,返回源主机Time Exceeded;以此类推,到达目的主机时,TTL=1,主机也不把TTL值减1也不转发,但是由于IP数据包中封装的是无法交付的UDP用户数据报,因此目的主机要向源主机发送Destination Unreachable报文。

二、IPv6中的ICMPv6

在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。协议类型号即Next Header值为58。

ICMP在IPv4和IPv6中的对比总结

ICMPv6报文详解

Type:8bit,类型,0至127表示差错报文类型,128至255表示消息报文类型;

Code:8bit,代码,消息类型细分;

Checksum:16bit,校验和;

Message Body:ICMPv6数据;

差错报文类型:4种

Destination Unreachable Message Type=1,目的地址不可达时

Packet Too Big Message Type=2&Code=0,报文超过出接口的链路MTU时(IPv4里没有)

Time Exceeded Message Type=3,Hop Limit字段值等于0时

Parameter Problem Message Type=4,参数错误时

消息报文类型:2种

Echo Request Message:Type=128&Code=0,回送请求报文

Echo Reply Message:Type=129&Code=0,回送应答报文响应

Code的详细说明:未提及的Type类型只有Code=0一种情况

Destination Unreachable Message Type=1:

  • Code=0:没有到达目标设备的路由。
  • Code=1:与目标设备的通信被管理策略禁止。
  • Code=2:未指定。
  • Code=3:目的IP地址不可达。
  • Code=4:目的端口不可达。

Time Exceeded Message Type=3:

  • Code=0:在传输中超越了跳数限制。
  • Code=1:分片重组超时。

Parameter Problem Message Type=4:

  • Code=0:IPv6基本头或扩展头的某个字段有错误。
  • Code=1:IPv6基本头或扩展头的NextHeader值不可识别。
  • Code=2:扩展头中出现未知的选项。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多