Чтение онлайн

ЖАНРЫ

Шрифт:

Неужели действительно так необходимо подробно описывать в стандарте все сценарии применения и предоставлять наборы протоколов для каждого из них? Вероятно, нет. Однако было создано множество рабочих групп, которые рассматривали различные стороны стандарта. Каждая группа разработала свой профиль. Считайте это демонстрацией закона Конвея в действии. (В апреле 1968 года в журнале Datamation была опубликована статья Мелвина Конвея (Melvin Conway), в которой утверждалось, что если поручить написание компилятора n программистам, то получится n-проходный компилятор. В более общем виде эта мысль звучит так: структура программного обеспечения отражает структуру группы разработчиков.) Наверное, можно было обойтись двумя наборами протоколов (вместо 25) — один для передачи файлов и один для обмена данными в реальном времени.

4.5.3. Стек протоколов Bluetooth

Стандарт Bluetooth содержит множество протоколов, условно разбитых на уровни, как показано на илл. 4.31. Сразу можно заметить, что структура не соответствует ни OSI, ни TCP/IP, ни 802, ни какой-либо другой известной модели.

Илл. 4.31. Архитектура протоколов Bluetooth

Внизу находится физический уровень радиосвязи (что вполне соответствует моделям OSI и 802), на котором описывается радиопередача и методы модуляции. Многое здесь направлено на то, чтобы удешевить систему, сделав ее доступной для массового покупателя.

Уровень управления каналом связи (немодулированной передачи) чем-то напоминает подуровень MAC, но содержит и некоторые элементы физического уровня. Здесь описывается, как главный узел контролирует временные слоты и как они группируются во фреймы.

Далее следуют два протокола, использующие протокол управления каналом связи. Протокол управления соединениями устанавливает логические каналы между устройствами, контролирует энергопотребление, сопряжение и шифрование, а также QoS. Он находится ниже линии интерфейса хост-контроллера. Этот интерфейс нужен для удобства реализации: как правило, протоколы ниже линии выполняются на чипе Bluetooth, а выше — на устройстве Bluetooth, где чип размещен.

Над линией находится протокол канального уровня — L2CAP (Logical Link Control and Adaptation Protocol — протокол управления логическими связями и сопоставлениями). Он формирует сообщения переменной длины и при необходимости обеспечивает надежность передачи. L2CAP используется множеством протоколов, в том числе и двумя описанными ранее служебными протоколами. Протокол обнаружения служб используется для определения их местонахождения в пределах сети. Протокол RFcomm (Radio Frequency communication — радиочастотная передача) эмулирует работу стандартного последовательного порта ПК, к которому обычно подключаются клавиатура, мышь, модем и другие устройства.

На самом верхнем уровне находятся приложения. Профили представлены вертикальными прямоугольниками, потому что каждый из них определяет часть стека протокола для конкретной цели. Специфические профили, например профили для гарнитур, используют только те протоколы, которые необходимы для их работы. Например, профили могут включать L2CAP, если у них есть пакеты для отправки, но пропустить его, если имеется только постоянный поток звуковых сэмплов.

В следующих разделах мы рассмотрим уровень радиосвязи и различные протоколы канального уровня Bluetooth, поскольку они пусть грубо, но все-таки соответствуют физическому уровню и подуровню MAC в других изученных нами стеках протоколов.

4.5.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.5.5. Bluetooth: канальный уровень

Уровень управления каналом связи (немодулированной передачи) — это наиболее близкий к MAC-подуровню элемент иерархии Bluetooth. Он трансформирует простой поток битов во фреймы и определяет некоторые ключевые форматы. В самом простом варианте главный узел каждой пикосети задает последовательности временных интервалов по 625 мкс, причем передача данных со стороны главного узла начинается в четных слотах, а со стороны подчиненных узлов — в нечетных. Эта схема, по сути, представляет собой традиционный TDM, где главный узел получает одну половину слотов, а подчиненные делят между собой вторую. Фреймы могут быть длиной 1, 3 или 5 слотов. В каждом из них 126 служебных битов отведено на код доступа и заголовок. Время установления сигнала занимает 250–260 мкс на скачок частоты, чтобы позволить дешевым радиоустройствам стабилизироваться. Полезные данные фрейма могут быть зашифрованы в целях конфиденциальности. Ключ шифрования выбирается, когда ведущее устройство соединяется с ведомым. Переключение частоты происходит только между фреймами, но не в момент передачи. В результате передача пятислотового фрейма намного более эффективна, чем однослотового, потому что при тех же затратах отправляется больше данных.

Протокол управления соединениями устанавливает логические каналы — соединения (links). В них происходит обмен фреймами между обнаружившими друг друга устройствами (главным и подчиненным). Прежде чем использовать соединение, два устройства проходят процедуру сопряжения. Первоначальный метод сопряжения заключается в настройке обоих устройств с помощью одного и того же четырехзначного PIN-кода (Personal Identification Number — личный идентификационный номер). Совпадение PIN-кода показывает, что соединение установлено с нужным удаленным устройством. Но лишенные воображения пользователи и заданные по умолчанию коды типа «0000» или «1234» делают этот метод небезопасным на практике.

Новый метод, безопасное простое сопряжение (secure simple pairing), позволяет пользователям подтвердить, что оба устройства показывают один и тот же ключ, или увидеть ключ на одном устройстве и ввести его на втором. Этот метод более надежный, поскольку пользователи не должны выбирать или устанавливать PIN. Они просто подтверждают ключ, более длинный и сгенерированный самим устройством. Конечно, этот метод не может использоваться на некоторых устройствах с ограниченным вводом/выводом, таких как беспроводные гарнитуры.

Когда сопряжение завершено, протокол устанавливает соединения. Для передачи полезной нагрузки (пользовательских данных) используются два основных типа соединений. Первый тип — синхронный с установлением связи (Synchronous Connection Oriented, SCO). Он предназначен для передачи данных в реальном времени, например при телефонных разговорах. Такой тип канала получает фиксированный временной слот для передачи в каждом направлении. У подчиненного узла может быть до трех соединений SCO с главным узлом; каждое из них представляет собой аудиоканал PCM с пропускной способностью 64 000 бит/с. Из-за ограниченного времени передачи фреймы, переданные по каналу SCO, никогда не отправляются заново. Вместо этого для повышения надежности может быть использована FEC.

Поделиться с друзьями: