一.ICMPv6概述
1.ICMPv6是IPv6举出协议之一
2.IPv6包头的”Next Header“字段中协议号为58
3.ICMP报文有两种:差错消息及信息消息
二.报文结构
1.ICMPv6

2.ICMPv6 Header

3.消息类型
①Error Message:差错类消息,该类消息的Type字段最高bit为0,因此type范围0-127
②Information Message:信息类消息,该类消息的Type字段最高bit为1,因此type范围是128-255

三.PMTU
1.概念
① PMTU就是路径上最小接口MTU
②PMTUD(Path MTU发现机制)的主要目的是发现路径上的MTU,当数据包被从源转发到目的地的过程中避免分段。发送方可以使用最优PMTU与目的进行通信,避免被中途路由器分片导致性能下降。
2.PMTU过程

四.NDP
1.概念
① 邻居发现协议Neighbor Discovery Protocol
② NDP使用ICMPv6实现功能

2.为NDP定义的icmpv6消息
①Type
②报文
3.ICMPv6实现地址解析



4.NA报文(TYPE=136 Code=0)

5.邻居状态跟踪

① A发送NS,生成邻居缓存条目,此时邻居为Incomplete
②如B回复NA,则Incomplete转变为Reachable。否则Incomplete转变为Empty。经过Reachable Time(默认30s),B的条目状态Reachable转变为stale。或者在Reachable状态,收到B的非请求NA且链路层地址不同,则马上转变为Stale
③在Stale状态如A要向B发送数据,数据发出的同时邻居状态从Stale变为Delay,等待回包
④在Delay_First_Probe_Time(默认5s)内,若有NA应答或者来自对方应用层的提示信息,则Delay转变为Reachable,若无应用层提示信息,Delay转变为Probe
⑤在Probe状态,每隔 Retrans Timer(默认1s)发送单播NS,发送MAX_Unicast_Solicit(默认3)个后再等Retrans Timer,有应答则切换至Reachable,无则切换至Empty,即删除条目
五.DAD
1.概念
① Duplicate Address Detection地址重复检测机制
② 当一个IPv6接口激活后,或者当一个接口获得了IPv6地址(无论有状态或无状态配置),都会启动IPv6地址的DAD机制,以确保地址在链路上的唯一性
③ DAD机制使用ICMPv6的NS及NA消息实现
2.工作机制
①接口IPv6地址在通过DAD之前称为”tentative地址“,也即实验性地址。接口暂时不能使用这个地址进行正常单播通讯,除非通过DAD检测。
②节点向一个自己使用的tentative地址所对应的Solicited-Node组播地址发送一个NS,如果收到其他站点回应的NA,就证明地址已被使用,节点将不能使用该tentative地址进行通讯