Einführung
Aufgaben der Transportschicht
Adressierung von Anwendungsprocessen
Multiplexen/Demultiplexen
Bereitstellung zuverlässiger und unzuverlässiger Dienste
Fehlererkennung/Fehlerbehebung für zuverlässige Transportdienste
Segmente/Datagramme der Transportschicht werden
Eigenschaften der Transportschicht
Verbergen von Details des Datentransports vor höheren Schichten
Genutzte Technologien
NIcht alles lässt sich verbergen
! Ausbreitungsverzögerung kann nicht vor Anwendungen verborgen werden
!Schwerwiegende Fehler sind ebenfalls sichtbar
Einfürhung
Welche Transportprotokolle werden im wesentlichen im Internet benutzt?
(User Datagram Protocol, Transmission Control Protocol) UDP, TCP
Sind UDP und TCP zuverlässige Dienste?
UDP bietet unzuverlässigen Dienst an
TCP bietet zuverlässigen Dienst an
Client Server Architektur
Definition Server
Ein System bietet Dienste für viele verschiedene Systeme an
Definition:
Ein Server ist ein System welches ständig betriebsbereit und erreichbar ist und vielen anderen Systemen, genannt Clients, Dienste bereitstellt
Server haben oft eine statische IP Adresse
Definition Client
Ein Client ist ein System, welches Dienste auf einem Server in Anspruch nimmt. Client ist evtl. nicht immer in Betrieb oder erreichbar
Clienten haben eine dynamische IP Adresse
Clienten kommunizieren direkt mit Servern und nicht mit anderen Clienten
Adressierung
Was sind die Adressen auf der Transportschicht?
Portnummern
Ziel
Eindeutige Identifikation der Nutzer (Anwendungsprozesse) in einem Endsystem
Ermöglicht Multiplexing/Demultiplexing auf Endsystemen
Was sind Ports?
Adressen der Transportschicht
Unstrukturierte, 16 Bit lange Nummer
Werte zwischen 0 und 65535
Ports sind im lokal im Endsystem eindeutig
Portnummern unter 1024 sind für häufige Anwendungen reserviert
23 für Telnet
25 für SMTP
80 für HTTP
442 für HTTPS
Wer vergibt die Ports?
Well-known Ports (0-1023)
Vergabe durch IANA
Systemprozesse/previlegierte Prozesse
Registered ports/User ports (1024-49151)
Registrierung durch IANA
Nutzung durch Nutzerprozesse ohne besondere Rechte
Dynamic ports/Private ports (49152-65535)
Keine Registrierung
Beispiele für Well known ports?
25: SMTP
80: HTTP
443: HTTPS
UDP
Eigenschaften
unzuverlässiger Dienst
Überprüfung von Bitfehlern mit Prüfsumme
Multiplexen/Demultiplexen von Datagrammen für Anwendungsprozesse
Verbindungslos (Keine Zustandshaltung)
Keine Verbundgungsaufbauphase
Unklar, ob Empfänger Daten empfangen kann
Keine Verbindungsabbauphase
Datagramm
Geringer Overhead von 8 Bytes für den Prüfkopf (Ports, Länge, Prüfsumme)
Best Effort Dienst (unzuverlässiger Dienst)
Keine Aussage darüber, ob das Paket beim Empfänger ankommt
Wo wird UDP verwendet?
VoIP, DNS
Vorteil: Schnelle Reaktion auf kurze Anfragen gebrauch
Prüfsummen
Wo werden Prüfsummen verwendet?
UDP, TCP, IPv4
Wie werden Prüfsummen berechnet?
Pakete (16bit) addieren
Übertrag addieren
Einerkomplement bilden
Wie wird die Prüfsumme bei UDP berechnet?
UDP-Kopf (mit Prüfsummenfeld initial 0)
UDP-Daten
Pseudoheader
TCP
Aufgabe
Erhält von Anwendungsprozess Bytestrom und übergibt TCP-Segmente an IP (Vermittlungsschicht - Schicht 3)
Welche Alternativen regeln den Zeitpunkt, an dem ein TCP Segment an IP Weitergegeben wird?
MSS: Maximum Segment Size
Länge der Anwendungsdaten (Nutzdaten), nicht des TCP-Segments
Push (PSH Flag im TCP Kopf)
Sender verlangt sofortiges Versenden der Daten (Vorrangsdaten) (Bsp. Telnet)
Zeitgeber (Timer)
Nach Zeitintervall der Inaktivität werden vorhandene Daten gesendet
TCP Eigenschaften
Verbindungsorientiert
Zustandshaltung
Verbindungsaufbau (3-Wege Handshake) vor Datenaustausch
Verbindungsabbau (4-Wege Handshake) nach Datenaustausch
Fehlerkontrolle
Sendewiederholung bei Paketfehlern (Go-Back-N)
Quittung (positive, kumulative Quittung : Seq des nächsten erwarteten Bytes)
Sequenznummern (pro Byte, nicht pro Segment)
Timer
Bitfehlerkontrolle
Prüfsumme
Flusskontrolle
Verhindert Überlastung des Empfänger
Staukontrolle
Verhindert Überlastung im Netz
Daatagram
TCP Flusskontrolle
Warum Flusskontrolle?
Verhinderung von Paketverlust durch überlasteten Empfänger (Voller Empfangspuffer)
Welche Variablen gibt es beim Empfänger? Was muss gelten?
LastByteRcvd
LastByteRead
Es muss gelten
LastByteRcvd - LastByteRead <=RcvBuffer
RcvWindow = RcvBuffer-(LastByteRecvd - LastByteRead)
Wie ist das Empfangsfenster W definiert?
Welche Variablen gibt es beim Sender?
Was muss gelten?
LastByteSent
LastByteAcked
Es muss gelten:
LastByteSent-LastByteAcked <= RcvWindow
Welche Bedingung muss geltne, damit der Sender Segmente senden darf?
Sockets
Was sind Sockets
Programmierschnittstelle (API) für Client Server Anwednungen
Anwendungsprozess sendet und empfängt Daten zum und vom Socket
Sockets Sendepuffer (Bei TCP Vermeidung von Senden vieler kleiner TCP Segmente), Empfangspuffer
Sockets verbrauchen Ressourcen
basieren auf Server Client Architektur
Wer stellt Sockets bereit
Betriebssystem
Wo sind Sockets lokalisiert?
Zwischen Anwendungsschicht und Transportschicht
Wie werden Sockets verwendet?
Welche Adressen werden verwendet?
Anwendungen erzeugen sockets
Adressierung auf Anwendungsschicht über Portnummern
Socket
Wie wird ein Client Socket erstellt?
socket = socket.socket(socket.AF_INET, socket.DGRAM)
socket = socket.socket(socket.AFINET, socket.SOCKSTREAM)
Wie verbindet man einen Client Socket zum Serversocket?
socket.connect((“192.14.14.23”, 1080))
Wie empfänmgt man Daten mit einem Socket?
datagram = socket.recv(10)
10 Bytes werden erwartet
Wie werden sockets geschlossen?
socket.close()
Ist der 3- Wege Handshake für Anwendungen sichtbar?
Nein
Last changeda month ago