реализация Wi-Fi прямого соединения

В этом разделе приведены рекомендации по проектированию и требования к периферийному устройству для участия в сценариях использования Tap and Setup и Tap and Reconnect.

Замечание

Реализация связывания, описанная в этом разделе, в настоящее время поддерживается в Windows 8.1 только для связывания с устройствами принтера.

Windows 10 и более поздних версий поддерживает NFC для Wi-Fi передачи статических подключений через Wi-Fi альянс Wi-Fi запись конфигурации оператора P2P. Дополнительные сведения см. в разделеWi-Fi Alliance.

Прямое связывание периферийного устройства Wi-Fi

Во время касания NFP получает сведения о связывании с устройства подключения. NFP передает сведения о связывании в Windows. Wi-Fi Прямые устройства следуют процедуре связывания Wi-Fi Alliance Out-Of-Band (OOB) и рекомендациям форума NFC. Windows использует проприетарное сообщение для настройки связи, определенное ниже.

Windows предложит пользователю предоставить согласие, и если оно будет дано, Windows попытается подключиться к каждому из адресов по порядку, пока одно из подключений не завершится успешно. Дальнейшего взаимодействия между поставщиком NFP на ПК и подключающимся устройством нет.

Использование NFC в качестве примера, однонаправленная установка выполняется путем хранения сведений о связывании в статическом или пассивном теге NFC (активный тег NFC в режиме статической эмуляции также может использоваться). Windows подписывается на эти сведения о связывании. Поставщик NFP с поддержкой NFC на компьютере получает сведения о подключении из тега и передает их в Windows в качестве подписчика. После получения сведений о подключении Windows выполняет фактическую установку устройства через внутриполосное соединение, используя определенные методы для класса устройств.

Требования к взаимодействию

Чтобы обеспечить совместимость между поставщиками NFP, информация о сопряжении должна быть инкапсулирована в формате сообщения, специфичном для конкретного поставщика.

Как описано в этом документе, нет конкретных требований к технологиям близкого взаимодействия, кроме поставщиков NFP с поддержкой NFC.

Для Windows требуется, чтобы поставщики NFP с поддержкой NFC поддерживали определенный механизм NFC Forum для передачи сведений о связывании Wi-Fi Direct OOB для однонаправленного подключения. Сообщение NDEF содержит первую запись с значением поля TNF 0x01 и полем TYPE, равным "Hs", а также альтернативную запись носителя, указывающую на запись конфигурации прямого канала Wi-Fi. В этом методе будет использоваться только PAYLOAD записи NDEF.

Однонаправленное связывание с помощью NFC для Wi-Fi Direct

В этом разделе содержатся дополнительные сведения о том, как NFC, Wi-Fi Direct и Windows работают вместе для поддержки однонаправленного беспроводного сопряжения для устройств Wi-Fi Direct, таких как принтеры.

Ссылки на поставщиков NFP

Wi-Fi Прямое связывание выполняется с помощью стандартизированного типа сообщения "Выбор соединения" согласно форуму NFC. На рисунке ниже представлен обзор того, как используется сообщение выбора передачи подключения для Wi-Fi прямой привязки устройств, в частности записей NDEF 3 и 4. Сообщение "Выбор переключения" описывает одну или несколько записей "ac" или "Альтернативный оператор". Эти записи следуют за записью выбора передачи последовательно, и каждая из них имеет четко определенный тип. Наконец, сообщение будет содержать определённую Microsoft запись сопряжения устройств, которая предоставляет Windows сведения о том, как обработать процесс сопряжения.

Выберите сообщение для передачи подключения.

Wi-Fi сообщение о прямом связывании устройств

В примерах вариантов использования, приведенных ниже, теги типа NFC 2 используются в качестве иллюстрации. Если необходимо использовать другой тип тега NFC, сообщение NDEF должно быть правильно инкапсулировано в соответствии с этим определением тега.

Поле Ценность Описание
TNF 0x02 Формат следующего поля Type. Тип носителя, определенный в RFC 2046.
Тип 'application/vnd.ms-windows.wfd.oob' Новая строка типа, определяемая для этого сценария.
Размер данных OOB СЛОВО Поддерживается до 64 КБ данных OOB.
Wi-Fi данных direct OOB <BLOB размера, указанного предыдущим полем> Wi-Fi прямые данные OOB, как описано ниже.

Wi-Fi формат direct OOB

В следующей таблице описывается формат данных OOB WiFi Direct. Однонаправленные данные OOB могут передаваться любым однонаправленным устройством OOB P2P.

Атрибуты Идентификатор атрибута Обязательный или необязательный Замечание
Заголовок OOB

См. таблицу формата атрибута заголовка.
Не применимо Обязательно Атрибут заголовка OOB должен присутствовать в blob-объекте данных OOB P2P, а для него задано значение типа OOB "Данные подготовки в юнинаправленном формате OOB".
Сведения об

устройстве OOB См. таблицу формата атрибутов сведений об устройстве OOB.
1 Обязательно Этот атрибут должен присутствовать. Он содержит сведения об этом устройстве P2P.
Сведения о подготовке OOB 2 Обязательно Этот атрибут должен присутствовать. Он предоставляет сведения о настройке, которые это устройство P2P ожидает использовать.
Время ожидания конфигурации OOB 5 Обязательно Этот атрибут должен присутствовать. Он содержит сведения о том, как долго устройство P2P ожидает ответа по Wi-Fi Direct.

Формат атрибута заголовка OOB

Имя поля Размер (октеты) Ценность Описание
Общая длина данных 2 Переменная Длина всего OOB BLOB-объекта данных (включая заголовок).
Длина 2 Переменная Длина следующих полей в заголовке OOB.
Версия 1 0x10 Значение, определяющее версию этой записи OOB P2P.
Тип OOB 1 Переменная Значение, определяющее тип транзакции OOB. Конкретное значение определяется в таблице типов транзакций OOB .
ДА 0 или 3 Переменная OUI для конкретного поставщика. Это необязательное значение. Должно присутствовать только в том случае, если тип OOB специфический для поставщика.
Тип OUI 0 или 1 Переменная Тип, зависящий от поставщика. Это необязательное значение. Должно присутствовать только если тип OOB специфичен для поставщика.

Типы транзакций OOB

Тип OOB (шестнадцатеричный) Описание
0x00 Данные подготовки OOB в юнинаправленном формате
0x01 Данные слушателя OOB настройки
0x02 Данные соединителя для первичной настройки OOB
0x03 Данные повторного вызова OOB
0x04-0xDC Зарезервировано
0xDD Специфичный для поставщика
0xDE-0xFF Зарезервировано

Формат атрибута сведений об устройстве OOB

Имя поля Размер (октеты) Ценность Описание
Идентификатор атрибута 1 1 Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P.
Длина 2 Переменная Длина следующих полей в атрибуте.
Адрес устройства P2P 6 Как определено в спецификации P2P. Идентификатор, используемый для уникальной ссылки на устройство P2P.
Методы конфигурации 2 Как определено в спецификации P2P. Методы WSC, поддерживаемые этим устройством.

Заметка: Порядок байтов в поле "Методы конфигурации" должен быть порядком старшего байта.
Основной тип устройства 8 Как определено в спецификации P2P. Основной тип устройства P2P. Содержит только часть данных атрибута основного типа устройства WSC (исключает поля идентификатора атрибута и длины).

Примечание: Порядок байтов в поле «Основной тип устройства» должен быть в формате big-endian.
Растровое изображение возможностей устройства 1 Как определено в спецификации P2P. Набор параметров, указывающих возможности устройства P2P.
Имя устройства Переменная Как определено в спецификации P2P. Удобочитаемое имя устройства P2P. Содержит полный формат TLV атрибута имени устройства WSC.

Заметка: Порядок байтов в поле «Имя устройства» должен быть в порядке big-endian.

Атрибуты P2P OOB

Тип OOB (шестнадцатеричный) Описание
0x00 Состояние OOB
0x01 Сведения об устройстве OOB
0x02 Сведения о подготовке OOB
0x03 Идентификатор группы OOB
0x04 Канал прослушивания OOB
0x05 Время ожидания конфигурации OOB
0x06-0xDC Зарезервировано
0xDD Конкретный атрибут поставщика
0xDE-0xFF Зарезервировано

Формат атрибута информации о настройке OOB

Имя поля Размер (октеты) Ценность Описание
Идентификатор атрибута 1 1 Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P .
Длина 2 Переменная Длина следующих полей в атрибуте.
Растровая карта параметров настройки 1 Переменная Набор параметров настройки, определённых в таблице параметров настройки.
Выбранный метод конфигурации 2 Как определено в спецификации P2P. Метод WSC, выбранный этим устройством P2P для настройки.
Длина штифта 1 0 - 8 Число байтов в следующем поле данных ПИН-кода. В этом поле значение 0 указывает на отсутствие дополнительных данных ПИН-кода.
Закрепление данных Переменная н Это поле является необязательным. Это поле присутствует только в том случае, если поле длины ПИН-кода не равно 0 и содержит массив октетов, представляющих ПИН-код, используемый для подготовки.

Параметры настройки

Биты Информация Примечания.
0 Создание новой группы Бит "Создание новой группы" устанавливается в 1, если эта информация о конфигурировании предназначена для формирования новой группы с целевым P2P-устройством. В противном случае эти данные настройки предназначены для вступления в существующую группу.
1 Применение параметра типа группы Бит настройки принудительного типа группы устанавливается в 1, если необходимо принудительно применить бит типа требуемой группы. В противном случае бит типа требуемой группы является просто предпочтением.
2 Тип требуемой группы Бит типа требуемой группы должен иметь значение 0, если тип требуемой группы является временным, и должен иметь значение 1, если тип требуемой группы является постоянным.
3 - 7 Зарезервировано  

Формат атрибута времени ожидания конфигурации OOB

Имя поля Размер (октеты) Ценность Описание
Идентификатор атрибута 1 5 Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P .
Длина 2 1 Длина следующих полей в атрибуте.
Время ожидания настройки прослушивателя 1 0 - 255 Время, которое устройство P2P проведет в ожидании Wi-Fi прямой связи после передачи данных OOB, в единицах 100 миллисекунд. (Не более 25,5 секунд).

Запись сопряжения устройств Windows

Запись сопряжения устройств Windows соответствует спецификации NDEF. В нем содержатся дополнительные сведения для Windows о том, как обрабатывать сообщение "Выбор сообщения о передаче подключения". Поля TNF и Type должны быть указаны в соответствии со спецификацией NDEF. Остальные поля ниже будут последовательно перечислены в поле полезных данных записи NDEF.

Имя поля Ценность Значение длины Описание
TNF 0x02 3 бита Формат следующего поля Type. Тип носителя, определенный в RFC 2046.
Тип "application/vnd.ms-windows.devicepairing" 0x28 байт Новая строка типа, определяемая для этого сценария.
Мажорная версия 0x1 2 байта Требуется, чтобы основная версия была 0x1.
Младшая версия 0x0 2 байта Минорная версия должна быть 0x0.
Флаги 0x0 или 0x01 4 байта Установите значение 0x0, чтобы попробовать все транспорты.

Установите значение 0x1, чтобы попытаться выполнить установку последовательно и остановиться после первого успешного выполнения. Предпочтение транспорта указывается последовательностью альтернативных записей перевозчика.

Примечание Значения от 0x0002 по 0x0064 зарезервированы.
Длина дружественного имени устройства Длина поля дружественного имени устройства. 1 байт Длина удобного имени устройства.
Дружественное имя устройства Строка в кодировке UTF-8 до 255 байт. Длина понятного пользователю имени устройства Понятное имя устройства, которое будет отображаться в интерфейсе согласия на клиентском устройстве.

Wi-Fi Direct просто работает, церемония, формат тега передачи статических подключений

Например, ниже приведена типичная реализация пассивного тега NFC. Это соответствует регистру передачи статических подключений с записью Wi-Fi Direct carrier, принтером общего сетевого ресурса и записью связывания ms-устройств.

Эта первая таблица иллюстрирует формат Wi-Fi части прямого связывания тега.

Offset Содержимое Длина Объяснение
0 0x91 1 Заголовок записи NDEF:

MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b
1 0x02 1 Длина типа записи: 2 октета
2 0x0A 1 Длина типа записи: 10 октетов
3 0x48 0x73 2 Тип записи: "Hs"
5 0x12 1 Номер версии: старший = 1, младший = 2
6 0xD1 1 Заголовок записи NDEF:

MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b
7 0x02 1 Длина типа записи: 2 октета
8 0x04 1 Длина полезных данных: 4 октета
9 0x61 0x63 2 Тип записи: ac
11 0x01 1 Флаги переносчика: CPS=1, "активный"
12 0x01 1 Длина ссылки на данные оператора: 1 октет
13 (тринадцать) 0x30 1 Справочник по данным оператора: "0"
14 0x00 1 Число вспомогательных ссылок на данные: 0
15 0x1A 1 Заголовок записи NDEF:

MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b
16 0x22 1 Длина имени типа записи: 34 октета
17 0x3E 1 Длина полезных данных: 62 октетов
18 0x01 1 Длина идентификатора: 1 октет
19













0x61 0x70 0x70 0x6C 0x69 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2F 0x76 0x6E 0x64 0x2E 0x6D 0x73 0x2D 0x77 0x69 0x6E 0x64 0x6F 0x77 0x73 0x2E 0x77 0x66 0x64 0x2E 0x6F 0x6F 0x62

34 Имя типа записи: application/vnd.ms-windows.wfd.oob
53 0x30 1 Идентификатор: "0"
54 0x3E 0x00 2 Wi-Fi Длина данных Direct OOB: 62 октетов. Длина считывается как беззнаковое короткое целое и включает весь BLOB. Включает в себя 2 октета длины. Это значение должно храниться в маленьком формате.
56 0x02, 0x00 2 Длина заголовка: 2 октета
58 0x10 1 Версия: 0x10
59 0x00 1 Тип OOB: 0x00 (однонаправленный)
шестьдесят 0x01 1 Атрибут: 0x01 (атрибут сведений об устройстве)
61 0x22 0x00 2 Длина сведений об устройстве: 34 октета
63

0x01 0x23 0x34 0xab 0xcd 0xef
6 Wi-Fi MAC-адрес устройства Direct P2P: "01:23:34:ab:cd:ef"
69 0x01 0x00 2 Тип конфигурации
71 0x00 0x01 0x00 0x50

0xF2 0x00 0x00 0x00
8 Основной тип устройства
79 0x12 1 Способность
80 0x10 0x11 2 Атрибут: имя устройства
82 0x00 0x0d 2 Длина имени устройства: 13 октетов
84 0x43 0x6f 0x6e 0x74

0x6f 0x73 0x6f 0x20

0x4d 0x6f 0x75 0x73

0x65
13 (тринадцать) Дружественное имя устройства в кодировке UTF-8. Обратите внимание, что нулевой символ окончания отсутствует, и в UTF-8 на один символ может приходиться один или несколько байтов. В этом примере указано "Contoso Mouse"
97 0x02 1 Атрибут: информация о конфигурировании
98 0x0c 0x00 2 Длина информации для настройки: 12 октетов
100 0x07 1 Настройка битмапа: новая группа, принудительное сохранение
101 0x01 0x00 2 Метод конфигурации: запись пин-кода
103 0x08 1 Длина PIN-кода: 8 октетов
104

0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
8 ПИН-код: "12345678"
112 0x05 1 Атрибут: сведения о времени завершения конфигурации
113 0x01 0x00 2 Время тайм-аута конфигурации
115 0x64 1 10 секунд в 100 миллисекундах

Вторая таблица иллюстрирует формат части тега, относящейся к настройке сетевых принтеров.

Offset Содержимое Длина Объяснение
116 0x12 1 Заголовок записи NDEF:
MB=0b,ME=0b, CF=0b, SR=1b, IL=0b,TNF=010b
117 0x29 1 Поле длины типа
118 0x19 1 Поле длины полезных данных
119

0x61 0x70 0x70 0x6c

0x69 0x63 0x61 0x74

0x69 0x6f 0x6e 0x2f

0x76 0x6e 0x64 0x2e

0x6d 0x73 0x2d 0x77

0x69 0x6e 0x64 0x6f

0x77 0x73 0x2e 0x6e

0x77 0x70 0x72 0x69

0x6e 0x74 0x69 0x6e

0x67 0x2e 0x6f 0x6f 0x62
41 Имя типа записи: application/vnd.ms-windows.nwprinting.oob
160

0x5c 0x5c 0x70 0x72

0x69 0x6e 0x74 0x53

0x65 0x72 0x76 0x65

0x72 0x5c 0x70 0x72

0x69 0x6e 0x74 0x65 0x72 0x4e 0x61 0x6d

0x65
двадцать пять Имя принтера: "\printServer\printerName"

Формат части парного тега MS-Device представлен в третьей таблице.

Offset Содержимое Длина Объяснение
185 0x52 1 Заголовок записи NDEF:

MB=0b, ME=1b, CF=0b, SR=1b, IL=0b,TNF=010b
186 0x28 1 Поле длины типа
187 0x15 1 Поле длины полезных данных
188

0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74

0x69 0x6f 0x6e 0x2f

0x76 0x6e 0x64 0x2e

0x6d 0x73 0x2d 0x77

0x69 0x6e 0x64 0x6f

0x77 0x73 0x2e 0x64

0x65 0x76 0x69 0x63

0x65 0x70 0x61 0x69 0x72 0x69 0x6E 0x67

40 Имя типа записи: application/vnd.ms-windows.devicepairing
228 0x00 0x01 0x00

0x00
4 Версия: Основная = 1, Минорная = 0
232 0x00 1 Флаги: установите значение 0, попробуйте все транспорты
233 0x0F 1 Длина понятного пользователю имени устройства
234 0x43 0x6f 0x6e 0x74

0x6f 0x73 0x6f 0x20

0x50 0x72 0x69 0x6e

0x74 0x65 0x72
15 Понятное имя устройства, отображаемое пользователю: "Contoso Printer"

Wi-Fi требования к прямому подключению

Устройства и клиенты должны иметь включенное Wi-Fi радио. В противном случае подключение завершится неудачей.

Обработка краевых случаев

Если пользователь ранее связал устройство, но затем вручную удалил устройство из списка устройств, повторное нажатие приведет к попытке установить или снова связать его.

Если пользователь входит в диапазон активации, но внезапно покидает его перед передачей информации вне полосы (OOB), устройство может стать доступным для подключения, но ПК не будет искать данное устройство. В этом случае окна подтверждения на компьютере не будет, и пользователю потребуется снова нажать. Если устройство уже обнаруживается при повторном нажатии, оно должно оставаться обнаруживаемым и должно сбросить период времени ожидания.

Если радио Wi-Fi отключается, установка не увенчается успехом для прямых устройств Wi-Fi.

Если пользователь касается двух устройств примерно одновременно, будет предпринята попытка установки соединения только для тех данных OOB, которые были получены первыми.

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