Wireless networks - PAN — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 49: Строка 49:
  
 
'''Стек протоколов Bluetooth'''
 
'''Стек протоколов Bluetooth'''
[[Файл: bluetooth_protocol.jpg|right]]
+
[[Файл: btsprotocol.jpg|right]]
*''Physical(PHY) Layer'' - контролирует передачу/получение радиосигналов на частоте 2.4 ГГц по каналам связи Bluetooth. BR/EDR предоставляет больше каналов с более узкой полосой пропускания, в то время как LE использует меньше каналов, но более широкую полосу пропускания.
+
'''''Bluetooth Module'''''
*''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)'' -  определяет среду исполнения, используемую 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'''''
  
 
===Безопасность===
 
===Безопасность===

Версия 21:58, 12 декабря 2016

Personal Area Network

PAN

Wpan.jpg

Персональная сеть (PAN - Personal Area Network) - это компьютерная сеть, которая используется для передачи данных между устройствами, расположенными на достаточно небольшом расстоянии и зачастую принадлежащими одному пользователю. Также персональные сети могут взаимодействовать с сетями болеее высокого уровня, и в таком случае одно из устройств в сети берёт на себя роль интернет-маршрутизатора. Радиус действия таких сетей составляет от нескольких десятков сантиметров до нескольких метров.

В современном мире большинство персональных сетей являются беспроводными.

WPAN

WPAN (Wireless Personal Area Network) - система беспроводной передачи данных, которая работает в ISM-диапазоне 2.4-2.5 ГГц. Выбор диапазона обусловлен тем, что этот диапазон доступен по всему миру и подходит для низкобюджетных решений. WPAN состоит из нескольких узлов, связанных беспроводным каналом, при этом один из этих узлов берёт на себя роль координатора. Координатор занимается созданием WPAN и контролирует подключение узлов к сети.

WPAN может представлять из себя следующие топологические схемы: Pan topology.jpg

Современные WPAN могут быть реализованы с помощью таких технологий, как:

WLANs vs. WPANs

WPAN определена в контексте личного рабочего пространства(POS - Personal Operating Space), которое обычно распространяется в радиусе до 10 метров и окружает человека или объект, находящийся в покое или в движении. WPAN также подразумевает низкую стоимость и низкое энергопотребление. Узел WPAN имеет небольшие размеры, что позволяет встраивать его в портативные устройства, такие как мобильные телефоны и КПК.

С другой стороны, WLAN представляет из себя систему более широкого радиуса действия и имеет более высокую сложность. WLAN включает в себя центральный узел, называемый точкой доступа(AP - Access Point), который предоставляет доступ к каналу связи некоторому количеству конечных узлов. Типичный узел WLAN представляет из себя карту, устанавливаемую в персональные компьютеры и ноутбуки.

Bluetooth

Bluetooth (от слов англ. blue — синий и tooth — зуб) - стандарт беспроводного соединения вычислительных устройств и устройств связи, который позволяет передавать данные на коротких расстояниях между стационарными и мобильными устройствами, используя короткие сверхвысокочастотные радио-волны в ISM-диапазоне от 2.4 до 2.485 ГГц.

Создание технологии

Идея создания такого стандарта возникла в 1994 году в компании Л.М.Эриксона, а в 1998 году совместно с четырьмя другими компаниями(IBM, Intel, Nokia, Toshiba) была сформирована специальная группа, которая занималась созданием и развитием этого стандарта. Проект был назван в честь великого короля викингов по имени Гаральд Синий Зуб II, который объединил Данию и Норвегию.

Требования к технологии при разработке:

  • Безопасность, сравнимая с обычным проводным соединением(поддерживать авторизацию, аутентификацию и шифрование на канальном уровне и уровне приложений).
  • Стоимость производства, сопоставимая со стоимостью производства проводного соединения.
  • Возможность соединения множества устройств, принадлежащих пользователю(7 одновременных соединений) и скорость передачи данных между ними, соответствующая нуждам пользователя.
  • Поддержка типов данных, которые распространены среди мобильных пользователей.
  • Низкое энергопотребление и компактность для возможности встраивания в небольшие портативные устройства.

Bluetooth 1.0 появился в июле 1999 года, и со временем этот стандарт обрёл широкую популярность.

Архитектура Bluetooth

Существуют две основных реализации технологии:Bluetooth Basic Rate/Enhanced Data Rate(BR/EDR), которая используется в версиях 2.0/2.1, и Bluetooth with low energy(LE), которая используется в версиях 4.0/4.1/4.2.

В чём разница?

  • Bluetooth BR/EDR - устанавливает беспроводное соединение на относительно малых расстояниях, что делает его идеальным, например, для стриминга аудио.
  • Bluetooth LE - позволяет устанавливать кратковременное соединение на больших расстояниях, что делает его подходящим для использования, связанного с интернетом вещей(IoT - Internet of things), которое не требует непрерывного соединения, но зависит от продолжительности работы аккумулятора.
  • Dual-Mode - двухрежимные чипсеты используются, например, в смартфонах и планшетах, которым необходимо соединение как с BR/EDR-устройствами(например, наушники), так и с LE-устройствами(например, различные маячки и трекеры).


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

Btsprotocol.jpg

Bluetooth Module

Baseband - существует два основным типа соединения, которые могут быть установлены между ведущим и ведомым:

  • Synchronous Connection Oriented(SCO) - предоставляет симметричное соединение между ведущим и ведомым для регулярного периодического обмена данными в виде зарезервированных слотов. Подобное соединение предназначено для ограниченных по времени типов данных (например, аудио). Ведущее устройство может поддерживать до трёх SCO-соединений с одним или разными ведомыми устройствами.
  • Asynchronous Connection-Less(ACL) - предоставляет соединение один-ко-многим между ведущим устройством и всеми ведомыми устройствами в сети. Может использовать все слоты канала, не занятые SCO-соединениями. Предоставляется соединение с коммутацией пакетов, обмен данными с помощью которого происходит эпизодически. Весь трафик полностью контролируется ведущим устройством.

Каждое Bluetooth-устройство имеет 48-битный IEEE MAC-адрес, который используется для создания кода доступа. Код доступа имеет псевдо-случайные свойства и включает в себя идентификатор ведущего устройства в сети. Все пакеты, передаваемые по каналу, распознаются с помощью этого идентификатора. Это предотвращает возможность попадания пакетов из одной сети в другую. Все пакеты имеют одинаковый формат, начинаются с кода доступа, после него идёт заголовок, а далее - существенные данные.

Bt packet.jpg

Код доступа используется, чтобы доставить пакет до определённого устройства, заголовок содержит всю контрольную информацию, связанную с пакетом и соединением. Пакет может быть размером в 1, 3 или 5 слотов.

Link Controller - отвечает за обнаружение устройства, установление соединение и его поддержку. В Bluetooth существуют три элемента для поддержки установления соединения: scan, page и inquiry.

Bt inquiry.jpg

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

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

Bluetooth Host

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

Bt security.gif

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

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

Аутентификация предполагает, что пользователь предоставляет личный идентификационный номер(PIN - Personal Identification Number), который транслируется в 128-битный Link Key, который, в свою очередь, проходит аутентификацию в одностороннем или двустороннем порядке, а после этого может пройти процедуру шифрования при различной длине ключа(до 128 бит с 8-битным шагом). На канальном уровне доступны несколько схем аутентификации и гибкая схема шифрования, что позволяет различным устройствам "договариваться между собой" о длине ключа. Это важно, если на одно из устройств наложены ограничения по длине ключа. В таком случае другое устройство сможет подстроиться под эти ограничения.

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