Grundlagen der Rechnernetze
Transportschicht
Transportschicht
Übersicht
• Einfacher Demultiplexer (UDP)
• Zuverlässiger Byte‐Stream (TCP) Zuverlässiger Byte Stream (TCP)
• TCP‐Überlastkontrolle
• TCP‐Überlastvermeidung
• TCP Varianten
• TCP‐Varianten
Einfacher Demultiplexer (UDP)
SS 2012 Grundlagen der Rechnernetze ‐Transportschicht 3
Demultiplexing aber sonst keine weitere Funktionalität über IP
S d H t E fä H t
Prozess 1 Prozess 2 Prozess 3 Prozess
Sender‐Host Empfänger‐Host
Queues IP Paket
Demultiplexing itt l
IP‐Paket
Quelle: 192.100.120.40 Ziel: 192.200.133.100 D t UDP P k t
UDP
Ankommende mittels
Portnummern Daten: UDP‐Paket
SrcPort DstPort Length Checksum
Port‐Nummern sind 16 Bits lang.
Damit gibt es 216 = 65536 t hi dli h P t Ankommende
Pakete Data
unterschiedliche Ports.
Global eindeutige
Adresse eines Prozesses:
<Port Host>
<Port,Host>
Woher erfährt der Sender die Port‐Nummer des Empfängers?
Möglichkeit 1: vorab festgelegte Port Nummern Möglichkeit 1: vorab festgelegte Port‐Nummern.
• Zum Beispiel Port 53 für DNS, Port 25 für Mail‐Server oder Port 517 für Unix‐
Talk‐Programm
l d i i i di h k li i
• Festgelegte Portnummern werden in einem RFC periodisch aktualisiert
• Unter vielen Unix‐Systemen findet man die festen Portnummern auch unter /etc/services
Möglichkeit 2: Port‐Mapper
• Nur ein festgelegter Port über den man den Port‐Mapper anspricht
• Client fragt erst den Port Mapper nach dem richtigen Port für einen
• Client fragt erst den Port‐Mapper nach dem richtigen Port für einen bestimmten Dienst
• Der rückgegebene Port wird dann für die Kontaktierung des eigentlichen
S i d t
Services verwendet
Bemerkung: häufig werden nach dem ersten Kontakt zwischen Client und Server ein privater Ports für deren Session ausgemacht.
ein privater Ports für deren Session ausgemacht.
Client Port‐Mapper
Host 1 Host 2
SS 2012 Grundlagen der Rechnernetze ‐Transportschicht 5
Client
Server Host 1
Zuverlässiger Byte‐Stream (TCP)
TCP‐Features
Im Gegensatz zu UDP:
• Zuverlässige Auslieferung
• eines Full‐Duplex
• Byte‐Streams in
• korrekter Reihenfolge
• korrekter Reihenfolge Darüber hinaus:
• Flusskontrolle (vermeidet, dass Sender den Empfänger überlastet)
• Lastkontrolle (Vermeidet, dass Sender zuviel Last im Netz erzeugt)
Das einzige identische zu UDP:
• Port‐Mechanismus
SS 2012 Grundlagen der Rechnernetze ‐Transportschicht 7
TCP‐Segmente
Prozess Prozess SrcPort DstPort
SequenceNum
0 4 10 16 31
…schreibe Bytes
lese Bytes
… Acknowledgment
HdrLen
Checksum
0 Flags AdvertisedWindow
UrgPtr TCP
Sendepuffer
TCP
Empfangspuffer
Options (variable)
Segment … Segment sende Segmente
Data
g
Daten (SequenceNum)
Fl
Sender Empfänger
Flags:
SYN, FIN, RESET, PUSH, URG, ACK
TCP Verbindungsherstellung und ‐terminierung
CLOSED CLOSED CLOSED
Passive open Close
Close
Active open/SYN CLOSED
Passive open Close
Close
Active open/SYN
LISTEN
Send/SYN SYN/SYN + ACK
LISTEN
Send/SYN SYN/SYN + ACK
SYN_RCVD SYN_SENT
Send/SYN SYN/SYN + ACK
SYN + ACK/ACK SYN/SYN + ACK
ACK
SYN_RCVD SYN_SENT
Send/SYN SYN/SYN + ACK
SYN + ACK/ACK SYN/SYN + ACK
ACK
ESTABLISHED Close/FIN ESTABLISHED Close/FIN
CLOSE_WAIT FIN_WAIT_1
FIN/ACK Close/FIN
FIN/ACK ACK
ACK + Close/FIN
CLOSE_WAIT FIN_WAIT_1
FIN/ACK Close/FIN
FIN/ACK ACK
ACK + Close/FIN
LAST_ACK CLOSING
TIME WAIT FIN_WAIT_2
+ FIN /ACK
Timeout after two segment lifetimes FIN/ACK
ACK ACK
CLOSED LAST_ACK CLOSING
TIME WAIT FIN_WAIT_2
+ FIN /ACK
Timeout after two segment lifetimes FIN/ACK
ACK ACK
CLOSED
SS 2012 Grundlagen der Rechnernetze ‐Transportschicht 9
TIME_WAIT CLOSED
TIME_WAIT CLOSED
Bildquelle: Holger Karl, Vorlesungsfolien zur Vorlesung Rechnernetze WS2011/2012