다음을 통해 공유


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

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

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

NFP 공급자 참조

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

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

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

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

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

직접 OOB 형식 Wi-Fi

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

특성 특성 ID 필수/선택 사항 비고
OOB 헤더

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

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

OOB 헤더 특성 형식

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

OOB 트랜잭션 형식

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

OOB 디바이스 정보 특성 형식

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

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

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

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

P2P OOB 특성

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

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

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

프로비저닝 설정

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

OOB 구성 시간 제한 특성 형식

필드 이름 크기(8진수) 가치 설명
특성 ID 1 5 P2P OOB 특성의 형식 식별 특정 값은 P2P OOB 특성 테이블에 정의됩니다.
길이 2 1 특성에서 다음 필드의 길이입니다.
수신기 설정 시간 제한 1 0 - 255 P2P 디바이스가 OOB 데이터 전송 후 Wi-Fi 직접 통신을 기다리는 시간은 100밀리초 단위로 측정됩니다. (최대 25.5초).

Windows 장치 페어링 기록

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

필드 이름 가치 길이 값 설명
TNF(종양 괴사 인자) 0x02 3비트 다음에 표시되는 형식 필드의 형식입니다. 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바이트입니다. 디바이스 친화적인 이름 길이 클라이언트의 동의 UI에 표시되는 디바이스의 이름입니다.

Wi-Fi Direct는 행사, 정적 연결 인계 태그 형식만 작동합니다.

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

이 첫 번째 표는 태그의 Wi-Fi 직접 페어링 부분의 형식을 설명합니다.

상쇄 콘텐츠 길이 설명
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옥텟
여덟 0x04 1 페이로드 길이: 4 옥텟
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 직접 OOB 데이터 길이: 62 옥텟. 길이는 부호 없는 짧게 읽혀지고 전체 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
여덟 기본 디바이스 유형
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 친화적 이름입니다. NULL 종료 문자는 없으며 UTF-8은 문자당 1~2바이트일 수 있습니다. 이 예제는 "Contoso Mouse"라고 표시합니다.
97 0x02 1 특성: 프로비전 정보
98 0x0c 0x00 2 프로비전 정보 길이: 12 옥텟
100 0x07 1 비트맵 설정: 새 그룹, 영구 적용
101 0x01 0x00 2 구성 방법: 고정 항목
103 0x08 1 핀 길이: 8 옥텟
104

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

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

상쇄 콘텐츠 길이 설명
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 페어링 부분의 형식을 보여 줍니다.

상쇄 콘텐츠 길이 설명
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를 사용하고 페어링 단추를 사용하여 페어링을 시작해야 합니다.