Bluetooth ® Special Interest Group (SIG) [1] и [2] определяют стек протоколов для технологии Bluetooth с низкой энергией (BLE) и базовой скоростью/повышенной скоростью передачи данных Bluetooth (BR/EDR). Основными целями этих спецификаций являются разработка интерактивных услуг и приложений по совместимым радиокомпонентам и протоколам передачи данных .
На этом рисунке показана архитектура стека Bluetooth.

Устройства Bluetooth могут быть одного из следующих двух типов:
Одиночный режим - поддержка профиля BR/EDR или LE
Двойной режим - поддержка профилей BR/EDR и LE
В последующих разделах приводится подробная информация об архитектуре стека протоколов BLE и стека протоколов Bluetooth BR/EDR.
На этом рисунке сравнивается стек протоколов BLE с эталонной моделью соединения открытых систем (OSI).

На предыдущем рисунке стек протоколов BLE показан вместе с эталонной моделью OSI.
На физическом уровне (PHY) существует сопоставление один к одному
Уровень канала передачи данных (DLL) OSI соответствует протоколу управления и адаптации логического канала BLE (L2CAP) и канальному уровню (LL).
В стеке BLE более высокие уровни предоставляют услуги прикладного уровня, роли и режимы устройств, управление соединениями и протокол безопасности.
Функциональные возможности стека протоколов BLE разделены на три основных уровня: контроллер, хост и профили и службы приложений.

Уровень контроллера включает в себя BLE PHY, LL и интерфейс главного контроллера на стороне контроллера (HCI).
BLE PHY. Радиоинтерфейс BLE PHY работает в той же нелицензионной полосе частот 2,4 ГГц, что и Wi-Fi ®. Воздушный интерфейс BLE PHY также включает в себя следующие характеристики:
Рабочая радиочастота (RF) находится в диапазоне от 2,4000 ГГц до 2,4835 ГГц включительно.
Полоса пропускания канала составляет 2 МГц. Рабочая полоса разделена на 40 каналов, k = 0,..., 39. Центральная частота k-го канала 2402 + k × 2 МГц .
Пакеты пользовательских данных передаются с использованием каналов в диапазоне [0, 36].
Рекламные пакеты данных передаются по каналам 37, 38 и 39.
Реализована схема модуляции с частотной манипуляцией (GFSK).
BLE PHY использует расширенный спектр скачкообразной перестройки частоты (FHSS) для уменьшения помех и противодействия воздействию замирающих каналов. Время между частотными переходами может изменяться от 7,5 мс до 4 с и устанавливается во время соединения для каждого подчиненного устройства.
Поддержка пропускной способности 1 Мбит/с обязательна для устройств, совместимых со спецификацией версии 4.x. При скорости передачи данных 1 Мбит/с передача не кодируется.
Дополнительно устройства, соответствующие спецификации ядра Bluetooth версии 5.1, поддерживают следующие дополнительные скорости передачи данных:
Кодированная передача со скоростью 500 кбит/с или 125 кбит/с
Некодированная передача со скоростью передачи 2 Мбит/с
LL. LL выполняет задачи, аналогичные уровню управления доступом к среде (MAC) модели OSI. В Bluetooth LL взаимодействует непосредственно с BLE PHY и управляет состоянием канала радиосвязи для определения роли устройства как ведущего, подчиненного, рекламодателя или сканера.
HCI на стороне контроллера. HCI на стороне контроллера управляет интерфейсом между хостом и контроллером. HCI определяет набор команд и событий для передачи и приема пакетных данных. При получении пакетов от контроллера HCI извлекает необработанные данные из контроллера для передачи на хост.
Хост включает в себя HCI, L2CAP, attribute protocol (ATT), generic attribute profile (GATT), протокол диспетчера безопасности (SMP) и generic access profile (GAP).
HCI на стороне хоста. HCI на стороне хоста управляет интерфейсом между хостом и контроллером. HCI определяет набор команд и событий для передачи и приема пакетных данных. При передаче данных HCI преобразует необработанные данные в пакеты для их передачи от хоста к контроллеру.
L2CAP. L2CAP инкапсулирует данные с более высоких уровней BLE в стандартный формат пакетов BLE для передачи или извлекает данные из стандартного пакета LL BLE при приеме в соответствии с конфигурацией линии связи, заданной на уровнях ATT и SMP.
АТТ. ATT передает данные атрибутов между клиентами и серверами в профилях на основе GATT. ATT определяет роли архитектуры клиент-сервер. Роли обычно соответствуют главному и ведомому, как определено на канальном уровне. В общем, устройство может быть клиентом, сервером или обоими, независимо от того, является ли оно ведущим или подчиненным. ATT также выполняет организацию данных в атрибуты, как показано на этом рисунке.
Атрибуты устройства представлены следующим образом:
Дескриптор атрибута является 16-битным значением идентификатора, назначенным сервером, чтобы позволить клиенту ссылаться на эти атрибуты.
Тип атрибута является универсально уникальным идентификатором (UUID), определенным Bluetooth SIG. Например, UUID 0x2A37 представляет измерение частоты сердечных сокращений.
Значение атрибута является полем переменной длины. UUID, связанный с, и класс обслуживания записи обслуживания, содержащей значение атрибута, определяют длину поля значения атрибута.
Разрешения атрибутов представляют собой наборы значений разрешений, связанных с каждым атрибутом. Эти разрешения определяют привилегии чтения и записи для атрибута, а также уровень безопасности, необходимый для разрешений на чтение и запись.
ГАТТ. GATT обеспечивает опорную структуру для всех профилей на основе GATT. GATT инкапсулирует ATT и отвечает за координацию обмена профилями в канале BLE. Профили включают информацию и данные, такие как назначение дескриптора, UUID и набор разрешений.
Для устройств, реализующих профиль GATT,
Клиент - это устройство, которое инициирует команды и запросы к серверу. Клиент может получать ответы, указания и уведомления.
Сервер - это устройство, которое принимает входящие команды и запросы от клиента. Сервер отправляет клиенту ответы, указания и уведомления.
GATT использует архитектуру клиент-сервер. Роли не являются фиксированными и определяются, когда устройство инициирует определенную процедуру. Роли освобождаются по завершении процедуры.
Терминология, используемая в ГАТТ, включает в себя:
Сервис - коллекция данных и связанных вариантов поведения, используемых для выполнения определенной функции или функции.
Признак - значение, используемое в службе вместе с соответствующими разрешениями
Дескриптор характеристики - описание связанного поведения характеристики
GATT-клиент - GATT-клиент инициирует команды и запросы к серверу и может получать ответы, указания и уведомления, отправляемые сервером
GATT-Server - GATT-Server принимает входящие команды и запросы от клиента и отправляет ответы, указания и уведомления клиенту
SMP. SMP применяет алгоритмы безопасности для шифрования и дешифрования пакетов данных. Этот уровень определяет инициатор и ответчик, соответствующие ведущему устройству и ведомому устройству, после установления соединения.
GAP. GAP определяет роли, режимы и процедуры устройства. Он также управляет установлением соединения и безопасностью. GAP взаимодействует непосредственно с уровнем профилей приложений и служб (App).
Уровень App - это прямой пользовательский интерфейс, определяющий профили, которые обеспечивают совместимость между различными приложениями. Спецификация ядра Bluetooth позволяет поставщикам определять собственные профили для сценариев использования, не определенных профилями SIG.
Примечание
Для получения дополнительной информации об архитектуре стека протоколов BLE см. том 3, часть C, разделы 2 и 2,1 спецификации ядра Bluetooth [1].
На этом рисунке сравнивается блок-схема стека протоколов BR/EDR Bluetooth и эталонная модель OSI.

Сопоставление стека BR/EDR с эталонной моделью OSI показано ниже:
Уровни радиосвязи BR/EDR и управления основной полосой и линией связи стека BR/EDR Bluetooth отображаются на уровень PHY OSI.
Уровни протокола диспетчера каналов связи (LMP), L2CAP, протокола замены кабелей (RFCOMM) и PPP стека BR/EDR Bluetooth отображаются на уровень канала передачи данных OSI.
Уровни протокола пользовательских дейтаграмм (UDP), протокола управления передачей (TCP) и протокола Интернета (IP) стека Bluetooth BR/EDR сопоставляются с комбинированным, сетевым, транспортным и сеансовым уровнями эталонной модели OSI.
На уровне приложения существует сопоставление «один к одному».
Основные протоколы Bluetooth и радио Bluetooth требуются большинству устройств Bluetooth. Основные протоколы включают эти уровни.
Радио BR/EDR. Радио BR/EDR является самым низким уровнем спецификации Bluetooth. Режим BR является обязательным, тогда как режим EDR является необязательным. Этот уровень определяет требования к устройству приемопередатчика Bluetooth, работающему в диапазоне частот ISM 2,4 ГГц. Он реализует метод FHSS 1600 скачков/сек. Радиостанция перескакивает псевдослучайным образом по 79 назначенным каналам Bluetooth. Каждый канал Bluetooth имеет пропускную способность 1 МГц. Каждая частота расположена на (2402 + k) МГц, где k = 0,1,... 78. Методика модуляции для режимов BR и EDR представляет собой GFSK и дифференциальную фазовую манипуляцию (DPSK) соответственно. Скорость передачи составляет 1 Мсимбол/с. Радиоблок BR/EDR Bluetooth использует топологию дуплексного временного разделения (TDD), в которой передача данных происходит в одном направлении одновременно. Трансмиссия чередуется в двух направлениях, один за другим.
Управление основной полосой частот и линией связи. Уровень управления основной полосой частот и линией связи обеспечивает возможность передачи радиосигнала PHY между различными устройствами Bluetooth, формируя пикосеть. Основная полоса частот управляет обработкой канала и синхронизацией, а управление линией связи управляет доступом к каналу. Этот уровень обеспечивает два различных типа радиоканалов PHY с соответствующими пакетами основной полосы частот:
Синхронное подключение (SCO) - поддержка аудиотрафика в реальном времени
Asynchronous connection-oriented (ACL) - поддержка передачи пакетов данных
Протокол диспетчера каналов (LMP). Уровень LMP несет основную ответственность за настройку каналов и их конфигурацию между различными устройствами Bluetooth. Эти процессы включают в себя создание функций безопасности, таких как аутентификация и шифрование, путем генерации, обмена и проверки ключей связи и шифрования. Кроме того, этот уровень управляет режимами питания и рабочими циклами радиоустройства Bluetooth и состояниями соединения блока Bluetooth в пикосети.
L2CAP. L2CAP адаптирует протоколы более высокого уровня по основной полосе. Он защищает протоколы более высокого уровня от деталей протоколов более низкого уровня. Этот L2CAP предоставляет услуги, ориентированные на соединение и не связанные с соединением, протоколам более высокого уровня. Это включает в себя возможности мультиплексирования протоколов, операции сегментации и повторной сборки, а также абстракции групп.
SDP. Службы обнаружения являются важным аспектом инфраструктуры Bluetooth. Протокол обнаружения услуг (SDP) предоставляет приложениям средство запроса услуг и характеристик услуг, после чего может быть установлено соединение между двумя или более устройствами Bluetooth. SDP отличается от обнаружения услуг в традиционных сетевых средах. SDP построен поверх L2CAP.
Протокол замены кабеля в стеке Bluetooth BR/EDR использует RFCOMM для эмуляции последовательных портов по L2CAP. RFCOMM эмулирует сигналы управления RS-232 и данных по основной полосе Bluetooth и предоставляет транспортные возможности для услуг более высокого уровня, которые используют последовательный интерфейс в качестве транспортного механизма. RFCOMM также обеспечивает несколько одновременных соединений с одним устройством и обеспечивает подключение к нескольким устройствам.
Спецификация протокола управления телефонией, двоичная (TCS binary), определяет сигнализацию управления вызовами для установления вызовов данных и голосовых вызовов между устройствами Bluetooth. Он построен поверх L2CAP. Кроме того, двоичный файл TCS определяет процедуры управления мобильностью для работы с устройствами Bluetooth.
В дополнение к базовым протоколам, стек Bluetooth BR/EDR включает протоколы, принятые из других стандартных тел. Эти принятые протоколы определены в спецификациях, выпускаемых другими организациями, занимающимися разработкой стандартов, и включены в структуру Bluetooth.
PPP. Протокол «точка-точка» (PPP) является стандартным протоколом IETF [3] для передачи IP-дейтаграмм по каналу «точка-точка». PPP работает через RFCOMM для реализации двухточечных соединений.
TCP, UDP и IP. Эти уровни являются базовыми протоколами, определяемыми IETF, из набора протоколов TCP/IP.
TCP - этот протокол обеспечивает надежное виртуальное соединение между устройствами для передачи данных. TCP обрабатывает данные как поток байтов и передает их без ошибок или дублирования.
UDP - этот протокол является альтернативой TCP и обеспечивает ненадежное подключение дейтаграмм между устройствами. Поскольку сквозное соединение в UDP отсутствует, данные передаются по линии связи без какой-либо гарантии обслуживания.
IP - Этот уровень является протоколом сетевого уровня, который обеспечивает обслуживание дейтаграмм между устройствами, поддерживая TCP и UDP.
Использование TCP, UDP и IP в стеке Bluetooth BR/EDR обеспечивает связь с любым другим устройством, подключенным к Интернету.
OBEX. Протокол обмена объектами (OBEX) - протокол сеансового уровня, разработанный Ассоциацией инфракрасных данных (IrDA) для обмена объектами. Протокол OBEX обеспечивает функциональные возможности, аналогичные функциям HTTP, но более простым способом. HTTP - это протокол прикладного уровня, многоуровневый над TCP/IP. Протокол OBEX предоставляет клиенту надежный транспорт для подключения к серверу. Он также предоставляет модель для представления объектов и операций.
WAE и WAP. Стек Bluetooth BR/EDR включает в свою архитектуру среду беспроводных приложений (WAE) и протокол беспроводных приложений (WAP). Преимущества использования функций WAE/WAP в стеке Bluetooth:
Создание шлюзов приложений, которые действуют как интерфейс между серверами WAP и некоторыми другими приложениями на ПК
Предоставление таких функций, как дистанционное управление и выборка данных с ПК на телефонную трубку Bluetooth
Повторное использование верхнего программного приложения, разработанного для среды приложений WAP
Дополнительные сведения см. в разделе Уровень APP.
Альтернативный менеджер MAC/PHY (AMP) является вторичным контроллером в основной системе Bluetooth. После установления L2CAP соединения между двумя устройствами по радио BR/EDR менеджер AMP может обнаружить AMP, доступные на другом устройстве. Если AMP является общим для двух устройств, базовая система Bluetooth обеспечивает механизмы перемещения трафика данных от контроллера BR/EDR к контроллеру AMP.
Каждый менеджер AMP состоит из уровня адаптации протокола (PAL) поверх MAC и PHY. PAL сопоставляет протоколы Bluetooth с конкретными протоколами базовых MAC и PHY.
L2CAP каналы могут быть созданы или перемещены в AMP. Если физическая линия связи AMP имеет тайм-аут контроля линии связи, то L2CAP каналы могут быть перемещены обратно в радио BR/EDR. Чтобы минимизировать энергопотребление устройства, при необходимости включаются или отключаются AMP.
HCI обеспечивает интерфейс команд для радиоблока BR/EDR, контроллера основной полосы частот и диспетчера каналов. Это единый стандартный интерфейс для доступа к возможностям основной полосы частот Bluetooth, состоянию аппаратных средств и контрольным регистрам.
Примечание
Для получения дополнительной информации об архитектуре стека протоколов Bluetooth BR/EDR см. том 1, часть A, разделы 2 и 2,1 спецификации ядра Bluetooth [1].
[1] Группа специальных интересов Bluetooth (SIG). «Спецификация ядра Bluetooth». Версия 5.1. https://www.bluetooth.com/.
[2] Веб-сайт технологии Bluetooth. «Веб-сайт Bluetooth Technology | Официальный веб-сайт Bluetooth Technology». Доступ состоялся 6 ноября 2019 года. https://www.bluetooth.com/.
[3] IETF. «Стандарты Интернета». Доступ состоялся 6 ноября 2019 года. https://www.ietf.org/.
[4] Стек протоколов Bluetooth - обзор | Темы DailyDirect. Доступ состоялся 15 ноября 2019 года. https://www.sciencedirect.com/.