一、IPv6概述
写在前面
本系列文章不是专业书籍。无法代替教材,不具备教材的权威性和系统性。虽然尽可能保证内容的正确,但难免存在错误疏漏。请发现错误的同学帮忙指出,便于改正。
互联网发展历程
互联网的发展过程是不断演进的过程,其发展过程不再细说,感兴趣可以参考下面的链接。从发展史可以看出1973年Bob Metcalfe的博士论文首先提出了以太网的概念,1974年Vinton Cerf和Bob Kahn发表了论文对TCP协议的设计作了详细的描述。1978年 TCP分解成TCP和IP两个协议。TCP/IP的设计期间,计算机只存在于科研机构及实验室中,总数量都不超过1000台。设计者已经尽可能的预留足够的IP地址长度,只是没有想到依然不够使用。
设计TCP/IP时采用32位地址长度,理论上可以供2^32-2(即4294967294)个设备同时使用TCP/IP协议通信。在当时这么多地址是足够使用了。可时至今日,地址早已不能满足互联网高速发展的需求,地址资源早已枯竭。虽然有NAT44及NAT444技术力挽狂澜,延长了IPv4的寿命。但终究没有从根本上解决问题,而且还引入了NAT穿透需求。所以,IPv6技术便应运而生。
IPv6最主要就是解决地址资源不足的问题。IPv6将地址长度从32位扩展到128位,理论上可以供2^128-2台设备同时采用TCP/IP协议通信。这从根本上解决了地址资源匮乏的问题。
参考:互联网发展史
IPv6的用途
IPv6是互联网协议第6版(Internet Protocol Version 6)的缩写,也就是用于在网络上传输数据的协议。其用途与IPv4一样,都是用于承载传输层数据,并通过路由器进行三层转发。将数据从发送设备转到接收设备。
图:1-1
应用层产生数据交给传输层(特殊报文除外)。传输层添加源端口和目的端口封装为TCP报文或UDP报文。接收端传输层收到该报文后通过目的端口找到监听该端口的应用,并交由对应的应用处理。发送端在传输层封装完头部后交给网络层处理。
层处理时会添加IP头部果是IPv4协议栈,将按照IPv4规范封装头部。如果是IPv6协议栈,会按照IPv6规范封装头部。路由器进行三层路由转发时也依赖该层封装的源IP和目的IP。接收端收到发给自己的报文后,会解封装,去掉IP层头部然后交给传输层处理。发送端在网络层封装完头部后交给链路层处理。所以IPv6的作用就是在网络层通信时用于寻址的协议规范。遵守该规范才能完成网络层的通信。而跨网段的通信必须网络层的支撑,所以IPv6在网络通信中有至关重要的作用。
链路层收到网络层数据包后同样会封装以太层报头。以太层报头主要包含源MAC地址,目的MAC地址和报文类型。
IPv6的优势
1、IPv6地址数量远远超过IPv4数量。IPv6地址数量达到了2^128,几乎可以给地球上的每一粒沙子分配一个地址,彻底解决了IPv4地址资源不足的问题。
2、每台设备都有公网IP地址,不再需要NAT技术,也无需考虑NAT穿透。极大的方便了家庭设备的互相访问。
3、头部格式精简优化,扩展选项与基本头部分开。如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
4、安全性也有所提升。首先由于地址空间巨大,使IP扫描难以实现。其次IPv6在保护数据包完整性和安全性上有一定优势。最后,由于地址数量足够,无需动态分配地址,使网络实名制变得可行。