织物

织物

Weave 结构是一组已启用 Weave 的资源。它为用户住宅中的 Weave 节点提供了一种安全地交换消息的便捷方式。

织物由 Weave 系统中的第一个节点预配。预配完成后,其他节点可以使用 Weave 证书安全地加入 Fabric。稍后我们将详细介绍证书和安全性,但请注意,在 Weave 中,设备配对和结构连接始终是安全的。

软件架构中的每个资源都会分配一个特殊的 IPv6 地址,供 Weave 应用使用。无论您使用哪种可路由无线技术,都不会受到影响。 以太网、Wi-Fi 或 Thread 为基础的网络 - 只要每个节点都运行 Weave 且是 fabric 的成员,就可以发送和接收消息。

示例

假设您有一个简单的家庭区域网络 (HAN),其中包含通过 Wi-Fi 和 Thread 连接的资源。这两个网络由边界路由器连接,该路由器同时参与这两个网络,并充当路由器来在它们之间转送流量。

HAN

每个网络中的资源使用其标准 IP 路由配置通过 UDP 或 TCP 等传输协议相互通信,但在预配了 Weave 网络之后,它们现在可以通过这些相同的传输协议传递 Weave 消息。

HAN with Weave

IPv6 寻址

Weave 网络通过为网络中的每个资源分配唯一本地地址 (ULA) ,实现在 Weave 应用中进行简单的 IPv6 路由。Weave 应用使用此地址来路由 Weave 邮件。

以下是节点的 IPv6 Weave 地址示例:

fd00::fab1:2:3e36:13ff:fe33:732e

我们来看看构成地址的不同元素。

全局前缀

所有 Weave 节点都使用 IPv6 全局前缀 fd00::/48。IETF 在 RFC-4193 中指定了此网段中的地址,以便在 HAN 等专用网络中使用。

布料 ID

在进行 Fabric 预配时,系统会为 Fabric 分配一个随机生成的唯一 64 位 ID。此 ID 将成为 IPv6 全球前缀的一部分。

例如,如果为结构脉络分配了 Fabric ID fab1,则此结构的全局前缀变为:

fd00:0000:fab1::/48

节点 ID

结构中的每个节点都会为自己分配一个 Weave Node ID,该 ID 采用 IEEE 扩展唯一标识符 (EUI-64) 的形式。大多数节点都从其 MAC 地址派生其节点 ID。节点可能具有 48 位或 64 位 MAC 地址,通常分别与其 Wi-Fi 接口或 802.15.4 接口相关联。Weave 倾向于使用 64 位值作为节点 ID(如果有)。

如果节点只有 48 位 MAC 地址,则根据 RFC 4291,Weave 会在中间插入 16 位 FF:FE 值,以创建 EUI-64 值,该值用作 Weave 节点 ID。

例如,如果节点的 MAC 地址是 48 位 3c:36:13:33:73:2e,则生成的 Weave 节点 ID 为 3c3613fffe33732e

要在 IPv6 地址中使用节点 ID,您必须通过翻转第七位(称为通用/本地位)将其转换为接口标识符。因此,节点 ID 3c3613fffe33732e 会变成 3e3613fffe33732e 的接口标识符。

子网

Weave IPv6 地址的最后一部分是子网,这是一个 16 位值,用于标识网络接口。这些值由底层网络决定。例如,Wi-Fi 或 Thread。

在本示例中,我们假设子网为 0x0002

综合应用

将上述所有元素组合在一起,即可获得 Weave IPv6 地址:

Fabric ULA

资源加入到 Fabric 后,Weave 配置文件现在可以通过节点的 Weave 分配的 IPv6 地址在该资源与 Fabric 中的其他资源之间传递消息。接下来,我们将介绍 Weave 中的消息传递基础知识。

回顾

您学到了:

  • 结构体 是一组支持 Weave 的资源 ,它们协同工作,为用户和结构提供服务
  • 资源始终经过身份验证并安全地加入到 Fabric
  • 系统会为织物中的每个资源分配一个 IPv6 唯一本地地址 ,供 Weave 使用
  • 无论底层无线技术或传输方式如何,这些 IPv6 地址之间都会传递 Weave 消息