, что могло вызвать сбой ICMPsendEcho при успешном выполнении ping.exe

У меня на руках интересная ситуация, и я не совсем уверен, как ее устранять. Я несколько раз искал что-то похожее на мою ситуацию, но ничего не соответствовало этому. Если ответ уже существует где-то здесь, я был бы признателен любому, кто укажет мне правильное направление.

Хорошо, ближе к делу.

Я пишу сторожевое приложение для мониторинга подключения к Интернету. Он предназначен для проверки связи набора доменов с заданным интервалом, и когда любой из них отвечает на проверку связи, таймер состояния сбрасывается. Если таймер состояния когда-либо выходит за пределы установленного порогового значения, предпринимаются попытки исправить проблему в несколько этапов.

Достаточно просто, не так ли?

Вот где это становится странным.

Я использую ICMPsendecho для отправки запроса ping. В моей среде разработки (win7) все работает нормально, тестирование и все прошло гладко. Однако в среде, в которой он развертывается, он не получает ответа. Среда развертывания - это компьютер с Windows XP с пакетом обновления 3 (SP3).

В процессе поиска и устранения неисправностей я заметил несколько вещей, которые могут помочь, а могут и не оказаться полезными при попытке решить эту проблему.

windows ping.exe отлично работает в среде развертывания для всех доменов, которые я использую для проверки состояния подключения, это только мои вызовы ICMPsendecho, которые, похоже, не генерируют ответы.

Я установил wirehark в среду развертывания и вижу, что пакеты успешно выдаются для запросов на обоих типах ping.пинг Windows генерирует пакеты запроса длиной 74 байта, а мой вызов программ генерирует пакеты длиной 42 байта. Пакеты ответов Windows на момент получения имеют размер 74 байта.

Переключение в среду разработки на минуту с установленным wirehark. Проверка связи Windows создает обстоятельства, похожие на среду развертывания с пакетами. Однако мое приложение, когда оно генерирует запросы, пакеты имеют длину 42 байта (так же, как и среда развертывания), но ответы, которые оно получает, имеют длину 60 байтов.

Как я уже сказал, эта информация может оказаться полезной, а может и не оказаться, но я пытаюсь выяснить, почему это приложение не может генерировать ответы ICMP, когда пинг Windows работает нормально на этой машине.

Еще один небольшой лакомый кусочек, который может помочь, мониторинг подключения к Интернету использует повышенные точки доступа 4g от AT&T, фактическое устройство представляет собой карту sierra wireless MC8790 AirPrime.

У кого-нибудь есть идеи, почему эти эхо-запросы не работают?

Заранее благодарим за любую полезную информацию, которая у вас может быть, и за то, что вы нашли время прочитать мой пост.

PS.

8
задан multipleinterfaces 21 February 2012 в 22:12
поделиться