Использование клиента WSD Debug для проверки трафика многоадресной рассылки

Если универсальный узел и клиент могут видеть друг друга в сети, но фактический узел и клиент не могут, скорее всего, проблема находится в сообщениях, отправляемых между конечными точками по сети. Дополнительные сведения об универсальном узле и клиенте см. в разделе Использование универсального узла и клиента для UDP WS-Discovery. Поскольку полные сетевые трассы могут быть сложными для сбора, фильтрации и анализа, средство WSD Debug Client можно использовать для вывода многоадресных сообщений WS-Discovery.

Клиент отладки WSD в режиме многоадресной рассылки может проверять только половину сообщений, так как клиент не может распечатать одноадресные сообщения. Если трафик одноадресной рассылки представляет интерес, перейдите непосредственно к проверке сетевых трассировок для UDP WS-Discovery.

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

Использование клиента отладки WSD для проверки трафика многоадресной рассылки

  1. Настройте узел и клиент для выполнения в сети (то есть убедитесь, что узел и клиент будут работать на разных компьютерах).
  2. Откройте командную строку и выполните следующую команду: WSDDebug_client.exe /mode multicast
  3. Воспроизведение сбоя путем запуска узла и клиента или нажатием клавиши F5 в сетевом обозревателе.
  4. Убедитесь, что сообщения передаются с использованием многоадресной передачи.

Если требуемые сообщения отображаются в выходных данных клиента отладки WSD, то сбой приложения может быть связан с содержимым сообщений многоадресной рассылки или с наличием и содержимым соответствующих сообщений одноадресной рассылки. Продолжайте устранять неполадки, следуя инструкциям в Проверке сетевых трассировок для UDP WS-Discovery.

Если необходимые сообщения отображаются в выходных данных клиента отладки WSD, скорее всего, обнаружен источник проблемы приложения. Скорее всего, многоадресный трафик не передается по сети. Этот сбой может произойти, если приложение не правильно перечисляет адаптеры многоадресной рассылки. Приложения должны явно отправлять многоадресный трафик по всем сетевым интерфейсам; В противном случае пакеты могут не создаваться для интерфейса обратного цикла или для других интерфейсов. Чтобы убедиться, что пакеты не появляются в сети, следуйте инструкциям из Проверка сетевых трассировок для UDP WS-Discovery и найдите признаки отсутствия многоадресных сообщений.

Проверка многоадресной рассылки сообщений

Всегда убедитесь, что сообщения пробы передаются по многоадресной рассылке. При необходимости убедитесь, что сообщения Hello и Resolve передаются в режиме многоадресной рассылки. Обратите внимание, что не все приложения используют сообщения "Разрешить". Дополнительные сведения о шаблонах сообщений, используемых клиентами и узлами, см. в разделе «Шаблоны сообщений для обнаружения и обмена метаданными» и «Начало работы с устранением неполадок WSDAPI».

Для отправки сообщений необходимо, чтобы их отправка была инициирована, как описано на шаге 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 может помочь определить трафик инцидентов, участвующий в устройстве. Фильтрация необходима только в шумных сетях.

Существует два способа фильтрации результатов. IP-адреса для фильтрации можно явно определить при запуске клиента отладки WSD. Кроме того, IP-адреса можно указать после запуска клиента. В этом разделе описаны оба метода.

Для фильтрации IP-адресов при запуске WSD-клиента отладки

  1. Настройте узел и клиент для выполнения в сети (то есть убедитесь, что узел и клиент будут работать на разных компьютерах).
  2. Соберите IP-адреса устройства. Если устройство имеет несколько адресов (например, у него есть IPv4 и IPv6-адреса), все адреса должны быть собраны.
  3. Откройте командную строку и выполните следующую команду: WSDDebug_client.exe /mode multicast /ip add<device IP>

<IP устройства — это IP-адрес> В следующем списке показаны некоторые примеры форматов для этого IP-адреса.

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

Клиент отладки WSD автоматически разрешает имена узлов, предоставленные в командной строке.

Фильтрация результатов после запуска клиента отладки WSD

  1. Настройте узел и клиент для выполнения в сети (то есть убедитесь, что узел и клиент будут работать на разных компьютерах).
  2. Соберите IP-адреса устройства. Если устройство имеет несколько адресов (например, у него есть IPv4 и IPv6-адреса), все адреса должны быть собраны.
  3. Откройте командную строку и выполните следующую команду: WSDDebug_client.exe /mode multicast
  4. В командной строке клиента отладки WSD выполните следующую команду: ip add<IP-адрес устройства>
  5. Повторите шаг 4, пока не будут добавлены все IP-адреса устройства.

В следующей процедуре предполагается, что клиент отладки WSD запущен и фильтруется по IP-адресу.

Чтобы убедиться, что отфильтровываются правильные IP-адреса

  • В командной строке клиентa отладки WSD выполните следующую команду: ip print

    Появится список отфильтрованных IP-адресов.

В следующей процедуре предполагается, что клиент отладки WSD запущен и фильтруется по IP-адресу.

Отключение фильтрации

  • В командной строке клиента отладки WSD выполните следующую команду: ip clear

    Теперь весь многоадресный трафик будет отображаться в выходных данных отладки.

Процедуры диагностики WSDAPI

Начало работы с устранением неполадок WSDAPI