Как работает TCP Ping или Traceroute?

9

Как работает tcp ping или traceroute? Нужно ли учитывать только время, необходимое для установления TCP-рукопожатия?

Также в пинге ICMP вы можете указать размер пакета, это может быть достигнуто в пинге TCP?

GeorgeU
источник
Я не знаю никого, кто запускает эхо-сервер tcp; возможно вы имеете ввиду UDP?
Крис С
1
Насколько я понимаю, есть инструменты, которые делают это без ECHO. Они отправляют пакет SYN на маршрутизатор через порт 80 и ждут подтверждения. Я просто хочу подтвердить, что это то, что есть ... вот коммерческий инструмент netscantools.com/nstpro_ping.html
GeorgeU

Ответы:

6

Я полагаю, что вы имеете в виду эти утилиты:

http://www.vdberg.org/~richard/tcpping.html

http://michael.toren.net/code/tcptraceroute/

Поскольку tcpping требует tcptraceroute, я начну с tcptraceroute.

Автор tcptraceroute утверждает, что в отличие от традиционного traceroute: «Посылая пакеты TCP SYN вместо пакетов UDP или ICMP ECHO, tcptraceroute может обходить наиболее распространенные фильтры брандмауэра».

Далее: стоит отметить, что tcptraceroute никогда полностью не устанавливает TCP-соединение с хостом назначения.

Таким образом, tcptraceroute не измеряет время, необходимое для завершения трехстороннего рукопожатия, потому что этого никогда не происходит. Он измеряет время от начального SYN до SYN / ACK. Это иногда называют полуоткрытым сканированием соединения.

С man-страницы nmap:

          This technique is often referred to as half-open scanning,
          because you don’t open a full TCP connection. You send a SYN
          packet, as if you are going to open a real connection and then
          wait for a response. A SYN/ACK indicates the port is listening
          (open), while a RST (reset) is indicative of a non-listener. If
          no response is received after several retransmissions, the port
          is marked as filtered. The port is also marked filtered if an
          ICMP unreachable error (type 3, code 1,2, 3, 9, 10, or 13) is
          received.

Что касается вашего вопроса о размере пакета, вышеприведенное описание также имеет ответ. Поскольку tcptraceroute отправляет стандартный пакет SYN, это должен быть небольшой пакет, возможно, 64 байта.

dmourati
источник
0

Я не знаю какой-либо стандартной спецификации или эталонной реализации для «TCP Ping» или «TCP Traceroute», поэтому вам, вероятно, нужно выбрать определенную пару инструментов, которые реализуют эти тесты, а затем использовать анализатор пакетов, чтобы увидеть, что делают эти конкретные инструменты ,

Spiff
источник
-2

Нужно ли учитывать только время, необходимое для установления TCP-рукопожатия?

нет ... ваша машина отправляет 3 UDP- пакета с TTL (Time-to-Live), равным 1. Когда эти пакеты достигнут маршрутизатора следующего перехода, он уменьшит TTL до 0 и, таким образом, отклонит пакет. Он отправит ICMP Time-to-Live Exceeded (Тип 11), TTL, равный 0 при передаче (Код 0) обратно на ваш компьютер - с адресом источника самого себя, поэтому вы теперь знаете адрес первого маршрутизатора в пути ,

Больше информации, пожалуйста, смотрите http://www.tek-tips.com/faqs.cfm?fid=381.

Пит Уайт
источник
+1 Но он не должен отправлять три, что является произвольным и управляемым, и он отправляет ICMP-пакеты, а не UDP, как правило.
Orbling
1
Вопрос не в традиционной трассировке, которая использует ICMP или альтернативу UDP. Это специально для Traceroute, который опирается на TCP-пакеты.
GeorgeU
@ Обращается к исходной трассировке Unix, и все Un * x-подобные трассировщики по сей день по умолчанию отправляют пакеты UDP и возвращают пакеты, превышающие время ICMP. Возможно, вы думаете о нестандартной реализации traceroute, такой как «tracert» от Microsoft.
Spiff
-2

Traceroute '' - это утилита отладки сети, которая пытается отследить путь, по которому пакет проходит через сеть. Traceroute передает пакет с малыми значениями времени жизни (TTL). На каждом маршрутизаторе значение уменьшается на 1, а если TTL достигает 0, срок действия пакета истекает и отбрасывается. Traceroute зависит от обычной практики маршрутизатора по отправке сообщения ICMP Time Exceeded, задокументированного в RFC 792, обратно отправителю, когда это происходит.

Стивен Лемберт
источник