6LoWPAN
6LoWPAN (англ. IPv6 Low power Wireless Personal Area Networks; в переводе — «Сетевые протоколы IPv6 для беспроводных персональных сетей с низким энергопотреблением» или «IPv6 LoW Power wireless Area Networks») — это технология, а также одноимённая рабочая группа в IETF. Группа 6LoWPAN разработала механизмы инкапсуляции и сжатия заголовков, позволяющие передавать пакеты IPv6 через протокол связи IEEE 802.15.4. Протоколы IPv4 и IPv6 эффективны для обмена данными в локальных, городских и глобальных сетях, таких как Интернет. Однако их трудно реализовать в сетях датчиков или других ограниченных устройствах в первую очередь из-за большого размера заголовков[1]. 6LoWPAN создан для того, чтобы задействовать возможности IPv6 на таких ограниченных устройствах и в соединяющих их сетях.
Базовая спецификация работы 6LoWPAN представлена в двух ключевых RFC:
Описание технологии
LoWPAN представляет собой набор устройств с низким уровнем ресурсов (вычислительная мощность, память, батарея), объединённых через сеть с ограниченной пропускной способностью (до 250 кбит/с)[4]. Такие сети включают большое количество элементов[5][6].
В протоколе IEEE 802.15.4 максимальный размер PSDU («единица данных службы физического уровня») составляет 127 байт[7]. С учётом 25 байт для подуровня MAC (без защиты)[8], на уровне канального доступа остаётся 102 байта. При включении защиты канального уровня данных (AES-CCM-128)[9] реально доступно всего 81 байт для IP-пакета. Заголовки IPv6 (40 байт)[10], дополнительные заголовки, UDP (8 байт)[11] или TCP (20 байт)[10] ещё больше уменьшают полезный объём данных (до 33 байт для UDP и до 21 байта для TCP). Это создаёт явное несоответствие минимальным требованиям MTU IPv6 в 1280 байт[12].
Чтобы приспособиться к поддержке 802.15.4, устройство вынуждено фрагментировать IPv6-пакет на несколько кадров 802.15.4, а получатель должен собрать их обратно для восстановления исходного пакета IPv6. Эти операции требуют дополнительных ресурсов (памяти и процессора) и повышают задержку.
Ключевые проблемы 6LoWPAN[13]:
- Фрагментация и сборка: ограничения по размеру пакета создают существенную нагрузку.
- Сжатие заголовка IPv6: без сжатия значительная часть полезного кадра уходит под заголовок; эффективная компрессия обязательна.
- Маршрутизация: сети строятся как ячеистые или звёздные, нуждаются в особых протоколах и учёте ограниченных ресурсов.
- Автоконфигурация IP: рекомендуется stateless-автоконфигурация адреса IPv6 (SLAAC, RFC 4862).
- Администрирование и мониторинг: применение SNMP возможно, но с оговорками и адаптациями.
- Ограничения на «высокоуровневые» приложения: ресурсоёмкие приложения не подходят; ПО должно учитывать особенности таких сетей.
- Безопасность: требуется дополнительная IP-защита поверх базовой IEEE 802.15.4/AES, чтобы обеспечить целостность информации в сети.
Фрагментация и сборка
Адаптационный уровень 6LoWPAN располагается между сетевым и канальным уровнями модели OSI. Он разбивает IPv6-пакеты размером 1280 байт на кадры 802.15.4 (с учётом ~81 байта на IP-уровне). Каждый фрагмент сопровождается 4- или 5-байтовым заголовком, в котором указаны: тип фрагмента, полный размер IP-пакета, уникальный тег datagram_tag, смещение. Если хотя бы один фрагмент утерян, воссоздать пакет нельзя, и требуется передача всех фрагментов повторно. Для решения проблемы предложены механизмы квитирования на уровне фрагментов, позволяющие пересылать только недоставленные части[14].
Сжатие заголовков
Механизм сжатия заголовков IPv6 для LowPAN описан в RFC 4944. Применяется формат LOWPAN_HC1 — он сжимает заголовки IPv6 (до 2-7 байт в зависимости от адресации/топологии), сжатие UDP — до 4 байт (с ограничением диапазона портов). Для улучшения сжатия представлены LOWPAN_HC1g (для глобальных адресов), а затем более универсальный формат LOWPAN_IPHC[15]. В современных решениях рекомендуется именно IPHC.
LOWPAN_NHC применяется для сжатия транспортного уровня. Для контроля целостности сообщений рекомендуется использовать TLS (RFC 5246).
| Значение | Значение |
|---|---|
01000001 |
не сжатый пакет IPv6 |
01010000 |
широковещательный кадр LoWPAN |
11000xxx |
первый фрагмент |
11100xxx |
последующий фрагмент |
11110CPP |
заголовок UDP |
Маршрутизация
Маршрутизация 6LoWPAN может реализовываться по схемам mesh-under или route-over[16]. В mesh-under маршрутизация размещается на уровне адаптационного слоя, а в route-over — на сетевом уровне. В route-over пакет IPv6 воссоздаётся на каждом промежуточном устройстве для принятия решения о маршруте, а в mesh-under — только на конечном.
Стандартизированы два основных протокола для масштабных сетей:
- LOADng (протокол типа mesh-under, стандартизован ITU и применяется, например, в программе счётчиков Linky во Франции),
- RPL (англ. Routing Protocol for Low Power and Lossy Networks — протокол route-over, стандартизован рабочей группой ROLL IETF).
RPL строит иерархическую топологию DAG (граф без циклов, ориентированный на получателя). Пограничный маршрутизатор (LBR) считается корнем DAG и инициирует рассылку DIO-сообщений для построения дерева маршрутов.
В 2010 году тесты на ОС Contiki показали высокую энергоэффективность и компактность реализации RPL для беспроводных сенсорных сетей, однако отметили существенные требования к памяти[17].
Автоматическая настройка IP-адресации
Стандартный механизм ND (RFC 4861) активно использует multicast-сообщения, что плохо подходит для сетей 6LoWPAN. Рабочей группой IETF 6LoWPAN опубликованы оптимизации ND с минимизацией multicast и поддержкой специфики сна устройств. Для этого реализованы специализированные сообщения (ARO, ABRO, DAR, DAC) для согласования адресов при разных режимах маршрутизации — route-over и mesh-under.
Публикуются и другие механизмы облегчённой адресации, например, протокол LISAA (англ. Lightweight IPv6 Stateful Address Autoconfiguration, динамическая автоконфигурация IPv6-адреса) с иерархическим распределением блоков адресов через прокси[18].
Мобильность
Внутрисетевое перемещение устройств (intra-LoWPAN) поддерживается на уровне маршрутизации. Перемещение между сетями (inter-LoWPAN) требует специальных протоколов, например адаптацию MIPv6, Proxy MIPv6, облегчённого NEMO, а также собственные алгоритмы Inter-PAN, Inter-Mobility, Inter-MARIO, SPMIPv6[19].
Администрирование и управление сетью
Управление сетью 6LoWPAN возможно через сервер приложений (NMS) на стороне IPv6, но стандартный SNMP слишком ресурсоёмок. Для 6LoWPAN разрабатываются облегчённые варианты инструментов — 6LoWPAN-SNMP с использованием прокси-агента, сокращённой адресацией OID, передачей через broadcast/multicast, что снижает нагрузку на сеть.
Архитектуры управления (LNMP — LoWPAN Network Management Protocol) включают три уровня: конечные устройства (End Device), координаторы (Coordinator) и шлюз (Gateway). Информационная архитектура основана на PAN Information Base (PIB) и специализированных MIB.
Рекомендуется применять задержки ожидания ответа (100—150 мс) из-за компрессии/фрагментации SNMP-сообщений в LoWPAN.
Ограничения для прикладных приложений
Устройства 6LoWPAN обычно имеют очень ограниченные ресурсы (несколько килобайт ОЗУ, объём кода до 48-128 КБ), из-за чего реализуются преимущественно приложения на основе UDP, минималистичных протоколов и минимального трафика. SOAP и HTTP возможны, но REST/JSON существенно предпочтительнее. Для сервисов обнаружения могут использоваться SLP, оптимизированные для «дремлющих» устройств.
В 2009 году определены основные проблемы приложений для таких сетей, что стало предпосылкой к появлению протокола CoAP — облегчённого RESTful-протокола поверх UDP с компактными заголовками для управления IoT-устройствами[20].
COAP реализует четыре типа обмена (Confirmable, Non-confirmable, Acknowledgement, Reset — CON, NCN, ACK, RST), четыре метода (GET, POST, PUT, DELETE) и определяет специальную структуру сообщений.
| Случай запроса | Случай ответа | ||
|---|---|---|---|
| Значение Code | HTTP-метод | Значение Code | HTTP-статус |
| 1 | GET | 65 | 201 Created |
| 2 | POST | 66 | 202 Deleted |
| 3 | PUT | 68 | 204 Changed |
| 4 | DELETE | 69 | 205 Content |
| 131 | 403 Forbidden | ||
COAP также реализует механизмы подписки (наблюдения за изменением состояния ресурса), фрагментации передачи (block-wise) и расширений для поиска и группировки ресурсов.
Безопасность
Безопасность 6LoWPAN охватывает все уровни стека: на MAC применяется AES, для сетевого уровня — IPsec (с оговорками по энергозатратам), автоконфигурация и обнаружение соседей могут защищаться расширениями протокола (LSEND и др.), а для приложений рекомендуется применять TLS или DTLS. Также разрабатываются методики защиты от атак с фрагментацией пакетов и оптимизации криптографии[21].
История 6LoWPAN
Современное развитие 6LoWPAN началось на рубеже 2000-х годов, когда миниатюризация электроники и широкое распространение беспроводных сетей сделали возможными массовое внедрение сенсорных устройств и актуаторов. Ключевые этапы:
- 2001 — Г. Маллиган предложил использовать IP поверх 802.15.4 в датчиках; концепция развивается в MIT и группе ROHC IETF[1].
- 2005 — создание рабочей группы 6LoWPAN в IETF; публикация темы Интернет вещей МСЭ.
- 2007 — первые реализации на TinyOS, публикация RFC 4919 и 4944 как стандартов сетевого уровня, формирование инициатив по «умным сетям» и массовым системам сбора данных.
- 2008—2011 — коммерческие продукты, тесты для IoT («IPv6 Ready»), разработка новых протоколов маршрутизации, массовое внедрение (в том числе Linky, крупнейшая французская система учёта электроэнергии), усиление стандартизации.
- 2010—2011 — переход на дополнительные среды передачи: PLC, RFID, Bluetooth; разработка COAP, массированный рост научных публикаций.
Применение и решения на базе 6LoWPAN
Области применения
Типичные сценарии использования 6LoWPAN описаны в RFC 4919 и рабочих документах IETF[22]:
- промышленный мониторинг (контроль дефектов на производстве, мониторинг химических параметров, безопасность предприятий),
- здания и сооружения (САПР, «умный дом», контроль освещения, температуры, состояния конструкций),
- частное жильё (домотика, дистанционный медицинский мониторинг),
- здравоохранение (мониторинг состояния пациента в реальном времени),
- транспорт (трекинг транспорта, предотвращение аварий, телематика),
- сельское хозяйство (экологическое мониторинг, управление поливом, датчики влажности/температуры/PH).
Архитектура сети и поддерживаемые функции зависят от сферы применения.
Кроме того, 6LoWPAN находит применение в военных системах, а также легко интегрируется в предприятия с SOA[23].
Существующие реализации
На рынке представлены аппаратные платформы и ПО — Sensinode, Arch Rock, ZigBee SE2, Indrion, Linky (ERDF/Enedis), WattECO и др. Типовые устройства:
| Устройство | Контроллер | RAM | EEPROM | Flash | Производитель |
|---|---|---|---|---|---|
| WiSMote | MSP430x5 CC2520 | 16k | — | 256k | Arago Systems |
| MICAz | Atmel ATmega128L | — | 4k | 128k | Crossbow |
| TELOSB | TI MSP430 | 10k | 16k | 48k | Crossbow |
| JN5139 | 32-бит RISC | 96k | 192k | внешняя | Jennic |
| RC2xxx | 8051 | 8k | 4k | 32-256k | Radiocrafts |
| WPC-IP | MSP430F5 | 16k | — | 256k | Watteco |
| NanoStack | TI CC1110 | 4-8k | 32-64k | 32k | Sensinode |
| Tmote Sky | TI MSP430 | 10k | — | 48k | Sentilla |
| eSPOT | ARM 926ej-S | 1M | — | 8M | Sun SPOT |
| PN2420 | Atmega128L / MSP430 | 4k | — | 128k | PicosNet |
Доступны как свободные, так и коммерческие реализации ОС и средств разработки: RIOT, FreeRTOS, TinyOS, Contiki, Zephyr RTOS, NanoStack 2.0, Sensinode, ZigBee SE2 и др. Поддерживаются API для Python, Java, C (COAPy, jCoAPy, opencoap, libcoap), инструменты анализа (Wireshark, Copper для Firefox).
| OS с открытым кодом | Коммерческая ОС | Мобильная ОС | API (язык) | Инструменты |
|---|---|---|---|---|
| RIOT | NanoStack 2.0 | Windows CE | COAPy (Python) | Wireshark |
| FreeRTOS | Sensinode | Android | jCoAPy (Java) | Copper (расш. Firefox) |
| TinyOS | ZigBee SE2 | Symbian | opencoap (C) | |
| Contiki | libcoap (C) | |||
| Zephyr RTOS |
6LoWPAN используется в научных проектах: HOBNET, SENSEI, EUREKA и др.
Ограничения:
- помехи на частоте 2,4 ГГц приводят к увеличению потерь пакетов и задержек[24];
- увеличение потерь и задержек при чрезмерном размере полезной нагрузки[25];
- задержки ответа свыше 500 мс необходимы для снижения потерь;
- избыточная нагрузка от SNMPv3 негативно влияет на объём ROM и увеличивает задержки.
Первоначально 6LoWPAN был разработан для IEEE 802.15.4, но с 2010 года стал поддерживать и курьерную среду (PLC), RFID и Bluetooth[26], что обеспечило его интеграцию в Интернет вещей.
Примечания
Литература
- География ключевых публикаций, стандартов и статей приведена в разделах Библиография и RFC и рабочие документы IETF в английской и французской Википедии.

