직접 페어링 구현 Wi-Fi

이 섹션에서는 주변 장치에서 탭 및 설정 및 탭 및 다시 연결 사용 사례에 참여하기 위한 디자인 지침과 요구 사항을 제공합니다.

참고

이 항목에 설명된 페어링 구현은 현재 프린터 디바이스에만 페어링하기 위해 Windows 8.1 지원됩니다.

Windows 10 이상은 Wi-Fi 얼라이언스의 Wi-Fi P2P 통신 사업자 구성 레코드를 통해 직접 정적 연결 인계를 Wi-Fi NFC를 지원합니다. 자세한 내용은 Wi-Fi Alliance를 참조하세요.

주변 장치 Wi-Fi 직접 디바이스 페어링

탭하는 동안 NFP는 연결 디바이스에서 페어링 정보를 받습니다. NFP는 페어링 정보를 Windows에 전달합니다. Wi-Fi Direct 디바이스는 Wi-Fi Alliance Out-Of-Band(OOB) 페어링 절차 및 NFC 포럼 권장 사항을 따릅니다. Windows는 아래에 정의된 대로 독점 페어링 메시지를 사용합니다.

Windows는 사용자에게 동의하라는 메시지를 표시하고, 동의가 제공되면 Windows는 성공할 때까지 각 주소에 대한 연결을 순서대로 시도합니다. PC의 NFP 공급자와 연결 디바이스 간에는 더 이상 상호 작용이 없습니다.

예를 들어 NFC를 사용하여 쌍 정보를 정적 또는 수동 NFC 태그에 저장하여 단방향 설치를 수행합니다(정적 에뮬레이션 모드의 활성 NFC 태그도 사용할 수 있음). Windows는 이 페어링 정보를 구독합니다. PC의 NFC 지원 NFP 공급자는 태그에서 연결 정보를 수신하고 구독자로 Windows에 전달합니다. 연결 정보를 받으면 Windows는 디바이스 클래스별 기술을 사용하여 대역 내 디바이스의 실제 설치를 수행합니다.

상호 운용성 요구 사항

NFP 공급자 간의 상호 운용성을 보장하려면 페어링 정보를 공급자별 메시지 형식으로 캡슐화해야 합니다.

이 문서의 다른 곳에서 설명한 대로 NFC 지원 NFP 공급자 이외의 근접 기술에 대한 특정 요구 사항은 없습니다.

Windows에서는 NFC 지원 NFP 공급자가 단방향 페어링을 위해 Wi-Fi Direct OOB 페어링 정보를 전달하기 위한 특정 NFC 포럼 정의 메커니즘을 지원해야 합니다. NDEF 메시지에는 TNF 필드 값이 0x01 및 TYPE 필드가 "Hs"인 첫 번째 레코드와 Wi-Fi 직접 이동 통신 사업자 구성 레코드를 가리키는 대체 이동 통신 사업자 레코드가 포함됩니다. 이 메서드에서는 NDEF 레코드의 PAYLOAD만 사용됩니다.

Wi-Fi Direct용 NFC를 사용한 단방향 페어링

이 섹션에서는 NFC, Wi-Fi Direct 및 Windows가 함께 작동하여 프린터와 같은 Wi-Fi Direct 디바이스에 대한 단방향 무선 페어링을 지원하는 방법에 대해 자세히 설명합니다.

NFP 공급자 참조

Wi-Fi 직접 페어링은 NFC 포럼 표준화된 연결 핸드오버 선택 메시지 유형을 사용하여 수행됩니다. 아래 그래픽에서는 특히 NDEF 레코드 3과 4를 Wi-Fi 직접 디바이스 페어링에 연결 인계 선택 메시지가 적용되는 방법에 대한 개요를 제공합니다. 인계 선택 메시지는 하나 이상의 "ac" 또는 "대체 이동 통신 사업자" 레코드를 설명합니다. 이러한 레코드는 인계 선택 레코드를 순차적으로 따르며 각 레코드에는 잘 정의된 형식이 있습니다. 마지막으로 메시지에는 페어링 작업을 처리하는 방법에 대한 정보를 Windows에 제공하는 Microsoft 정의 디바이스 페어링 레코드가 포함됩니다.

연결 인계 메시지를 선택합니다.

Wi-Fi 직접 디바이스 페어링 메시지

다음 샘플 사용 사례에서 NFC 형식 2 태그는 설명 예제로 사용됩니다. 다른 NFC 태그 유형을 사용해야 하는 경우 해당 태그 정의에 따라 NDEF 메시지를 올바르게 캡슐화해야 합니다.

필드 Description
Tnf 0x02 다음 형식 필드의 형식입니다. RFC 2046에 정의된 미디어 형식입니다.
형식 'application/vnd.ms-windows.wfd.oob' 이 시나리오에 대해 정의하는 새 형식 문자열입니다.
OOB 데이터 크기 WORD 최대 64KB의 OOB 데이터가 지원되었습니다.
직접 OOB 데이터 Wi-Fi <이전 필드로 표시된 크기의 Blob> 아래에 정의된 대로 직접 OOB 데이터를 Wi-Fi.

Wi-Fi 직접 OOB 형식

다음 표에서는 WiFi Direct OOB 데이터의 형식을 설명합니다. OOB 단방향 데이터는 단방향 P2P OOB 디바이스에 의해 전송될 수 있습니다.

특성 특성 ID 필수/선택 참고
OOB 헤더

OOB 헤더 특성 형식 테이블을 참조하세요.
해당 없음 필수 OOB 헤더 특성은 P2P OOB 데이터 Blob에 있고 OOB 형식 값이 "OOB 단방향 프로비저닝 데이터"로 설정되어 있어야 합니다.
OOB 디바이스 정보

OOB 디바이스 정보 특성 형식 표를 참조하세요.
1 필수 이 특성이 있어야 합니다. 이 P2P 디바이스에 대한 정보를 제공합니다.
OOB 프로비저닝 정보 2 필수 이 특성이 있어야 합니다. 이 P2P 디바이스에서 사용할 것으로 예상되는 프로비저닝 정보를 제공합니다.
OOB 구성 시간 제한 5 필수 이 특성이 있어야 합니다. 이 P2P 디바이스가 Wi-Fi Direct를 통해 응답을 기다리는 기간에 대한 정보를 제공합니다.

OOB 헤더 특성 형식

필드 이름 크기(옥텟) Description
총 데이터 길이 2 변수 전체 OOB 데이터 Blob의 길이(헤더 포함)입니다.
길이 2 변수 OOB 헤더에 있는 다음 필드의 길이입니다.
버전 1 0x10 이 P2P OOB 레코드의 버전을 식별하는 값입니다.
OOB 형식 1 변수 OOB 트랜잭션 유형을 식별하는 값입니다. 특정 값은 OOB 트랜잭션 형식 테이블에 정의됩니다.
0 또는 3 변수 공급업체별 OUI. 이 값은 선택 사항입니다. OOB 유형이 공급업체별인 경우에만 존재해야 합니다.
OUI 유형 0 또는 1 변수 공급업체별 형식입니다. 이 값은 선택 사항입니다. OOB 유형이 공급업체별인 경우에만 존재해야 합니다.

OOB 트랜잭션 유형

OOB 형식(16진수) Description
0x00 OOB 단방향 프로비저닝 데이터
0x01 OOB 프로비저닝 수신기 데이터
0x02 OOB 프로비저닝 커넥터 데이터
0x03 OOB 데이터 다시 호출
0x04-0xDC 예약됨
0xDD 공급업체별
0xDE-0xFF 예약됨

OOB 디바이스 정보 특성 형식

필드 이름 크기(옥텟) Description
특성 ID 1 1 P2P OOB 특성의 형식 식별 특정 값은 P2P OOB 특성 테이블에 정의됩니다.
길이 2 변수 특성에 있는 다음 필드의 길이입니다.
P2P 디바이스 주소 6 P2P 사양에 정의된 대로. P2P 디바이스를 고유하게 참조하는 데 사용되는 식별자입니다.
구성 메서드 2 P2P 사양에 정의된 대로. 이 디바이스에서 지원하는 WSC 메서드입니다.

참고: Config 메서드 필드 내의 바이트 순서는 big-endian이어야 합니다.
기본 디바이스 유형 8 P2P 사양에 정의된 대로. P2P 디바이스의 기본 디바이스 유형입니다. WSC 기본 디바이스 유형 특성의 데이터 부분만 포함합니다(특성 ID 및 길이 필드 제외).

참고: 기본 디바이스 유형 필드 내의 바이트 순서는 big-endian이어야 합니다.
디바이스 기능 비트맵 1 P2P 사양에 정의된 대로. P2P 디바이스의 기능을 나타내는 매개 변수 집합입니다.
디바이스 이름 변수 P2P 사양에 정의된 대로. P2P 디바이스의 이름입니다. 전체 WSC 디바이스 이름 특성 TLV 형식을 포함합니다.

참고: 디바이스 이름 필드 내의 바이트 순서는 big-endian이어야 합니다.

P2P OOB 특성

OOB 형식(16진수) Description
0x00 OOB 상태
0x01 OOB 디바이스 정보
0x02 OOB 프로비저닝 정보
0x03 OOB 그룹 ID
0x04 OOB 수신 대기 채널
0x05 OOB 구성 시간 제한
0x06 0xDC 예약됨
0xDD 공급업체별 특성
0xDE-0xFF 예약됨

OOB 프로비저닝 정보 특성 형식

필드 이름 크기(옥텟) Description
특성 ID 1 1 P2P OOB 특성의 형식 식별 특정 값은 P2P OOB 특성 테이블에 정의되어 있습니다.
길이 2 변수 특성에 있는 다음 필드의 길이입니다.
프로비전 설정 비트맵 1 변수 프로비저닝 설정 테이블에 정의된 프로 비전 설정 옵션 집합입니다.
선택한 구성 방법 2 P2P 사양에 정의된 대로 입니다. 프로비저닝을 위해 이 P2P 디바이스에서 선택한 WSC 메서드입니다.
고정 길이 1 0 - 8 다음 PIN 데이터 필드의 바이트 수입니다. 0으로 설정된 이 필드는 추가 PIN 데이터가 없음을 나타냅니다.
데이터 고정 변수 n 이 필드는 선택 사항입니다. 이 필드는 PIN 길이 필드가 0이 아니고 프로비전에 사용할 PIN을 나타내는 옥텟 배열을 포함하는 경우에만 존재합니다.

프로비저닝 설정

Bits(s) 정보 참고
0 새 그룹 만들기 이 프로비전 정보가 대상 P2P 디바이스를 사용하여 새 그룹을 구성하는 경우 새 그룹 만들기 비트는 1로 설정됩니다. 그렇지 않으면 이 프로비저닝 정보는 기존 그룹에 가입하기 위한 것입니다.
1 그룹 유형 설정 적용 원하는 그룹 유형 비트를 적용해야 하는 경우 그룹 유형 설정 적용 비트가 1로 설정됩니다. 그렇지 않으면 원하는 그룹 유형 비트가 단순히 기본 설정입니다.
2 원하는 그룹 유형 원하는 그룹 유형이 일시적이면 원하는 그룹 유형 비트가 0으로 설정되고 원하는 그룹 유형이 지속적이면 1로 설정되어야 합니다.
3 - 7 예약됨  

OOB 구성 시간 제한 특성 형식

필드 이름 크기(옥텟) Description
특성 ID 1 5 P2P OOB 특성의 형식 식별 특정 값은 P2P OOB 특성 테이블에 정의되어 있습니다.
길이 2 1 특성에 있는 다음 필드의 길이입니다.
수신기 구성 시간 제한 1 0 ~ 255 이 P2P 디바이스는 OOB 데이터 전송 후 100밀리초 단위로 Wi-Fi 직접 통신을 기다리는 데 소요되는 시간입니다. (최대 25.5초).

Windows 디바이스 페어링 레코드

Windows 디바이스 페어링 레코드는 NDEF 사양을 따릅니다. 연결 인계 선택 메시지를 처리하는 방법에 대한 추가 정보를 Windows에 제공합니다. TNF 및 형식 필드는 NDEF 사양에 따라 지정해야 합니다. 아래의 다른 필드는 NDEF 레코드의 페이로드 필드에 순차적으로 나열됩니다.

필드 이름 길이 값 Description
Tnf 0x02 3비트 다음 형식 필드의 형식입니다. RFC 2046에 정의된 미디어 형식입니다.
형식 'application/vnd.ms-windows.devicepairing' 0x28 바이트 이 시나리오에 대해 정의하는 새 형식 문자열입니다.
MajorVersion 0x1 2바이트 주 버전은 0x1 합니다.
MinorVersion 0x0 2바이트 부 버전은 0x0 합니다.
플래그 0x0 또는 0x01 4바이트 모든 전송을 시도하려면 0x0 로 설정합니다.

순차적으로 설치를 시도하고 첫 번째 성공 후 중지하려면 0x1 로 설정합니다. 전송에 대한 기본 설정은 일련의 대체 운송업체 레코드로 표시됩니다.

참고 0x0064 통해 0x0002 값은 예약되어 있습니다.
디바이스 이름 길이 디바이스 이름 필드의 길이입니다. 1바이트 디바이스 식별 이름의 길이입니다.
장치 이름 UTF-8로 인코딩된 문자열은 최대 255바이트입니다. 디바이스 이름 길이 클라이언트의 동의 UI에 표시되는 디바이스의 이름입니다.

Wi-Fi Direct just works ceremon, static connection Handover 태그 형식

예를 들어 NFC 수동 태그에 대한 일반적인 구현은 다음과 같습니다. 이는 Wi-Fi Direct 캐리어 레코드, 네트워크 공유 프린터 및 ms-device 페어링 레코드가 있는 정적 연결 인계 사례에 해당합니다.

이 첫 번째 표에서는 태그의 Wi-Fi 직접 페어링 부분의 형식을 보여 줍니다.

Offset 콘텐츠 길이 설명
0 0x91 1 NDEF 레코드 헤더:

MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b
1 0x02 1 레코드 형식 길이: 28진수
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 레코드 형식 길이: 28진수
8 0x04 1 페이로드 길이: 48진수
9 0x61 0x63 2 레코드 유형: "ac"
11 0x01 1 캐리어 플래그: CPS=1, "활성"
12 0x01 1 캐리어 데이터 참조 길이: 18진수
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 ID 길이: 18진수
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 ID: "0"
54 0x3E 0x00 2 Wi-Fi Direct OOB 데이터 길이: 628진수입니다. 길이는 부호 없는 짧은 길이로 읽혀지고 전체 Blob을 포함합니다. 2개의 길이 옥텟을 포함합니다. 이 값은 little-endian 형식으로 저장해야 합니다.
56 0x02, 0x00 2 헤더 길이: 28진수
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 직접 P2P 디바이스 MAC 주소: "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 디바이스 이름 길이: 138진수
84

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

0x4d 0x6f 0x75 0x73 0x65

13 UTF-8의 디바이스 식별 이름입니다. NULL 종결 문자가 없으며 UTF-8은 문자당 1~2바이트일 수 있습니다. 이 예제에서는 "Contoso Mouse"를 읽습니다.
97 0x02 1 특성: 프로비전 정보
98 0x0c 0x00 2 프로비전 정보 길이: 128진수
100 0x07 1 비트맵 설정: 새 그룹, 영구 적용
101 0x01 0x00 2 Config 메서드: pin entry
103 0x08 1 핀 길이: 8 옥텟
104

0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
8 핀: "12345678"
112 0x05 1 특성: 구성 시간 제한 정보
113 0x01 0x00 2 구성 시간 제한 길이
115 0x64 1 100밀리초 단위로 10초

이 두 번째 표에서는 태그의 네트워크 프린터 페어링 부분의 형식을 보여 줍니다.

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 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(대역 외) 정보가 전송되기 전에 갑자기 나가면 디바이스가 연결될 수 있지만 PC에서 디바이스를 찾을 수 없습니다. 이 경우 PC의 동의 UI가 없으며 사용자가 다시 탭해야 합니다. 디바이스를 다시 탭할 때 이미 검색할 수 있는 경우 검색 가능한 상태로 유지되어야 하며 시간 제한 기간을 다시 설정해야 합니다.

Wi-Fi Direct 디바이스의 경우 Wi-Fi 라디오가 꺼지면 설치에 성공하지 않습니다.

사용자가 거의 동시에 두 디바이스를 탭하는 경우 처음 받은 OOB 정보에 대한 페어링만 시도됩니다.

설치를 탭하거나 다시 연결하려면 탭을 지원하지 않는 운영 체제를 실행하는 시스템에서 디바이스를 탭하면 디바이스가 연결 가능 모드로 전환될 수 있지만 페어링은 수행되지 않습니다. 사용자는 Bluetooth에 제공된 페어링 UI를 사용하고 페어링 단추를 사용하여 페어링을 시작해야 합니다.