Я работал со своим интернет-провайдером (который является WISP, на самом деле фиксированной широкополосной беспроводной связью), пытаясь выяснить, почему у меня периодически возникают большие задержки. Задержка обнаруживается в онлайн-играх и других потоковых приложениях. Если я провожу трассировку маршрута, вы можете увидеть путь через сеть обратного маршрута:
Tracing route to google.com [74.125.67.105]
over a maximum of 30 hops:
1 1 ms 4 ms <1 ms 192.168.23.1
2 1 ms 8 ms 9 ms 10.100.100.1
3 9 ms 9 ms 3 ms 10.7.37.1
4 15 ms 24 ms 19 ms 10.7.36.1
5 10 ms 79 ms 9 ms 10.7.31.3
6 10 ms 39 ms 39 ms 10.10.5.9
7 19 ms 19 ms 19 ms 10.10.5.5
8 9 ms 19 ms 19 ms 10.10.5.1
9 341 ms 237 ms 226 ms 10.250.200.1
10 249 ms 280 ms 991 ms <ISP WAN IP>
11 703 ms 681 ms 401 ms <ISP WAN IP>
12 819 ms 628 ms 484 ms <AT&T IP> <- Traffic enters AT&T backbone
13 699 ms 528 ms 290 ms <AT&T IP>
14 201 ms 106 ms 52 ms <AT&T IP>
15 624 ms 392 ms 436 ms <AT&T IP>
16 666 ms * 252 ms <AT&T IP>
17 456 ms 403 ms 581 ms 209.85.254.120
18 430 ms 339 ms * 209.85.242.215
19 1061 ms 56 ms 53 ms 72.14.239.131
20 3514 ms 734 ms 219 ms 209.85.255.190
21 49 ms 59 ms 56 ms 74.125.67.105
Что, кажется, указывает на то, что проблема в хосте 10.250.200.1. Однако, если я напрямую пингую хост, все выглядит нормально (~ 10 мс туда и обратно). Проверка последующих переходов после предполагаемого узла также дает разумное время приема-передачи. Высокая задержка может сохраняться от нескольких секунд до нескольких минут за раз.
РЕДАКТИРОВАТЬ Да, это плохой пример трассировки, показывающей определенную проблему, но после повторных тестов никогда не бывает задержки> 100 мс перед переходом 9, поэтому я подумал, что это может быть проблемой.
Путь во время события дает следующее:
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 192.168.23.129
0/ 100 = 0% |
1 2ms 0/ 100 = 0% 0/ 100 = 0% 192.168.23.1
0/ 100 = 0% |
2 3ms 0/ 100 = 0% 0/ 100 = 0% 10.100.100.1
0/ 100 = 0% |
3 14ms 0/ 100 = 0% 0/ 100 = 0% 10.7.37.1
0/ 100 = 0% |
4 15ms 0/ 100 = 0% 0/ 100 = 0% 10.7.36.1
0/ 100 = 0% |
5 19ms 0/ 100 = 0% 0/ 100 = 0% 10.7.31.3
0/ 100 = 0% |
6 27ms 0/ 100 = 0% 0/ 100 = 0% 10.10.5.9
0/ 100 = 0% |
7 28ms 0/ 100 = 0% 0/ 100 = 0% 10.10.5.5
0/ 100 = 0% |
8 --- 100/ 100 =100% 100/ 100 =100% 10.10.5.1
0/ 100 = 0% |
9 25ms 0/ 100 = 0% 0/ 100 = 0% 10.250.200.1
0/ 100 = 0% |
10 24ms 1/ 100 = 1% 1/ 100 = 1% <ISP WAN IP>
0/ 100 = 0% |
11 25ms 4/ 100 = 4% 4/ 100 = 4% <ISP WAN IP>
0/ 100 = 0% |
12 35ms 0/ 100 = 0% 0/ 100 = 0% <AT&T IP>
0/ 100 = 0% |
13 --- 100/ 100 =100% 100/ 100 =100% <AT&T IP>
0/ 100 = 0% |
14 --- 100/ 100 =100% 100/ 100 =100% <AT&T IP>
0/ 100 = 0% |
15 --- 100/ 100 =100% 100/ 100 =100% <AT&T IP>
0/ 100 = 0% |
16 58ms 0/ 100 = 0% 0/ 100 = 0% <AT&T IP>
1/ 100 = 1% |
17 59ms 1/ 100 = 1% 0/ 100 = 0% 209.85.254.120
0/ 100 = 0% |
18 59ms 1/ 100 = 1% 0/ 100 = 0% 209.85.242.215
0/ 100 = 0% |
19 56ms 1/ 100 = 1% 0/ 100 = 0% 72.14.239.127
0/ 100 = 0% |
20 60ms 1/ 100 = 1% 0/ 100 = 0% 209.85.255.194
0/ 100 = 0% |
21 59ms 1/ 100 = 1% 0/ 100 = 0% 74.125.67.105
Почему эта задержка проявляется только во время трассировки маршрута, а не при обычном пинге? Отсутствие производительности, которое я вижу в своем приложении, совпадает с этим.
Другими словами, при возникновении проблем с моим приложением, если я запускаю трассировку одновременно, я получаю указанный выше результат в то время как одновременно ping подозреваемого хоста показывает нормальный ping.
WISP? Смысл Беспроводной Интернет-провайдер? Если да, то вот ваш вероятный ответ. Беспроводная связь ненадежна, и вы видите доказательство этого.
Вы не можете это исправить, потому что ваша среда (атмосфера) действительно ужасна для передачи данных. Во-первых, потому что воздух - это концентратор, а не коммутатор, поэтому вы делитесь им со всеми вокруг вас и сталкиваетесь между пакетами, во-вторых, потому что CSMA / CA работает медленнее, чем CSMA / CD, в-третьих, потому что беспроводная связь обычно полудуплексная, а не полнодуплексная, и в-четвертых, потому что помехи по воздуху на порядок выше, чем по меди. [Микроволны, например, работают на той же длине волны, что и 802.11b / g ... но микроволновая печь работает примерно на 500-1000 Вт против 100 милливатт вашей беспроводной антенны. Микроволны экранированы, но экранирование не является идеальным, и микроволны не регулируются Федеральной комиссией по связи, поэтому это не является незаконным, если они вызывают помехи.] Плюс тот факт, что вы проходите через 10+ переходов только для того, чтобы попасть в Интернет. Это не может помочь, особенно если используется NAT или брандмауэр.
Как сообщает @dbasnett, задержка пинга traceroute для данного хоста указывает только состояние всей сети между интерфейсами, взятыми в целом в этот момент времени. Вот почему время отклика идет вниз иногда. Они резкие, потому что сеть ненадежна. Ваш pathping
выглядит хорошо, потому что он выполняет большое количество запросов вместо трех, tracert
это работает. Так pathping
показывает, что сеть делает в течение 325 секунд (по умолчанию), и tracert
показывает, что делают 3 пакета на переход в сети.
9 случаев из 10 результатов трассировки маршрута не указывают на проблемы с сетью. Traceroute отправляет пакеты эхо-запроса ICMP на каждый последующий переход между источником и местом назначения, увеличивая TTL на единицу для каждого последующего перехода. Результат каждого прыжка является показателем того, как ЭТОТ прыжок отвечает на трафик ICMP, но не является показателем качества пути через этот прыжок и за ним. Работа маршрутизаторов заключается в пересылке трафика, и поэтому многие из них запрограммированы на игнорирование, отбрасывание или присвоение низкого приоритета трафику ICMP, направленному на себя. Тот факт, что переходы 14, 19 и 21 имеют очень хорошее время отклика, указывает на то, что с маршрутом все в порядке. Если возникла проблема на переходе 12 (как вы подчеркнули) или на любом другом переходе, влияющем на путь, вы бы увидели проблему на каждом последующем переходе, и каждый переход был бы хуже, чем предыдущий. Только когда вы видите результаты такого типа в traceroute, вы можете заподозрить проблему с путем. Переход 21 - это пункт назначения, и время отклика 59 мс сообщает вам, что путь между источником и пунктом назначения в порядке. Ключом к анализу проблемы пути является анализ ее производительности во время передачи реальных данных, что невозможно, если у вас нет анализатора пакетов / сетевого монитора на каждом переходе и доступа к памяти, ЦП и счетчикам пропускной способности на каждом узле. сетевой узел (маршрутизаторы и коммутаторы) на пути от источника к месту назначения.
Вместо того, чтобы пытаться выяснить, почему у вас возникают проблемы с производительностью на основе трассировки пути, вам следует сосредоточиться на фактическом сеансе TCP между источником и получателем и посмотреть на время ответа (задержку) и любые потери пакетов между этими двумя конечными точками.
Маршрут трассировки, как следует из его названия, представляет собой инструмент для обнаружения пути между двумя конечными точками, а не инструмент для анализа качества этого пути.
Я должен согласиться с joeqwerty, ICMP давно перестал быть надежным измерителем производительности, задержки или пропускной способности. Это особенно верно для маршрутов с большим количеством переходов по неизвестным сетям.
Более реалистичным будет тест с протоколом (ами), который вы используете. Например, если бы это был http, вы могли бы настроить захват сетевых пакетов Wireshark. Отфильтруйте диалог с указанным хостом и используйте Статистика Wireshark> График потока TCP> График времени приема-передачи. Этот тест будет более точным, если вы выполните захват хотя бы в течение нескольких минут.
Еще один интересный вариант - PingPlotter Standard (не бесплатно, но с полным набором функций в течение 30 дней). Это дает очень хорошую возможность для тестирования пропускной способности конкретного протокола путем указания номера порта, а также имеет графики времени приема-передачи, которые можно сохранять и загружать.
Пинги и маршрут трассировки (эхо-запросы с определенным TTL) являются временными. То, что вы видите в какой-то конкретный момент времени, - это всего лишь это и не имеет ничего общего с прошлыми или будущими событиями.
Часть пропускной способности интернета (2%) - это пинг-трафик, который, если вы не являетесь специалистом в магистральной сети Интернет, не имеет реальной цели. Если у вас возникла проблема, позвоните своему интернет-провайдеру.
После дополнительного тестирования это проблема с задержкой UDP.
Причина, по которой высокая задержка совпадает с низкой производительностью приложения, по-видимому, связана с хостом, привязанным к ЦП. ICMP-пакет с истекшим TTL требует процессорного времени для обработки ответа, и, таким образом, большинство маршрутизаторов настроены так, чтобы «отвечать, когда мне этого хочется». В этом случае задержка для ICMP-трафика с истекшим TTL является показателем занятости маршрутизатора. Кажется, что хост находится на краю их сети, поэтому через этот переход проходит большая часть всего трафика.
Я очень подозреваю, что интернет-провайдер проводит какую-то проверку трафика или формирует протокол UDP, что также требует времени процессора.
Убедись в уменьшите ваши буферы по насыщенной ссылке.