📜  IPv6 寻址格式和约定(1)

📅  最后修改于: 2023-12-03 15:15:52.775000             🧑  作者: Mango

IPv6 寻址格式和约定

IPv6是Internet协议的下一个版本,设计它的主要原因是解决IPv4地址空间不足的问题。IPv6地址的长度为128位,远大于IPv4的32位。IPv6寻址格式和约定是IPv6地址的表示方法和一些规则,本文将为程序员介绍IPv6寻址格式和约定。

IPv6地址格式

IPv6地址的基本单位是16位,每4个16位为一组,用冒号分隔,共8组,例如:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

如果一组全是0,则可以省略,但每组至少要保留一个数字,例如:

2001:db8:85a3:0:0:8a2e:370:7334

如果有多组全是0,则可以用双冒号代替这些组,但只能用一次,例如:

2001:db8::8a2e:370:7334
IPv6地址类型

IPv6地址包括单播地址、组播地址、任播地址等。其中单播地址是最常用的类型,常见的单播地址包括全球单播地址、本地单播地址和唯一本地单播地址等。

全球单播地址(Global Unicast Address,GUA)

全球单播地址是公网IP地址,可以被全球范围内的所有计算机访问。全球单播地址的格式为:

2000::/3

其中前缀2000::到3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给ISP,剩余的地址空间用于分配给机构或者个人使用。

本地单播地址(Link-Local Address,LLA)

本地单播地址是局域网内部使用的IP地址,只能在同一局域网内部通信。本地单播地址的格式为:

fe80::/10

其中前缀fe80::到febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给设备使用,其中最后64位通常是根据网卡的MAC地址生成的。

唯一本地单播地址(Unique Local Address,ULA)

唯一本地单播地址用于在局域网内部相互通信或者连接到Internet,但不会被Internet路由器转发。唯一本地单播地址的格式为:

fc00::/7

其中前缀fc00::到fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给机构或者个人使用。

组播地址(Multicast Address)

组播地址是将数据包传输到组内所有的设备,用于多播通信。组播地址的格式为:

ff00::/8

其中前缀ff00::到ff0f:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于IPv6预留地址。

任播地址(Anycast Address)

任播地址用于向组内任意设备发送数据包,但只有距离最近的设备会收到数据包。任播地址的格式为:

2000::/3
IPv6地址的约定

在使用IPv6地址的时候,我们需要遵守一些约定。

双冒号约定

双冒号约定指的是如果一个IPv6地址中出现了双冒号,那么它会自动补全为0,例如:

2001:db8::1

会被自动解析为:

2001:db8:0:0:0:0:0:1
零压缩约定

零压缩约定是指在一个IPv6地址中,如果一组数字前导0的个数不确定,可以省略掉0,例如:

2001:db8:0:0:0:0:0:1

可以简写为:

2001:db8::1
IPv6地址的大小写

IPv6地址中的字母可以使用大小写表示,但为了便于识别,最好使用小写字母。

总结

本文介绍了IPv6地址的格式和类型,以及IPv6地址中的约定,希望可以帮助程序员更好地理解IPv6地址。需要注意的是,IPv6使用的地址空间非常广阔,需要更加规范的管理和分配,而且IPv6地址的部署和应用上还存在着一定的挑战。