Поделиться через


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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Wi-Fi прямой формат OOB

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

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

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

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

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

Имя поля Размер (октеты) Значение Описание
Общая длина данных 2 Переменная Длина всего большого двоичного объекта данных OOB (включая заголовок).
Длина 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 Reinvoke
0x04 0xDC Зарезервировано
0xDD Зависящие от поставщика
0xDE 0xFF Зарезервировано

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

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

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

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

Примечание: Порядок байтов в поле Имя устройства должен быть большим.

Атрибуты OOB P2P

Тип 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, указывает на отсутствие дополнительных данных ПИН-кода.
Закрепление данных Переменная n Это поле является необязательным. Это поле присутствует только в том случае, если поле Длина ПИН-кода не равно 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.

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

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

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

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

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

В этой первой таблице показан формат части 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



0x76 0x6E 0x64 0x2E 0x77 0x73 0x2E 0x77

0x66 0x64 0x2E 0x6F 0x6F 0x62 0x6D 0x73 0x2D 0x77 0x69 0x6E 0x64 0x6F







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

0x01 0x23 0x34 0xab 0xcd 0xef
6 Wi-Fi MAC-адрес прямого устройства 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

0x65 0x4d 0x6f 0x75 0x73 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20



13 Понятное имя устройства в UTF-8. Обратите внимание, что завершающий символ NULL отсутствует и UTF-8 может содержать один или два байта на символ. В этом примере читается "Мышь Contoso"
97 0x02 1 Атрибут: сведения о подготовке
98 0x0c 0x00 2 Длина сведений о подготовке: 12 октет
100 0x07 1 Задание растрового изображения: новая группа, принудительное применение постоянного
101 0x01 0x00 2 Метод Config: закрепление записи
103 0x08 1 Длина закрепления: 8 октетов
104

0x05 0x06 0x07 0x08 0x01 0x02 0x03 0x04
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

25 Имя принтера: \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 0x00 0x01 0x00
4 Версия: Основной = 1, Дополнительный = 0
232 0x00 1 Флаги: установите значение 0, попробуйте все транспорты
233 0x0F 1 Длина понятного имени устройства
234

0x74 0x65 0x72 0x50 0x72 0x69 0x6e 0x43 0x6f 0x6e 0x74

0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20

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

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

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

Обработка пограничных обращений

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

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

Для устройств Wi-Fi Direct, если Wi-Fi отключается, установка не будет успешной.

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

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