1.检查版本字段的值。虽然在RFC2460中没有定义这个步骤,但这样做可以节约带宽,使非IPv6的报文不会进入到纯IPv6的网络中去。但是现在一般都是混合型的网络,这个动作不一定好。
2.递减跳数限制字段的值。如果它的新值小于1,就会发送一个ICMP超时-超过了生存时间的报文给数据包的源,并丢弃该报文。如果新值不小于1,则将新值放在跳限制字段中。
3.检查下一个报头的字段是否为0,。如果是0,则处理逐跳选项报头。
4.使用目标地址字段中的值和本地路由表中的内容,来确定转发接口和下一跳的IPv6地址。如果没有找到合适的路由,就向源地址发送一个ICMPv6目标不可达,并丢弃报文。
5.如果转发接口的链路MTU小于40+有效载荷长度字段的值个字节,则发送ICMPv6数据包过长报文给源地址,并丢弃报文。
6.用适当的接口转发这个数据包。
这整个过程要比转发一个IPv4的报文简单,因为它不需要检验和重新计算报头的校验和,也不需要执行拆分操作和处理不该由路由器处理的选项。
转自http://blog.163.com/analylx@126/blog/static/172581047201152111331822/