Thread协议栈的设备支持在RFC4219((https://tools.ietf.org/html/rfc4291)中定义的IPv6地址构架。Thread地址包含了单播地址、多播地址、任播地址、RLOC16。了解Thread地址之前一定要先了解IPv6的地址。
IPv6地址分为三种类型:
单播:单个接口的标识符。发送一个数据包到单播地址也就是发送数据包到这个地址所标识的接口。
任播:一组接口的标识符(通常属于不同的节点)。发送到一个数据包到任播地址也就是发送数据包到这个地址所标识的接口集中的任意一个接口(根据到路由协议的距离度量程序计算出的最近的接口)。当目的地的路由地址未知时,可以使用任播将数据路由到 Thread 接口。ALOC(Anycast Locator)标识 Thread 分区内多个接口的位置。
多播:一组接口的标识符(通常属于不同的节点)。一个数据包发送到组播地址也就是数据包下发给由该地址所标识的接口集的所有接口。
IPv6 中没有广播地址,广播地址的作用是由多播地址取代。
地址的文本表示方法:
一、冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X是1-4个16进制数字。例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
2001:DB8:0:0:8:800:200C:417A
这种表示法中,每个X的前导0是可以省略的,但是每个字段中必须至少有一个数字。
二、0位压缩表示法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::11