WSD 디버그 클라이언트를 사용하여 멀티캐스트 트래픽 확인

일반 호스트와 클라이언트가 네트워크에서 서로를 볼 수 있지만 실제 호스트와 클라이언트가 볼 수 없는 경우 네트워크를 통해 엔드포인트 간에 전송되는 메시지에 문제가 있는 것일 수 있습니다. 제네릭 호스트 및 클라이언트에 대한 자세한 내용은 UDP WS-Discovery에 제네릭 호스트 및 클라이언트 사용을 참조하세요. 전체 네트워크 추적을 수집, 필터링 및 읽기 어려울 수 있으므로 WSD 디버그 클라이언트 도구를 사용하여 WS-Discovery 메시지의 멀티캐스트 측면을 인쇄할 수 있습니다.

멀티캐스트 모드의 WSD 디버그 클라이언트는 클라이언트가 유니캐스트 메시지를 인쇄할 수 없으므로 메시지의 절반만 검사할 수 있습니다. 유니캐스트 트래픽이 관심 있는 경우 UDP WS-Discovery에 대한 네트워크 추적 검사로 직접 건너뜁니다.

이 절차에서는 네트워크의 모든 멀티캐스트 트래픽을 표시하는 메서드를 보여 줍니다. 디바이스 간 멀티캐스트 트래픽만 표시하려면 아래 WSD 디버그 클라이언트 결과 필터링 섹션을 참조하세요.

WSD 디버그 클라이언트를 사용하여 멀티캐스트 트래픽을 확인하려면

  1. 네트워크를 통해 실행되도록 호스트 및 클라이언트를 구성합니다(즉, 호스트와 클라이언트가 다른 컴퓨터에서 작동하는지 확인).
  2. 명령 프롬프트를 열고 다음 명령을 실행합니다. WSDDebug_client.exe /mode 멀티캐스트
  3. 호스트 및 클라이언트를 시작하거나 네트워크 탐색기에서 F5 키를 눌러 오류를 재현합니다.
  4. 메시지가 멀티캐스트 중인지 확인합니다.

필요한 메시지가 WSD 디버그 클라이언트 출력에 표시되는 경우 애플리케이션 오류는 멀티캐스트 메시지 콘텐츠 또는 해당 유니캐스트 응답 메시지의 존재 또는 콘텐츠에 있을 수 있습니다. UDP WS-Discovery에 대한 네트워크 추적 검사의 지침에 따라 문제 해결을 계속합니다.

필요한 메시지가 WSD 디버그 클라이언트 출력에 표시되는 경우 애플리케이션 문제의 원본이 식별되었을 수 있습니다. 멀티캐스트 트래픽이 네트워크에서 전송되지 않을 가능성이 높습니다. 이 오류는 애플리케이션이 멀티캐스트 어댑터를 올바르게 열거하지 않는 경우에 발생할 수 있습니다. 애플리케이션은 모든 네트워크 인터페이스를 통해 멀티캐스트 트래픽을 명시적으로 보내야 합니다. 그렇지 않으면 루프백 인터페이스 또는 다른 인터페이스에 대해 패킷을 생성할 수 없습니다. 패킷이 네트워크에 표시되지 않는지 확인하려면 UDP WS-Discovery에 대한 네트워크 추적 검사 의 지침에 따라 누락된 멀티캐스트 메시지의 증거를 찾습니다.

메시지가 멀티캐스트 중인지 확인

항상 프로브 메시지가 멀티캐스트 중인지 확인합니다. 필요에 따라 HelloResolve 메시지가 멀티캐스트 중인지 확인합니다. 모든 애플리케이션에서 확인 메시지를 사용하는 것은 아닙니다. 클라이언트 및 호스트에서 사용하는 메시지 패턴에 대한 자세한 내용은 WSDAPI 문제 해결을 사용하여 메시지 패턴 및 시작 Exchange 검색 및 메타데이터를 참조하세요.

위의 3단계에서 설명한 대로 메시지를 보내려면 메시지를 트리거해야 합니다. WSD 디버그 클라이언트는 원시 SOAP 메시지를 출력으로 표시합니다. 멀티캐스트 모드에서 WSD 디버그 클라이언트에서 인쇄한 모든 메시지는 멀티캐스트 소켓을 통해 수신되므로 메시지 대상 주소가 표시되지 않습니다.

다음 샘플 WSD 디버그 클라이언트 출력은 프로브 메시지를 보여 줍니다. <wsa:Action> 요소는 메시지를 프로브 메시지로 식별합니다. <wsa:Action> 필드를 검사하여 수신된 메시지가 프로브 메시지인지 확인합니다.

UDP message at 05/08/07 10:06:55 from soap.udp://[127.0.0.1:49334]
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="h
ttp://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="https://schemas.xmlso
ap.org/ws/2005/04/discovery" xmlns:wsdp="https://schemas.xmlsoap.org/ws/2006/02/d
evprof"><soap:Header><wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:T
o><wsa:Action>https://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</wsa:Action>
<wsa:MessageID>urn:uuid:256ad815-1576-4e59-8efc-4c1e0f15fdd2</wsa:MessageID></so
ap:Header><soap:Body><wsd:Probe><wsd:Types>wsdp:Device</wsd:Types></wsd:Probe></
soap:Body></soap:Envelope>

다음 샘플 WSD 디버그 클라이언트 출력은 Hello 메시지를 보여 줍니다. <wsa:Action> 요소는 메시지를 Hello 메시지로 식별합니다.

UDP message at 05/08/07 10:10:49 from soap.udp://[[::1]:49343]
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soap-envelope" xmlns:wsa="h
ttp://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="https://schemas.xmlso
ap.org/ws/2005/04/discovery" xmlns:wsdp="https://schemas.xmlsoap.org/ws/2006/02/d
evprof"><soap:Header><wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:T
o><wsa:Action>https://schemas.xmlsoap.org/ws/2005/04/discovery/Hello</wsa:Action>
<wsa:MessageID>urn:uuid:8999e29a-b056-4345-9e13-f42dbedab28a</wsa:MessageID><wsd
:AppSequence InstanceId="1" SequenceId="urn:uuid:abb0a2a1-6efc-4242-b8e7-c02484a
6eea2" MessageNumber="1"></wsd:AppSequence></soap:Header><soap:Body><wsd:Hello><
wsa:EndpointReference><wsa:Address>urn:uuid:02a76d74-82d0-43e6-ab09-16f54ab81ac6
</wsa:Address></wsa:EndpointReference><wsd:Types>wsdp:Device</wsd:Types><wsd:Met
adataVersion>1</wsd:MetadataVersion></wsd:Hello></soap:Body></soap:Envelope>

WSD 디버그 클라이언트 결과 필터링

WSD 디버그 클라이언트 결과를 필터링하면 디바이스와 관련된 인시던트 트래픽을 식별하는 데 도움이 될 수 있습니다. 필터링은 시끄러운 네트워크에서만 필요합니다.

결과를 필터링하는 방법에는 두 가지가 있습니다. WSD 디버그 클라이언트를 시작할 때 필터링할 IP 주소를 명시적으로 식별할 수 있습니다. 또는 클라이언트가 시작된 후 IP 주소를 지정할 수 있습니다. 이 섹션에서는 두 가지 방법을 모두 설명합니다.

WSD 디버그 클라이언트를 시작할 때 필터링할 IP 주소를 지정하려면

  1. 네트워크를 통해 실행되도록 호스트 및 클라이언트를 구성합니다(즉, 호스트와 클라이언트가 다른 컴퓨터에서 작동하는지 확인).
  2. 디바이스의 IP 주소를 수집합니다. 디바이스에 여러 주소(예: IPv4 및 IPv6 주소가 모두 있는 경우)가 있는 경우 모든 주소를 수집해야 합니다.
  3. 명령 프롬프트를 열고 다음 명령을 실행합니다. WSDDebug_client.exe /mode 멀티캐스트 /ipadddevice< IP>

<디바이스 IP> 는 IP 주소입니다. 다음 목록에서는 이 IP 주소에 대한 몇 가지 샘플 형식을 보여 줍니다.

  • 192.168.0.1
  • ::1
  • mydevice.contoso.com

WSD 디버그 클라이언트는 명령 프롬프트에서 제공된 호스트 이름을 자동으로 확인합니다.

WSD 디버그 클라이언트를 시작한 후 결과를 필터링하려면

  1. 네트워크를 통해 실행되도록 호스트 및 클라이언트를 구성합니다(즉, 호스트와 클라이언트가 다른 컴퓨터에서 작동하는지 확인).
  2. 디바이스의 IP 주소를 수집합니다. 디바이스에 여러 주소(예: IPv4 및 IPv6 주소가 모두 있는 경우)가 있는 경우 모든 주소를 수집해야 합니다.
  3. 명령 프롬프트를 열고 다음 명령을 실행합니다. WSDDebug_client.exe /mode 멀티캐스트
  4. WSD 디버그 클라이언트 명령 프롬프트에서 다음 명령을 실행합니다. ipadddevice< IP>
  5. 모든 디바이스 IP 주소가 추가될 때까지 4단계를 반복합니다.

다음 절차에서는 WSD 디버그 클라이언트가 시작되었고 IP 주소로 필터링이 수행되고 있다고 가정합니다.

올바른 IP 주소가 필터링되고 있는지 확인하려면

  • WSD 디버그 클라이언트 명령 프롬프트에서 다음 명령을 실행합니다 . ip print

    필터링되는 IP 주소 목록이 나타납니다.

다음 절차에서는 WSD 디버그 클라이언트가 시작되었고 IP 주소로 필터링이 수행되고 있다고 가정합니다.

필터링을 사용하지 않으려면

  • WSD 디버그 클라이언트 명령 프롬프트에서 다음 명령을 실행합니다 . ip clear

    이제 모든 멀티캐스트 트래픽이 디버그 출력에 표시됩니다.

WSDAPI 진단 절차

WSDAPI 문제 해결을 사용하여 시작