Dlaczego niektóre połączenia tracą ważność, a inne są odrzucane?

14

Zauważyłem, że czasami próbując telnet w jakimś losowym porcie, obserwowałem dwa rodzaje scenariuszy:

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Czy ktoś może mi wyjaśnić, jaka jest różnica między nimi?

pradeepchhetri
źródło
1
W pierwszym przypadku ruch jest przerywany, aw drugim - ruch odrzucany. Poniższy link podsumowuje różnicę między DROP a REJECT chiark.greenend.org.uk/~peterb/network/drop-vs-reject
tuk

Odpowiedzi:

10

Jednym z powodów byłoby zachowanie zapory na przykład.com. W przypadku gdy zapora po prostu ogranicza ruch, zobaczysz pierwszą odpowiedź. Z drugiej strony, jeśli zapora sieciowa odrzuci ruch, otrzymasz drugi.

Aby lepiej zrozumieć, weź filtr pakietów, taki jak tcpdump lub wireshark, i wąchaj ruch podczas wykonywania testów.

Pierwszy przypadek będzie wyglądał jak Syn, Syn, Syn ...

Drugi przypadek będzie wyglądał jak Syn, Rst wraz z możliwym portem ICMP nieosiągalnym.

Udane połączenie będzie wyglądało jak Syn, Syn-Ack, Ack, którego oczekujemy w trójelementowym tcp .

dmourati
źródło
2
Jedna wątpliwość, więc na wszelki wypadek, jeśli jakaś aplikacja nie nasłuchuje na jakimś porcie i nie ma zapory blokującej połączenie z tym portem, powinienem zauważyć drugi przypadek. Mam na myśli, że powinienem otrzymać flagę RST TCP w odpowiedzi. Mam rację ?
pradeepchhetri
2
@pradeepchhetri Tak, jeśli nic nie nasłuchuje ani nie blokuje ruchu do hosta na żywo , pojawi się błąd odmowy połączenia (i powiązany pakiet TCP RST). Jednak w dzisiejszych czasach jest to naprawdę rzadkie.
CVn