ICMPv6
报文

Type:表明消息类型,1-127差错消息,128-255信息消息,128-0请求request,129-0回复reply
Code:表明消息类型的细分
Checksum:校验和
应用
Path MTU
分片是很影响效率的,按照IPv4的操作,一个巨型报文在经过转发的时候可能会经过多次的分片,这对于转发数据而言是非常致命的,于是IPv6做出改进,在发包前进行MTU探测,获取整个网段内MTU的最小值并以此为标准进行分片,最后在目的地进行组合
在发包前会发送自己MTU大小的包给对应设备,如果设备无法接受包回复Type为2的ICMP报文通告数据包过长并以此知道对方设备的MTU,以此类推得到PMTU(路径上最短的接口MTU),于是源以这个值发送报文

Ping
无需多言,懂得都懂

NDP
一个基于ICMP报文实现的协议,用于路由器发现,地址解析,邻居状态发现,重复地址检测,重定向等功能,是IPv6的核心组件
NDP常用以下几种报文:RS(router solicitation)路由请求,RA(router advertisement)路由通告,NS(neighbor solicitation)邻居请求,NA(neighbor advertisement) 邻居通告

路由器发现
该功能可实现主机定位邻居路由器作为自己的网关,即路由器发现
同时可以发现本地链路上一组网络前缀,并根据获得的前缀自动生成IP地址,即前缀发现
还可以依照该功能发现相关操作参数,即参数发现
该功能由主机主动发送RS报文等待对方回应RA报文实现也可以通过对端周期性更新RA报文(时间间隔随机,在200-600s之间,目的地址为FF02::1)

地址解析
通过NS,NA报文完成,原理类似ARP
PC1发送一个NS报文到网络上,目的地址为PC2对应的被请求节点组播地址(FF02::1:FF84:EFDC),选项字段中带上PC1的Mac地址000D-88F8-03B0
PC2侦听到该NS报文后,由于报文的目的地址FF02::1:FF84:EFDC,自己在该组播组,处理该报文;同时,根据NS报文的源地址和源Mac地址选项更新自己的邻居缓存表项
PC2发送一个NA报文应答NS,同时在消息的目标链路层地址选项中带上自己的Mac地址0013-7284-EFDC
PC1接收到NA报文后,获悉了PC2的链路层地址,创建一个目标节点的邻居缓存表项
邻居状态跟踪
邻居状态分为6种,初始下没有邻居时状态为Empty,开始发送NS报文,生成缓存条目,状态进入Incomplete
当收到对方回应的RA报文时,认为目的地可达,状态回切到Reachable
经过闲置30s,状态变为Stale表明不确定对端是否还能到达
当再次给对端发送数据的时候,这时邻居状态变为Delay,先发送NS报文进行探测,如果在5s内没有做出回应,则进入Probe,如果有回应则回到Reachable状态
Probe状态下每个1s发送一个NS报文,总共发送3个,如果仍然没有回应,删除该邻居记录,如果得到回应,重新回到Reachable

重复地址检测
类似免费ARP,触发机制也与免费ARP很像
一个地址在通过重复地址检测之前称为“tentative地址”,即“试验地址”,此时该接口不能使用这个试验地址进行单播通讯
若2个节点配置相同地址,同时作重复地址检测时,当一方收到对方发出的DAD NS报文,则接收方将不启用该地址
当两台设备同时分配一个地址会导致两台设备都没办法使用该地址
重定向
当设备发现去往目的地址走其他设备比走自己网关来的近,就会发送重定向报文告知报文的发送者,让报文发送者选择另一个网关设备,PC收到报文会生成一条明细路由指向其他设备

总结
IPv6通过对ICMP进行改进使得其不在依靠ARP完成地址解析和地址冲突检测的任务,不仅优化协议还加快网络收敛,增强网络感知度的同时还节约设备性能

459

被折叠的 条评论
为什么被折叠?



