Ткань Weave представляет собой набор ресурсов с поддержкой Weave. Он предоставляет узлам Weave в доме пользователя удобный способ безопасно обмениваться сообщениями.
Ткань предоставляется первым узлом в системе Weave. После инициализации другие узлы могут безопасно присоединиться к фабрике с помощью сертификатов Weave. Подробнее о сертификатах и безопасности мы поговорим позже, но помните, что сопряжение устройств и объединение фабрик в Weave всегда безопасно.
Каждому ресурсу в структуре назначается специальный IPv6-адрес для использования приложением Weave. Неважно, какую маршрутизируемую беспроводную технологию вы используете. Ethernet, Wi-Fi или Thread — пока на каждом узле работает Weave и он является членом структуры, сообщения могут отправляться и приниматься.
Пример
Предположим, у вас есть простая домашняя сеть (HAN), состоящая из ресурсов, соединенных как Wi-Fi, так и Thread. Эти две сети соединены граничным маршрутизатором, который участвует в обеих сетях и действует как маршрутизатор для маршрутизации трафика между ними.
Ресурсы в каждой сети используют свои стандартные конфигурации IP-маршрутизации для связи друг с другом через транспортные протоколы, такие как UDP или TCP, но с подготовленной структурой Weave они теперь могут передавать сообщения Weave через те же транспорты.
IPv6-адресация
Ткань Weave обеспечивает простую маршрутизацию IPv6 между приложениями Weave путем назначения уникального локального адреса (ULA)
каждому ресурсу в структуре. Приложение Weave использует этот адрес для маршрутизации сообщений Weave.Вот пример адреса узла IPv6 Weave:
fd00::fab1:2:3e36:13ff:fe33:732e
Давайте рассмотрим различные элементы, из которых состоит адрес.
Глобальный префикс
Все узлы Weave используют глобальный префикс IPv6 fd00::/48
. Адреса в этом блоке определены IETF в RFC-4193 для использования в частных сетях, таких как HAN.
Идентификатор ткани
Фабрике назначается случайно сгенерированный уникальный 64-битный идентификатор во время подготовки фабрики. Этот идентификатор становится частью глобального префикса IPv6.
Например, если фабрике назначается идентификатор fab1
, глобальный префикс фабрики становится следующим:
fd00:0000:fab1::/48
Идентификатор узла
Каждый узел в фабрике присваивает себе идентификатор узла Weave, который принимает форму расширенного уникального идентификатора IEEE (EUI-64). Большинство узлов получают свой идентификатор узла из своего MAC-адреса. У узла может быть 48-битный или 64-битный MAC-адрес, обычно связанный с их интерфейсами WiFi или 802.15.4 соответственно. Weave предпочитает использовать 64-битное значение в качестве идентификатора узла, если оно доступно.
Если узел имеет только 48-битный MAC-адрес, согласно RFC 4291 , Weave вставляет 16-битное значение FF:FE
в середине, чтобы создать значение EUI-64, которое используется в качестве идентификатора узла Weave.
Например, если MAC-адрес узла — 48-битный 3c:36:13:33:73:2e
, результирующий идентификатор узла Weave — 3c3613fffe33732e
.
Чтобы использовать идентификатор узла в адресе IPv6, вы должны преобразовать его в идентификатор интерфейса, перевернув седьмой бит, называемый универсальным/локальным битом. Таким образом, идентификатор узла 3c3613fffe33732e
становится идентификатором интерфейса 3e3613fffe33732e
.
Подсеть
Последняя часть адреса Weave IPv6 — это подсеть, 16-битное значение, используемое для идентификации сетевых интерфейсов. Эти значения определяются базовыми сетями. Например, Wi-Fi или Thread.
Для этого примера предположим, что наша подсеть — 0x0002
.
Собираем все вместе
Объединив все вышеперечисленные элементы, вы получите IPv6-адрес Weave:
С ресурсом, присоединенным к фабрике, профили Weave теперь могут передавать сообщения между ним и другими ресурсами в фабрике через назначенный Weave IPv6-адрес узла. Далее мы рассмотрим основы обмена сообщениями в Weave.
Резюме
Что вы узнали:
- ткани — это набор ресурсов с поддержкой Weave, которые взаимодействуют для предоставления услуг пользователю и структуре.
- Ресурсы всегда аутентифицируются и надежно присоединяются к фабрике
- Каждому ресурсу в фабрике назначается уникальный локальный адрес IPv6 для использования Weave.
- Сообщения Weave передаются между этими IPv6-адресами независимо от базовой беспроводной технологии или транспорта.