Grundlagen TCP und UDP

TCP und UDP

Transportschicht
– IP: Vermittlungsschicht
– – Nicht zugänglich für Anwendungen!
– Transportschicht als Schnittstelle zum Netz
– – bietet verbindungsorientierten, verlässlichen Dienst
– – bietet verbindungslosen, nicht verlässlichen Dienst
– – Abstraktion von Details der Kommunikation
Ende-zu-Ende-Sicht: Die Transportschicht erlaubt den höheren Schichten, die gesamte Routingkomplexität zu ignorieren. Es gibt nur ein Ziel, den gewählten Empfänger. Die Router sind „unsichtbar“.

UDP

– User Datagram Protocol (UDP) [RFC 768]
– – Einfachstes Transportprotokoll: verbindungsloser Transportdienst
– – Nicht verlässlich: Pakete können verloren gehen
– – Überlässt der Anwendung die Fehlerbehandlung und Flusssteuerung
– – Unterstützt Multicast und Broadcast (mit IP Multicast / Broadcast)

IP Datagramm
IP Datagramm

Aufbau eines UDP-Pakets

UDP-Pakets
UDP-Pakets

UDP-Adresse: <IP-Adresse, UDP-Portnummer>
– Sender und Empfänger so zu identifizieren: Jeder Port kann nur von einem Prozess (einer Anwendung) zur gleichen Zeit verwendet werden.
– auch „UDP-Socket“ genannt

UDP

– Anwendungen
– – DNS (Domain Name System)
– – – Daten passen meist in ein Datagramm. Verwendet auch TCP.
– – NFS (Network File System)
– – – Performanzgründe, heutige Versionen verwenden TCP
– – SNMP (Simple Network Management Protocol)
– – – Möglichst geringe Netzlast erzeugen
– – RIP (Routing Information Protocol, dynamische Routingtabellenanpassung)
– – – Ebenfalls: Kurze Nachrichten, Netzlast minimieren
– – Multimedia-Streaming
– – – geringer Aufwand, keine Notwendigkeit für Verlässlichkeit

TCP

– Transmission Control Protocol (TCP) [RFC 793, 1122, 1323]
– Bereitstellung eines zuverlässigen Ende-zu-Ende-Bytestroms in einem unzuverlässigen Netz (verbindungsorientierter Transportdienst)
– Verlässlicher Datenstrom
– – Fehlerfrei, keine Verluste, keine Duplikate, Reihenfolge intakt
– – reiner Bytestrom, d.h., Nachrichtengrenzen werden nicht erhalten, z.B. send(170 Bytes) + send(230) = receive(400)
– – Teilt Anwendungsdaten in Blöcke (Segmente) <=64 KiBytes (meistens ca. 1500 Bytes); jedes Segment wird als ein IP-Datagramm geschickt
– TCP-Adresse = <IP-Adresse, TCP-Portnummer> („TCP-Socket“)

IP Datagramm TCP
IP Datagramm TCP

Aufbau eines TCP-Segments

TCP-Segments
TCP-Segments

Verlässliche Kommunikation

– Segmente werden bestätigt
– – Empfänger schickt Bestätigung (ACK) mit Folgenummer an den Absender
– – Es wird nur bestätigt, wenn alle bisherigen Segmente eingetroffen sind
– Beispiel: sechs Segmente, der Reihe nach verschickt (1, 2, 3, 4, 5, 6), Paket 3 und 4 verspäten sich in der Ankunft

Verlässliche Kommunikation
Verlässliche Kommunikation

TCP- und UDP-Dienste

– Je Port kann nur ein Dienst laufen
– Aber: Dienst „von außen“ nicht identifizierbar
– – Man müsste sich verbinden, um zu erfahren, welcher Dienst an diesem Port läuft
– – Daher wird für bestimmte Ports („Well-Known“-Ports, [ RFC 1700 ]) ein zugehöriger Dienst angenommen.

TCP UDP
– FTP: 20 und 2 (Dateitransfer)
– SSH: 22 (Anmeldung)
– SMTP: 25 (E-Mail)
– HTTP: 80 (WWW)
– DNS: 53 (Domänennamen)
– NFS: 111 (Netzdateisystem)
– SNMP: 161 und 162 (Management)

Socket

– TCP / UDP – Programmierschnittstelle in UNIX
– Socket-Abstraktion ( = Steckdose )
– – angelehnt an das Datei-Modell der UNIX-Ein- und -Ausgabe
– – erstmals in BSD UNIX, heute allgemein gebräuchlich
– Erste Implementierung in C, heute Implementierungen für verschiedene Programmiersprachen (z.B. C++, Java)
– TCP: Server-Socket vs. Client-Socket
– – Server-Socket: wartet passiv auf Verbindungsanfrage auf einem Port; eigentliche Verbindung läuft über neu vergebenen Port
– – Client-Socket stellt aktiv Verbindungsanfrage an einen Port

Grundlagen Domain Name System

Domain Name System

IP-Adressen schlecht zu merken – schon gar bei IPv6

– Einfacher: „sprechende“ Namen (symbolische Adressen)
– Gesucht: Dienst, der die „Auflösung“ der gegebenen symbolischen Adressen in IP-Adressen und umgekehrt (Rückwärtsauflösung) leistet

www.ibb-fisi.de pfeile 89.163.227.62

Eigenschaften

– Namen (symbolische Adressen) bestehen aus mit Punkten getrennten textuellen Teilen (a.b.c.d…x)
– Erster Bestandteil bezeichnet den Rechner, Rest bezeichnet die Domäne
– Hierarchisches Domänen-Konzept: ibb-fisi.de.
– – Domänen können Rechner und/oder Domänen beinhalten
– Verteiltes System zur Abbildung der Namen auf IP-Adressen

Namensraum

TopLevelDomänen
(TLD)
generisch: com, edu,… (gTLD)
geografisch: de, it, … (ccTLD)
speziell: arpa

wurzel
wurzel

 

Neue gTLDs

• Einführung neuer gTLDs zu den traditionellen
– com, net, org sehr auf amerikanische Lokationen konzentriert
– neue gTLDs
– – biz: ohne Sponsor, eingeschränkt: nur für kommerzielle Stellen
– – info: ohne Sponsor, uneingeschränkt
– – name: ohne Sponsor, eingeschränkt: nur für Individuen
– – museum: Sponsor „Museum Domain Management Association“, für Museen
– – coop: Sponsor „DotCooperation LLC“ (USA), vorgesehen für internationale Verbünde
– – aero: Sponsor „Societe International de Telecommunications Aeronautiques“ (Belgien), für Flugverkehr
– – pro: ohne Sponsor, eingeschränkt: nur für Berufsgruppen, insbesondere Juristen, Steuerberater, Anwälte
– – mobi (Mobiltelefone) gerade in „Sunrise“-Phase (Erste Verteilung von Domänennamen)
– – xxx in einigen Ländern noch umstritten

Namenserver

– Namenserver als verteiltes System
– Replikation der Namenserver zur Steigerung der Zuverlässigkeit
– Klienten des Namensdienstes stellen Anfrage per UDP an Port 53
– Jeder Namen-Server kennt mindestens einen Vorgänger
– – Die „Primary Name Server“ kennen die „Root Name Server“
– Zwischenspeichern der Namensinformation im Namensdienst
– – Einträge im Cache: Name / IP-Adresse / von welchem NS
– – Möglichkeit veralteter Information wird mitgeteilt
– – Bereinigung des Caches mit TTL (time-to-live) für Einträge

Rückwärtsauflösung

– Diesmal IP-Adresse bekannt, aber nicht der Rechnername
– – Beispiel: Welcher Rechner heißt 193.99.144.85?
– – Wohin die Anfrage richten?
– – Wie kann man auch hier eine Hierarchie einführen?
– Problem: DNS-Adressen sind von rechts nach links aufgebaut (Rechner links), aber IP-Adressen von links nach rechts (Rechner rechts)
– Abbildung in den DNS-Namensraum in-addr.arpa.:
– – a.b.c.d → d.c.b.a.in-addr.arpa.
– Jede Institution, die eine Domäne verwaltet, bekommt auch die Hoheit über die entsprechende in-addr.arpa.-Domäne
– – Beispiel: uni-kassel.de = 141.51.x.x
– – Damit verwaltet die Uni Kassel auch den Namensraum x.x.51.141.in-addr.arpa

E-Mail-Versand

– E-Mail-Adressen: benutzer@maildomäne
– „maildomäne“ bezeichnet in der Regel keinen Rechner!
– –  $ ping vs.ibb-fisi.de ping: unknown host vs.ibb-fisi.de
– Sendmail (verbreitetes E-Mail-Versendeprogramm) muss herausfinden, an welchen Rechner die Mail weitergereicht werden soll
– – Anfrage eines so genannten MX record (Mail exchange)

Beispiel: E-Mail an „info@ibb-fisi.de“

E-Mail Versand

Unterstützung von IPv6

– Rückwärtsauflösung
– – Abfrage jetzt auf „ip6.arpa.“: IP-Adresse wieder umgekehrt, aber auf Halbbyte-Basis
4321:0:1:2:3:4:567:89ab
– – – b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.ip6.arpa.