Port (Computernetzwerk)

Im Computernetzwerk, a Hafen Ist eine Nummer zugewiesen, um einen Verbindungsendpunkt einzigartig zu identifizieren und Daten in einen bestimmten Dienst zu lenken. Auf Softwareebene innerhalb eines Betriebssystem, ein Port ist ein logisches Konstrukt, das eine bestimmte identifiziert Prozess oder eine Art von Art von Netzwerkdienst. Für jeden wird ein Port identifiziert Transportprotokoll und Adresskombination durch einen 16-Bit nicht signierte Nummer, bekannt als Port-Nummer. Die häufigsten Transportprotokolle, die Portnummern verwenden, sind die Transmissionskontrollprotokoll (TCP) und die User Datagram Protocol (UDP).

Eine Portnummer ist immer mit einer verknüpft IP Adresse eines Hosts und der Art des Transportprotokolls, das für die Kommunikation verwendet wird. Es vervollständigt das Ziel oder die Originierung Netzwerkadresse einer Nachricht. Spezifische Portnummern sind reserviert, um bestimmte Dienste zu identifizieren, damit ein ankommendes Paket einfach an eine laufende Anwendung weitergeleitet werden kann. Zu diesem Zweck identifizieren die Hafennummern unter 1024 die historisch am häufigsten verwendeten Dienste und werden als die genannt Bekannte Portnummern. Anschlüsse mit höheren Zahlen sind für die allgemeine Verwendung durch Anwendungen verfügbar und werden als bezeichnet als kurzlebige Ports.

Ports bieten a Multiplexing Service für mehrere Dienste oder mehrere Kommunikationssitzungen an einer Netzwerkadresse. In dem Client -Server -Modell Für die Anwendungsarchitektur können mehrere gleichzeitige Kommunikationssitzungen für denselben Service eingeleitet werden.

Port-Nummer

Eine Portnummer ist eine 16-Bit-nicht signierte Ganzzahl, die daher zwischen 0 und 65535 liegt UDPDer Quellport ist optional und ein Wert von Null bedeutet keinen Port. EIN Prozess assoziiert seine Eingangs- oder Ausgangskanäle über eine Internet -Sockel, was eine Art von ist Dateideskriptor, verbunden mit a Transportprotokoll, ein IP Adresseund eine Portnummer. Dies ist bekannt als als Bindung. Ein Socket wird von einem Prozess zum Senden und Empfangen von Daten über das Netzwerk verwendet. Die Netzwerksoftware des Betriebssystems hat die Aufgabe, ausgehende Daten von allen Anwendungsports an das Netzwerk zu übertragen und einzusteigen Netzwerkpakete zu Prozessen, indem Sie die IP -Adresse und die Portnummer des Pakets an einen Socket entsprechen. Für TCP kann nur ein Prozess an eine bestimmte IP -Adresse und Portkombination binden. Gemeinsame Anwendungsfehler, manchmal genannt Portkonfliktetreten auf, wenn mehrere Programme versuchen, dieselbe Portnummer in derselben IP -Adresse mit demselben Protokoll zu verwenden.

Anwendungen, die gemeinsame Dienste implementieren, verwenden häufig speziell reserviert Bekannte Portnummern Für den Empfang von Serviceanfragen von Kunden. Dieser Prozess ist als bekannt als Hörenund beinhaltet den Erhalt einer Anfrage im bekannten Port, das potenziell ein Eins-zu-Eins-Server-Klient-Dialog mit diesem Höranschluss erstellt. Andere Kunden können sich gleichzeitig mit demselben Höranschluss verbinden. Dies funktioniert, da eine TCP -Verbindung durch ein Tupel identifiziert wird, das aus der lokalen Adresse, dem lokalen Port, der Remoteadresse und dem Remote -Port besteht.[1] Die bekannten Ports werden durch Konvention definiert, die von der überwacht werden Internet zugewiesene Zahlen Autorität (Iana). In vielen Betriebssystemen sind spezielle Berechtigungen erforderlich, damit Anwendungen an diese Ports binden, da diese häufig für den Betrieb von IP -Netzwerken als kritisch eingestuft werden. Umgekehrt verwendet das Client -Ende einer Verbindung in der Regel eine hohe Portnummer, die für kurzfristige Verwendung zugewiesen wurde und daher als als bezeichnet wird kurzlebiger Hafen.

Gemeinsame Portnummern

IANA ist verantwortlich für die globale Koordination der DNS -Root, der IP -Adressierung und anderer Protokollressourcen. Dies beinhaltet die Registrierung der häufig verwendeten Portnummern für bekannte Internetdienste.

Die Portnummern sind in drei Bereiche unterteilt: die Bekannte Ports, das Registrierte Ports, und die dynamisch oder private Häfen.

Die bekannten Ports (auch bekannt als Systemports) Diejenigen sind von 0 bis 1023 nummeriert. Die Anforderungen für neue Aufgaben in diesem Bereich sind strenger als für andere Registrierungen.[2]

Bemerkenswerte bekannte Portnummern
Nummer Abtretung
20 Dateitransferprotokoll (FTP) Datenübertragung
21 Dateitransferprotokoll (FTP) Befehlskontrolle
22 Sichere Schale (SSH) sichere Anmeldung
23 Telnet Remote -Anmeldedienst, unverschlüsselte Textnachrichten
25 Simple Mail Transfer Protocol (SMTP) E -Mail -Zustellung
53 Domainnamensystem (DNS) Service
67, 68 Dynamisches Hostkonfigurationsprotokoll (DHCP)
80 Hypertext Transfer Protocol (Http) verwendet in der Weltweites Netz
110 Postprotokoll (POP3)
119 Netzwerk -Nachrichtentransferprotokoll (NNTP)
123 Netzwerkzeitprotokoll (NTP)
143 Internet -Nachrichtenzugriffsprotokoll (IMAP) Verwaltung digitaler Mail
161 Einfaches Netzwerkmanagementprotokoll (SNMP)
194 Internet Relay Chat (IRC)
443 Http sicher (Https) http über TLS/SSL
546, 547 DHCPv6 IPv6 -Version von DHCP

Die registrierten Häfen sind diejenigen von 1024 bis 49151. Iana behält die offizielle Liste der bekannten und registrierten Bereiche bei.[3]

Die dynamischen oder privaten Anschlüsse sind diejenigen von 49152 bis 65535. Eine gemeinsame Verwendung für diesen Bereich ist für kurzlebige Ports.

Netzwerkverhalten

Transportschichtprotokolle, so wie die Transmissionskontrollprotokoll (TCP) und die User Datagram Protocol (UDP), Daten mithilfe von Daten übertragen Protokolldateneinheiten (PDUS). Für TCP ist die PDU a Segmentund für UDP ist es a Datagramm. Beide Protokolle verwenden a Header Feld zur Anzeige der Quell- und Zielportnummern. Die Portnummern sind im Transportprotokoll codiert Paketheaderund sie können nicht nur durch die Send- und Empfangshosts, sondern auch von anderen Komponenten der Netzwerkinfrastruktur leicht interpretiert werden. Im Speziellen, Firewalls sind üblicherweise so konfiguriert, dass sie zwischen Paketen basierend auf ihren Quell- oder Zielportnummern unterschieden werden. Port-Weiterleitung ist eine Beispielanwendung davon.

Port -Scan

Die Praxis des Versuchs, eine Reihe von Ports nacheinander auf einem einzelnen Host herzustellen, ist allgemein bekannt als Port -Scan. Dies ist normalerweise entweder mit böswilliger Verbindung verbunden knacken Versuche oder mit Netzwerkadministratoren, die nach möglichen Schwachstellen suchen, um solche Angriffe zu verhindern. Portverbindungsversuche werden häufig von Hosts überwacht und protokolliert. Die Technik von Port Klopfen Verwendet eine Reihe von Portverbindungen (KNOs) von einem Client -Computer, um eine Serververbindung zu aktivieren.

Beispiele

Ein Beispiel für die Verwendung von Ports ist die Lieferung von Email. Ein Server, der zum Senden und Empfangen von E -Mails verwendet wird, benötigt im Allgemeinen zwei Dienste. Der erste Service wird verwendet, um E -Mails von und von anderen Servern zu transportieren. Dies wird mit dem erreicht Simple Mail Transfer Protocol (SMTP). Eine Standard -SMTP -Dienstanwendung hört auf TCP -Port 25 für eingehende Anforderungen zu. Der zweite Service ist normalerweise entweder der Postprotokoll (Pop) oder die Internet -Nachrichtenzugriffsprotokoll (IMAP), das von verwendet wird von E -Mail -Client Anwendungen auf den Personalcomputern der Benutzer zum Abrufen von E -Mail -Nachrichten vom Server. Der POP -Dienst hört auf TCP -Portnummer 110 zu. Beide Dienste können auf demselben Host -Computer ausgeführt werden. In diesem Fall unterscheidet die Portnummer den Dienst, der von einem Remote -Computer angefordert wurde, sei es der Computer eines Benutzers oder einen anderen Mailserver.

Während die Anzahl der Höranschlüsse eines Servers gut definiert ist (IANA nennt diese die bekannten Ports), wird die Portnummer des Clients häufig aus dem dynamischen Portbereich ausgewählt (siehe unten). In einigen Anwendungen verwenden die Clients und der Server jeweils bestimmte Portnummern, die von der IANA zugewiesen werden. Ein gutes Beispiel dafür ist DHCP In dem der Client immer UDP -Port 68 verwendet und der Server immer UDP -Port 67 verwendet.

Verwendung in URLs

Portnummern werden manchmal im Web oder anderen gesehen Uniforme Ressourcenlokatoren (URLs). Standardmäßig verwendet HTTP Port 80, und HTTPS verwendet Port 443, aber eine URL -ähnlich http://www.example.com:8080/path/ Gibt an, dass die Webbrowser Verbindet stattdessen mit Port 8080 des HTTP -Servers.

Geschichte

Das Konzept der Hafenzahlen wurde von den frühen Entwicklern der Arpanet in informeller Zusammenarbeit von Softwareautoren und Systemadministratoren. Der Begriff Port-Nummer war noch nicht benutzt. Es ging der Verwendung des Begriffs voraus Sockelnummer in den frühen Entwicklungsphasen des Netzwerks. Eine Sockelnummer für einen Remote-Host war eine 40-Bit-Menge.[4] Die ersten 32 Bit waren der heutigen IPv4-Adresse ähnlich, aber zu der Zeit waren die meist signifikantsten 8 Bit die Hostnummer. Der am wenigsten signifikante Teil der Sockelzahl (Bits 33 bis 40) war eine Einheit genannt Weitere achtbit, abgekürzt Aen.[5] Heute, Netzwerkbuchse Bezieht sich auf ein verwandtes, aber eindeutiges Konzept, nämlich die interne Adresse eines Endpunkts, der nur im Knoten verwendet wird.

Am 26. März 1972, Vint Cerf und Jon Postel forderte die Dokumentation der damaligen Verwendung und die Einrichtung eines Socket-Nummernkatalogs in RFC 322. Die Netzwerkadministratoren wurden gebeten, eine Notiz einzureichen oder einen Anruf zu telefonieren. "Beschreibung der Funktions- und Sockelzahlen von Netzwerkdienstprogrammen bei jedem Host".[6] Dieser Katalog wurde anschließend im Dezember 1972 als RFC 433 veröffentlicht und enthielt eine Liste von Hosts und deren Portnummern und die entsprechende Funktion, die bei jedem Host im Netzwerk verwendet wird. Diese erste Registrierungsfunktion diente in erster Linie als Verwendungsdokumentation und wies darauf hin, dass die Nutzung der Portnummer zwischen einigen Hosts widersprüchlich war. "Nützliche öffentliche Dienste".[5] Das Dokument versprach eine Lösung der Konflikte, die auf einem Standard beruhten, den Postel im Mai 1972 in RFC 349 veröffentlicht hatte, in dem er erstmals offizielle Aufgaben von Portnummern zu Netzwerkdiensten vorgeschlagen und eine dedizierte Verwaltungsfunktion vorgeschlagen hatte, die er nannte Zar, um ein Register aufrechtzuerhalten.[7] Die 256 Werte der AEN wurden in die folgenden Bereiche unterteilt:

Aen Ranges
Portzahlbereich Abtretung
0 bis 63 Netzwerkweite Standardfunktionen
64 bis 127 Hostspezifische Funktionen
128 bis 239 Reserviert für zukünftige Verwendung
240 bis 255 Jede experimentelle Funktion

Das Telnet Der Service erhielt die erste offizielle Zuordnung des Wertes 1. Im Detail war der erste Satz von Aufgaben:[7]

Portzuweisungen in RFC 349
Port-Nummer Abtretung
1 Telnet
3 Datei Übertragung
5 Remote -Jobeintrag
7 Echo
9 Verwerfen

Im frühen Arpanet wurde der Aen auch als a genannt Sockelname,[8] und wurde mit dem anfänglichen Verbindungsprotokoll (ICP) verwendet, einer Komponente der Netzwerkkontrollprogramm (NCP).[9][10] NCP war der Vorläufer der modernen Internetprotokolle. Heute die Terminologie Dienstname ist immer noch eng mit Portnummern verbunden, wobei erstere in einigen Netzwerkfunktionen, die eine numerische Portnummer darstellen, in einigen Netzwerkfunktionen verwendet werden.

Verweise

  1. ^ Postel, John. "RFC 793". Abgerufen 29. Juni 2012.
  2. ^ Michelle Cotton; Lars Eggert; et al. (August 2011). IANA -Verfahren (Internet Acialed Number Authority) für die Verwaltung des Dienstes für Dienstnamen und Transportprotokoll -Portnummer. Ietf. doi:10.17487/rfc6335. BCP 165. RFC 6335.
  3. ^ "Portnummern". Internet Nummern Authority (IANA).
  4. ^ RFC 36, Protokollnotizen, S. Crocker (16. März 1970)
  5. ^ a b RFC 433, Sockel -Nummer -Liste, J. Postel, N. Neigus (22. Dezember 1972)
  6. ^ RFC 322, Bekannte Sockelzahlen, V. Cerf, J. Postel (26. März 1972)
  7. ^ a b RFC 349, Vorgeschlagene Standard -Sockelzahlen J. Postel (30. Mai 1972)
  8. ^ RFC 197, Erstes Verbindungsprotokoll-Bewertet, A. Shoshani, E. Harslem (14. Juli 1971)
  9. ^ NIC 7104, Arpanet -Protokollhandbuch
  10. ^ Postel, Jon; Feinler, E. (1978). Arpanet -Protokollhandbuch. Menlo Park, CA: Netzwerkinformationszentrum.