Поток и IPv6

Matter использует IPv6 для своих рабочих коммуникаций, а также использует как Unicast , так и Multicast адресацию IPv6 для доступа к своим узлам и группам соответственно.

Низкая мощность

Некоторые узлы Matter подключены к сети и имеют энергетический бюджет, позволяющий им поддерживать радиомодули постоянно включенными. Другие типы узлов, такие как датчики, должны работать от аккумулятора годами, используя свои радиомодули в сетях с низким энергопотреблением, таких как Thread . Архитектура прокси-сервера, наряду с конечными устройствами Thread Sleepy End Devices , позволяет полнофункциональным узлам предоставлять функциональность как на сетевом, так и на прикладном уровне, защищая дочерние узлы от энергоёмких транзакций.

Фундаментальным аспектом Matter является то, что он работает как на сетевых средах с высокой пропускной способностью, таких как Wi-Fi и Ethernet, так и на средах с низкой задержкой и низкой полосой пропускания, таких как Thread . Если бы все пакеты Multicast из Wi-Fi были перенаправлены в Thread , мы бы перегрузили сеть и потенциально затопили ее. Цель Thread - обеспечить работу IPv6 в маломощных ячеистых сетях с низкой задержкой, а не передачу данных с высокой пропускной способностью. В то время как ICMPv6-пинги Thread в локальной сети обычно имеют время RTT менее нескольких десятков миллисекунд, его общая пропускная способность ограничена 250 кбит/с на физическом уровне IEEE 802.15.4. С учетом повторных передач пакетов и накладных расходов типичная максимальная пропускная способность составляет около 125 кбит/с. Другими словами, на порядки меньше, чем у Wi-Fi.

Кадры на физическом уровне IEEE 802.15.4 имеют размер 127 байт, но максимальный (и типичный) максимальный размер передаваемого блока (MTU) пакетов IPv6 в Thread составляет 1280 байт. Поэтому пакеты IPv6 часто приходится разбивать на несколько кадров физического уровня. Этот процесс определён в RFC4944 .

Более подробную информацию см. в разделе Адресация IPv6 в руководстве Thread на openthread.io .

Пограничные маршрутизаторы

Итак, как узлы могут сосуществовать на обеих транспортных средах, находясь в одной фабрике? Хотя обе сети используют общие учётные данные Matter уровня приложений, они используют разные технологии связи. В этом сценарии для обеспечения связи сети необходим пограничный маршрутизатор Thread (BR) . BR — это тупиковые маршрутизаторы IPv6.

Оконечные маршрутизаторы обеспечивают связь между оконечными и обычными сетями. Оконечная сеть — это сеть «последней мили», которая обеспечивает внешнее соединение для своих участников, но не служит транзитным сетевым маршрутом между другими сетями. Как правило, оконечные сети Matter основаны на Thread . Дополнительную информацию о оконечных сетях см. в проекте RFC .

Таким образом, маршрутизаторы BR отвечают за связь между тупиковой сетью (Stub Network) и смежной инфраструктурной сетью (Adjacent Infrastructure Network) , которая представляет собой локальную сеть Wi-Fi или Ethernet. Они пересылают только те пакеты, которые относятся к сети Thread .

Этот процесс осуществляется путём назначения различных префиксов IPv6 сетям Thread и смежной инфраструктуры. Таким образом, маршрутизатор BR пересылает только одноадресные пакеты к IPv6-префиксу Thread или из него.

Пограничные маршрутизаторы также отвечают за:

  • автоматическая настройка префиксов и маршрутов IPv6 для сетей Thread и Adjacent Infrastructure Networks, чтобы хосты по обе стороны маршрутизатора Thread Border могли взаимодействовать.
  • публикация пакетов обнаружения mDNS DNS-SD от имени узлов Thread , чтобы их можно было обнаружить в смежной инфраструктурной сети.

Более подробную информацию можно найти в руководстве Border Router на сайте openthread.io .

Многоадресная рассылка IPv6

Групповые сообщения также важны, поскольку они позволяют одновременно управлять несколькими узлами Matter посредством Multicast . Для маршрутизации этого трафика в сеть Thread , как Matter , так и Thread реализуют схему адресации IPv6 Multicast на основе префикса Unicast , определенную в RFC 3306 .

Этот метод позволяет выбирать узлы назначения Multicast пакета на основе их общего префикса Unicast IPv6.

Например, адрес Matter Multicast может выглядеть так:

FF35:0040:FD<Fabric ID>00:<Group ID>

В таблице 1 подробно описано, как построен этот адрес:

Таблица 1: IPv6-адреса на основе префикса Unicast
Биты Описание
12 бит 0xFF3
4 бита 0x05

Область применения: локальная

8 бит 0x00

сдержанный

8 бит 0x40

Указывает на 64-битный длинный префикс.

8 бит 0xFD

Обозначает префикс ULA

56 бит Идентификатор ткани
8-бит 0x00
16-бит Идентификатор группы

Более подробную информацию можно найти в разделе Multicast руководства Thread Primer и в самом документе RFC.

При формировании адресов Multicast IPv6 они также включают старшие 56 бит идентификатора фабрики. Важное следствие заключается в том, что область действия Multicast ограничена одной фабрикой, в то время как адреса Unicast являются общими для всех фабрик. Узлы с большим количеством фабрик потенциально могут иметь несколько адресов Multicast , определяющих перекрывающиеся группы узлов, области действия которых ограничены каждой фабрикой.

Порты

Matter использует порт 5540 для многоадресной рассылки.