- URLs (Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #136
- IP-Adressen (Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #137
- DNS und DHCP (Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #138
- Routing (Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #140
- Ports und Protokolle (Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #141
Um Ports und Netzwerkprotokolle geht es in der einhunderteinundvierzigsten Episode des Anwendungsentwickler-Podcasts.
Podcast: Play in new window | Download (Duration: 44:26 — 21.0MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Inhalt
Mit dem Kommandozeilentool ping
kann getestet werden, ob die Kommunikation zum Ziel über das Netzwerk grundsätzlich möglich ist. Wenn ja, kann man die Adresse dann z.B. auch im Browser aufrufen.
Ports
- Die grundsätzliche Kommunikation steht nun also, aber woher weiß ein Server, welchen Dienst er einem Client anbieten soll (z.B. Mail oder WWW oder eben auf den „Ping“ antworten)?
- Die Lösung sind Ports. Für jeden bekannten Dienst gibt es einen einzelnen Port, der einfach an die IP-Adresse bzw. an den DNS-Namen angehängt werden kann, z.B.
google.de:80
. - Allgemein bekannte Dienste haben verbindlich festgelegte, so genannte well-known Ports bis 1024. Beispiele: HTTP 80, SMTP 25, SSH 22 oder Doom 666.
- Übrigens:
ping
benutzt das Protokoll ICMP, das Bestandteil von IP ist und keinen eigenen Port verwendet. - Unter Windows gibt es in der Datei
C:\Windows\System32\drivers\etc\services
eine Liste dieser bekannten Ports.
# Copyright (c) 1993-2004 Microsoft Corp. # # This file contains port numbers for well-known services defined by IANA # # Format: # # <service name> <port number>/<protocol> [aliases...] [#<comment>] # echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users #Active users systat 11/udp users #Active users daytime 13/tcp daytime 13/udp qotd 17/tcp quote #Quote of the day qotd 17/udp quote #Quote of the day chargen 19/tcp ttytst source #Character generator chargen 19/udp ttytst source #Character generator ftp-data 20/tcp #FTP, data ftp 21/tcp #FTP. control ssh 22/tcp #SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer Protocol ...
Protokolle
- Die Kommunikation steht also jetzt, aber was wird da nun konkret übertragen?
- Protokoll: Eine Abfolge von definierten Befehlen an den Server und dessen passenden Antworten.
- Leicht verständlich ist das Protokoll SMTP (Simple Mail Transfer Protocol) zum Versenden von E-Mails. Beispiel:
HELO
,MAIL FROM
,RCPT TO
,DATA
,Subject: Test
,.
- Mit Hilfe des Kommandozeilenwerkzeugs
telnet
kann man sich gezielt mit einem Port des Zielservers verbinden und die passenden Befehle zum jeweiligen Dienst ausführen.
- SMTP verwendet keinerlei Authentifizierung. Daher ist Spam so ein Problem.
- HTTP (Hypertext Transfer Protocol) verwendet Port 80. Bei HTTP werden andere Befehle verwendet, wichtig ist insb. das
GET
, mit dem man Ressourcen abrufen kann (also insb. Websites). - Als Beispiel, wie wichtig dabei die Verschlüsselung (HTTPS anstatt HTTP) ist, kann man ein kleines Webformular erstellen, das einen Benutzernamen und ein „geschütztes“ Passwort abfragt. Schneidet man den Netzwerkverkehr mit, kann man Benutzernamen und Passwort im Klartext mitlesen, auch wenn im Formular im Passwortfeld nur Sternchen zu sehen sind.
Literaturempfehlungen
Im guten alten IT-Handbuch für Fachinformatiker* werden in Kapitel 4 Netzwerkgrundlagen die meisten hier genannten Inhalte ausführlich erläutert. In meinem Buchclub gehe ich auf die Inhalte auch noch einmal im Detail ein.
Neueste Kommentare