Коды сигнальных команд L2CAP
Таблица 6.8 - Коды сигнальных команд L2CAP
Код | Описание | Параметры |
0х01 | Отмена команды | Причина |
0х02 | Запрос соединения | PSM, CID источника |
0х03 | Ответ на запрос соединения | СШ адресата, CID источника, результат, статус |
0х04 | Запрос конфигурации | СШ адресата, флаги, опции |
0х05 | Ответ на запрос конфигурации | СШ источника, флаги, результат, опции |
0х06 | Запрос разрыва соединения | СШ адресата, СШ источника |
0х07 | Ответ на запрос разрыва соединения | СШ адресата, CID источника |
0х08 | Эхо-запрос | Данные (не обязательно) |
0х09 | Эхо-ответ | Данные (не обязательно) |
0х0А | Информационный запрос | Тип информации |
0х0В | Ответ на информационный запрос | Тип информации, результат, данные (не обязательно) |
Команды соединения используются для установления нового логического канала. Команда запросов содержит значение PSM, определяющее пользователя L2CAP для данного соединения. На настоящий момент разрешены три значения: для протокола обнаружения услуги, RFCOMM и протокола управления телефонией. Другие значения PSM присваиваются динамически и зависят от реализации. Команда запроса также содержит значение CID, которое присвоится источником этому соединению. Команда ответа включает CID источника и адресата, последний присваивается каналу отвечающей стороной. Параметр результата определяет результат запроса (успешный, в стадии рассмотрения, отклоненный), и если запрос находится в стадии рассмотрения (например, незаконченная аутентификация, незаконченная авторизация), в поле статуса указывается текущее состояние запроса.
Для установления исходного логического канала между двумя объектами L2CAP и пересмотра параметров этого канала могут передаваться команды конфигурации. Каждый параметр в команде-запросе связан с входящим или с исходящим трафиком. Команда запроса содержит поле флагов; в настоящее время определен только один флаг, указывающий, будут ли переданы дополнительные команды конфигурации. Поле опций содержит список параметров и их значений, подлежащих обсуждению. Каждый параметр определяется тремя полями.
• Тип (1 байт). Семь младших битов данного байта определяют опцию. Если старший бит равен 0, опция является обязательной, и если распознать ее не удалось, адресат должен отклонить конфигурационный запрос. Если старший бит равен 1, опция необязательна и может игнорироваться адресатом.
• Длина (1 байт). Размер полезной нагрузки, в качестве которой выступают опции. Длина 0 указывает на отсутствие полезной нагрузки.
• Полезная нагрузка — опции. Дальнейшая информация об опции. Согласовываться могут следующие параметры.
• Максимальный модуль передачи (maximum transmission unit — MTU).
Наибольшая полезная нагрузка пакета L2CAP (в байтах), которую автор запроса может принять в данном канале. Вследствие асимметричности MTU отправитель запроса должен указать, какой MTU он готов принять по обратному каналу (если это значение отличается от значения, принятого по умолчанию). Реализации L2CAP должны поддерживать MTU минимального размера — 48 байт. Значение по умолчанию — 672 байт. Оно не подлежит согласованию, это просто информация о том, MTU какого размера может принимать отправитель запроса.
• Время ожидания отказа. Напомним, что в схеме ARQ определен отказ от полезной нагрузки, если некоторое число попыток ее передачи завершилось сбоем. Время ожидания отказа — это параметр, определяющий промежуток времени, в течение которого источник будет предпринимать попытки передачи, прежде чем отказаться от пакета L2CAP.
• Качество обслуживания (quality of service — QoS). Определяет спецификацию потока трафика в канале для трафика локального устройства (исходящего трафика). Этот параметр описывается ниже.
В двух последних случаях возможно согласование параметров: сторона-ответчик может принять параметры QoS и время ожидания отказа или предложить согласовать их. Сторона-источник может в ответ принять или отклонить измененные параметры.
Команда ответа на запрос конфигурации также включает поле флагов, имеющее такое же значение, как в команде-запросе. Поле результата в команде ответа указывает, был переданный запрос принят или отклонен. Поле опций содержит тот же список параметров, что имеется в соответствующей команде запроса. Если запрос был успешен, эти параметры включают возвратные значения всех безразличных параметров (см. последующее обсуждение QoS). Если запрос был неудачным, в ответ должны включаться отклоненные параметры, значения которых меняются на приемлемые для станции-ответчика.
Команды разрыва соединения используются для разрыва логического канала.
Эхо-команды — это требование запроса от удаленного объекта L2CAP. Такие команды обычно используются для тестирования канала или передачи информации о поставщике с использованием дополнительного поля данных.Информационные команды — это запросы информации о реализации от удаленного объекта L2CAP.