Автор Тема: FAQ: потери (большие задержки) пакетов при ping, tracert, etc  (Прочитано 517 раз)

Оффлайн Andrew

  • Full Member
  • ***
  • Сообщений: 208
    • Просмотр профиля
Ситуация: «интернет тормозит», он-лайн игры тормозят, для выяснения ситуации пускается трасса на какой либо хост в сети интернет(делается tracert, pathping или winmtr до него) и видится, что шлюз из сети Домашки наружу (или какие-либо хосты до шлюза) дает огромный процент потерь пакетов, из чего делается неправильный вывод о том, что что провайдер не хочет оказывать услуги соответствующего качества.

1. Для понимания ниже написанного нужно знать что такое icmp, tcp, udp и чем они друг от друга отличаются. Если понимания нет, то изучайте например:
- http://ru.wikipedia.org/wiki/TCP
- http://ru.wikipedia.org/wiki/UDP
- http://ru.wikipedia.org/wiki/Icmp
(Замечание из собственного опыта: к сожалению 80% приходящих на работу так называемых «админов» не знают чем tcp отличается от udp). Поэтому, если Вы не понимаете сути процессов хотя бы в общих чертах, то мы будем говорить на разных языках, и никогда друг друга не поймем.

2. Итак, в сети Домашки имеются маршрутизаторы  juniper (cisco, extreme) в нашем случае это точки терминации и шлюзы в другие сети (для простоты шлюз в интернет).

3. Основной задачей марштутизатора является перекладывание ip (tcp,udp,icmp) пакетов с одного своего интерфейса на другой согласно настроенным в маршрутизаторе правилам. Причем это процесс происходит АППАРАТНО т.е. без участия ПРОЦЕССОРА маршрутизатора. А вот обработка всего остального, включая запросы/ответы к маршрутизатору, генерация netflow, accounting, взаимодействие с radius, ответы на snmp запросы разных систем мониторинга происходит ПРОЦЕССОРОМ, причем процесс icmp имеет очень низкий приоритет и обрабатывается во время когда процессор СВОБОДЕН.
Из собственного опыта был случай, когда маршрутизатор из-за нагрузки не был доступен извне, а транзитные пакеты шли без потерь.


4. Из выше написанного следует:
- если вы пингуете шлюз, и видите огромные потери, это лишь означает, что процессор маршрутизатора занят чем-то более важным, чем обработка ваших пакетов, причем на потери транзитных ip, tcp,udp, iсmp пакетов это не влияет.
- если вы пингуете точку терминации и видите потери, значит она весьма сильно загружена, т.к. на ней большой объем операций выполняется процессором, поэтому возможны ошибки аутентификации. На потери транзитных пакетов загрузка процессора точки терминации не влияет.

5. Если Вы хотите узнать реальные потери ip пакетов до каких-то конкретных хостов, нужно отправить определенное количество tcp или udp пакетов из точки А в точку Б и в точке Б оценить количество потерянных пакетов (Например ДНС-сервер домашки 91.203.51.254).
Любителям он-лайн игр: он-лайн игры преимущественно используют udp пакеты, т.к. они более «быстрые», поэтому пингуя игровые сервера icmp пакетами вы занимаетесь ерундой.


Пример:

Обмен пакетами с XX.XX.XX.XX по 32 байт:

Ответ от XX.XX.XX.XX: число байт=32 время=13мс TTL=247
Ответ от XX.XX.XX.XX: число байт=32 время=131мс TTL=247
Ответ от XX.XX.XX.XX: число байт=32 время=300мс TTL=247
Ответ от XX.XX.XX.XX: число байт=32 время=134мс TTL=247

Обмен пакетами с ya.ru [77.88.21.3] по 32 байт:

Ответ от 77.88.21.3: число байт=32 время=25мс TTL=51
Ответ от 77.88.21.3: число байт=32 время=26мс TTL=51
Ответ от 77.88.21.3: число байт=32 время=25мс TTL=51
Ответ от 77.88.21.3: число байт=32 время=26мс TTL=51

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

P.S. Замечания и вопросы в ЛС, либо на форуме  8)