Warum laufen einige Verbindungen ab und andere werden abgelehnt?

12

Ich habe festgestellt, dass ich manchmal beim Versuch, in einem zufälligen Port zu telneten, zwei Arten von Szenarien beobachtet habe:

$ telnet example.com 3432
  Trying 173.252.110.27...

$ telnet example.com 3432
  Connection Refused.

Kann mir jemand erklären, was der Unterschied zwischen den beiden ist?

pradeepchhetri
quelle
1
Im ersten Fall wird der Verkehr gelöscht und im zweiten Fall wird der Verkehr abgelehnt. Der folgende Link fasst den Unterschied zwischen DROP und REJECT zusammen. Chiark.greenend.org.uk/~peterb/network/drop-vs-reject
tuk

Antworten:

10

Ein Grund wäre das Verhalten einer Firewall auf example.com. Falls die Firewall den Datenverkehr einfach löscht, wird die erste Antwort angezeigt. Wenn die Firewall den Datenverkehr ablehnt, erhalten Sie den zweiten.

Nehmen Sie zum besseren Verständnis einen Paketfilter wie tcpdump oder wireshark und schnüffeln Sie den Datenverkehr, während Sie die Tests durchführen.

Der erste Fall sieht aus wie Syn, Syn, Syn ...

Der zweite Fall sieht aus wie Syn, Rst zusammen mit einem möglichen ICMP-Port, der nicht erreichbar ist.

Eine erfolgreiche Verbindung sieht aus wie die Syn, Syn-Ack, Ack, die wir beim TCP- Drei-Wege-Handshake erwarten .

dmourati
quelle
2
Ein Zweifel, falls eine App einen Port nicht überwacht und keine Firewall die Verbindung zu diesem Port blockiert, sollte der zweite Fall auftreten. Ich meine, ich sollte ein RST-TCP-Flag in der Antwort setzen lassen. Hab ich recht ?
Pradeepchhetri
2
@pradeepchhetri Ja, wenn nichts auf einen Live-Host lauscht oder den Datenverkehr blockiert , wird der Fehler "Verbindung verweigert" (und das zugehörige TCP-RST-Paket) angezeigt. Das ist heutzutage im Internet jedoch wirklich ungewöhnlich.
Ein Lebenslauf