Ports
Auch wenn sich mein Blog überwiegend an Fortgeschrittene richtet, habe ich mir aus gegebenen Anlass vorgenommen etwas Grundwissen, das beim Entwickeln von Web Anwendungen vorteilhaft ist, zu erläutern.
Wie ein USB-Port ist auch ein Port aus Softwaresicht als Anschluss anzusehen. Dabei verbindet er die IP Adresse / Hostname mit einem Netzwerkdienst oder auch Prozess des Endgeräts und beschränkt sich auf das verwendete Transport Protokoll.
Schicht | Protokoll |
Anwendung | HTTP, HTTPS, SSH, [...] |
Transport | TCP, UDP, [...] |
Netzwerk | IP, ICMP, [...] |
LAN / WAN |
Rein technisch gesprochen ist ein Port der Endpoint eines Socket.
Die am häufigsten verwendeten Transport Protokolle wären TCP (Transmission Control Protocol) und UDP (User Datagram Protocol). Sie befinden sich eine Ebene unter der Anwendungsschicht auf der Transportschicht und meistens reicht es zu wissen, dass sie je nach Anwendungsprotokoll die Basis bilden.
Demnach gibt es keine Probleme wenn man jeweils einen Dienst auf TCP 127.0.0.1:8080 und UDP 127.0.0.1:8080 laufen lassen würde. Beim Versuch noch einen Dienst auf TCP 127.0.0.1:8080 zu starten würde die startende Anwendung jedoch den Dienst mit einem Fehler quittieren.
Ein Port wird mit einem unsigned (vorzeichenloser) 16 Bit Integer Wert adressiert und kann damit im Zahlenbereich zwischen 0 und 65.535 liegen. Wie oben schon erwähnt wird er der Adresse des Computers mit einem Doppelpunkt angehängt (localhost:1234
).
Well-known, registered and private Ports
Port | Dienst | |
20 | FTP | Datentransfer |
21 | Command | |
22 | SSH | Secure Shell |
25 | SMTP | Simple Mail Transport Protocol |
80 | HTTP | Hyper Text Transport Protocol |
443 | HTTPS | Hyper Text Transport Protocol Secure |
Die im Zahlenbereich von 0 bis 1023 liegenden Ports werden als well-known bezeichnet und sind Systemports, die verbreitete Netzwerkdienste bereitstellen. Bei Unix basierenden Betriebssystemen braucht die Anwendung Superuser Privilegien um sie zu binden.
Die Ports 1024 - 49.151 werden als registrierte Ports bezeichnet. Die restlichen sind dynamische bzw. private Ports.
Weitere Blog Posts aus dieser Serie
- Ports
- Protokolle