📅  最后修改于: 2023-12-03 15:15:52.775000             🧑  作者: Mango
IPv6是Internet协议的下一个版本,设计它的主要原因是解决IPv4地址空间不足的问题。IPv6地址的长度为128位,远大于IPv4的32位。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地址包括单播地址、组播地址、任播地址等。其中单播地址是最常用的类型,常见的单播地址包括全球单播地址、本地单播地址和唯一本地单播地址等。
全球单播地址是公网IP地址,可以被全球范围内的所有计算机访问。全球单播地址的格式为:
2000::/3
其中前缀2000::到3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给ISP,剩余的地址空间用于分配给机构或者个人使用。
本地单播地址是局域网内部使用的IP地址,只能在同一局域网内部通信。本地单播地址的格式为:
fe80::/10
其中前缀fe80::到febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给设备使用,其中最后64位通常是根据网卡的MAC地址生成的。
唯一本地单播地址用于在局域网内部相互通信或者连接到Internet,但不会被Internet路由器转发。唯一本地单播地址的格式为:
fc00::/7
其中前缀fc00::到fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于分配给机构或者个人使用。
组播地址是将数据包传输到组内所有的设备,用于多播通信。组播地址的格式为:
ff00::/8
其中前缀ff00::到ff0f:ffff:ffff:ffff:ffff:ffff:ffff:ffff用于IPv6预留地址。
任播地址用于向组内任意设备发送数据包,但只有距离最近的设备会收到数据包。任播地址的格式为:
2000::/3
在使用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地址的部署和应用上还存在着一定的挑战。