Хост не пингуется, но маршрут отображается нормально
От: beevasya Удмуртия  
Дата: 18.11.11 05:54
Оценка:
В рамках одной задачи столкнулся с необходимостью аналога tracert на c#
Посмотрел на codeproject.com подобные реализации, сделал свою, вроде работает нормально, но есть одно НО
При построении трассы некоторые хосты не откликаются (превышен таймаут).
Попробовал системным ping-ом так и есть, но если попробовать системным tracert.exe, то все отклики приходят.
Подскажите в чем может быть причина? По какому принципу работает системная утилита (tracert.exe)?
Где-то нашел что такое может случиться при использовании мегафона (через usb-модем), якобы они так защищаются от DDoS
Но системная утилита показывает все отлично, а моя некоторые хосты игнорирует...
Re: Хост не пингуется, но маршрут отображается нормально
От: Аноним  
Дата: 18.11.11 08:20
Оценка:
B>Попробовал системным ping-ом так и есть, но если попробовать системным tracert.exe, то все отклики приходят.
B>Подскажите в чем может быть причина? По какому принципу работает системная утилита (tracert.exe)?

А ты сниферком то глянь милчеловек. Вдруг протоколы там разные? Да за одно и принципы все как на лодни увидишь.
Re: Хост не пингуется, но маршрут отображается нормально
От: 5er Россия  
Дата: 18.11.11 09:14
Оценка:
Здравствуйте, beevasya, Вы писали:

B>В рамках одной задачи столкнулся с необходимостью аналога tracert на c#

B>Посмотрел на codeproject.com подобные реализации, сделал свою, вроде работает нормально, но есть одно НО
B>При построении трассы некоторые хосты не откликаются (превышен таймаут).
B>Попробовал системным ping-ом так и есть, но если попробовать системным tracert.exe, то все отклики приходят.
B>Подскажите в чем может быть причина? По какому принципу работает системная утилита (tracert.exe)?
B>Где-то нашел что такое может случиться при использовании мегафона (через usb-модем), якобы они так защищаются от DDoS
B>Но системная утилита показывает все отлично, а моя некоторые хосты игнорирует...

Я думаю, вам нужно наращивать TTL при пинге.
IcmpSendEcho, IP_OPTION_INFORMATION. Аналог на C# не знаю, наверняка есть.
Re: Хост не пингуется, но маршрут отображается нормально
От: Anton Batenev Россия https://github.com/abbat
Дата: 21.11.11 14:38
Оценка: +1
Здравствуйте, beevasya, Вы писали:

b> Попробовал системным ping-ом так и есть, но если попробовать системным tracert.exe, то все отклики приходят.

b> Подскажите в чем может быть причина? По какому принципу работает системная утилита (tracert.exe)?

Наверное в том, что ping — это ICMP, а traceroute — это UDP.
Так же, следует иметь ввиду, что они могут идти совершенно разными маршрутами и результат может удивлять
Кто, если не мы?
Re[2]: Хост не пингуется, но маршрут отображается нормально
От: avacabi  
Дата: 24.11.11 21:28
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

b>> Попробовал системным ping-ом так и есть, но если попробовать системным tracert.exe, то все отклики приходят.

b>> Подскажите в чем может быть причина? По какому принципу работает системная утилита (tracert.exe)?

AB>Наверное в том, что ping — это ICMP, а traceroute — это UDP.


traceroute (*nix) — это по умолчанию UDP, а tracert.exe (Windows) — это ICMP type 8 (echo request). Домашнее задание — проверить сниффером.

AB>Так же, следует иметь ввиду, что они могут идти совершенно разными маршрутами и результат может удивлять


Разница между ping и tracert будет в том, что на tracert промежуточные хосты отвечают ICMP TTL exceeded, а если пинговать их напрямую — ICMP echo reply. В зависимости от того, как настроен этот раутер, он может выпускать ICMP TTL exceeded но фильтровать ICMP echo reply — результат будет именно такой как у автора треда.
--AV
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.