Когда я использую traceroute (фактически команду tracert для Windows) для разных адресов назначения, я всегда получаю одинаковое количество прыжков.

Например: для superuser.com я получаю:

Tracing route to superuser.com [151.101.1.69]
over a maximum of 30 hops:

  1     6 ms     1 ms     1 ms  192.168.0.1
  2     2 ms     3 ms     3 ms  10.201.0.1
  3     4 ms     2 ms     2 ms  angeldropsltd.com [103.242.217.37]
  4     8 ms     4 ms     4 ms  151.101.1.69

Trace complete.

Для microsoft.com я получаю:

Tracing route to microsoft.com [23.100.122.175]
over a maximum of 30 hops:

  1     3 ms     3 ms     1 ms  192.168.0.1
  2     5 ms     2 ms     2 ms  10.201.0.1
  3     4 ms     2 ms     2 ms  angeldropsltd.com [103.242.217.37]
  4     7 ms     4 ms     4 ms  23.100.122.175

Trace complete.

Это похоже на все другие сайты, которые я пробовал до сих пор.

Я хочу знать возможные причины, почему это происходит. У меня есть некоторые краткие знания о том, как работает traceroute . Разные направления должны иметь разное количество прыжков. Мой провайдер (AngelDrops) может не иметь всех серверов назначения, напрямую подключенных. Я думаю, что мой провайдер здесь что-то делает. Так каковы причины этого?

1 ответ1

2

Я собираюсь дать вам мой лучший шанс объяснить это. Но я не знаю, почему ваш провайдер делает это.

Во-первых, важно понять, как работает Traceroute. Traceroute работает путем установки значения TTL (Time To Live) в отправляемых IP-пакетах. Каждый переход вашего пакета по пути будет уменьшать TTL на 1. Когда TTL достигает 0, если ваш пакет не достиг своего предполагаемого места назначения, тогда отправляется сообщение ICMP Unreachable, содержащее IP-адрес последнего достигнутого маршрутизатора.

Поэтому, когда вы вводите команду tracert , Windows отправляет серию пакетов ICMP с увеличивающимися значениями TTL. Первый пакет отправляется с TTL 1, следующий - с TTL 2 и т.д. Таким образом, каждый маршрутизатор на пути к месту назначения может быть обнаружен - если он отвечает с ICMP недоступным. Если он просто отбрасывает пакет, вы получаете * * * ответ от tracert и никакой информации.

Итак, похоже, что здесь происходит то, что ваш провайдер (AngelDrops) не соблюдает настройку TTL. Вместо этого кажется, что они удаляют или фильтруют эту информацию из пакета, когда он достигает их. Из-за этого, как только пакет достигает AngelDrops, они пересылают его по назначению с гораздо более высоким TTL "по умолчанию". Это приводит к тому, что пакет проходит весь путь до его пункта назначения, и окончательный ответ вы видите от пункта назначения.

TTL в IP-пакете действительно предназначен для предотвращения петель в сети, когда пакет продолжает прыгать внутри сети по кругу навсегда.

Я надеюсь, что в этом есть смысл. Теперь, почему ваш провайдер делает это? Я не совсем уверен, но возможно, что они рассматривают вмешательство в TTL как возможную угрозу безопасности своей сети и, следовательно, фильтруют ее. Почитание ваших данных TTL не является действительно необходимым для правильной работы сети.

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

Судя по тому, что я вижу в твоем traceroute, похоже, что ты находишься на каком-то общем интернет-сервисе. Вы не получаете реальный публичный IP-адрес, поэтому вы, вероятно, находитесь за какой-то сетью с NAT, где вы делите один и тот же публичный IP с несколькими пользователями. Это объяснило бы все.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .