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:

  1. Основной обзор — RFC 4919[2].
  2. Описание спецификации передачи IPv6 поверх 802.15.4 — RFC 4944[3].

Описание технологии

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].

Проблема интеграции IPv6-пакета в кадр 802.15.4

Чтобы приспособиться к поддержке 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].

Заголовки фрагментации 6LoWPAN

Сжатие заголовков

Механизм сжатия заголовков IPv6 для LowPAN описан в RFC 4944. Применяется формат LOWPAN_HC1 — он сжимает заголовки IPv6 (до 2-7 байт в зависимости от адресации/топологии), сжатие UDP — до 4 байт (с ограничением диапазона портов). Для улучшения сжатия представлены LOWPAN_HC1g (для глобальных адресов), а затем более универсальный формат LOWPAN_IPHC[15]. В современных решениях рекомендуется именно IPHC.

LOWPAN_NHC применяется для сжатия транспортного уровня. Для контроля целостности сообщений рекомендуется использовать TLS (RFC 5246).

Кадр 802.15.4 с сжатием IPv6 и заголовком фрагментации
Примеры возможных значений октета Dispatch
Значение Значение
01000001 не сжатый пакет IPv6
01010000 широковещательный кадр LoWPAN
11000xxx первый фрагмент
11100xxx последующий фрагмент
11110CPP заголовок UDP

Маршрутизация

undefined

Маршрутизация 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].

Мобильность

undefined

Внутрисетевое перемещение устройств (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 в CoAP
Случай запроса Случай ответа
Значение 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].

undefined

История 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], что обеспечило его интеграцию в Интернет вещей.

Примечания

  1. 1 2 G. Mulligan (2007). “The 6LoWPAN architecture”. Proceedings of the 4th workshop on Embedded networked sensors [англ.]: 78—82. DOI:10.1145/1278972.1278992. Дата обращения 2024-04-15.
  2. RFC 4919: IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals (англ.). IETF (август 2007). Дата обращения: 15 апреля 2024. Архивировано 1 апреля 2020 года.
  3. RFC 4944: Transmission of IPv6 Packets over IEEE 802.15.4 Networks (англ.). IETF (сентябрь 2007). Дата обращения: 15 апреля 2024. Архивировано 1 апреля 2020 года.
  4. “IEEE Standard for Information technology -- Local and metropolitan area networks -- Specific requirements -- Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs)”. IEEE Std 802.15.4-2006 [англ.]: 13. 2006-09-07. Дата обращения 2024-04-15.
  5. Shelby, Zach. 6LoWPAN: The Wireless Embedded Internet : [англ.] / Zach Shelby, Carsten Bormann. — Wiley, 2009. — P. Introduction. — ISBN 978-0-470-74799-5.
  6. Vasseur, Jean-Philippe. Interconnecting Smart Objects with IP: The Next Internet : [англ.] / Jean-Philippe Vasseur, Adam Dunkels. — Elsevier Science & Technology, 2010. — P. Introduction. — ISBN 978-0-12-375165-2.
  7. “IEEE Std 802.15.4-2006”. IEEE [англ.]: 45. 2006-09-07. Дата обращения 2024-04-15.
  8. “IEEE Std 802.15.4-2006”. IEEE [англ.]: 159. 2006-09-07. Дата обращения 2024-04-15.
  9. “IEEE Std 802.15.4-2003”. IEEE [англ.]: 172. 2003. Дата обращения 2024-04-15.
  10. 1 2 RFC 2460: Internet Protocol, Version 6 (IPv6) Specification (англ.). IETF 4 (декабрь 1998). Дата обращения: 15 апреля 2024.
  11. RFC 768: User Datagram Protocol (англ.). IETF (август 1980). Дата обращения: 15 апреля 2024.
  12. RFC 2460 (англ.). IETF 24 (декабрь 1998). Дата обращения: 15 апреля 2024.
  13. RFC 4919 (англ.). IETF 4–9 (август 2007). Дата обращения: 15 апреля 2024.
  14. LoWPAN fragment Forwarding and Recovery (англ.). IETF (июнь 2010). Дата обращения: 15 апреля 2024.
  15. Compression Format for IPv6 Datagrams in Low Power and Lossy Networks (6LoWPAN) (англ.). IETF (февраль 2011). Дата обращения: 15 апреля 2024.
  16. Problem Statement and Requirements for 6LoWPAN Routing (англ.). IETF (февраль 2011). Дата обращения: 15 апреля 2024.
  17. N. Tsiftes; et al. (2010). “Low-Power Wireless IPv6 Routing with ContikiRPL”. Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks [англ.]: 406—407. DOI:10.1145/1791212.1791277. Дата обращения 2024-04-15.
  18. E. Talipov; et al. (2011). “A lightweight stateful address autoconfiguration for 6LoWPAN”. Wirel. Netw. [англ.]. 17: 183—197. DOI:10.1007/s11276-010-0272-0. Дата обращения 2024-04-15. |access-date= требует |url= (справка)
  19. RFC 3775: Mobility Support in IPv6 (англ.). IETF (июнь 2004). Дата обращения: 15 апреля 2024.
  20. Constrained RESTful Environments: Description of Working Group (англ.). IETF (март 2010). Дата обращения: 15 апреля 2024.
  21. IPv6 over Low Power WPAN Security Analysis (англ.). IETF (март 2011). Дата обращения: 15 апреля 2024.
  22. Design and Application Spaces for 6LoWPANs (англ.). IETF (январь 2011). Дата обращения: 15 апреля 2024.
  23. R. Glombitza; et al. (2009). “Integrating wireless sensor networks into web service-based business processes”. MidSens '09 Proceedings of the 4th International Workshop on Middleware Tools, Services and Run-Time Support for Sensor Networks [англ.]: 25—30. Дата обращения 2024-04-15. |access-date= требует |url= (справка)
  24. Z. Suryady; et al. (2011). “Performance evaluation of 6LoWPAN-based precision agriculture”. Information Networking (ICOIN), 2011 International Conference [англ.]: 171—176. Дата обращения 2024-04-15. |access-date= требует |url= (справка)
  25. B. Cody-Kenny; et al. (2009). “Performance evaluation of the 6LoWPAN protocol on MICAz and TelosB motes”. PM2HW2N '09 Proceedings of the 4th ACM workshop on Performance monitoring and measurement of heterogeneous wireless and wired networks [англ.]: 25—30. Дата обращения 2024-04-15. |access-date= требует |url= (справка)
  26. Transmission of IPv6 Packets over Bluetooth Low Energy (англ.). IETF (март 2011). Дата обращения: 15 апреля 2024.

Литература

Категории