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

К сожалению, ничто лучше не напоминает вам об этой ситуации, чем когда вы больше не можете подключиться к веб-сайту. Причина может быть где-то на вашей стороне, на стороне веб-сайта или где-то посередине. И лучший способ выяснить, в чем проблема, — использовать Traceroute.

Что такое трассировка?

Traceroute — это способ отслеживать маршрут, по которому проходят ваши пакеты данных через Интернет. Каждая современная операционная система может отслеживать маршрут.

Когда вы запускаете Traceroute, вы указываете ему, к какому веб-сайту или серверу вы хотите проследить маршрут. Обычно это URL-адрес веб-сайта, к которому вы пытаетесь обратиться, но вы также можете указать ему IP-адрес, если хотите.

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

Это действительно удобно, если вы пытаетесь найти неисправность в сети. Если сервер или обменник не работают, Traceroute обнаружит проблему и сообщит, что что-то работает некорректно. Затем вы можете использовать эту информацию, чтобы лучше диагностировать, что происходит не так.

Как работает трассировка?

Traceroute — удобный способ диагностики сетевых ошибок. Однако изобретение Traceroute стало возможным благодаря хитроумному использованию переменной «Time-to-Live» пакета.

Что такое «время жизни» пакета?

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

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

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

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

Когда срок действия пакета истекает, сервер, на котором он заканчивается, отправляет домой так называемое сообщение «ICMP Time Exceeded». По сути, это уведомление о том, что пакет безвременно исчез, и сообщает пользователю, когда срок действия пакета истек, чтобы помочь в устранении неполадок.

Как время жизни пакета позволило Traceroute работать

Это сообщение ICMP Time Exceeded является ключом к работе Traceroute. Для начала Traceroute отправляет пакет с TTL, установленным на 1. Это означает, что он покидает ваш компьютер, достигает первого сервера, вычитает единицу из его TTL, замечает, что его TTL равен 0, и срок его действия истекает.

Сервер, обрабатывающий пакет в это время, затем отправляет сообщение ICMP Time Exceeded обратно на ваш компьютер вместе с его местоположением. Затем ваш компьютер регистрирует местоположение сервера как первый шаг к вашей цели.

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

Для чего используется Traceroute?

На базовом уровне Traceroute позволяет вам взглянуть на то, как пакеты перемещаются по сети. Независимо от того, являетесь ли вы сетевым инженером, дважды проверяющим, чтобы все работало правильно, или вас просто интересует, как передаются ваши пакеты, когда вы посещаете Google, Traceroute — это то, что вам нужно.

Однако это также полезно для выявления ошибок в системе. Если Traceroute попытается связаться с неотвечающим сервером, он заметит, что отправленный им пакет некоторое время не вызывал ответа. По прошествии достаточного времени Traceroute объявляет, что «Тайм-аут запроса истек», что означает, что ответ не пришел в отведенное время.

Конечно, время ожидания запроса не всегда означает, что сервер не работает; иногда серверу не нравятся запросы Traceroute, и он блокирует их по мере их поступления. Но если вы относительно уверены, что ни один сервер в цепочке не должен блокировать Traceroute, это хороший способ диагностировать веб-сайт или сервер, который не отвечает при попытке подключения к нему.

В чем разница между Traceroute и Ping?

Технически грамотные читатели заметят, что Traceroute очень похож на другой удобный сетевой инструмент — Ping. Однако, хотя эти две функции немного пересекаются, люди используют их по разным причинам.

Как мы уже говорили выше, Traceroute помогает вам определить, куда направляется пакет после того, как он покинет ваш компьютер. Между тем, Ping сообщает вам, может ли ваш компьютер достичь определенного сервера и сколько времени потребуется, чтобы добраться до него.

Таким образом, если вы хотите увидеть каждую часть сетевой цепочки, Traceroute — это то, что вам нужно. Между тем, если вы просто хотите узнать, отвечает ли сервер, вы можете выполнить пинг. Конечно, вы можете сделать это и с помощью Traceroute, но вам придется подождать некоторое время, чтобы он наконец добрался до вашего сервера, прежде чем вы получите ответ, который ищете.

Как выполнить трассировку

Как мы говорили ранее, все основные операционные системы могут выполнять Traceroute. Это так же просто, как открыть командный терминал и ввести команду Traceroute.

Для macOS вам просто нужно открыть терминал и ввести «traceroute», а затем URL-адрес или IP-адрес пункта назначения. То же самое и в Linux, но вам может потребоваться сначала установить Traceroute, прежде чем вы сможете его запустить.

Запуск команды трассировки в Linux.

В операционных системах Windows это работает так же, за исключением того, что функция называется «tracert». Мы рассмотрели команду Tracert и другие команды в нашем руководстве по командам для управления беспроводными сетями в Windows, поэтому обязательно прочтите его, если хотите узнать об инструментах, имеющихся в вашем распоряжении.

Изображение предоставлено: Мишель Бакни/Викисклад

Отслеживание ваших пакетов с помощью Traceroute

Если вы хотите увидеть, куда идут ваши пакеты после того, как они покинут ваш компьютер, Traceroute — это то, что вам нужно. Хотите ли вы диагностировать сетевую проблему или вам просто интересно посмотреть, куда направляются ваши пакеты, его легко настроить и наблюдать за перемещением данных.