Сжатие заголовков в статическом контексте
Сжатие заголовков в статическом контексте (англ. Static Context Header Compression, SCHC) — стандартная схема сжатия и фрагментации, определённая рабочей группой «IPv6 поверх LPWAN» в рамках IETF. Предназначена для сжатия и фрагментации пакетов IPv6/UDP/CoAP с целью их передачи по энергоэффективным сетям с большой дальностью действия (LPWAN).
Схема сжатия для LPWAN
О сетях LPWAN
Энергоэффективные сети с большой дальностью действия (LPWAN) — это группа технологий связи, ориентированных на интернет вещей (IoT), обеспечивающих:
- дальность передачи до 40 км,
- очень низкое энергопотребление (на стороне устройств),
- энергетическую эффективность для сетей.
Компромиссом за достижение этих характеристик становятся значительные ограничения по пропускной способности и максимальному размеру пакетов[1]. Кроме того, LPWAN характеризуются ограничениями на режимы передачи: ради экономии заряда батареи устройства большую часть времени пребывают в спящем режиме и пробуждаются эпизодически для передачи или приёма данных в течение коротких временных окон.
В результате каждая технология LPWAN использует свои специфические протоколы. Ключевая проблема — невозможность непосредственной передачи IPv6, изначально предназначенного для адресации миллиардов IoT-устройств.
Стандарты сжатия IETF
В начале 2000-х годов IETF разработал первые зрелые стандарты для сжатия и фрагментации:
- RoHC (Robust Header Compression, 2001),
- 6LoWPAN (IPv6 поверх энергоэффективных беспроводных персональных сетей, 2007).
Однако эти схемы сжатия не учитывают особенности технологий LPWAN[2][3][4].
SCHC сочетает преимущества RoHC (гибкая обработка полей заголовков) и 6LoWPAN (исключение полей, известных обеим сторонам передачи)[4].
Сжатие по SCHC
Метод SCHC использует специфику LPWAN (отсутствие маршрутизации, предсказуемый формат и содержание сообщений), что позволяет сократить служебную нагрузку до нескольких байтов и тем самым экономить сетевой трафик.
В основе схемы SCHC лежит понятие «контекст». Контекст — это набор правил, описывающих условия передачи, то есть поля заголовков. Контекст статически задаётся и предварительно настраивается как на конечных устройствах, так и в ядре сети. «Статический контекст» подразумевает, что описание правил не меняется в ходе передачи. Благодаря этому заголовки IPv6/UDP в большинстве случаев сводятся к небольшому идентификатору.
Фрагментация по SCHC
Если сжатия недостаточно, SCHC предоставляет механизм фрагментации, реализующийся тремя способами:
Без подтверждения (No-Ack)
В этом режиме пакет SCHC разбивается на несколько фрагментов, которые отправляются получателю вслепую. Если хотя бы один фрагмент потеряется, восстановить исходный пакет невозможно.
Подтверждения при ошибке (Ack-On-Error)
В этом режиме используется концепция «окон» с заданным размером: получатель отслеживает, какие части окон были получены. Получив последний фрагмент, получатель вычисляет недостающие части, сообщает об этом отправителю, и начинается повторная отправка утраченных фрагментов.
Всегда подтверждать (Ack-Always)
Здесь механизм подтверждения и повторной передачи аналогичен Ack-On-Error, но подтверждение проводится для каждого окна передачи, а не по завершении всей передачи.
Стандартизация
Общий фреймворк сжатия и фрагментации заголовков в статическом контексте описан в RFC 8724, опубликованном в апреле 2020 года. Он определяет универсальную схему, применимую ко всем технологиям LPWAN и, шире, к различным интернет-сетям.
Дополнительная работа посвящена определению стандартных параметров и режимов работы SCHC для оптимизации под используемые протоколы и физические технологии LPWAN:
- RFC 9011: SCHC для LoRaWAN
- RFC 8824: SCHC для CoAP
- RFC 9363: YANG-модель данных для SCHC
- RFC 9391: SCHC для NB-IoT
- SCHC для Sigfox
- SCHC для сетей IEEE 802.15.4
- OAM для LPWAN с использованием SCHC
17 мая 2022 года альянс LoRa (глобальная ассоциация компаний, продвигающих открытый стандарт LoRaWAN для сетей интернета вещей на базе LPWAN) объявил, что LoRaWAN теперь поддерживает IPv6 сквозным образом[5]. Тем самым расширяются возможности устройств IoT, использующих IPv6, в том числе для реализации стандартов «интернета вещей» в системах умного учёта электроэнергии, управлении зданиями, промышленности, логистике и жилой инфраструктуре. Альянс выпустил техническую спецификацию TS 10-1.0.0, разъясняющую применение SCHC как адаптационного уровня, позволяющего конечным устройствам LoRaWAN использовать стек IPv6 поверх LoRaWAN[6]. Программа сертификации дополнена поддержкой решений на базе SCHC для передачи IPv6 поверх LoRaWAN[7].
Кроме того, SCHC внедряется в рамках совместной стандартизации между Ассоциацией пользователей DLMS и LoRa Alliance для рынка интеллектуального учёта[8][9].