4.1. Концепция и основные положения технологии
Bluetooth.
Bluetooth - это современная технология
беспроводной передачи данных, позволяющая соединять друг с другом практически
любые устройства: мобильные телефоны, ноутбуки, принтеры, цифровые фотоаппараты
и даже холодильники, микроволновые печи, кондиционеры. Соединить можно все, что
соединяется, то есть имеет встроенный микрочип Bluetooth. Технология
стандартизирована, следовательно, проблемы несовместимости устройств от
конкурирующих фирм быть не должно.
Bluetooth - это маленький чип, представляющий
собой высокочастотный (2.4 - 2.48 ГГц) приёмопередатчик, работающий в диапазоне
ISM (Industry, Science and Medicine; промышленный, научный и медицинский). Для
использования этих частот не требуется лицензия, исключения рассмотрим ниже.
Скорость передачи данных, предусматриваемая стандартом, составляет порядка 720
Кбит/с в асимметричном режиме и 420 Кбит/с в полнодуплексном режиме.
Обеспечивается передача трех голосовых каналов, но не видеосигнала.
Энергопотребление (мощность передатчика) не должно превышать 10 мВт. Изначально
технология предполагала возможность связи на расстоянии не более 10 метров.
Сегодня некоторые фирмы предлагают микросхемы Bluetooth, способные поддерживать
связь на расстоянии до 100 метров. Как радиотехнология, Bluetooth способна
"обходить" препятствия, поэтому соединяемые устройства могут
находиться вне зоны прямой видимости. Соединение происходит автоматически, как
только Bluetooth-устройства оказываются в пределах досягаемости, причем не
только по принципу точка - точка (два устройства), но и по принципу точка -
много точек (одно устройство работает с несколькими другими). Естественно, для
реализации технологии Bluetooth на практике необходимо определенное программное
обеспечение (ПО). Кстати, в новую версию операционной системы MS Windows
Whistler встроена поддержка Bluetooth.
Технология Bluetooth предусматривает три
уровня защиты:
1. Минимальная - данные кодируются общим
ключом и могут приниматься любым устройством без ограничения.
2. Защита на уровне устройства - в чипе прописывается
уровень доступа, в соответствии с которым устройство может получать
определенные данные от других устройств.
3. Защита на уровне сеанса связи - данные кодируются 128-битными случайными
номерами, хранящимися в каждой паре чипов, участвующих в конкретном сеансе
связи.
Чип Bluetooth реализован с учетом всех
современных тенденций. Размер чипа - менее одного квадратного сантиметра.
Применяемая частота позволяет ограничить потребляемую мощность 1мВт. Подобные
характеристики позволяют интегрировать чипы Bluetooth в таких устройствах, как
мобильные телефоны и карманные компьютеры.
4.2. Технические аспекты установки соединения между Bluetooth устройствами.
Оказавшись рядом, Bluetooth устройства могут
устанавливать не только соединения типа точка-точка, когда имеется только два
устройства, но и точка - много точек, когда одно устройство одновременно
работает с несколькими другими. При соединении одного устройства с несколькими
другими, устройство которое обслуживает несколько соединений, называется
master, а подключенные устройства - slave. К одному master’у может быть
подключено до семи активных slave. Кроме активных slave (то есть, устройств,
которые активно обмениваются данными), может существовать множество неактивных
slave, которые не могут обмениваться данными с master, пока заняты все каналы,
но, тем не менее, остаются, синхронизированы с ним. Такая структура называется
piconet.
В одной piconet может быть только один master,
однако каждый slave может одновременно являться master’ом для других устройств,
и образовывать свой piconet. Несколько piconet объединенных таким образом
образуют scatternet. В рамках scatternet разные устройства могут не только быть
одновременно master и slave одновременно для различных piconet, но и просто
slave для разных piconet. Более наглядно с этой структурой можно ознакомиться
на представленном ниже рисунке 4
Рис.4
Более того, в случае необходимости любой slave
в piconet может стать master. Естественно, старый master при этом становится
slave. Таким образом, в scatternet могут объединяться столько Bluetooth
устройств, сколько необходимо, логические связи могут образовываться так, как
это требуется, и могут изменяться как угодно, в случае необходимости.
Единственное условие, различные piconet входящие в один scatternet должны иметь
разные каналы связи, то есть работать на различных частотах и иметь различные
hopping channel. Hopping - это регулярная смена частот, определяемая
параметрами hopping sequence. Всего спецификация предусматривает 10 вариантов
hopping sequence, 5 с циклом в 79 смен и 5 с циклом в 23 смены. С любым hopping
sequence частоты сменяются 1600 hops/sec. Используется hopping для того, что бы
бороться с затуханием радиосигнала и интерференцией.
Автоматическая установка соединения между
Bluetooth устройствами, находящимися в пределах досягаемости является одной из
важнейших особенностей Blueooth, поэтому первое, с чего начинается работа
Bluetooth устройства в незнакомом окружении - это device discovery, или,
по-русски, поиск других Bluetooth устройств. Для этого посылается запрос, и
ответ на него зависит не только от наличия в радиусе связи активных Bluetooth
устройств, но и от режима в котором находятся эти устройства. На этом этапе
возможно три основных режима.
§
Discoverable mode.
Находящиеся в этом режиме устройства всегда отвечают на все полученные ими
запросы.
§
Limited discoverable mode. В этом режиме находятся устройства которые
могут отвечать на запросы только ограниченное время, или должны отвечать только
при соблюдении определённых условий.
§
Non-discoverable mode. Находящиеся в этом режиме устройства, как
видно из названия режима, не отвечают на новые запросы.
Но это ещё не всё. Даже если удаётся
обнаружить устройство, оно может быть в connectable mode или в non-connectable
mode. В non-connectable mode устройство не позволяет настроить некоторые важные
параметры соединения, и, таким образом, оно хоть и может быть обнаружено,
обмениваться данными с ним не удастся. Если устройство находится в connectable
mode, то на этом этапе Bluetooth устройства договариваются между собой об
используемом диапазоне частот, размере страниц, количестве и порядке hop’ов, и
других физических параметрах соединения.
Если процесс обнаружения устройств прошёл
нормально, то новое Bluetooth устройство получает набор адресов доступных
Bluetooth устройств, и за этим следует device name discovery, когда новое
устройство выясняет имена всех доступных Bluetooth устройств из списка. Каждое
Bluetooth устройство должно иметь свой глобально уникальный адрес (вроде как
MAC-адреса у сетевых плат), но на уровне пользователя обычно используется не
этот адрес, а имя устройства, которое может быть любым, и ему не обязательно
быть глобально уникальным. Имя Bluetooth устройства может быть длиной до 248
байт, и использовать кодовую страницу в соответствии с Unicode UTF-8 (при
использовании UCS-2, имя может быть укорочено до 82 символов). Спецификация
предусматривает, что Bluetooth устройства не обязаны принимать больше первых 40
символов имени другого Bluetooth устройства. Если же Bluetooth устройство
обладает экраном ограниченного размера, и ограниченной вычислительной мощью, то
количество символов, которое оно примет может быть уменьшено до 20.
Ещё одной из важнейших особенностей Bluetooth
является автоматическое подключение Bluetooth устройств к службам,
предоставляемым другими Bluetooth устройствами. Поэтому, после того как имеется
список имён и адресов, выполняется service discovery, поиск доступных услуг,
предоставляемых доступными устройствами. Получение или предоставление, каких
либо услуг - это то, ради чего всё собственно и затевалось, поэтому для поиска
возможных услуг используется специальный протокол, называемый, как несложно
догадаться, Service Discovery Protocol (SDP).
Естественно, 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 соединений с точки зрения построения защищённых соединений
остаётся возможность перехвата трафика, причём для этого даже не придётся
использовать, какое либо специфическое оборудование. Впрочем, эта проблема не
нова, и в настоящее время часто приходится использовать открытые сети, вроде
Интернет, где возможен перехват трафика, для передачи закрытых данных.
4.3. Набор базовых протоколов, используемых в
Bluetooth для передачи различных типов данных.
После того, как соединение установлено, его
можно использовать для самых различных целей. Возможно это благодаря набору
базовых протоколов, используемых в Bluetooth для передачи различных типов данных.
Упрщенная схема зависимости друг от друга приведена на рис. 5
Рис.5
В основе всего, как видно из схемы, лежит
baseband protocol. Baseband 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 поддерживает QoS, что позволяет Bluetooth устройствам отслеживать
свободные ресурсы соединения и не позволять, что бы ширина канала или временные
задержки для отслеживаемой службы опускались ниже критических значений.
Groups. L2CAP поддерживает адресацию не одному
клиенту, а сразу целой группе.
Кроме L2CAP непосредственно с baseband
protocol работают Link Management Protocol, или LMP, и Voice каналы,
используемые для передачи аудиоинформации в синхронном режиме.
LMP является служебным протоколом,
используемым для управления каналом, и не использующимся для передачи данных.
Сообщения LMP используются для настройки физических характеристик канала, для
служб безопасности на уровне физического канала (security mode 3), и тому
подобных вещей. LMP имеет более высокий приоритет чем остальные протоколы
(например, L2CAP), поэтому если канал занят чем-либо другим, то при
необходимости передать LMP сообщение он немедленно освобождается.
Voice,
или Bluetooth Audio. Это одна из служб Bluetooth, которая
использует синхронное соединение. Одновременно может передаваться до 3
аудиоканалов. Характеристики звуковых потоков могут различаться, и во многом
определяются используемым приложением. Максимально звуковой поток может
передаваться с точностью в 16 бит при sampling rate 48 кГц. К сожалению,
характеристики Bluetooth не позволяют передавать видеоинформацию с нормальным
качеством.
Одним из важнейших протоколов Bluetooth,
который использует L2CAP в качестве транспортного протокола, является Service
Discovery Protocol, или SDP. Сейчас никто не сможет представить все возможные
способы использования Bluetooth устройств, поэтому при разработке этого
протокола пытались учесть как можно больше ситуаций, которые могут возникнуть.
Сейчас действует версия 1.0 этого протокола, и основные особенности, которыми
он располагает, в настоящее время таковы:
1. SDP должен позволять поиск служб по специальным
атрибутам этих служб.
Например, если имеется несколько принтеров, доступных через Bluetooth, то
клиент должен иметь возможность найти именно тот принтер, который ему нужен.
2. SDP должен позволять клиенту искать службы
по классу. Если немного переделать предыдущий пример, то если клиенту
понадобится принтер, то должна быть возможность найти именно устройство печати,
не зная про него ничего другого.
3. SDP должен позволять просматривать службы
без необходимости знать специфические характеристики этих служб. Например, если
устройство предоставляющее какую-либо услугу может управляться только
специальным программным обеспечением по какому-либо очень редкому или закрытому
протоколу, то для SPD это не будет проблемой, всё равно можно будет получить
информацию о доступности и названии службы.
4. SDP должен предоставлять возможности для
обнаружения новых служб, которые появились за время работы.
5. SDP должен предоставлять возможность
узнавать, когда служба становится недоступной из за того, что клиент вышел за
пределы связи, или по какой-либо другой причине.
6. SDP позволяет службам, классам служб и
атрибутам служб быть однозначно идентифицированными.
7. SDP должен позволять одному устройству
находить любую службу на любом другом устройстве без обращения к третьему
устройству.
8. SDP должен подходить для использования
устройствами с ограниченной функциональностью. Помните, мы говорили о
холодильниках? А ведь это далеко не предел...
9. SDP должен позволять увеличивать количество
доступной информации о службе. Это означает, что если служба требует подробного
и объёмного описания своих возможностей, параметров, ограничений и т. п., то
вся эта информация не будет вываливаться на всех, кто просто спросит о
доступности службы, а будет предоставлена только тем, кто более пристально
заинтересуется именно этой службой.
10. SDP должен поддерживать использование
промежуточных кэширующих агентов для ускорения или повышения эффективности
процесса поиска новых служб. Этот пункт не противоречит пункту 7, потому что
использование третьего устройства возможно, но не обязательно.
11. SDP должен быть полностью независим от
протоколов более высокого уровня, используемых Bluetooth соединением.
12. SDP должен работать, когда в качестве его
транспортного протокола используется L2CAP.
Страницы: 1, 2, 3, 4
|