Einführung
- Bindeglied zwischen transportorientierten und anwendungsorientierten Schichten
- Zuordnung von Datenpakten an Anwendung
- Logische End-zu-End-Verbindung
- Protokolle
- Verbindungsorientiert, TCP
- Verbindungslos, UDP
Sockets
bezeichnet Kombination aus IP-Adresse und Port
Client-Socket verbindet sich mit Server-Socket
Ports
- Endpunkt-zu-Endpunkt Kommunikation
- Adressierung der Anwendung auf Host
- Portnummer sind 16Bits, 2 Bytes
- im Bereich 0 bis 65 535
- gibt anw welcher Dienst angesprochen wird
- Server Ports unter Port 1024
Standard Ports
UDP - User Datagram Protocol
- Übertragungseinheit auf Schicht 4 sind Segmente
- Datenübertragung
- Transaktionsorientiert
- einfache Anfrage
- einfache Antwort über Netzwerk
- Bsp.: Zeitabfragen (NTP), Namensauflösung (DNS)
- Einfach
- Header hat nur Quell und Ziel Port, Länge und Prüfsumme
- Verbindungslos
- geeignet für große Anzahl von Clients
- Bsp.: IP-Fernsehen, Broadcasts
- Keine Wiederholungen von verlorenen Paketen
- geeignet für Echtzeit Anwendungen
- Bsp.: VoIP, Spiele, Streaming
- schnell
- Nachteile
- Sende-Reihenfolge und Empfangs-Reihenfolge können unterschiedlich sein
- verlorene Pakete nicht wiederholt
- Sender keine hat keine Bestätigung ob Paket angekommen ist
TCP - Transmission Control Protocol
Zuverlässige Übertragung von Daten
Bestätigung von Datenempfang
Wiederholung von verlorenen Paketen
vergibt Sequenznummer um verlorene Pakete zu bemerken
nummerieren den unstrukturierten aber geordneten Datenstrom
Verbindungsorientiert
Geordnete Datenreihenfolge
Bestätigung von empfangenen Daten
Wiederholung verlorener Pakete
Fehlererkennung
Flusskontrolle
- Empfänger informiert Sende ob Daten gesendet werden sollen, Schiebefenster
Beispiel
- Länge des Datenstroms: 5 Bytes
- Maximale Segmentgröße (Max Segment Size): 1460 Byte
- MSS = MTU - 40 Bytes für IPv4 und Header
- wobei MTU (Maximum Transfer Unit = Max IP-Paketgröße) bei Ethernet 1500 Bytes, DSL 1492 Bytes
- Anhand Sequenznummer kann Empfänger
- Reihenfolge korrigieren
- doppelte Segmente aussortieren
- Länge eines Segments ist aus IP-Header bekannt
- für die Entdeckung von Lücken und neuen Anfordern von Segmenten
- Bei Öffnung von Verbindung (Dreiwege-Handshake)
- Partner tauschen Kontrollinformationen aus
- garantiert das Partner existiert und Daten annimmt
Handshake
Verbindungsaufbau
- Client sendet Segment mit SYN=1 und fordert zur Synchronisation eine Folgenummer - Synchronize
- Server sendet als Bestätigung Segment mit ACK=1 und forder mit SYN=1 zur Synchronisation der Folgenummer auf - Synchronize Acknowledge
- Client bestätigt mit Segment ACK=1, Verbindung wurde Aufgebaut - Acknowledge
- Anfangs-Sequenznummer x und y werden zufällig bestimmt
- noch kein Austausch von Nutzdaten
Datenübertragung
- Client sendet 1000 Byte Nutzdaten
- Server bestätigt Empfang ACK=1 und fordert ACK=1101 als neues Segment an - 400 Byte Nutzdaten
- Client sendet weitere 1000 Byte Nutzdaten und Empfangsbestätigung ACK=1 und Anforderung des nächsten Segments ACK=901
- Server bestätigt Empfang ACK=1 und fordert ACK=2101 als neues Segment an
Verbindungsabbau
- Client sendet Abbauwunsch FIN=1
- Server bestätigt ACK=1
- Server Sender Abbauwunsch FIN=1
- Client bestätigt ACK=1
- kein Austausch von Nutzdaten
NAT - Network Address Translation
- auf Schichten 3 und 4
- Kommunikation von Rechnern eines Netzes über eine NUR IP-Adresse
- Heimrouter