Материал: 6282

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

72

54

0—2745

 

 

бита

бита

бит

 

 

 

 

 

Код

Заго

Передав

 

доступа

ловок

аемая

 

 

 

информация

 

 

 

 

Рис. 8.5. Структура пакета

Стандартный пакет Bluetooth содержит код доступа длиной 72 бита, 54-битный заголовок и информационное поле длиной не более 2745 бит (рис. 8.5). Однако пакеты могут быть различных типов. Так, пакет может состоять только из кода доступа (в этом случае его длина равна 68 битам) или кода доступа и заголовка.

 

 

 

 

 

 

 

 

4

 

64 бита

 

4

 

 

бита

 

 

бита

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преа

 

Слово

 

Тр

 

 

мбула

 

синхронизации

 

ейлер

 

 

 

 

 

 

 

 

Рис. 8.6. Структура кода доступа

Код доступа идентифицирует пакеты, принадлежащие одной пикосети, а также используется для синхронизации и процедуры запросов. Он включает преамбулу (5 бита), слово синхронизации (64 бита) и трейлер – 4 бита контрольной суммы (рис. 8.6).

3 бита

4

1

 

1

1

бита

бит

бит

бит

бит

AM_

Т

F

 

A

S

ADDR

YPE

LOW

RQN

EQN

ЕС

Рис.8.7. Структура заголовка

Заголовок содержит информацию для управления связью и состоит из шести полей

(рис. 8.7):

AM_ADDR – 3-битный адрес активного элемента (active member address); TYPE – 4-битный код типа данных;

FLOW – 1 бит управления потоком данных, показывающий готовность устройства к приему;

ARQN – 1 бит подтверждения правильного приема;

SEQN – 1 бит, служащий для определения последовательности пакетов; HEC – 8-битная контрольная сумма.

Информационное поле, в зависимости от типа пакетов, может содержать либо поля голоса, либо поля данных, либо оба типа полей одновременно.

Безопасность

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

Security mode 1 (non secure), устройство не может самостоятельно инициировать защитные процедуры.

Security mode 2 (service level enforced security), устройство не инициирует защитные процедуры пока не установлено и не настроено соединение. После того как соединение установлено, процедуры защиты обязательны, и определяются типом и требованиями используемых служб.

Security mode 3 (link level enforced security), защитные процедуры инициируются в процессе установления и настройки соединения. Если удалённое устройство не может пройти требований защиты, то соединение не устанавливается.

Естественно, что Security mode 3 и 2 могут использоваться вместе, то есть сначала устанавливается защищённое соединение, а потом оно ещё защищается в соответствии с требованиями и возможностями конкретной службы.

Основой системы безопасности Bluetooth, используемой в Security mode 3, является понятие сеансового ключа, или Bond. Сеансовый ключ генерируется в процессе соединения двух устройств, и используется для идентификации и шифрования передаваемых данных. Для генерации ключа могут использоваться самые различные составляющие, от заранее известных обоим устройствам значений, до физических адресов устройств. Комбинируя защиту на уровне соединения с защитой на уровне приложений (где может использоваться абсолютно любая из существующих на сегодня систем защиты данных) можно создавать достаточно надёжно защищённые соединения. Но всё равно, очевидной слабостью Bluetooth соединений с точки зрения построения защищённых соединений остаётся возможность перехвата трафика, причём для этого даже не придётся использовать какое-либо специфическое оборудование. Впрочем, эта проблема не нова, и в настоящее время часто приходится использовать открытые сети, вроде Интернет, где возможен перехват трафика, для передачи закрытых данных.

Протоколы и службы

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

 

Таблица 8.2. Протокольный стек Bluetooth

 

 

 

Протокольный стек Bluetooth может быть разделен на 4 слоя

 

 

 

 

Протокольный слой

Протоколы в стеке

 

 

 

 

Корневые протоколы "Синего

Baseland, LMP, L2CAP, SDP

 

Зуба" (Сore protocol)

 

 

 

 

 

Протокол замены кабеля

RFCOMM

 

 

 

 

Протокол управления

TCS binary, AT-команды

 

телефонией

 

 

 

 

 

Воспринятые протоколы

PPP, UDP/TCP/IP, OBEX, WAP,

 

(Adopted protocol)

vCARD, vCAL, IrMC, WAE

 

 

 

 

Примером вертикального списка протоколов может служить список vCard/vCal > OBEX > RFCOMM > L2CAD > Baseband, который используется в протокольных задачах обмена информацией о деловых карточках. Этот протокольный стек содержит соглашение о внутреннем представлении объектов (vCard) и протокола передачи через эфир (остальная часть стека).

Различные приложения могут использовать различные протокольные стеки. Тем не менее, каждый их этих стеков использует передачу данных (data link) и физический слой, общий для Bluetooth. Смысл каждого из протоколов, специфических для Bluetooth, может быть объяснен отдельно. Все они были разработаны группой специальных интересов Bluetooth SIG. Протоколы RFCOMM и бинарный протокол управления телефонией TCS

BIN также были разработаны этой группой, но они основаны, соответственно, на стандарте ETSI TS 07.10 и на рекомендации Q.931 Международного союза электросвязи.

Помимо этих протокольных слоев спецификация Bluetooth определяет также интерфейс контроллера головной машины (HCI — Host Controller Interface), который дает командный интерфейс к контроллеру базовой полосы (baseband controller), диспетчеру соединений (link manager), и доступ к аппаратным регистрам статуса и управления.

Три слоя — слой замены кабеля, слой контроля телефонии и слой воспринятых протоколов (adapted protocol layer) — совместно определяют совокупность протоколов, ориентированных на приложения, которые позволяют прикладным задачам исполняться над корневыми протоколами Bluetooth.

Спецификация Bluetooth является открытой и дополнительные протоколы (например, HTTP, FTP и т.д.) могут быть подключены поверх специфических транспортных протоколов Bluetooth или поверх протоколов, ориентированных на приложения.

Корневые протоколы Bluetooth требуются для большинства приборов, тогда как остальные протоколы используются только там, где они нужны.

Базовая полоса

Базовая полоса и уровень управления подключениями Link Control Layer обеспечивают физическую радиочастотную связь между устройствами Bluetooth, образующими пикосеть. Поскольку радиочастотная система Bluetooth является системой прыгающей частоты распределенного спектра, внутри которой пакеты передаются в определенные временные интервалы на определенных частотах, этот уровень использует процедуры опроса и пейджинга для синхронизации (согласования) прыгающей частоты передачи и таймеров различных приборов Bluetooth.

Этот уровень предоставляет два различных способа физического подключения с соответствующими пакетами базовой полосы — синхронным, (SCO) и асинхронным

(ACL).

Протоколы могут передаваться в режиме мультиплексирования по одному и тому же радио-звену (RF link). ACL-пакеты используются только для передачи данных, тогда как SCO-пакет может содержать только аудионформацию, или же представлять собой смесь аудио и данных. Для каждого типа данных, включая сообщения об управлении подключениями и контроле, выделяются специальные каналы.

Модель работы с аудио в Bluetooth сравнительно проста и два устройства Bluetooth могут посылать аудио-данные друг другу и получать их, просто открыв аудио-звено (audio link).

Протокол диспетчера подключений

Протокол диспетчера подключений (LMP — Link Manager Protocol) ответственен за установление подключений между устройствами Bluetooth. Сюда же относятся вопросы безопасности, такие как аутентификация и шифрования, связанные генерированием ключей шифрования и подключения, а также с обменом ключами и их проверкой. LMP имеет более высокий приоритет чем остальные протоколы (например, L2CAP), поэтому если канал занят чем-либо другим, то при необходимости передать LMP сообщение он немедленно освобождается.

Кроме того, менеджер подключений контролирует режимы питания и исполнительные циклы приборов Bluetooth, а также состояние подключения того или иного прибора к пикосети.

Протокол управления логическим подключением и адаптацией

Протокол управления логическим подключением и адаптацией (L2CAP — Logical Link Control and Adaptation Protocol) адаптирует протоколы верхнего уровня над базовой полосой.

Logical Link Control and Adaptation Layer Protocol ака L2CAP, является базовым протоколом передачи данных для Bluetooth. Baseband protocol позволяет устанавливать синхронные (Synchronous Connection-Oriented, ака SCO) и асинхронные (Asynchronous Connection-Less, ака ACL) соединения. L2CAP работает только с асинхронными соединениями. Многие протоколы и службы более высокого уровня используют L2CAP как транспортный протокол. В полном соответствии с идеологией Bluetooth L2CAP является простым протоколом, который предъявляет минимум требований к вычислительным мощностям и размеру оперативной памяти устройств, которые его используют. Основные особенности, заложенные в L2CAP таковы:

Protocol Multiplexing. L2CAP является транспортом для многих протоколов и служб, поэтому он обеспечивает возможность разобраться, к какому протоколу или службе относится переданный пакет, что обеспечивает доставку пакета именно тому, кто его ждёт.

Segmentation and Reassembly.Максимальной длиной пакета для L2CAP является 64 килобайта, для baseband protocol это число ещё меньше, всего 341 байт. Однако, иногда требуется передача больших пакетов, поэтому L2CAP обеспечивает разбивку большого пакета на несколько более мелких, и последующую сборку первоначального пакета.

Quality of Service. Благодаря L2CAP Bluetooth устройства могут отслеживать свободные ресурсы соединения и не позволять, чтобы ширина канала или временные задержки для отслеживаемой службы опускались ниже критических значений.

Groups. L2CAP поддерживает адресацию не одному клиенту, а сразу целой группе.

Протокол обнаружения услуг

Одним из важнейших протоколов Bluetooth, который использует L2CAP в качестве транспортного протокола, является Service Discovery Protocol (SDP)

Сейчас никто не сможет представить все возможные способы использования Bluetooth устройств, поэтому при разработке этого протокола пытались учесть как можно больше ситуаций, которые могут возникнуть. Сейчас действует версия 1.0 этого протокола, и основные особенности, которыми он располагает, в настоящее время таковы:

SDP должен позволять поиск служб по специальным атрибутам этих служб. Например, если имеется несколько принтеров, доступных через Bluetooth, то клиент должен иметь возможность найти именно тот принтер, который ему нужен.

SDP должен позволять клиенту искать службы по классу. Если немного переделать предыдущий пример, то если клиенту понадобится принтер, то должна быть возможность найти именно устройство печати, не зная про него ничего другого.

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

SDP должен предоставлять возможности для обнаружения новых служб, которые появились за время работы.

SDP должен предоставлять возможность узнавать, когда служба становится недоступной из за того, что клиент вышел за пределы связи, или по какой-либо другой причине.

SDP позволяет службам, классам служб и атрибутам служб быть однозначно идентифицированными.

SDP должен позволять одному устройству находить любую службу на любом другом устройстве без обращения к третьему устройству.

SDP должен подходить для использования устройствами с ограниченной функциональностью.

SDP должен позволять увеличивать количество доступной информации о службе. Это означает, что если служба требует подробного и объёмного описания своих возможностей, параметров, ограничений и т. п., то вся эта информация не будет вываливаться на всех, кто просто спросит о доступности службы, а будет предоставлена только тем, кто более пристально заинтересуется именно этой службой.

SDP должен поддерживать использование промежуточных кэширующих агентов для ускорения или повышения эффективности процесса поиска новых служб. Этот пункт не противоречит пункту 7, потому что использование третьего устройства возможно, но не обязательно.

SDP должен быть полностью независим от протоколов более высокого уровня, используемых Bluetooth соединением.

SDP должен работать когда в качестве его транспортного протокола используется

L2CAP.

SDP должен позволять находить и использовать службы которые обеспечивают доступ к другим протоколам обнаружения служб. Это позволяет расширять возможности системы, и использовать службы и устройства которые не имеют

Bluetooth интерфейса.

SDP должен поддерживать создание и определение новых служб без необходимости централизовано регистрироваться.

Кроме этого, есть ряд вещей, которые пока что не входят SDP, но очень возможно, что в следующих редакциях спецификации многие из них станут обязательными:

SDP 1.0 не предоставляет механизма доступа к службам, только информацию о службах.

SDP 1.0 не предоставляет возможности оценивать службы. То есть, с его помощью нельзя автоматически выбрать наиболее подходящую службу, если доступно сразу несколько служб, предоставляющих похожий сервис.

SDP 1.0 не позволяет договариваться о параметрах службы.

SDP 1.0 не позволяет узнать о загруженности службы, или устройства предоставляющего службу.

SDP 1.0 не даёт возможности клиенту управлять службой.

SDP 1.0 не позволяет уведомлять о том, что служба или информация о службе становится недоступной.

SDP 1.0 не позволяет уведомлять о том, что атрибуты службы изменились.

В настоящее время спецификация не описывает интерфейса, через который программы должны обращаться к SDP.

SDP 1.0 в настоящее время не обладает развитым механизмом управления списком служб

SDP 1.0 не позволяет накапливать и регистрировать службы.

Используя протокол Service Discovery Protocol, можно запросить информацию о

самом приборе, о его услугах и о характеристиках этих услуг, а после этого может быть установлено соединение между двумя или несколькими приборами Bluetooth.

Протокол, заменяющий кабель

Ещё одним из протоколов, которые используют L2CAP в качестве транспортного является, как видно из приведённой выше схемы, RFCOMM. Этот протокол эмулирует соединение PPP (point-to-point) по серийному порту (RS-232 или EIATIA-232-E, более

Источник: https://studfile.net/preview/16438531/