IPV4与IPV6的头部PK
按照十六位(也就是4位hex)分割整个序列。将分割后的各个4位hex累积相加。如果有超过16位的进位出现,则将进位加到后16位结果的最后一位:
上面的计算叫做one's complement sum。求得所有十六位数的和, one's complement sum(4500, 0073, 0000, 4000, 4011, C0A8, 0001, C0A8, 00C7) = 1433 然后,将1433的每一位取反(0->1, 1->0), 就得到checksum:EBCC 这样,我们的header就是: 9194 8073 0000 4000 4011 EBCC C0A8 0001 C0A8 00C7 IP包的接收方在接收到IP包之后,可以求上面各个16位数的one's complement sum,应该得到FFFF。如果不是FFFF,那么header是不正确的,整个IP包会被丢弃。 (再次提醒,示例所用的IP header不是真实的header,它只是起演示算法的作用) 总结 每个网络协议的形成都有其历史原因。比如IP协议是为了将各个分散的实验室网络连接起来。由于当时的网络很小,所以IPv4(IPv4产生与70年代)的地址总量为40亿。尽管当时被认为是很大的数字,但数字浪潮很快带来了地址耗尽危机。IPv6的主要目的是增加IPv4的地址容量,但同时根据IPv4的经验和新时代的技术进步进行改进,比如避免碎片化,比如取消checksum (由于高层协议TCP的广泛使用)。网络协议技术上并不复杂,更多的考量是政策性的。 IP协议是"Best Effort"式的,IP传输是不可靠的。但这样的设计成就了IP协议的效率。 【编辑推荐】
点赞 0 (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |