本文参考了公众号鲜枣课堂的“IPv6,究竟是什么?”一文的部份内容,感谢原做者。html
如今IPv6的技术应用已经愈来愈普及了,不少应用都开始支持IPv6。浏览器
▲ 去年开始,支付宝的官网上就已出现“支持IPv6”标识安全
对于即时通信技术(尤为是IM应用)的开发者来讲,新产品上架苹果的App Store因IPv6问题被拒的状况,很常见。每次也都能根据网上的资料一一解决,并顺利经过审核。网络
然而几回下来,到底什么是IPv6,仍是有点云里雾里。ide
那么,IP协议在TCP/IP体系中到底有多重要?看看下图便知(缘由清晰版:今后处进入下载)。编码
▲ 红圈处就是IP协议,它几乎是整个TCP/IP协议簇的支撑(图引用自《计算机网络通信协议关系图》)加密
总之,IP协议在TCP/IP体系中,是很是重要的一环(能够认为,没它,也就没有了互联网),做为IPv4的下一代协议,了解IPv6很是有必要。而做为即时通信开发者来讲,了解IPv6就显的尤其迫切,说不定某天你的IM就会由于IPv6问题而致使没法通讯的局面出现。spa
本文将用浅显易懂的文字,带你了解到底什么是IPv6。.net
本文已同步发布于个人“即时通信技术圈”公众号。计算机网络
IPv4是Internet Protocol version 4的缩写,中文翻译为互联网通讯协议第四版,一般简称为网际协议版本4。
IPv4使用32位(4字节)地址,所以地址空间中只有 4,294,967,296(即2^32) 个地址。
IPv4地址可被写做任何表示一个32位整数值的形式,但为了方便人类阅读和分析,它一般被写做点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。
一般IPv4地址的地址格式为 nnn.nnn.nnn.nnn,就像下面这样:
172.16.254.1
下图看起来更清晰一些:
IPv6是Internet Protocol version 6的缩写,中文翻译为互联网通讯协议(TCP/IP协议)第6版,一般简称为网际协议版6。IPv6具备比IPv4大得多的编码地址空间,用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其余方面对于IPv4有许多改进。
其实,IPv6并非新技术,从IPv6最先的工做组成立1992年到如今,已过去27年。在互联网技术的发展历程中,IPv6年龄甚至有些太大了。
IPv6的“6”表示的是TCP/IP协议的第六个版本,IPv4的“4”表示的是TCP/IP协议的第四个版本。其实除了这两个版本,固然还有其它版本,TCP/IP协议其实从IPv1开始,到如今IPv10都已经出现了,这些不一样版本之间并无关联,也不是简单IP地址长度的长短。
IPv6地址由八组、每组四位16进制数字组成,每组之间由":"来分隔。
看个简单的例子:
2610:00f8:0c34:67f9:0200:83ff:fe94:4c36,每一个“:”先后都是4位16进制的数字,共分隔成8组。
以下图所示:
小知识:如何查看手机或者电脑的网络是否支持IPv6呢?
能够在你手机或者电脑上的浏览器中打开:Ipv6-test.com,就像下图这样:
最主要的缘由,就是地址数量不够用了。
IPv4迄今为止已经使用了30多年。最先期的时候,互联网只是设计给美国军方用的,根本没有考虑到它会变得如此庞大,成为全球网络。
尤为是进入21世纪后,随着计算机和智能手机的迅速普及,互联网开始爆发性发展,愈来愈多的上网设备出现,愈来愈多的人开始链接互联网。这就意味着,须要愈来愈多的IP地址。
IPv4的地址总数是2的32次方,也就是约42.9亿个。而全球的网民总数早已超过这个数目。
因此说,IPv4地址池接近枯竭,根本没法知足互联网发展的须要。人们迫切须要更高版本的IP协议,更大数量的IP地址池。(有点像固定电话号码升位。)
首先,最重要的一点,就是前面所说的地址池扩容。IPv4的地址池是约42.9亿,IPv6能达到多少呢?
数量以下:
340282366920938463463374607431768211456个…
不用数了,太多了… 简单说,是2的128次方。
这个数量,即便是给地球上每一颗沙子都分配一个IP,也是妥妥够用的。
▲ 这图你看懂了吗?嗯,我也没看懂,反正就是不少的样子
这个数量值是怎么得来的呢?仍是它的地址位长决定的。
若是以二进制来写,IPv6的地址是128位。不过,这样写显然不太方便(一行都写不下)。因此,一般用十六进制来写,也就缩短成32位(32位会分为8组,每组4位)。
下面就是一个标准、合法的IPv6地址示例:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
注意:IPv6的地址是能够简写的,每项数字前导的0能够省略。
例如,下面这个地址:
2001:0DB8:02de:0000:0000:0000:0000:0e13
粉红的“0”就能够省略,变成:
2001: DB8:2de:0:0:0:0:e13
若是有一组或连续几组都是0,那么能够简写成“::”,也就是:
2001: DB8:2de::e13
注意:一个IPv6地址,只能有一个“::”。
为何?很简单,你看下面这四个地址,若是全部0全都缩写,会变成什么样?
2001:0000:0000:0000:0000:25de:0000:cade
2001: 0000: 0000:0000:25de:0000:0000:cade
2001: 0000: 0000:25de:0000:0000:0000:cade
2001: 0000: 25de:0000:0000:0000:0000:cade
是的,都是2001::25de::cade,冲突了。因此,这个地址是非法的,不容许存在的。
关于IPv6还有不少技术细节,因篇幅缘由,再也不赘述。
除了地址数量以外,IPv6还有不少优势,例如:
1)IPv6使用更小的路由表。使得路由器转发数据包的速度更快;
2)IPv6增长了加强的组播支持以及对流的控制,对多媒体应用颇有利,对服务质量(QoS)控制也颇有利;
3)IPv6加入了对自动配置的支持。这是对DHCP协议的改进和扩展,使得网络(尤为是局域网)的管理更加方便和快捷;
4)IPv6具备更高的安全性。用户能够对网络层的数据进行加密并对IP报文进行校验,极大地加强了网络的安全性;
5)IPv6具备更好的扩容能力。若是新的技术或应用须要时,IPV6容许协议进行扩充;
6)IPv6具备更好的头部格式。IPV6使用新的头部格式,就简化和加速了路由选择过程,提升了效率;
……
IPv6优势这么多,为何它问世已经20年了,仍是没有彻底替代IPv4呢?这里面的水就很深了。。。说白了,主要仍是和利益有关。
若是按照本世纪初专家们的预测,咱们IPv4的地址早已枯竭几万次了。可是,一直挺到如今,你们仍然还在用IPv4,对老百姓来讲,并无由于地址不够而没法上网。
这是为何呢? 就是由于除了IPv6以外,咱们还有一些技术,能够变相地缓解地址不足。
例如NAT(Network Address Translation,网络地址转换)。
NAT是什么意思?当咱们在家里或公司上网时,你的电脑确定有一个相似192.168.0.1的地址,这种地址属于私网地址,不属于公共的互联网地址。
▲ 一个典型的NAT应用场景(图自《IPv6,究竟是什么?》)
每个小的局域网,都会使用一个网段的私网地址,在与外界链接时,再变换成公网地址。这样一来,几十个或几百个电脑,都只须要一个公网地址。
甚至还能够私网套私网,NAT套NAT,一层一层套。这样一来,大大节约了公网IP地址数量。正由于如此,才让咱们“续命”到了今天,不至于没法上网。
可是,NAT这种方式也有不少缺点,虽然私网地址访问互联网地址方便,但互联网地址访问私网地址就困难了。不少服务,都会受到限制,你只能经过复杂的设置才能解决,也会影响网络的处理效率。
▲ NAT内网的计算机是不能被外网直接访问的(图自《IPv6,究竟是什么?》)
物以稀为贵,地址越稀缺,就越值钱。掌握地址的人,就越开心。谁开心?运营商和ISP(互联网服务提供商)。
他们就像是经销商,从上游(互联网域名与号码分配机构,即ICANN)申请到IP地址,再卖给下游用户。稀缺不要紧,反正,他必定能赚取更多的差价。
若是你们去找运营商或ISP买带宽,或者租赁云服务,带公共地址的,必定比不带公共地址的贵不少不少。
除了地址能够赚钱以外,若是升级支持IPv6,对运营商和ISP来讲,也意味着很大的资金投入。如今新设备基本都是支持的,但毕竟仍是有一些老设备,若是在使用寿命到期以前就换,就是亏钱。
因此,运营商和ISP都没有动力去启用IPv6。
至于设备商或手机电脑厂商,出于提早考虑,早已广泛支持了IPv6,意见并非很大,也决定不了什么。必竟,提供基础设施服务的运营商们更强势。
随着5G时代的到来,有了IPv6的加持,万物互联或许会成为现实。对于我等实时通讯类软件的开发人员来讲,某些场景下,或许不再须要为“P2P打洞”这种事情烦恼了。
▲ 5G+IPv6,万物互联不是梦
将来已来,你准备好了吗?(本文同步发布于:http://www.52im.net/thread-2979-1-1.html)
[1] IPv6入门教程
[2] IPv6,究竟是什么?
[4] 科普:一文读懂IPv6是什么?
[5] 漫话:全球IPv4地址正式耗尽?到底什么是IPv4和IPv6?