IPv4和IPv6有什么区别

5,401 阅读10分钟

一、缘起

某一天,在公司技术群内运维大佬们发了这么一条消息。

这条消息瞬间勾起了我的好奇心。什么是IPv6?为什么要切IPv6?于是在上班时多去了几次去卫生间之后,对IPv6有了一些初步认识,然后就诞生了本文。

本文主要对什么是IPv6?为什么要切IPv6?两个问题做一个简要阐述。至于怎么切IPv6?就不在运维大佬面前弄斧了(我是真的没看懂-.-)。

先用一张图表示国内对IPv6的态度吧(求关注、点赞、回复三连~.~)。

二、IP协议

1. 什么是IP

IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。

2. IP协议版本

目前公布的IP版本很多,远不止IPv4和IPv6两个版本。下表是互联网号码分配机构 IANA(Internet Assigned Numbers Authority)列出的官方版本号。

通过以上表格可以看出,IP协议实际是从0开始的,目前可见的最大版本号是15。以后会有更大的版本号吗?以目前来看是不会有的。原因是IP协议中,标识协议版本号的是一个长度为4的二进制字段。可表示区间为0000B ~ 1111B,即十进制的0 ~ 15。因此,若需支持15以上的版本号,需要对整个IP协议进行重新设计,不单是加个版本号而已。所以目前来看,IP协议版本号不会超过15。

大家最为熟悉的应该是IPv4,也是IP协议中应用最为广泛的版本。其他版本我在此也进行下简单介绍。

  • IPv0 ~ 2 实验室版本,此时TCP和IP还没有完全分开。
  • IPv3 第一个真正意义的IP协议版本,但是存在稳定性问题
  • IPv4 IPv3基础上增加了稳定性,目前应用最为广泛的版本
  • IPv5 和IPv4使用相同的寻址系统,目的是支持流媒体视频和其他新媒体。但最终受限于IPv4的地址受限问题被废弃
  • IPv6 解决了IPv4的核心问题,地址数量受限。目前国内大力推广的版本,转转也积极响应,支持了这个版本
  • IPv7 ~ 9 和IPv6同期产物,因IPv6的成功而被暂停或废弃
  • IPv10 基于IPv4和IPv6 目的是解决IPv4和IPv6地址转换互通问题,目前还在草案中。未真正分配。
  • IPv11 ~ 14 未分配
  • IPv15 保留

3. IPv4

3.1 地址格式

我们常见的是地址格式是点分十进制,顾名思义,就是用小数点分割开的十进制表示法。如:192.168.0.11

可惜的是计算机并不认识十进制,只认识01,对应两种状态。真正的IP地址表示由4段(32比特)组成,每段8比特,段与段用点(.)隔开。每位有01两种状态值,总计4,294,967,296 ( 232),约42.9亿个地址。如192.168.0.11 对应的真正的IP地址为:11000000.10101000.00000000.00001011。是不是看到这个想说,这是啥?比起来是不是十进制更好接受。

3.2 地址组成

IP地址是由两部分组成的,网络部分和主机部分,比如:

其中网络部分一样的属于同一个网段,主机部分共包含0000B ~ 1111B 共256个可用主机号。 主机部分全0表示网段自身,主机部分全为1表示网段内所有设备。即广播地址。主机部分为其他值时,表示不同的设备。所以一个网段下最多可包含 0001B ~ 1110B 共254个设备。

3.3 地址分类

由于早期设备性能问题,为了提高地址转发效率,于是对所有IP进行了分类,共五大类。分别为

  • A类前8位为网络地址,后24位为主机地址,网络位第一位必须是0,因此该类IP地址中网络ID的长度为8位,主机ID的长度为24位,该类IP地址范围为1.0.0.0 ~ 126.255.255.255,其子网掩码为255.0.0.0。(全部是0的(0.0.0.0)是指所有网络所以排除,127.0.0.0~127.255.255是环回地址)
  • B类前16位为网络地址,后16位为主机地址。网络位的前2为必须是10,因为该类IP地址中网络ID的长度为16位,主机ID的长度为16位,该类IP地址范围为128.0.0.0~191.255.255.255,其子网掩码为255.255.0.0.
  • C类前24位为网络地址,后8位主机地址。网络位的前3位必须是110,因此该类IP地址中网络ID的长度为24位,主机长度为8位。该类IP地址范围为192.0.0.0~223.255.255.255 、其子网掩码为255.255.255.0.
  • D类该类IP地址的前四位必须为1110,它是一个专门保留的地址,并不指向特定的网络。目前这类IP地址被用在组播中,其地址范围为224.0.0.0~239.255.255.255
  • E类该类IP地址以11110开始,为保留地址。其地址范围为240.0.0.0~255.255.255.254
  • 此外,还有全0和全1的IP地址,其中全部是0的(0.0.0.0)是指所有网络,全1的IP地址(255.255.255.255)是所有网络的广播地址

4. IPv6

4.1 地址格式

一个符合规范的IPv6地址格式是这样的:2001:0DB8:0000:0000:0000:8A2E:200C:417A

这是什么?别着急,听我娓娓道来。

每个IPv6地址是由8段(128比特)组成,每段16比特,段与段用冒号(:)隔开。每位有01两种状态值。总计340,282,366,920,938,463,374,607,432,768,211,456( 2128),约为。。。地球所有沙子的数量(理解为近似无限地址)

所以上述的IP地址的真正格式为0010000000000001:110110111000:0000000000000000:0000000000000000:0000000000000000:1000101000101110:0010000000001100:0100000101111010

这肯定看不懂对吧。如果使用对待IPv4地址相同的手段处理IPv6地址呢。也就是使用十进制表示该地址位:8193:3512:0:0:0:35374:8204:16762

差不多可以看懂了,但是对网络传输来说这个的太占空间了,也就降低了传输效率。而且有了域名解析后,相对IP地址,大家更愿意接受域名。

为了提高传输效率,减少空间占用。于是IPv6地址使用十六进制表示。将上述二进制或十进制表示转为十六进制则为:2001:0DB8:0000:0000:0000:8A2E:200C:417A

至此,是不是对IPv6地址格式有了一些了解。为了压缩空间,在此基础上还有一些其他规则。

  • 前置0可省略:IP地址中每一段数值的前置0可省略。上述地址应用规则后可表示为:

    2001:DB8:0:0:0:8A2E:200C:417A

  • 连续零可用::表示:IP地址中连续的0可使用::表示,一个IP地址仅可省略一次,即出现一次::。上述地址应用规则后可表示为:

    2001:DB8::8A2E:200C:417A

    仅可出现一次的原因为:多个::会存在地址冲突。如下两个IP地址

    2001:0:0:0:25DE:0:0:CADE

    2001:0:0:25DE:0:0:0:CADE

    应用规则后均为:2001::25DE::CADE,导致地址冲突了。因此一个IP地址中仅可出现一次::

4.2 地址组成

IPv6地址分为高64比特和低64比特。

高64比特有分配机构进行分配,分配机构也只关心高64比特。

低64比特全部为主机地址。可自行分配。

4.3 地址分类

单播地址:在单播寻址模式下,IPv6接口(host)在网段中唯一标识。 IPv6数据包包含源IP地址和目标IP地址。 主机接口配备有在该网络段中唯一的IP地址。当网络交换机或路由器接收到注定到单个主机的单播IP分组时,它发出其连接到该特定主机的输出接口之一 。

多播(组播)地址:IPv6组播模式与IPv4相同。 目的地为多个主机的数据包在特殊的多播地址上发送。 所有对该组播信息感兴趣的主机需要首先加入该组播组。 加入组的所有接口接收组播数据包并对其进行处理,而对组播数据不感兴趣的其他主机则忽略组播信息。

任播地址:IPv6引入了一种新型的寻址,称为Anycast寻址。 在此寻址模式下,多个接口(host)被分配相同的任播IP地址。 当主机希望与配备有任播IP地址的主机通信时,它发送单播消息即可。 在复杂的路由机制的帮助下,该单播消息被递送到最接近接收方的主机。

三、为什么要切IPv6

作为FE的我分析比较IPv4和IPv6实在有些困难,在此引用百度百科的对比描述。

  1. IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为232;而IPv6中IP地址的长度为2128,即最大地址个数为2128。与32位地址空间相比,其地址空间增加了2128-232个。
  2. IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  3. IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
  4. IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  5. IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
  6. 允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
  7. 更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
  8. 新的选项。IPV6有一些新的选项来实现附加的功能

参考资料

  1. iana(www.iana.org/assignments…
  2. Where are IPv1, 2, 3 and 5(forum.huawei.com/enterprise/…
  3. IP(baike.baidu.com/item/IP/224…
  4. IPv6(baike.baidu.com/item/IPv6/1…
  5. IPv6,到底是什么(zhuanlan.zhihu.com/p/36542469)
  6. IPv4地址格式和分类(zhuanlan.zhihu.com/p/411205065…
  7. IPv6笔记-地址结构与分类(blog.csdn.net/wangcg123/a…

> 转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。

> 关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~