Was genau ist Port Listening

8

Bedeutet das "Abhören" eines Ports ein fortlaufendes Polling zu diesem Port oder einen diskreten Polling- oder einen Interrupt-gesteuerten Prozess. Was genau passiert in "Listening to a Port"?

    
Dinushan 19.09.2011, 11:36
quelle

2 Antworten

7

Ein Port ist nichts anderes als ein Konzept , es ist nicht so, als könnten Sie einige Speicherbits überprüfen und auf einige Informationen warten.

Wenn auf einen Port gelauscht wird, wird dem Kernel beigebracht, was er tun soll, wenn er Pakete mit dieser spezifischen Portnummer empfängt : Sende ihn an den Prozess, der danach gefragt hat Port, anstatt zu antworten, dass der Port nicht offen ist.

NB: Das sind nur Spekulationen, ich habe keine Kernel-Implementierung untersucht.

BEARBEITEN: Auf der Prozessseite

  • listen teilt dem Kernel mit, dass Sie an einem bestimmten rendez-vous-Port
  • (Ich bin mir nicht sicher, was zwischen listen und accept passiert, entweder puffert der Kernel die neuen Verbindungen oder lehnt sie ab, bis accept aufgerufen wurde, siehe das entsprechende Handbuch)
  • accept bindet die Verbindung an einen Kommunikationsport und beginnt mit dem Puffern des eingehenden Pakete
  • recv (oder poll oder select sicherlich) werden Daten aus dem Empfangspuffer
Kevin 19.09.2011, 12:02
quelle
5

Der Kernel extrahiert den Ziel-Port aus eingehenden IP-Paketen und leitet das Paket dann an alle Empfänger weiter, die für diesen bestimmten Port registriert sind (ja, es kann mehrere geben). Ein Benutzerprozess verwendet normalerweise select (2) oder poll (2), um auf ein Ereignis zu warten, aber diese Abfrage unterscheidet sich von der herkömmlichen Abfrage wie "Lese-E / A-Anschluss; Verzögerung 500 ms".

    
ott-- 19.09.2011 12:37
quelle