日本工作的拼劲常常被大家津津乐道,不过实地接触后才真正感觉拼的无以复加了,这边有一个同事据说一天只吃一顿量大的晚餐,然后据观察每晚最后一封邮件都基本凌晨1点之后发出,然后每天第一封邮件早晨5点多发出,也就是说中间睡眠4个小时不到,而有的时候甚至早晨4点多就有邮件发出。
跟国内同事聊此,大家调侃着应该是做了定时任务吧,还有同事说这应该是北辰一刀流体系的人员,忍术修习到了一定阶段了吧。
果然这是一个比较疯狂的国度,管中窥豹略见一斑吧。
说了些杂七杂八的东西,接下来正题,前几天聊完了IPv4的分片,今天就聊聊IPv6的分片和重组情况。
1、IPv6 Header Format
首先来看一下RFC2460中定义的如下IPv6 Header Format:
- 由于IPv6头中没有了可变位,所以IPv6的包头长度是固定的为40bytes, 并且移除了IPv4包头中的Internet header length(4)、Identifier(16)、Flags(3)、Framented Offset(13)、Options(Length variable、used for test)、Padding。
- Payload Length为IPv6有效载荷长度,即IPv6包头之后的长度,如果存在扩展包头,此Length中包括扩展包头的长度。
- Next Header中标识了紧接在IPv6首部后下一个首部的类型,目前规划的IPv6 Next Header如下:
Note: 在最新的定义中Type 59——No Next Header不再作为Extension Header出现。
2、IPv6和IPv4分片的差异化
2.1、中间节点的处理方式不同
首先IPv6和IPv4不同的是IPv6只允许在源节点分片和目的节点重组,中间节点路由器只做转发,不再对IPv6数据包重组或再次分片,当收到的分片数据包依然大于PMTU(Path MTU Discovery)的时候,给源端发送ICMPv6的Packet Too Big消息来告知其MTU,消息体如下: