Транспортный уровень обеспечивает механизмы передачи пользовательских данных и управляющих команд между базовой станцией и устройствами в условиях нестабильной связи, реализуя следующие функции:
- подтверждения доставки сообщений;
- повторной отправки данных;
- разбиения больших пакетов данных на фрагменты и последующего их "склеивания";
- буферизации отправки данных;
- синхронизации системного времени;
- конфигурирования режимов работы;
- автоматического выбора режима работы (скорости, мощности передачи);
- смены ключа шифрования МАС-уровня.
Также на транспортном уровне реализованы алгоритмы анализа качества сигнала и выбора оптимальной скорости передачи данных. Дополнительно на транспортном уровне реализован механизм конфигурирования всех параметров функционирования устройства NB-Fi.
Ключевые особенности транспортного уровня NB-Fi, позволяющие протоколу в наибольшей степени соответствовать задачам построения LPWAN-сетей:
- низкое количество "накладных" данных, используемых для транспортного уровня;
- организация группового квитирования пакетов, позволяющего экономить использование канала связи при подтверждении приема;
- реализация специальных режимов работы для устройств с батарейным питанием.
Для передачи данных от устройства к базовой станции используются UPLINK-пакеты. Для передачи данных от базовой станции к устройству применяются DOWNLINK-пакеты либо UPLINK-пакеты для устройств, построенных на специализированных радиотрансиверах. Допускается работа в режиме передачи данных от устройства к устройству ("peer-to-peer"), при этом используются DOWNLINK-пакеты либо UPLINK-пакеты для устройств, построенных на специализированных радиотрансиверах.
Реализация функций транспортного уровня предполагает буферизацию пакетов данных в виде программного стека. Минимальная глубина приемного буфера составляет 32 пакета. Это обусловлено разрядностью поля ITER (итератор), равной 5 бит, которое используется для циклической нумерации всех пакетов и их последующей идентификации при запросах повторной отправки. Таким образом, передающий узел должен хранить по крайней мере 32 последних отправленных пакета для их возможной переотправки при последующем обмене данными.
Основные режимы работы транспортного уровня и их описание приведены в таблице 6.
Таблица 6 - Основные режимы работы транспортного уровня и их описание
Режим работы | Описание |
NRX (No RX) | Передача данных от устройства к серверу |
DRX (Discontinuous RX) | Передача данных в обоих направлениях |
CRX (Continuous RX) | Передача данных в обоих направлениях |