Por que algumas conexões atingem o tempo limite e outras são recusadas?

13

Notei que algumas vezes, ao tentar telnetar em alguma porta aleatória, observei dois tipos de cenários:

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Alguém pode me explicar qual é a diferença entre os dois?

pradeepchhetri
fonte
1
No primeiro caso, o tráfego é descartado e no segundo caso, o tráfego é rejeitado. A ligação abaixo resume a diferença entre GOTA vs REJECT chiark.greenend.org.uk/~peterb/network/drop-vs-reject
tuk

Respostas:

10

Um dos motivos seria o comportamento de um firewall no example.com. Caso o firewall simplesmente reduza o tráfego, você verá a primeira resposta. Por outro lado, se o firewall rejeitar o tráfego, você receberá o segundo.

Para entender melhor, use um filtro de pacotes, como tcpdump ou wireshark, e cheire o tráfego enquanto você executa os testes.

O primeiro caso será semelhante a Syn, Syn, Syn ...

O segundo caso será semelhante ao Syn, Rst, juntamente com uma possível porta ICMP inacessível.

Uma conexão bem-sucedida se parecerá com o Syn, Syn-Ack, Ack que esperamos no handshake de três vias tcp .

dmourati
fonte
2
Uma dúvida, portanto, se algum aplicativo não estiver escutando em alguma porta e não houver firewall bloqueando a conexão com essa porta, eu devo experimentar o segundo caso. Quero dizer, devo receber um sinalizador RST TCP definido na resposta. Estou correcto ?
Pradeepchhetri 07/07
2
@pradeepchhetri Sim, se não houver nada escutando ou bloqueando o tráfego para um host ativo , você receberá um erro de conexão recusada (e o pacote TCP RST associado). Isso é realmente incomum na Internet atualmente, no entanto.
um CVn 07/07