추가 WS-Discovery 기능

경우에 따라 DPWS( 웹 서비스용 디바이스 프로필 ) 및 관련 사양이 구현 기능을 명시적으로 정의하지 않습니다. 예를 들어 WS-Discovery 사양은 다중 홈 환경에서 클라이언트 및 호스트 동작을 정의하지 않습니다. WSDAPI가 구현되었을 때 사양에 정의된 기능 외에 일부 검색 기능이 추가되었습니다.

또한 WSDAPI는 HTTP를 통해 검색 프록시와 통신하기 위해 선택한 WS-Discovery v1.1 CD1 부분을 구현합니다.

이 항목의 목적은 WSDAPI에서 구현하지만 DPWS 또는 WS-Discovery 사양에 설명되지 않은 검색 기능을 설명하는 것입니다.

IPv6 주소 및 soap.udp URI 형식

SOAP over-UDP 및 WS-Discovery 리터럴 IPv6 주소가 soap.udp URI 형식으로 표시되는 방식을 명시적으로 설명하지 않습니다. "URI(Uniform Resource Identifiers): Generic Syntax"라는 RFC 2396은 리터럴 IPv6 주소가 soap.udp URI 형식에서 지원되지 않음을 나타냅니다.

간단히 하기 위해 WSDAPI는 soap.udp 체계에서 대괄호로 묶인 IPv6 주소를 인식합니다. 예를 들어 주소 soap.udp://[2001:abcd:0001:0002:0003:0004:0005:0032]:3702 는 WSDAPI에서 인식됩니다. 이는 IPv6 주소가 HTTP에서 처리되는 방식과 유사합니다.

Hello 및 XAddrs

WSDAPI의 DPWS 호스팅 개체는 메시지 본문에 XAddrs가 포함된 WS-Discovery Hello 메시지를 보내지 않습니다. 클라이언트가 XAddrs를 가져와야 하는 경우 클라이언트는 Hello 메시지를 받은 후 항상 Resolve 메시지를 보냅니다.

이 방법의 두 가지 이점이 있습니다. 첫째, WSDAPI를 기반으로 하는 디바이스는 개인 네트워크의 IP 주소를 공개하는 XAddrs를 노출하지 않습니다. 둘째, WSDAPI를 기반으로 하는 디바이스는 클라이언트에 액세스할 수 있는 XAddr만 노출합니다. 즉, IPv6 주소는 IPv4 클라이언트로 전송되지 않습니다.

Probe 또는 Resolve 메시지가 수신되면 단일 XAddr만 응답으로 전송됩니다. 보낸 XAddr은 요청이 수신된 로컬 주소에 해당합니다. 요청이 IPv6을 통해 서브넷에서 수신된 경우 WSDAPI는 응답에 전역 IPv6 주소를 제공합니다.

기본 설정 주소

디바이스는 Hello, ProbeMatch 또는 ResolveMatch 메시지에 여러 XAddr를 제공할 수 있습니다. 다른 전송 주소가 있는 여러 엔드포인트에서 서비스를 사용할 수도 있습니다. 이러한 경우 WSDAPI는 찾은 첫 번째 사용 가능한 주소에서 디바이스와 통신하려고 시도합니다. 주소는 IPv4가 설치된 컴퓨터의 IPv4 또는 IPv6이 설치된 컴퓨터의 IPv6과 같은 사용 가능한 프로토콜에서 사용하는 경우 사용할 수 있습니다. 또한 주소가 로컬 서브넷에 없는 디바이스 또는 서비스에서 온 경우 IPv4, IPv6 사이트 로컬 또는 IPv6 링크 로컬인 경우에만 사용할 수 있습니다.

메타데이터 교환의 WSDL

WSDAPI를 기반으로 하는 디바이스 및 서비스는 이 정보를 제공하기 위해 애플리케이션에서 확장하지 않는 한 메타데이터 교환에서 WSDL을 제공하지 않습니다. 기본적으로 WSDL 프로비전은 프로그래밍 모델의 일부가 아닙니다.

APP_MAX_DELAY

DPWS는 프로브 수신과 ProbeMatch 전송 사이의 지연 간격인 APP_MAX_DELAY 5,000밀리초로 정의합니다. Windows 방화벽을 사용하려면 UDP에 대한 멀티캐스트 요청/유니캐스트 응답 모델이 4초 방화벽 창 내에서만 작동해야 합니다. 결과적으로 WSDAPI는 APP_MAX_DELAY 설명한 5,000ms 창 대신 2,500ms 이하로 응답을 전송합니다.

IANA 포트 예약

WSDAPI는 기본적으로 HTTP 트래픽에 TCP 포트 5357을 사용하고 HTTPS 트래픽에는 TCP 포트 5358을 사용합니다. 이러한 포트는 HTTP.sys URL 예약을 통해 낮은 권한 프로세스를 위해 예약되며 IANA와 함께 예약됩니다.

UDP 포트 공유

WSDAPI는 포트 공유를 사용합니다. 포트 3702로 전송된 유니캐스트 메시지는 모든 WSDAPI 기반 애플리케이션에서 제대로 처리되지 않을 수 있습니다. 애플리케이션이 포트 3702에만 바인딩되는 경우 WSDAPI 기반 애플리케이션이 해당 포트를 올바르게 사용하지 못할 수 있습니다.

WS-Discovery v1.1 CD1 프록시

WSDAPI는 WS-Discovery v1.1 CD1 관리 모드 프로토콜을 구현하는 검색 프록시를 검색하고 통신합니다. WS-Discovery v1.1 CD1은 프록시와 클라이언트 또는 디바이스 간의 통신을 위한 HTTP 프로토콜에 대한 명시적 설명을 포함하는 WS-Discovery 첫 번째 수정 버전입니다.

멀티캐스트 요청에 사용되는 동시 버전 수를 제한하기 위해 WSDAPI는 2005/04 네임스페이스에서 WS-Discovery 프로브 요청을 보내지만 WS-Discovery v1.1 CD1 DiscoveryProxy 형식을 검색합니다. 프록시가 응답하면 WSDAPI는 WS-Discovery v1.1 CD1에 정의된 대로 지정된 프록시 엔드포인트에 HTTP 프로브 또는 확인 요청을 보냅니다.