Компьютерные сети. 6-е изд. — страница 92 из 247

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

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

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

Другой тип соединения — асинхронный без установления связи (Asynchronous Connectionless, ACL). Он используется для коммутации пакетов данных, которые могут появиться в произвольный момент времени. Трафик ACL доставляется по принципу максимальных усилий без гарантий. Фреймы могут теряться и пересылаться повторно. У подчиненного узла может быть только одно ACL-соединение с главным узлом.

Данные, отправляемые по ACL-каналу, приходят с уровня L2CAP. Этот уровень выполняет четыре основные функции. Во-первых, он принимает пакеты размером до 64 Кбайт с верхних уровней и разбивает их на фреймы для передачи по физическому каналу. На противоположном конце этот же уровень используется для обратного действия — объединения фреймов в пакеты. Во-вторых, он мультиплексирует и демультиплексирует многочисленные источники пакетов. После сборки пакета L2CAP определяет, куда его следует направить (например, протоколу RFcomm или протоколу обнаружения служб). В-третьих, он обеспечивает контроль ошибок и повторную передачу фреймов. L2CAP выявляет ошибки и заново отправляет неподтвержденные пакеты. Наконец, L2CAP следит за соблюдением требований QoS между несколькими соединениями.


4.5.6 Bluetooth: структура фрейма

Существует несколько форматов фреймов Bluetooth, наиболее важный из них показан в двух вариантах на илл. 4.32. В начале фрейма указывается Access code (Код доступа), который обычно служит идентификатором главного узла. С его помощью подчиненные узлы, находящиеся в радиусе действия двух главных, различают, кому из них предназначаются данные. Затем следует Header (Заголовок) из 54 бит, в котором содержатся поля, характерные для подуровня MAC. Если фрейм отправляется с базовой скоростью, далее расположено поле данных. Его размер ограничен 2744 битами (для передачи за пять слотов). Если фрейм соответствует одному слоту, то формат остается таким же, но поле данных в этом случае составляет 240 бит.

При увеличенной скорости блок данных, Data, может быть в 2 или 3 раза больше, потому что каждый символ переносит 2 или 3 бита вместо одного. Данным предшествуют охранное поле Guard и паттерн синхронизации Sync, для переключения на более высокую скорость передачи. Таким образом, код доступа и заголовок передаются на базовой скорости, и только полезные данные передаются на большей скорости. Такие фреймы заканчиваются коротким полем Trailer.

Рассмотрим, из чего состоит обычный заголовок фрейма. Поле Address указывает на одно из восьми активных устройств, которому предназначена информация. Поле Type определяет тип передаваемого фрейма (ACL, SCO, опрос или пустой фрейм), метод коррекции ошибок и количество слотов, из которых состоит фрейм. Бит потока F (Flow) добавляется подчиненным узлом — так он сообщает о том, что его буфер заполнен. Этот бит обеспечивает примитивную форму управления потоком. Бит подтверждения A (Acknowledgement) используется для отправки вместе с фреймом вложенного подтверждения (ACK). Бит последовательности S (Sequence) применяется для нумерации фреймов, чтобы обнаруживать повторные передачи. Это протокол с ожиданием, поэтому одного бита действительно оказывается достаточно. Далее следует Checksum — 8-битная контрольная сумма заголовка. Весь 18-битный заголовок фрейма повторяется трижды, что в итоге составляет 54 бита, как показано на илл. 4.32. На принимающей стороне простая схема анализирует все три копии каждого бита. Если они совпадают, бит принимается. В противном случае все решает большинство.

Илл. 4.32. Типичный информационный фрейм Bluetooth. (а) На базовой скорости. (б) На увеличенной скорости

Таким образом, на передачу 10 бит заголовка тратится 54 бита пропускной способности. Причина проста: за передачу данных с помощью дешевых, маломощных устройств (2,5 мВт) с низкой вычислительной способностью приходится платить большой избыточностью.

Для ACL- и SCO-фреймов применяются различные форматы поля данных. Самый простой пример — SCO-фрейм с базовой скоростью: длина его поля данных всегда равна 240 бит. Возможны три варианта: 80, 160 или 240 бит полезной информации. При этом оставшиеся биты поля данных используются для коррекции ошибок. В самой надежной версии (80 бит полезной информации) одно и то же содержимое повторяется три раза (что и составляет 240 бит), как и в заголовке фрейма.

Пропускная способность вычисляется следующим образом. Подчиненный узел может использовать только нечетные временные слоты, поэтому ему достается 800 слотов в секунду. Столько же получает и главный узел. При 80 битах полезных данных, передающихся в одном фрейме, емкость канала подчиненного узла (так же, как и главного) равна 64 000 бит/с. Этого как раз хватает для организации полнодуплексного PCM-канала голосовой связи (именно поэтому 1600 скачков в секунду было выбрано в качестве скорости перестройки частот). Другими словами, несмотря на изначальную пропускную способность в 1 Мбит/с, полнодуплексный несжатый голосовой канал может вызвать перегрузку пикосети. Эффективность 13 % — результат затрат 41 % емкости на стабилизацию, 20 % на заголовки и 26 % на повторное кодирование. Этот недостаток подчеркивает значение ускорения и фреймов, содержащих более одного слота.


4.5.7. Bluetooth 5

В июне 2016 года группа Bluetooth SIG опубликовала версию Bluetooth 5. В январе 2019 года был выпущен Bluetooth 5.1. Это довольно небольшие изменения по сравнению c Bluetooth 4. И все же между Bluetooth 4 и Bluetooth 5 имеется ряд различий. Вот список ключевых обновлений в версии Bluetooth 5.0:


1. Поддержка IoT.

2. Скорость возросла с 1 до 2 Мбит/с.

3. Размер сообщений увеличился с 31 до 255 байт.

4. Радиус действия в помещениях увеличился с 10 до 40 м.

5. Немного уменьшилось потребление энергии.

6. Слегка увеличился радиус действия маяков.

7. Несколько повысился уровень безопасности.

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


4.6. DOCSIS

Хотя изначально сети кабельного телевидения предназначались для трансляции телевизионных программ, теперь они также широко используются в качестве альтернативного способа подключения квартир и домов к интернету вместо телефонных сетей. Далее мы рассмотрим «подуровень MAC» стандарта DOCSIS, который используется большинством провайдеров кабельного телевидения.


4.6.1. Общие сведения

Спецификация DOCSIS также предусматривает наличие подуровня MAC, однако он не так явно отделен от канального уровня по сравнению с другими протоколами, которые мы изучали в предыдущих главах. В то же время в DOCSIS выполняется целый ряд стандартных задач подуровня MAC, включая распределение канала (путем удовлетворения запросов), настройку QoS и уникальную модель пересылки. В данном разделе мы коснемся каждой из этих трех задач. В последних полнодуплексных версиях стандарта DOCSIS 3.1 и DOCSIS 4.0 были введены новые методы планирования и исключения помех.

DOCSIS использует стандартный формат фреймов MAC. Помимо прочего, он содержит поля с данными о длине фрейма и контрольной сумме, а также расширенное поле заголовка для поддержки множества функций, включая защиту канального уровня. Некоторые заголовки поддерживают специальные функции, например синхронизацию входящего потока, регулирование мощности исходящей передачи, запрашивание пропускной способности и конкатенацию фреймов. Один из особых типов фрейма — фрейм запроса; с его помощью кабельный модем запрашивает пропускную способность (как будет описано далее).


4.6.2. Пристрелка

Кабельный модем передает запрос на пристрелку (ranging request). Это позволяет головной станции (CMTS) определить величину сетевой задержки для кабельного модема, а также выполнить необходимые настройки мощности. Пристрелка — это, по сути, периодическая настройка различных параметров передачи, в частности синхронизации, частоты и мощности. Получив от CMTS сигнал опроса, кабельный модем отправляет ей запрос на пристрелку. На основе этого сообщения CMTS выдает ответ, позволяющий модему настроить параметры синхронизации и мощности сигнала. По умолчанию запрос производится с интервалом в 30 с, но его можно уменьшить; обычно его величина составляет от 10 до 20 с.