Изменения

Перейти к: навигация, поиск

Wireless networks - PAN

8313 байт добавлено, 19:13, 4 сентября 2022
м
rollbackEdits.php mass rollback
'''Стек протоколов Bluetooth'''
[[Файл: bluetooth_protocolbtsprotocol.jpg|right]]*''Physical(PHY) Layer'' - контролирует передачу/получение радиосигналов на частоте 2.4 ГГц по каналам связи Bluetooth. BR/EDR предоставляет больше каналов с более узкой полосой пропускания, в то время как LE использует меньше каналов, но более широкую полосу пропускания.*''Link Layer'' - определяет структуру пакетов, процедуры обнаружение и соединения, а также передаёт и получает данные.*''Direct Test Mode'' - позволят при тестировании передавать инструкции для PHY Layer, тем самым явно задавать последовательность пакетов, которую необходимо передать или получить.*''Host to Controller Interface(HCI)'' - разделяет между собой Host и Controller, что позволяет заменять одну из частей, не оказывая воздействия на вторую.*''Logical Link Control and Adaptation Protocol(L2CAP) Layer'' - протокол, который передаёт пакеты в HCI или напрямую в Link Manager при отсутствии HCI. Поддерживает высокоуровневое мультиплексирование протоколов, сегментацию и повторную сборку пакетов и передачу информации о качестве сервиса на более высокие уровни.*''Attribute Protocol(ATT)'' - определяет коммуникационные сообщения между двумя устройствами, выступающими в контексте данного протокола в качестве клиента и сервера. Сервер поддерживает набор атрибутов, представляющих собой структуру данных, позволяющую получать доступ к информации, управляемой протоколом GATT. Роли клиента и сервера определяются протоколом GATT и не зависят от роли устройства в соединении (ведущий/ведомый).*''Security Manager'' - определяет протокол, который отвечает за целостность соединения, аутентификацию и шифрование между Bluetooth-устройствам, и предоставляет панель управления функциями безопасности, которую другие компоненты используют для обеспечения необходимого уровня безопасности.*''Generic Attribute Profile(GATT)'Module' - определяет среду исполнения, используемую ATT для обнаружения сервисов и обмена характеристиками между устройствами. Характеристика в данном случае представляет собой набор данных, включающих в себя значения и свойства. Данные, относящиеся к сервисам и характеристикам, сохраняются в атрибутах.*''Generic Access Profile(GAP)'' - работает в связке с GATT, определяет роли устройств, режимы и процедуры обнаружения устройств и сервисов, управление установлением соединения и безопасностью.
'''''Baseband''''' - существует два основным типа соединения, которые могут быть установлены между ведущим и ведомым:
*''Synchronous Connection Oriented''(SCO) - предоставляет симметричное соединение между ведущим и ведомым для регулярного периодического обмена данными в виде зарезервированных слотов. Подобное соединение предназначено для ограниченных по времени типов данных (например, аудио). Ведущее устройство может поддерживать до трёх SCO-соединений с одним или разными ведомыми устройствами.
* ''Asynchronous Connection-Less''(ACL) - предоставляет соединение один-ко-многим между ведущим устройством и всеми ведомыми устройствами в сети. Может использовать все слоты канала, не занятые SCO-соединениями. Предоставляется соединение с коммутацией пакетов, обмен данными с помощью которого происходит эпизодически. Весь трафик полностью контролируется ведущим устройством.
Каждое Bluetooth-устройство имеет 48-битный IEEE MAC-адрес, который используется для создания ''кода доступа''. Код доступа имеет псевдо-случайные свойства и включает в себя идентификатор ведущего устройства в сети. Все пакеты, передаваемые по каналу, распознаются с помощью этого идентификатора. Это предотвращает возможность попадания пакетов из одной сети в другую. Все пакеты имеют одинаковый формат, начинаются с кода доступа, после него идёт заголовок, а далее - существенные данные.
[[Файл: bt_packet.jpg|center]]
Код доступа используется, чтобы доставить пакет до определённого устройства, заголовок содержит всю контрольную информацию, связанную с пакетом и соединением. Пакет может быть размером в 1, 3 или 5 слотов.
'''''Link Controller''''' - отвечает за обнаружение устройства, установление соединение и его поддержку. В Bluetooth существуют три элемента для поддержки установления соединения: ''scan'', ''page'' и ''inquiry''.
 
[[Файл: bt_inquiry.jpg|right]]
''Inquiry'' - процесс, когда устройства пытается обнаружить все другие устройства с включенным Bluetooth на некоторой площади. Устройство, которое хочет установить соединение, передаёт запрос, который побуждает получателей вернуть их адреса. Устройство, которое получает запрос, возвращает FHS-пакет, который включает, помимо всего, идентификатор этого устройства. Для возвращения FHS-пакетов используется случайный механизм отката для предотвращение коллизий.
 
Устройство в режиме ожидание должно "спать" большую часть времени для сохранения энергии, но время от времени оно также должно "слушать", не хотят ли другие устройства подключиться (''Page scan''). Необходим компромисс между энергопотреблением в режиме ожидания и временем отклика. Устройство, которое хочет подключиться, сталкивается с неопределенностью частоты и времени: оно не знает, когда устройство в режиме ожидания "проснётся" и на какой частоте. По этой причине устройство передаёт код доступа неоднократно на разных частотах: каждые 1.25 мс устройство передаёт два кода доступа и дважды "слушает" ответ. Таким образом, за 10 мс передаётся 16 запросов. Если устройство в режиме ожидания "проснулось" на одной из этих 16 частот, оно получит код доступа и начнёт процедуру установления соединения.
 
'''''Link Manager''''' - ''Host'' управляет Bluetooth с помощью команд HCI, и ''Link Manager'' существует для трансляции этих команд в операции на ''Baseband''-уровне. Его главные функции - управление сетью(установление и разрывание соединения, смена ролей), конфигурация соединения, безопасность и QoS(''Quality of Service'')-функции.
 
''Link Manager'' обменивается информацией со своими "коллегами" на других устройствах, используя ''Link Manager Protocol''(LMP). Каждое LMP-сообщение начинается с флага, который равен 0, если ведущее устройство является инициатором транзакции, и 1 - если ведомое. После флага следуют 7 бит кода операции, а после - параметры сообщения.
[[Файл: bt_lmp.jpg|center]]
LMP также предоставляет механизм для "переговоров" по поводу режимов шифрования и координирования ключей шифрования, которые используют устройства на обоих концах соединения. Кроме этого LMP поддерживает сообщения для конфигурации качества обслуживания соединения. Типы пакетов могут быть автоматически изменены в соответствии с качеством канала, и соответственно скорость передачи данных может возрастать при повышении качества канала.
 
'''''Bluetooth Host'''''
 
'''''Logical Link Control and Adaptation Protocol'''''(L2CAP) - забирает данные из более высоких уровней стека и из приложений, и посылает её на более низкие уровни стека. Передаёт пакеты либо в HCI, либо напрямую в ''Link Manager''. Основные функции L2CAP:
* Мультиплексирование протоколов более высокого уровня, что позволяет им разделять одно ACL-соединение.
* Сегментация и повторная сборка пакетов, что позволяет передавать пакеты большего размера, чем поддерживают протоколы более низкого уровня.
* Управление качеством обслуживания для протоколов более высокого уровня.
 
Все приложения должны использовать L2CAP для передачи данных. Также L2CAP используется более высокими уровнями, такими как RFCOMM и SDP, и таким образом L2CAP - неотъемлемая часть любой Bluetooth-системы.
 
'''''RFCOMM''''' - простой, надёжный транспортный протокол, который эмулирует соединение pont-to-point по последовательному порту (RS-232). RFCOMM поддерживает два типа устройств:
* С эмуляцией последовательного порта. Такие устройства обычно находятся на концах соединения(например, PC или принтер).
* Промежуточные устройства с физическим последовательным портом. Такие устройства находятся в середине соединения(например, модем).
 
Может быть установлено до 30 каналов передачи данных, то есть RFCOMM теоретически может поддерживать 30 различных сервисов одновременно. RFCOMM основан на стандарте GSM TS 07.10 - асимметричный протокол, который используется в сотовых телефонах для мультиплексирования нескольких потоков данных в один физический провод.
 
'''''Service Discovery Protocol'''''(SDP) - предоставляет возможность SDP-клиенту получить доступ к информации об услугах, предоставляемых SDP-сервервами. ''SDP-сервер'' - это любое Bluetooth-устройство, которое предоставляет услуги другому Bluetooth-устройству. Информация об услугах хранится в базах данных. Не существует централизованной базы данных, каждый SDP-сервер имеет свою собственную. ''SDP база данных'' - набор записей, описывающих услуги, которые устройство может предложить другому устройству, и SDP предоставляет другому устройству "посмотреть" на эти записи. Для простоты поиска услуги упорядочены в иерархическую структуру в виде дерева.
 
Для просмотра классов услуг или для получения информации об отдельной услуге SDP-клиенты и SDP-серверы обмениваются сообщения, которые содержатся в ''SDP Protocol Data Units''(PDUs). Первый байт в PDU - это ID, идентифицирующий сообщение в PDU. Услуги имеют собственные ''Universally Unique Identifiers''(UUIDs), которые их описывают. Стандартные услуги имеют стандартные UUIDs, но существует также возможность определять свои собственные услуги и, соответственно, присваивать им UUIDs.
[[Файл: sdp_pdu.jpg|center]]
Этапы установки SDP-соединения показаны на следующей схеме:
[[Файл: sdp_connection.jpg|center]]
 
[[Файл: bt_security.gif|right]]
===Безопасность===
[[Файл: bt_security.gif|right]]
Тот факт, что Bluetooth используется в мобильных устройствах и то, какие данные могут передаваться с помощью этих устройств, делает безопасность чрезвычайно важным фактором.
1632
правки

Навигация