Чому деякі тайм-аути підключення, а інші відмовляються?


14

Я помітив, що іноді, намагаючись зателефонувати в якийсь випадковий порт, я спостерігав два різновиди сценарію:

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Може хтось пояснить мені, в чому різниця між ними?


1
У першому випадку трафік скидається, а у другому - відхиляється. Нижченаведене посилання підсумовує різницю між DROP і REJECT chiark.greenend.org.uk/~peterb/network/drop-vs-reject
tuk

Відповіді:


10

Однією з причин може бути поведінка брандмауера на example.com. Якщо брандмауер просто скидає трафік, ви побачите першу відповідь. З іншого боку, якщо брандмауер відхилить трафік, ви отримаєте другий.

Щоб краще зрозуміти, візьміть фільтр пакетів, наприклад tcpdump або wireshark, і нюхайте трафік під час виконання тестів.

Перший вигляд виглядатиме як Syn, Syn, Syn ...

Другий випадок буде схожий на Syn, Rst разом з можливим ICMP-портом, недоступним.

Успішне з'єднання виглядатиме як Syn, Syn-Ack, Ack, якого ми очікуємо в тристоронній рукоятці tcp .


2
В одному сумніві, тому у випадку, якщо якась програма не прослуховує якийсь порт і не існує брандмауера, що блокує з'єднання з цим портом, я повинен зазнати другого випадку. Я маю на увазі, я повинен отримати прапор RST TCP у відповіді. Я прав?
pradeepchhetri

2
@pradeepchhetri Так, якщо нічого не прослуховується або блокується трафік живого хоста , ви отримаєте помилку відмови в з’єднанні (і пов'язаний з ним пакет RST TCP). Однак це справді нечасто в Інтернеті.
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.