4.6.3. Bluetooth: набор протоколов
Стандарт Bluetooth включает в себя множество протоколов, довольно свободно разбитых на уровни, как показано на рис. 4.32. Структура на первый взгляд не следует ни модели OSI, ни TCP/IP, ни 802, ни какой-либо другой известной модели.
В самом низу находится физический (радиотехнический) уровень, который вполне соответствует моделям OSI и 802. На нем описывается радиосвязь и применяемые методы модуляции. Многое здесь направлено на то, чтобы сделать систему как можно дешевле и доступнее массовому покупателю.
Уровень управления каналом связи (прямой передачи) чем-то напоминает подуровень MAC, но включает в себя и некоторые элементы физического уровня. Здесь описывается то, как главный узел управляет временными интервалами и как эти интервалы группируются в кадры.
Далее следуют два протокола, которые используют протокол управления каналом связи. Протокол управления соединением устанавливает логические каналы между устройствами, управляет режимами энергопотребления, сопряжением и шифрованием, а также качеством обслуживания. Он находится ниже линии интерфейса хостконтроллера. Этот интерфейс — удобство для реализации: как правило, протоколы ниже линии реализуются на чипе Bluetooth, а протоколы выше линии — на устройстве Bluetooth, где чип размещен.
Протокол канального уровня — это L2CAP (Logical Link Control and Adaptation Protocol — протокол управления логическими каналами и согласования). Он собирает сообщения переменной длины и при необходимости обеспечивает надежность. L2CAP используется многими протоколами, в том числе и двумя описанными ранее служебными протоколами.
Протокол обнаружения сервисов используется для определения местонахождения служб в пределах сети. Протокол RFcomm эмулирует работу стандартного последо-
вательного порта ПК, к которому обычно подключаются клавиатура, мышь, модем и другие устройства.
Рис. 4.32. Архитектура протоколов Bluetooth: версия 802.15
На самом верхнем уровне находятся приложения. Профили представлены вертикальными прямоугольниками, потому что каждый из них определяет часть стека протокола для конкретной цели. Специфические профили, например профили для устройств типа гарнитур, используют только те протоколы, которые необходимы для их работы. Например, профили могут включать L2CAP, если у них есть пакеты для отправки, и пропустить L2CAP в случае, если у них есть только фоновые аудиоотсчеты.
В следующих разделах мы рассмотрим уровень радиосвязи и различные протоколы канального уровня Bluetooth, поскольку они пусть грубо, но все-таки соответствуют физическому уровню и подуровню MAC в других стеках протоколов, которые мы изучили ранее.
4.6.4. Bluetooth: уровень радиосвязи
Уровень радиосвязи переносит информацию бит за битом от главного узла к подчиненным и обратно. Это маломощная приемопередающая система с радиусом действия порядка 10 метров. Она работает в ISM диапазоне 2,4 ГГц, как и 802.11. Диапазон разделен на 79 каналов по 1 МГц в каждом. Чтобы сосуществовать с другими сетями, использующими ISM диапазон, применяется расширенный спектр со скачкообразной перестройкой частоты. Возможно до 1600 скачков частоты в секунду, длительность одного временного интервала (слота или такта) — 625 мкс. Все узлы пикосетей перестраивают частоты одновременно, в соответствии с синхронизацией тактов и псевдослучайной последовательностью скачков, генерируемой главным узлом.
К сожалению, оказалось, что ранние версии Bluetooth и 802.11 интерферируют так, что нарушают передачи друг друга. Некоторые компании отреагировали на это отказом от Bluetooth в целом, но, в конечном счете, техническое решение было найдено. Оно
заключалось в том, чтобы адаптировать последовательность скачков для исключения каналов, на которых есть другие радиосигналы. Этот процесс, названный адаптивной перестройкой рабочей частоты (adaptive frequency hopping), уменьшает помехи.
Для отправки бит по каналу используются три формы модуляции. Базовая схема состоит в использовании кодирования со сдвигом частоты, чтобы посылать 1-битовый символ каждую микросекунду, что дает общую скорость данных 1 Мбит/с. Большие скорости появились начиная с версии Bluetooth 2.0. Эти скорости используют кодирование со сдвигом фазы, чтобы послать или 2 или 3 бита за символ, для достижения общей скорости данных 2 или 3 Мбит/с. Такие более высокие скорости применяются только для кадров, содержащих данные.
4.6.5. Bluetooth: уровень немодулированной передачи
Уровень немодулированной передачи (управления каналом связи) — это наиболее близкий к MAC-подуровню элемент иерархии Bluetooth. Он трансформирует простой поток бит в кадры и определяет некоторые ключевые форматы. В простейшем случае главный узел каждой пикосети выдает последовательности временных интервалов по 625 мкс, причем передача данных со стороны главного узла начинается в четных тактах, а со стороны подчиненных узлов — в нечетных. Эта схема, по сути дела, традиционное временное уплотнение, в котором главная сторона получает одну половину временных интервалов, а подчиненные делят между собой вторую. Кадры могут быть длиной 1, 3 или 5 тактов.
В каждом кадре уходит 126 служебных бит на код доступа и заголовок, кроме того, время установки занимает 250—260 мкс на переключение частоты, чтобы позволить недорогим радиосхемам становиться устойчивыми. Полезные данные кадра могут быть для конфиденциальности зашифрованы с помощью ключа, который выбирается, когда ведущее устройство соединяется с ведомым. Переключения частоты происходят только между кадрами, но не во время передачи кадра. В результате передача 5-тактового кадра намного более эффективна чем 1-тактового, потому что при тех же служебных расходах посылается больше данных.
Протокол управления соединениями устанавливает логические каналы, называемые соединениями (links), чтобы переносить кадры между главными и подчиненными устройствами, которым необходимо обнаруживать друг друга.
Прежде чем будет использоваться соединение, два устройства проходят процедуру сопряжения. Более старый метод сопряжения — оба устройства должны быть сконфигурированы с одним и тем же PIN-кодом из четырех цифр (PIN, Personal Identification Number — личный идентификационный номер). Соответствие PIN позволяет устройству знать, что оно соединилось с нужным удаленным устройством. Однако лишенные воображения пользователи и использование значений по умолчанию устройств, таких как «0000» и «1234» ведут к тому, что этот метод на практике обеспечивает не очень высокий уровень безопасности.
Новый безопасный простой метод сопряжения (secure simple pairing) позволяет пользователям подтвердить, что оба устройства показывают один и тот же ключ, или видеть ключ на одном устройстве и ввести его на втором. Этот метод более безопасен, потому что пользователи не должны выбирать или устанавливать PIN. Они просто подтверждают ключ, более длинный и произведенный устройством. Конечно, этот метод не может использоваться на некоторых устройствах с ограниченным вводом/ выводом, таких как беспроводные гарнитуры.
Когда сопряжение завершено, протокол устанавливает соединения. Существует два основных типа соединений. Первый вид называется SCO (Synchronous Connection Oriented — синхронный с установлением связи). Он предназначен для передачи данных в реальном масштабе времени — это требуется, например, при телефонных разговорах. Такой тип канала получает фиксированный временной интервал для передачи в каждом из направлений. У подчиненного узла может быть до трех соединений типа SCO с главным узлом, каждое из которых представляет собой аудиоканал PCM с пропускной способностью 64 000 бит/с. Из-за критичной ко времени передачи природы SCO кадры, переданные по данному типу канала, никогда не пересылаются заново. Вместо этого может быть использована прямая коррекция ошибок, обеспечивающая более надежное соединение.