Назад | Перейти на главную страницу

Почему у некоторых соединений истекает время ожидания, а другим отказывают?

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

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Может кто-нибудь объяснить мне, в чем разница между ними?

Одна из причин - это поведение брандмауэра на example.com. Если брандмауэр просто отбрасывает трафик, вы увидите первый ответ. С другой стороны, если брандмауэр отклоняет трафик, вы получите второй.

Чтобы лучше понять, возьмите фильтр пакетов, например tcpdump или WireShark и анализируйте трафик во время выполнения тестов.

Первый случай будет выглядеть как Syn, Syn, Syn ...

Второй случай будет выглядеть как Syn, Rst вместе с возможным недоступностью порта ICMP.

Успешное соединение будет выглядеть как Syn, Syn-Ack, Ack, которые мы ожидаем в tcp. трехстороннее рукопожатие.