+ All Categories
Home > Documents > Informations- und Kommunikationssysteme · data link physical application transport network data...

Informations- und Kommunikationssysteme · data link physical application transport network data...

Date post: 07-Aug-2019
Category:
Upload: lebao
View: 216 times
Download: 0 times
Share this document with a friend
39
1 Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht Informations- und Kommunikationssysteme Kapitel 2.3 Transportschicht Acknowledgement: Folien angelehnt an J.F. Kurose and K.W. Ross 2 Kapitel 2.3: Transportschicht Unsere Ziele: Prinzipien der Dienste der Transportschicht: Multiplexing / Demultiplexing Verlässlicher Daten- transfer Flusskontrolle Staukontrolle Anwendung auf Protokolle der im Internet: UDP: verbindungsloser Transport TCP: verbindungsorientierter Transport Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht
Transcript
Page 1: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

1 Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Informations- und Kommunikationssysteme

Kapitel 2.3 Transportschicht

Acknowledgement: Folien angelehnt an J.F. Kurose and K.W. Ross

2

Kapitel 2.3: Transportschicht

Unsere Ziele: •  Prinzipien der Dienste der

Transportschicht: •  Multiplexing /

Demultiplexing •  Verlässlicher Daten-

transfer •  Flusskontrolle •  Staukontrolle

•  Anwendung auf Protokolle der im Internet:

•  UDP: verbindungsloser Transport

•  TCP: verbindungsorientierter Transport

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 2: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

3

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

4

Transportdienste und -protokolle

•  Ziel: Bereitstellen einer logischen Kommunikation zwischen Anwendungen auf verschiedenen Hosts

•  Transportschichtprotokolle laufen in Endsystemen

•  Senderseite: Zerlegen von Nachrichten in Segmente, Weitergabe an Netzwerk

•  Empfängerseite: Zusammensetzen der Segmente, Weiterleitung an Anwendung

•  Mehrere Transportnetzprotokolle •  Internet: i.d.R. TCP und UDP

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

application transport network data link physical

application transport network data link physical

network data link physical

network data link physical

network data link physical

network data link physical

network data link physical

Page 3: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

5

Transport vs. Netzwerkschicht

•  Netzwerkschicht: logische Kommunikation zwischen Hosts

•  Transportschicht: logische Kommunikation zwischen Prozessen

•  basiert auf und erweitert Dienste der Netzwerkschicht

Analogie zu Haushalten: Kinder einer Familie senden Briefe

an andere Familie •  Prozesse = Kinder •  Nachrichten= Briefe in

Umschlägen •  Hosts = Häuser •  Adressen des Transportprotokolls

= Annika und Thomas •  Protokoll der Netzwerkschicht =

Postdienst

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

6

Internet Protokolle der Transportschicht

•  Verlässliche Auslieferung in Reihenfolge: TCP

•  Staukontrolle •  Flusskontrolle •  Verbindungsaufbau

•  Unverlässliche Auslieferung: UDP •  Einfache Erweiterung des

“best-effort” IP

•  Nicht verfügbare Dienste: •  Latenzgarantien •  Bandbreitengarantien

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

application transport network data link physical

application transport network data link physical

network data link physical

network data link physical

network data link physical

network data link physical

network data link physical

Page 4: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

7

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

8

Multiplexing/Demultiplexing

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2 P3 P4 P1

Host 1 Host 2 Host 3

= Prozess = Socket

Ausliefern empfangener Seg- mente zum richtigen Socket

Demultiplexing im Empfänger: Datenempfang von mehren Sockets, Verpacken mit Header (später genutzt für Demultiplexing)

Multiplexing im Sender:

Page 5: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

9

Funktionsweise des Demultiplexing

•  Host empfängt IP-Pakete •  Jedes Paket besitzt Quell-IP-

Adresse und Ziel-IP-Adresse •  Jedes Paket enthält 1 Segment

für Transportschicht •  Jedes Segment enthält Quell-

und Ziel-Port (Port-Nummer sind i.d.R. für Anwendungen festgeschrieben)

•  Host nutzt IP-Adresse & Port-Nummern um Segment an korrekten Socket auszuliefern

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Quell-Port # Ziel-Port # 32 bits

Anwendungsdaten (Nachricht)

Andere Header-Felder

TCP/UDP Segmentformat

10

Verbindungsloses Demultiplexing

•  UDP-Sockets werden durch Zweitupel identifiziert:

(Ziel-IP-Adresse, Ziel-Port-Nummer) •  Erstellen von Sockets mit bestimmten

Port-Nummern: DatagramSocket mySocket1 = new DatagramSocket(9111); DatagramSocket mySocket2 = new DatagramSocket(9222);

•  Host beim Empfang eines UDP-Segmentes:

•  Überprüft Ziel-Port in Segment •  Leitet weiter an Socket mit der

gleichen Nummer •  Quell-IP-Adresse und Quell-

Port-Nummer sind irrelevant für Entscheidung!

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 6: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

11

Verbindungsloses Demultiplexing (II)

DatagramSocket serverSocket = new DatagramSocket(6428);

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Client IP:B

P2

Client IP: A

P1 P1 P3

Server IP: C

QP: 6428 ZP: 9157

QP: 9157 ZP: 6428

QP: 6428 ZP: 5775

QP: 5775 ZP: 6428

Quell-Port (QP) nur als Teil der Antwortadresse nötig!

12

Verbindungsorientiertes Demultiplexing

•  TCP-Socket identifiziert durch 4-Tupel:

•  Quell-IP-Adresse •  Quell-Port-Nummer •  Ziel-IP-Adresse •  Ziel-Port-Nummer

•  Empfänger nutzt alle vier Werte um Socket zu bestimmen!

•  Server kann mehrere TCP-Sockets simultan verwenden:

•  Jeder Socket verwendet eigenes 4-Tupel

•  Webserver haben Sockets für jeden verbundenen Client

•  Bei nicht-persistentem HTTP sogar für jede Anfrage einen Socket

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 7: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

13

Verbindungsorientiertes Demultiplexing (II)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Client IP:B

P1

Client IP: A

P1 P2 P4

Server IP: C

QP: 9157 ZP: 80

QP: 9157 ZP: 80

P5 P6 P3

Z-IP: C Q-IP: A Z-IP: C

Q-IP: B

QP: 5775 ZP: 80

Z-IP:C Q-IP: B

14

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 8: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

15

UDP: User Datagram Protocol [RFC 768]

•  Internet Protokoll “ohne Extras”

•  “Best Effort” Dienst, UDP-Segmente können:

•  verloren gehen •  in falscher Reihenfolge

ankommen •  Verbindungslos:

•  kein Handshake •  jedes UDP-Segment wird

unabhängig von anderen behandelt

Wozu gibt es UDP? •  Kein Verbindungsaufbau (der

verzögern kann) •  Einfach: kein Verbindungs-

zustand in Sender oder Empfänger

•  Kleiner Header •  Keine Staukontrolle: UDP kann

immer beliebig schnell senden •  Keine Verzögerung durch

Neuanfordern verlorener Pakete

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

16

User Datagram Protocol (II)

•  Oft genutzt für Multimedia-Anwendungen

•  Tolerant gegen Verlust •  Sensitiv gegen

Ratenänderungen

•  Weitere Anwendungen: •  DNS •  SNMP

•  Verlässlicher Verkehr über UDP muss auf Anwendungs-schicht realisiert werden

•  Erlaubt app.-spezifische Korrektur!

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Quell-Port # Ziel-Port #

32 bits

Anwendungsdaten (Nachricht)

UDP Segmentformat

Länge Prüfsumme Länge des

UDP-Segments in Bytes

(incl. Header)

Page 9: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

17

UDP-Prüfsumme

Sender: •  Behandelt Segment als Sequenz

von 16-Bit Ganzzahlen •  Prüfsumme: Addition (sog. 1’s

complement sum) der Ganzzahlen •  Sender vermerkt Prüfsumme im

UDP Header

Empfänger: •  Berechnet Prüfsumme des

empfangenen Segmentes •  Prüft ob berechnete Prüfsumme

der übertragenen entspricht: •  NEIN – Fehler erkannt •  JA – Kein Fehler erkannt.

Aber vielleicht trotzdem Fehler?

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Ziel: “Fehlererkennung” (e.g., Bitkipper) im Datensegment

18

Internet Prüfsumme - Beispiel

•  Notiz •  Wenn Ganzzahlen addiert werden, wird der Übertrag dem Ergebnis

hinzugefügt!

•  Beispiel: Addition zweier 16-Bit Ganzzahlen

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

Übertrag

Summe Prüfsumme

Page 10: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

19

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

20

Prinzipien des verlässlichen Datentransports •  Wichtig auf Anwendungs-, Transport- & Datensicherungs-

schicht •  Immer wieder auch Forschungsthema!

•  Charakteristik des unverlässlichen Kanals bestimmt Komplexität des Protokolls für den verlässlichen Datentransfers (reliable data transfer protocol, rdt)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 11: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

21

Verlässlicher Datentransport

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Sender- seite

Empfänger- seite

rdt_send(): Aufgerufen von Anwendungsschicht, soll Daten an

Anwendung des Empfängers übergeben

udt_send(): Aufgerufen von rdt, um Daten über unverläss-

lichen Kanal zusenden

rdt_rcv(): Aufgerufen wenn Paket auf Senderseite ankommt

deliver_data(): Aufgerufen von rdt um Daten an

Applikation auszuliefern

22

RDT 1: Verlässlicher Transport über verlässlichen Kanal

•  Annahme: Zugrunde liegender Kanal vollständig verlässlich •  Keine Bitfehler •  Keine Paketverluste •  Kein Überholen von Paketen

•  Sender übergibt Daten ohne weitere Maßnahmen an Kanal •  Empfänger liest Daten vom Kanal

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Sender Empfänger

rdt_send(data)

rdt_rcv(packet)

Page 12: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

23

RDT 2: Kanal mit Bitfehlern

•  Annahme: Zugrunde liegender Kanal kann Bits in Paket kippen und Prüfsumme detektiert alle Fehler

•  Frage: Wie werden Fehler behoben? •  Acknowledgements (ACKs): Empfänger quittiert den Empfang jedes

korrekten Paketes explizit mit OK •  Negative acknowledgements (NAKs): Empfänger meldet fehlerhaft

empfangene Pakete •  Sender übermittelt Paket bei Empfang eines NAK erneut

•  Neue Mechanismen in RDT2 (im Vergleich zu RDT1): •  Fehlererkennung •  Rückmeldung beim Empfänger durch Kontrollnachrichten

(ACK, NAK)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

24

RDT 2: Beispiel

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Sender Empfänger

rdt_send(data1)

rdt_rcv(data1) udt_send(data1)

rdt_rcv(ACK)

rdt_send(data1)

rdt_rcv(data1*)

udt_send(data1)

udt_send(NACK) rdt_rcv(NACK)

rdt_send(data1) udt_send(data1)

udt_send(ACK) rdt_rcv(ACK)

udt_send(ACK) rdt_rcv(ACK) udt_send(ACK) rdt_rcv(ACK)

Sender Empfänger

ohne Bitfehler mit Bitfehlern

Page 13: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

25

RDT 2: Probleme bei Verlust von Kontrollnachrichten

•  F: Was passiert wenn ACK/NAK fehlerhaft sind?

•  Sender weiß nicht ob der Empfänger das Paket korrekt erhalten hat!

•  Erneute Übermittlung würde zu Duplikaten führen

•  Umgang mit Duplikaten: •  Sender fügt eine Sequenz-

nummer zu jedem Paket hinzu •  Sender übermittelt aktuelles

Paket wenn ACK/NAK fehlerhaft ist

•  Empfänger verwirft duplizierte Pakete (i.e. übergibt sie nicht erneut an Anwendung)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

26

RDT 3: Kanäle mit Fehlern und Verlusten

Neue Annahme: Kanal kann auch Pakete verlieren (Daten und ACKs)

•  Prüfsummen, Seq. #, ACKs, Neuübermittlung hilft, reicht aber nicht

Ansatz: Sender wartet “angemessene” Zeit auf ein ACK

•  Erneute Übermittlung falls kein ACK erhalten wurde

•  Falls Daten (oder ACK) nur verzögert wurden:

•  Erneute Übertragung führt zu Duplikaten, aber Seq. # verwerfen Daten

•  Empfänger muss Seq # des Paketes für das ACK mit angeben

•  Erfordert Countdown Timer

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Sender sendet genau ein Paket und wartet dann auf Antwort des Empfängers

Stop-and-Wait

Page 14: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

27

RDT 3: Beispiele

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

28

RDT 3: Beispiele

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 15: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

29

Performanz von RDT 3

•  RDT 3 funktioniert, aber schlechte Nutzung der Ressourcen •  Beispiel: 1 Gbps Link, 15 ms Ausbreitungsverzögerung, 1KB Paket:

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

d Übertragung = 8 kbit 109 bit/s = 8 µs

!  USender: Utilization – Auslastung, Anteil der Zeit die für das Senden verwendet wird

!  1KB Paket alle 30 ms -> 33KB/s Durchsatz über den 1 Gbps Link !  Das Netzwerkprotokoll limitiert Nutzung der Ressourcen!

U Sender = .008

30.008 = 0.00027 L / R

RTT + L / R =

L (Paketlänge in Bits) R (Übertragungsrate, bps) =

30

RDT 3: Stop-And-Wait im Einsatz

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Erstes Paket Bit übermittelt, t = 0

Sender Empfänger

RTT

Letztes Bit übermittelt, t = L / R

Erstes Paket Bit kommt an Letztes Bit kommt an, ACK wird gesendet

ACK kommt an, nächstes Paket wird gesendet,

t = RTT + L / R

U Sender = .008

30.008 = 0.00027

L / R RTT + L / R

=

Page 16: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

31

Lösung: Pipelining Pipelining:

Sender erlaubt mehrere Pakete ohne Acknowledgement •  Zahlenbereich der Sequenznummern muss erhöht werden •  Puffern von Paketen im Sender und/oder Empfänger notwendig!

•  Zwei verschiedene Unterarten von Protokollen mit Pipelining: •  Go-Back-N, •  Selective Repeat

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

32

Pipelining führt zu besserer Auslastung

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Erstes Paket Bit übermittelt, t = 0

Sender Empfänger

RTT

Letztes Bit übermittelt, t = L / R

Erstes Paket Bit kommt an Letztes Bit kommt an, sende ACK

ACK kommt an, nächstes Paket wird gesendet,

t = RTT + L / R

2. Paket vollständig, sende ACK 3. Paket vollständig, sende ACK

U Sender = .024

30.008 = 0.0008

3 * L / R RTT + L / R

=

Auslastung um Faktor 3 gesteigert!

Page 17: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

33

Go-Back-N

Sender: •  k-Bit Sequenznummer im Paket-Header •  “Window” von bis zu N, aufeinanderfolgenden Paketen ohne ACK

erlaubt

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

!  ACK(n): ACK für alle Pakete bis Seq # n (inklusive) – “cumulative ACK” !  u.U. führt dies zu ACK-Duplikaten (siehe Empfänger)

!  Timer für jedes Paket im Transfer !  Timeout(n): Erneute Übermittlung von Paket n und aller Pakete mit

höheren Seq # im Fenster

34

Beispiel für Go-Back-N (Window: 4)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 18: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

35

Selective Repeat

•  Empfänger sendet individuelle ACKs für alle korrekt erhaltenen Pakete

•  Puffern von Paketen nach Bedarf bis zur korrekten Auslieferung an höhere Schicht

•  Sender überträgt nur Pakete ohne ACK erneut •  Timer für jedes Paket ohne ACK

•  Window des Senders •  N aufeinanderfolgende Seq # •  (Auch hier) Zahlenraum der Seq # limitiert die Anzahl der zu

sendenden Pakete ohne ACK

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

36

Selective Repeat: Windows von Sender & Empfänger

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 19: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

37

Beispiel für Selective Repeat

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

38

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 20: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

39

TCP: Überblick (RFCs: 793, 1122, 1323, 2018, 2581)

•  Vollduplex-Übertragung: •  Bidirektionaler Datenfluss

über gleiche Verbindung •  MSS: Maximum Segment

Size •  Verbindungsorientiert:

•  Handshaking initialisiert vom Sender, erzeugt Zustand im Empfänger vor Datenaustausch

•  Flusskontrolle: •  Sender überlastet

Empfänger nicht

•  Punkt-zu-Punkt: •  ein Sender, ein Empfänger

•  Verlässlicher, geordneter Byte-Strom:

•  keine “Nachrichtengrenzen” •  Pipelined:

•  TCP-Stau- und Flusskontrolle bestimmen Window-Größe

•  Sende- & Empfangspuffer

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

socketdoor

TCPsend buffer

TCPreceive buffer

socketdoor

segment

applicationwrites data

applicationreads data

40

TCP: Segmentstruktur

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Quell-Port # Ziel-Port #

32 bits

Anwendungsdaten (variable Länge)

Sequenznummer ACK-Nummer

Window

Urg data pointer Prüfsumme F S R P A U head

len res.

Optionen (variable Länge)

URG: eilige Daten (kaum benutzt)

ACK: ACK # gültig

PSH: „pushed“ Auslieferung

(kaum benutzt)

RST, SYN, FIN: Kontrollpakete

(Verb.-aufbau, Abbau Kommandos)

# Bytes die Empfänger akzeptiert

Zähler in Bytes (nicht Segmente!)

Internet Prüfsumme

(wie in UDP)

Page 21: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

41

TCP: Sequenznummern und ACKs

Seq. #’s: •  Byte-Strom “Zähler”

des ersten Bytes im Segment

ACKs: •  Seq # des nächsten

Bytes das erwartet wird

•  „Cumulative-ACKs“ F: Wie soll Empfänger mit Paketen in falscher Reihenfolge umgehen? A: In TCP nicht standardisiert – Freie Entscheidung des Implementierers

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Host A Host B

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

User tippt ‘C’

Host sendet ACK für ‘C’-Echo

Host sendet ACK für ‘C’, und

gibt ‘C’-Echo im Fenster

aus

Zeit

Ein einfaches Telnet-Szenario

42

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 22: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

43

TCP: Verlässlicher Datentransfer

•  TCP stellt rdt auf Basis vom unverlässlichen IP-Dienst bereit

•  Pipelining von Segmenten •  „Cumulative ACKs“ •  TCP nutzt einzelnen Timer zur

Neuübermittlung

•  Neuübermittlung durch: •  Timeout-Ereignisse •  Duplizierte ACKs

•  Beispiel an einem vereinfachten TCP-Sender:

•  Ignoriert ACK-Duplikate •  Ignoriert Fluss- und

Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

44

TCP: Round Trip Time und Timeout

F: Wie setzt TCP den Timeout-Wert?

•  Etwas länger als RTT •  Aber: RTT variiert

•  Zu kurz: vorzeitiger Timeout •  Unnötige

Neuübertragungen •  Zu lang: Langsame

Reaktion auf Verluste

F: Wie kann RTT geschätzt werden? •  SampleRTT: gemessene Zeit von der

Segmentübermittlung bis zum Empfang des korrespondierenden ACK

•  Neuübertragungen werden ignoriert!

•  SampleRTT variiert, geschätzte RTT muss “geglättet” werden

•  Durchschnitt über mehrere Messungen, nicht nur aktuelle SampleRTT

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 23: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

45

TCP: Round Trip Time und Timeout

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

EstimatedRTT = (1-α) * EstimatedRTT + α * SampleRTT

!  “Exponential Weighted Moving Average” !  Einfluss alter Messungen nimmt exponentiell ab !  Typischer Wert: α = 0.125

46

TCP: Beispiel einer RTT-Schätzung

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RTT

(mill

isec

onds

)

SampleRTT Estimated RTT

Page 24: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

47

TCP: Round Trip Time und Timeout

Setzen des Timeouts

•  EstimtedRTT plus “Sicherheit” •  Große Variation der EstimatedRTT -> Größerer Sicherheitswert

•  Erste Schätzung: Abweichung der SampleRTT von der EstimatedRTT:

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

TimeoutInterval = EstimatedRTT + 4*DevRTT

DevRTT = (1-β)*DevRTT + β*|SampleRTT-EstimatedRTT| (typischerweise, β = 0.25)

Setzen des Timeout-Intervalls:

48

TCP: Ereignisse auf Senderseite

Daten von Anwendung empfangen:

•  Erstellen eines Segmentes mit aktueller Seq #

•  Ausliefern des Segmentes an untere Schicht

•  Starten des Timers, falls dieser nicht bereits läuft

•  Timer verantwortlich für das jeweils älteste Segment ohne ACK

•  Ablaufinterval: TimeOutInterval

Timeout: •  Erneute Übermittlung des

Segments das für Timeout verantwortlich war

•  Timer neustarten ACK empfangen: •  Falls neues

Acknowledgement •  Aktualisieren der bekannten

korrekt empfangenen Pakete

•  Starten des Timers falls weitere ACKs ausstehen

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 25: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

49

TCP: Szenarien der Neuübermittlung

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Host A

Seq=100, 20 bytes data

Zeit

Zu kurzes Timeout

Host B

Seq=92, 8 bytes data

Seq=92, 8 bytes data

Seq

=92

Tim

eout

Host A

Seq=92, 8 bytes data

ACK=100

Verlust

Tim

eout

Verlorenes ACK

Host B

X

Seq=92, 8 bytes data

ACK=100

Zeit S

eq=9

2 Ti

meo

ut

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

50

TCP: Szenarien der Neuübermittlung (II)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Host A

Seq=92, 8 bytes data

ACK=100

Verlust

Tim

eout

“Kumulatives ACK”

Host B

X

Seq=100, 20 bytes data

ACK=120

Zeit

SendBase = 120

Page 26: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

51

TCP: Fast Retransmit

•  Timeout-Intervall oft vergleichsweise lang:

•  Große Verzögerung bevor verlorene Pakete erneut übertragen werden

•  Detektion verlorener Segmente über

duplizierte ACKs: •  Sender schickt oft viele

Segmente direkt hintereinander •  Falls Segmente verloren gehen

werden sehr wahrscheinlich duplizierte ACKs auftreten

•  Falls Sender drei ACKs für die selben Daten erhalten, wird angenommen, dass das folgende Segment verloren gegangen ist

•  Fast Retransmit: Erneute Übertragung von Segmente bevor Timer abläuft

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

52

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 27: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

53

TCP: Flusskontrolle

•  Empfängerseite von TCP besitzt Datenpuffer

•  Aber: Anwendungsprozess liest u.U. Daten nur langsam ein

•  Im Prinzip Geschwindigkeitsabgleich: Senderate wird automatisch an Empfangsbereitschaft angepasst

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Sender überlastet Puffer des Empfängers

nicht durch zu schnelles Senden

Flusskontrolle

54

TCP: Arbeitsweise der Flusskontrolle

•  (Annahme TCP-Empfänger verwirft Segmente in falscher Reihenfolge)

•  Freier Platz im Puffer = RcvWindow = RcvBuffer -[LastByteRcvd -

LastByteRead]

•  Empfänger übermittelt freien Platz indem RcvWindow in Segmenten übertragen wird

•  Sender limitiert # der Pakete ohne ACK auf RcvWindow

•  Garantiert Einhalten der Puffergröße

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 28: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

55

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

56

TCP: Verbindungs-Management Erinnerung: •  TCP-Sender & Empfänger

bauen vor Datenaustausch eine “Verbindung” auf

•  Initialisiert TCP-Variablen: •  Sequenznummern •  Puffer, Flusskontroll-

informationen (e.g. RcvWindow)

Three-Way-Handshake: Schritt 1:

•  Client sendet TCP-SYN-Segment an Server

•  legt initiale Sequenz-# fest •  keine Daten

Schritt 2: •  Server empfängt SYN, antwortet

mit SYNACK-Segment

•  Server reserviert Puffer •  Enthält Sequenz-# des Servers

Schritt 3: •  Client empfängt SYNACK,

antwortet mit ACK, welches Daten enthalten darf

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 29: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

57

TCP: Verbindungs-Management (II)

Schließen einer Verbindung

Client schließt Socket:

Step 1:

Client Host sendet TCP FIN Kontrollsegment an Server

Step 2:

Server empfängt FIN, antwortet mit ACK. Schließt Verbindung und sendet ebenfalls FIN.

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Client

FIN

Server

ACK

ACK

FIN

schließen

schließen

geschlossen tim

ed w

ait

58

TCP: Verbindungs-Management (III)

Schritt 3:

Client empfängt FIN, antwortet mit ACK.

•  Beginnt mit “Timed Wait”-Zustand und antwortet mit ACK auf empfangene FINs

Schritt 4:

Server empfängt ACK. Verbindung geschlossen.

Anmerkung:

Kleine Änderungen nötig um auf gleichzeitige FINs zu reagieren.

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Client

FIN

Server

ACK

ACK

FIN

schließen

schließen

geschlossen

„Tim

ed W

ait“

ge- schlossen

Page 30: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

59

TCP: Verbindungs-Management (IV)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

TCP-Client Lebenszyklus

60

TCP: Verbindungs-Management (V)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

TCP-Server Lebenszyklus

Page 31: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

61

Kapitel 2.3 Roadmap

•  3.1 Dienste der Transportschicht •  3.2 Multiplexing und

Demultiplexing •  3.3 Verbindungsloser Transport:

UDP •  3.4 Prinzipien des verlässlichen

Datentransfers

•  3.5 Verbindungsorientierter Transport: TCP

•  Segmentstruktur •  Verlässlicher Datentransfer •  Flusskontrolle •  Verbindungs-Management •  TCP-Staukontrolle

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

62

TCP: Prinzipien der Staukontrolle

Überlast, Stau: •  Informell: “zu viele Quellen senden für das Netzwerk zu viele Daten in

zu kurzer Zeit” •  Unterscheidet sich signifikant von Flusskontrolle!

•  Erscheinungen in diesem Kontext: •  Verlorene Pakete (Pufferüberläufe in Routern) •  Lange Verzögerungen (Warteschlangen in Routern)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 32: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

63

TCP: Staukontrolle

•  Ende-zu-Ende-Mechanismus (keine Netzwerkunterstützung)

•  Sender limitiert gesendete Pakete: LastByteSent - LastByteAcked

≤ CongWin

•  Es gilt in etwa,

•  CongWin ist dynamisch

•  hängt von angenommener Netzauslastung ab

Wie beobachtet ein Sender Stau?

•  Paketverlust = Timeout oder 3 duplizierte ACKs

•  TCP-Sender reduziert Rate (CongWin) nach jedem Verlust

Drei Mechanismen: •  AIMD •  Slow-Start •  „Konservativ“ nach Timeout

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Rate = CongWin

RTT Bytes/s

64

TCP: Staukontrolle - AIMD

Multiplicative Decrease: halbiere CongWin bei jedem Verlust

8 Kbytes

16 Kbytes

24 Kbytes

time

congestionwindow

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Additive Increase: Erhöhen des CongWin um 1 MSS pro RTT ohne Verlust: probing

AIMD in langlebiger TCP-Verbindung

Page 33: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

65

TCP: Staukontrolle – Slow Start

•  Nach Verbindungsaufbar CongWin = 1 MSS •  Beispiel: MSS = 500 Bytes & RTT = 200 ms •  Initiale Senderate = 20 kbps

•  Verfügbare Bandbreite kann sehr viel größer als MSS/RTT sein •  Gewünscht: Schnelles Hochregeln zu geeigneter Rate

•  Nach Verbindungsaufbau: Exponentielles Erhöhen der Rate bis zum ersten Verlust

•  F: Wie passt der Name Slow Start zum exponentiellen Wachstum?

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

66

TCP: Staukontrolle – Slow Start (II)

•  Nach Verbindungsaufbau: Exponentielles Erhöhen der Rate bis zum ersten Verlust:

•  Verdoppeln des CongWin nach jeder RTT

•  CongWin wird bei jedem empfangenen ACK um 1 erhöht

•  Zusammenfassung: Initiale Rate ist langsam, aber wächst sehr schnell

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Host A

ein Segment

RTT

Host B

Zeit

zwei Segmente

vier Segmente

Page 34: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

67

TCP: Staukontrolle – Mehr Details

•  Nach 3 duplizierten ACKs: •  CongWin wird halbiert •  Window wächst dann linear

•  Aber nach Timeout: •  CongWin wird auf 1 MSS

gesetzt •  Window wächst exponentiell •  nach Schwellwert lineares

Wachstum

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

!  3 duplizierte ACKs zeigen, dass das Netz wenigstens einige Nachrichten korrekt transportiert

!  Timeout ist wesentlich “alarmierender”

Grundannahme:

68

TCP: Staukontrolle – Mehr Details (II)

F: Wann wird zwischen exponentiellem und linearen Wachstum umgeschaltet?

A: Wenn CongWin bei der Hälfte des vorherigen Wertes ist

Implementierung:

•  Variabler Schwellwert •  Bei Verlust wird Schwellwert, auf

1/2 des CongWin gesetzt, bevor dessen Wert reduziert wird

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 35: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

69

TCP: Fairness, Gerechtigkeit

Fairness : Wenn k TCP-Verbindungen über den gleichen Engpass (Flaschenhals, bottleneck) mit Bandbreite R geleitet werden, sollte jede eine durchschnittliche Rate von R/k haben

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

TCP Verbindung 1

Flaschenhals Router mit Kapazität R

TCP Verbindung 2

70

Zusammenfassung: TCP Staukontrolle

•  Wenn CongWin kleiner als ist Threshold, befindet sich der Sender in der Slow-Start-Phase

•  Window wächst exponentiell.

•  Wenn CongWin größer als Threshold, befindet sich der Sender in der Congestion-Avoidance-Phase

•  Window wächst linear.

•  Wenn 3 duplizierte ACKs auftreten: Threshold wird auf CongWin/2 gesetzt und CongWin auf Threshold.

•  Wenn ein Timeout auftritt: Threshold wird auf CongWin/2 gesetzt und CongWin auf 1 MSS.

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 36: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

71

TCP: Durchsatz

•  Wie hoch ist der durchschnittliche Durchsatz von TCP in Bezug auf Window-Größe und RTT?

•  Annahme: kein Slow-Start, Flusskontrolle nicht limitierend

•  W = Window-Größe wenn Verlust auftritt. •  Durchsatz ist dann W / RTT •  Nach jedem Verlust: Window sinkt auf W/2, Durchsatz W / 2 / RTT. •  Durchschnittlicher Durchsatz: 0.75 W/RTT (da linearer Anstieg)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

72

TCP – Modellierung von Verzögerungszeiten

F: •  Wie lang dauert die Übertragung

eines Objektes von einem Webserver nach Absenden der Anfrage?

•  Annahme kein Stau •  Verzögerung beeinflusst durch:

•  TCP-Verbindungsaufbau •  Datenübertragungsverzögerung •  Slow-Start

Notation, Annahmen: •  Zwischen Client und Server ein

Link mit Rate R •  S: MSS (max. segment size, Bits) •  O: Objektgröße (Bits) •  keine Neuübertragung (kein

Verlust, keine Bitfehler) Window-Größe: •  Zunächst: festes Congestion

Window mit W Segmenten •  Anschließend: Dynamisches

Window & Slow Start

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Page 37: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

73

TCP – Latenz bei festem Congestion Window (I)

Erster Fall: WS/R >= RTT + S/R: ACKs erreichen Server bevor durch Window vorgegebener Kredit erschöpft ist

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Verzögerung = 2 RTT + O/R

74

TCP – Latenz bei festem Congestion Window (II)

Zweiter Fall: •  WS/R < RTT + S/R: Warten auf

ACKs nach Nutzen des vollen Kontingents

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Verzögerung = 2 RTT + O/R + (K-1)[S/R + RTT - WS/R]

Page 38: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

75

TCP Latenz: Slow Start (I) Neue Annahme: Latenz wächst wie bei Slow-Start-Algorithmus

Wir zeigen, dass die Latenz für ein Objekt den folgenden Wert hat:

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

Latenz = 2RTT +OR+P RTT + S

R!

"#$

%&− (2P −1) S

R

wobei P die Anzahl der Zyklen ist, die TCP im Server wartet:

}1,{min −= KQP

-  wobei Q die Anzahl der Wartezyklen ist, wenn das Objekt unendliche Größe hätte.

-  K ist Anzahl der Windows die für das Objekt gebraucht

werden.

76

TCP Latenz: Slow Start (II)

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

RTT

initiate TCPconnection

requestobject

first window= S/R

second window= 2S/R

third window= 4S/R

fourth window= 8S/R

completetransmissionobject

delivered

time atclient

time atserver

Beispiel: !  O/S = 15 Segmente !  K = 4 Windows !  Q = 2 !  P = min{K-1,Q} = 2

!  Server wartet P=2 mal

Komponenten Latenz: !  2 RTT für Verb.-

aufbau und Request !  O/R zum Senden des

Objektes !  Wartezeit durch Slow-

Start !  Server wartet:

P = min{K-1,Q} mal

Page 39: Informations- und Kommunikationssysteme · data link physical application transport network data link physical network data link physical network data link physical network data link

77

Modellierung der HTTP-Antwortzeit

•  Annahme Webseite besteht aus: •  einer HTML-Seite (der Größe O Bits) •  M Bildern (jeweils O Bits)

•  Nicht-persistentes HTTP: •  M+1 aufeinander folgende TCP-Verbindungen •  Antwortzeit = (M+1)O/R + (M+1)2RTT + Summe der Wartezeiten

•  Persistentes HTTP (mit Pipelining): •  2 RTT um eine HTML-Datei anzufragen und zu erhalten •  1 RTT um M Bilder anzufragen und zu erhalten •  Antwortzeit = (M+1)O/R + 3RTT + Summe der Wartezeiten

•  Nicht-persistentes HTTP mit x Parallelverbindungen •  Annahme: M/x ganzzahlig. •  1 TCP Verbindung für HTML-Datei •  M/x Folgen von x parallelen Verbindungen für die Bilder. •  Antwortzeit = (M+1)O/R + (M/x+1)2RTT + Summe der Wartezeiten

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht

78

Kapitel 2.3: Zusammenfassung

•  Grundlegende Prinzipien von Diensten der Transportschicht:

•  Multiplexing, Demultiplexing •  Verlässlicher Datentransfer •  Flusskontrolle •  Staukontrolle

•  Verwendung und Implementierung im Internet:

•  UDP •  TCP

Anschließend: •  Verlassen der Network

“Edge” (Anwendungs- & Transportschicht)

•  Behandlung des Network “Core”

Informations- und Kommunikationssysteme (SS 2014): 02 - Transportschicht


Recommended