Bedeutet "Abhören" eines Ports eine kontinuierliche Abfrage dieses Ports oder eine diskrete Abfrage oder einen interruptgesteuerten Prozess. Was genau geschieht beim "Abhören eines Anschlusses"?
Antworten
Zu viele Anzeigen?A Hafen ist nichts anderes als ein Konzept Es ist nicht so, dass man einige Speicherbits überprüfen könnte und auf Informationen wartet.
Also, Abhören zu einem Hafen wird dem Kernel beibringen, was er beim Empfang von Paketen mit dieser spezifischen Portnummer tun soll : Übermittlung an den Prozess, der den Port abhören wollte, anstatt die Antwort zu geben, dass der Port nicht offen ist [oder nicht].
NB: Das sind nur Spekulationen, ich habe keine Kernel-Implementierung untersucht.
EDITAR: Auf der Prozessseite,
listen
teilt dem Kernel mit, dass Sie sich für eine bestimmte Rendezvous-Hafen- (Ich bin mir nicht sicher, was zwischen
listen
yaccept
puffert der Kernel entweder die neuen Verbindungen oder weist sie zurück, bisaccept
aufgerufen wurde, lesen Sie bitte im entsprechenden Handbuch nach) accept
bindet die Verbindung an eine Kommunikationsanschluss und beginnen, die eingehenden Pakete zu puffernrecv
(oderpoll
oselect
sicher) wird Daten aus dem Empfangspuffer abholen
Der Kernel extrahiert den Zielport aus eingehenden IP-Paketen und leitet das Paket dann an alle Empfänger weiter, die sich für diesen speziellen Port registriert haben (ja, es kann mehrere geben). Ein Benutzerprozess verwendet normalerweise select(2) oder poll(2), um auf ein Ereignis zu warten, aber dieses Polling unterscheidet sich vom traditionellen Polling wie "read I/O port; delay 500 ms".