地址表达方式
1、ipv6地址长度是128位,基本表达方式是X:X:X:X:X:X:X:X,其中x是一个4位十六进制整数。每一个数字包含4位,每个整数包含4个数字,每个地址包括8个整数,共计128位(4*4*8=128)。
2、某些ipv6地址中可能包含一长串的0,当出现这种情况时,标准种允许用“空隙”来表示这一长串的0。如 2000:0:0:0:0:0:0:1可表示成2000::1。该种方法,只有当16位组全部为0时才会被两个冒号取代,且两个冒号在地址中只能出现一次。
3、要在一个URL中使用文本IPv6地址,文本地址应该用符号“[”和“]”来封闭。例如文本IPv6地址FEDC:BA98:7654:3210:FEDC:BA98:7654:3210写作URL示例为http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html。
4、ipv6地址被分成两个部分-子网前缀和接口标识符,子网前缀类似ipv4地址的掩码。
ipv6地址有三类,单播、组播和泛播地址。单播和组播地址与ipv4的地址非常类似;但ipv6中不再支持ipv4中的广播地址,而增加了一个泛播地址。
- 单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上。
- 泛播:一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个)
- 组播:一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送至该地址标识的所有接口上。
单播地址格式
1、接口标识符
ipv6单播地址的接口标识符基于IEEE EUI-64格式,该格式基于已存在的mac地址来创建64位接口标识符,这样的标识符在本地和全球范围是唯一的。RFC 2373包括的附录解释了如何创建接口标识符。方法如下:
将48位mac地址分成左右各24位,在其中插入0xFFFE,然后将第一个字节的第7位取反,如图所示:
例:
00:1F:9E:FC:7A:D0(MAC) -> FE80::21F:9EFF:FEFC:7AD0(IPV6)
2、可聚集全球单播地址(暂不做了解…)
3、特殊地址和保留地址
- 未指定地址或全0地址(尚未得到一个ipv6地址)
- 回返地址(在ipv4中回返地址时127.0.0.1,ipv6中的回返地址时::1)
- 嵌有ipv4地址的ipv6地址(有两类该地址,前80位均为0,低32位包含ipv4地址,当中间的16位为ffff时,表示该地址为ipv4映象的ipv6地址,用于访问只支持ipv4的节点;当中间的16位全0时,表示该地址为ipv4兼容地址,用于通过ipv4路由器以隧道方式传送ipv6包)
4、链路本地地址用于单网络链路上给主机编号,前缀的前10位标识(1111111010)的地址即为链路本地地址。路由器对于源端和目的端具有链路本地地址的包不予处理,因为永远不会转发这些包。
站点本地地址可用于在内联网中传送数据,但不允许从站点直接选路到全球Internet。站点内的路由器只能在站点内转发包,而不能把包转发到站点外去。
5、NSAP和IPX地址分配
组播地址格式
组播地址只能用作目的地址,没有数据报把组播地址用作源地址。
地址格式如图6-6,其中第一个子节为全‘1’,标识其为组播地址。组播地址格式中除第一子节外的其余部分,包括如下三个字段:
- 标志字段:由4个单个位标志组成。目前只指定了第4位,该位用来表示该地址是由Internet编号机构指定的熟知的组播地址,还是特定场合使用的临时组播地址。如果该 标志位为“ 0”,表示该地址为熟知地址;如果该位为“ 1”,表示该地址为临时地址。其 他3个标志位保留将来用。
- 范围字段:长4位,用来表示组播的范围。即,组播组是只包括同一本地网、同一站点、 同一机构中的节点,还是包括ipv6全球地址空间中任何位置的节点。该4位的可能值式0~15,如图6-7
- 组标识符字段:长112位,用于标识组播组。根据组播地址是临时的还是熟知的以及地址的范围,同一个组播标识符可以表示不同的组。永久组播地址用指定的赋予特殊含义 的组标识符,组中的成员既依赖于组标识符,又依赖于范围。
参考资料《ipv6详解 第六章》
Understanding IPv6 EUI-64 Bit Address