一、IPv4中的ICMPICMP(Internet Control Message Protocal),网际消息控制协议,ICMP向源节点报告关于向目的地传输IP数据包过程中的错误和信息。IP协议不是一个面向连接的协议,也就意味不是绝对可靠。ICMP提供了很多类型的消息反馈一些错误问题。IP Protocal值为1。 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:
Redirect Type=5:
Time Exceeded Type=11:
Parameter Problem Type=12:
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。 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:
Time Exceeded Message Type=3:
Parameter Problem Message Type=4:
|
|
来自: wq2g2ds152m668 > 《IPV6》