Diese Frage wurde von einem der Software-Ingenieure in meiner Organisation gestellt. Ich bin an der weitesten Definition interessiert.
Antworten
Zu viele Anzeigen?Ein Socket ist ein Daten-E/A-Mechanismus. Ein Port ist ein vertraglich Konzept einer Kommunikationsprotokoll . Ein Socket kann auch ohne einen Port existieren. Ein Port kann ohne einen bestimmten Socket existieren (z. B. wenn mehrere Sockets auf demselben Port aktiv sind, was bei einigen Protokollen zulässig sein kann).
Ein Port wird bei vielen Protokollen verwendet, um zu bestimmen, an welchen Socket der Empfänger das Paket weiterleiten soll, aber er ist nicht immer erforderlich, und die Auswahl des empfangenden Sockets kann auch auf andere Weise erfolgen - ein Port ist ausschließlich ein Werkzeug, das vom Protokoll-Handler im Netzwerk-Subsystem verwendet wird. z.B. wenn ein Protokoll keinen Port verwendet, können Pakete an alle lauschenden Sockets oder an jeden Socket gehen.
Relative TCP/IP-Terminologie, die, wie ich annehme, in der Frage impliziert ist. Für den Laien ausgedrückt:
Ein PORT ist wie die Telefonnummer eines bestimmten Hauses in einer bestimmten Postleitzahl. Die Postleitzahl der Stadt könnte man sich als die IP-Adresse der Stadt und aller Häuser in dieser Stadt vorstellen.
Ein SOCKET hingegen ist eher wie ein Telefongespräch zwischen den Telefonen zweier Häuser, die miteinander sprechen. Diese Verbindungen können zwischen Häusern in derselben Stadt oder zwischen zwei Häusern in verschiedenen Städten hergestellt werden. Das SOCKET ist die vorübergehend hergestellte Verbindung zwischen den beiden Telefonen, die miteinander sprechen.
Hafen:
Ein Anschluss kann sich auf einen physischen Verbindungspunkt beziehen für Peripheriegeräte, wie z. B. serielle, parallele und USB-Anschlüsse. Der Begriff Port bezieht sich auch auf bestimmte Ethernet-Verbindungspunkte, z. B. wie z. B. die eines Hubs, Switches oder Routers.
Steckdose:
Ein Socket stellt eine einzelne Verbindung zwischen zwei Netzwerkanwendungen dar. Diese beiden Anwendungen laufen nominell auf verschiedenen Computern, Sockets können aber auch für die Kommunikation zwischen Prozessen auf einem einzigen Computer verwendet werden. Anwendungen können mehrere Sockets erstellen, um miteinander zu kommunizieren. Sockets sind bidirektional, d. h. jede Seite der Verbindung kann sowohl Daten senden als auch empfangen.
Socket ist eine Abstraktion, die der Kernel den Benutzeranwendungen für Daten-E/A zur Verfügung stellt. Ein Socket-Typ wird durch das Protokoll definiert, das er verarbeitet, eine IPC-Kommunikation usw. Wenn also jemand einen TCP-Socket erstellt, kann er mit einfachen Methoden Daten in den Socket lesen und in ihn schreiben. Die Handhabung von Protokollen auf niedrigerer Ebene wie TCP-Konvertierungen und die Weiterleitung von Paketen an Netzwerkprotokolle auf niedrigerer Ebene wird von der jeweiligen Socket-Implementierung im Kernel vorgenommen. Der Vorteil ist, dass der Benutzer sich nicht um protokollspezifische Feinheiten kümmern muss und Daten einfach wie einen normalen Puffer in den Socket lesen und schreiben kann. Dasselbe gilt für IPC: Der Benutzer liest und schreibt einfach Daten in den Socket, und der Kernel kümmert sich um alle Details auf unterer Ebene, je nach Art des erstellten Sockets.
Der Port in Verbindung mit der IP-Adresse ist wie eine Adresse für den Socket, obwohl er nicht notwendig ist, aber er hilft bei der Netzwerkkommunikation.
Im weitesten Sinne, Steckdose - ist genau das, eine Steckdose, genau wie Ihre Strom-, Kabel- oder Telefonsteckdose. Ein Punkt, an dem "benötigte Dinge" (Strom, Signale, Informationen) herausgehen und hineingehen können. Dahinter verbirgt sich eine Menge Detailwissen, das für die Nutzung der "benötigten Dinge" nicht erforderlich ist. In der Softwaresprache bietet es eine allgemeine Möglichkeit, einen Kommunikationsmechanismus zwischen zwei Entitäten zu definieren (diese Entitäten können alles Mögliche sein - zwei Anwendungen, zwei physisch getrennte Geräte, Benutzer- und Kernelbereich innerhalb eines Betriebssystems usw.)
Ein Port ist ein Endpunkt-Diskriminator. Er unterscheidet einen Endpunkt von einem anderen. Auf Netzwerkebene unterscheidet er eine Anwendung von einer anderen, so dass der Netzwerk-Stack Informationen an die entsprechende Anwendung weiterleiten kann.