IPv4地址和IPv6地址的比较,IPv6地址及其表示
TCP/IP协议是互联网发展的基石,其中IP是网络层协议,规范互联网中分组信息的交换和选路。目前采用的IPv4协议地址长度为32位,总数约43亿个IPv4地址已分配殆尽。
IPv6是IP地址的第六版协议,诞生于1999年,其最大的优点就是设计地址长度达128bit,可以提供2的128次方个IP地址,即使将地球上所有沙子都变成晶体管,依然会有足够的IP地址给电子设备使用。近乎无穷的IP地址让IPv6能容得下海量设备,这将与5G等技术一起,支撑移动互联网、物联网、工业互联网、云计算、大数据、人工智能等新兴业态的快速发展。
IPv4地址
IPv4地址和IPv6地址的比较,IPv6地址及其表示
无论你是使用智能手机上网还是使用PC机上网,你的手机或PC机都会被分配一个IP地址,手机或PC机使用这个IP地址与互联网上的其它网元通信。IP地址现在有IPv4和IPv6 两大类,现在使用的绝大多数的IP地址是其中的IPv4地址。
IPv4是 Internet Protocol version 4 的缩写,表示IP协议的第四个版本。现在互联网上绝大多数的通信流量都是以IPv4数据包的格式封装的。IPv4在 IETF publication RFC 791有详细的描述。
IPv4使用32位2进制位的地址,因此IPv4的地址空间是 2^32= 4294967296。最初每一个连接入互联网的用户都要分配使用一个IPv4 地址,因此未分配的IPv4地址越来越少,由此产生了IPv4地址耗尽的问题。为了根本解决IPv4地址耗尽的问题,IPv6应运而生。
IPv4通常用点分十进制记法书写,例如192.168.0.1,其中的数字都是十进制的数字,中间用实心圆点分隔。
一个IPv4地址可以分为网络地址和主机地址两部分,其中网络地址可以使用如下形式描述:192.168.0.0/16,其中斜线后的数字表示网络地址部分的长度是16位,这对应2个字节,即网络地址部分是192.168.0.0。
为了便于对IP地址进行管理, 根据IPv4地址的第一个字节,IPv4地址可以分为以下五类。
A类:0~127
B类:128~191
C类:192~223
D类:224~239,组播地址
E类:240~254,保留为研究测试使用
IPv4地址中有一些地址段有特殊用途,这些地址段及用途的说明如表1所示。
IPv4地址和IPv6地址的比较,IPv6地址及其表示
IPv4特殊用途地址
IPv6 地址及其表示
IPv4地址和IPv6地址的比较,IPv6地址及其表示
Pv6 提供的地址空间非常大,即地址很长–比IPv4 长4 倍。IPv6 地址长128 位。IPv6 没有广播的概念,它使用组播。IPv6 还支持另外两种通信:单播和任意播,其中单播与IPv4 中相同,而任意播是新增的。任意播可将同一个地址分配给多台设备,而向该地址发送数据流时,它会被路由到共享该地址的最近主机。
理解IPv4 地址的结构和用法至关重要,对IPv6 地址来说亦如此。你知道, IPv6 地址长128 位,这比IPv4 地址长得多,因此除了要以新方式使用IPv6地址外, IPv6 地址管理起来也更复杂。但不用担心,这里将解释IPv6 地址的组成部分、如何书写及其众多常见的用法。
IPv6地址示例
IPv6地址示例
IPv6 地址确实长得多,但除此之外,还有什么不同呢?首先,注意到它包含8组(而不是4 组)数字,且用冒号而不是句点分隔。看,地址中还有字母!与MAC 地址一样,IPv6地址是用十六进制表示的,因此可以这样说:IPV6地址包含8 个用冒号分隔的编组,每组16 位,并用十六进制表示。
注意:使用Web 浏览器连接到IPv6 设备的HTTP 连接时,必须将IPv6 地址用方括号括起。为什么呢?因为冒号已被浏览器用来指定端口号。如果不用方括号将地址括起,浏览器将无法识别地址。
所以必须这样:
http://[2001:0db8:3c4d:0012:0000:0000:1234:S6ab]/index.html
显然,在可能的情况下,你更愿意使用名称来指定目的地(如www.toutiao.com),但必须接受这样的事实:有时候,不得不咬紧牙关,输入地址,虽然这样做无疑很痛苦。显然,实现IPv6 时, DNS也极其重要。
IPv6简化表示
好消息是,书写这些大型地址时,有很多简写方式。其中之一是可省略地址的某些部分,但必须遵守一些规则。首先,可省略各个字段中的前导零。这样做后,前面的示例地址将变成下面这样:
2001:db8:3c4d:12:0:0:1234:56ab
这显然要好得多,至少无需书写所有多余的零了!但对于只包含零的字段,该如何办呢?也可将它们省略,至少是其中的一部分。还是以前面的地址为例,可省略两个只包含零的相邻字段,并用两个冒号替代它们,如下所示:
2001:db8:3c4d:12::1234:56ab
使用两个冒号替代了相连的全零字段。这样做时必须遵守如下规则:只能替换相连的全零字段一次。因此,如果地址中有4 个全零的字段,但它们彼此不相邻,则不能全部替换它们;请记住,这里的规则是只能替换相连的全零字段一次。请看下面的地址:
2001:0000:0000:0012:0000:0000:1234: 56ab
不能将其简化成下面这样:
2001: :12::1234:56ab
相反,最多只能将其简化成这样:
2001::12:0:0:1234:56ab
因为如果替换两次,设备见到该地址后,将无法判断每对冒号代表多少个字段。路由器见到这个错误的地址后,将发出这样的疑问:我是将每对冒号都替换为两个全零字段呢,还是将第一对冒号替换为3 个全零字段,并将第二对冒号替换为1 个全零字段?路由器无法回答这个问题,因为它没有所需的信息。