TCP - TU Ilmenau

Werbung
Die Internet-Protokollfamilie:
Einordnung [Wiederholung]
• Die Bezeichnung TCP/IP wird häufig als Synonym für die gesamte
Protokollfamilie verwendet
• Einordnung der Internetprotokolle in das ISO/OSIReferenzmodell:
Telekommunikationsdienste
und -protokolle
Kommunikationssteuerungsschicht
TCP
5. Die Transportschicht im
Internet
IGMP
ICMP
UDP
IP
ARP
Transportschicht
Vermittlungsschicht
RARP
Sicherungsschicht
• Im Weiteren wird die Transportschicht behandelt.
TKDP - 5. Transportschicht im Internet
TCP (Transmission Control Protocol):
Dienste
„
Verbindungsverwaltung
„
„
„
„
„
„
„
Mehrere Prozesse können gleichzeitig eine TCP-Instanz benutzen
„
„
„
„
„
FTPServer
Port
Port
21
21
Vollduplex
Reihenfolgetreue
Flusskontrolle mit Fenstermechanismus
Fehlerkontrolle durch Folgenummern (Sequenznummern),
Prüfsumme, Quittung, Übertragungswiederholung
Unterstützung von Sicherheitsstufen und Prioritäten
Zeitbehaftete Daten: Falls Auslieferung in bestimmter Zeit nicht
möglich ist, wird der Dienstbenutzer informiert
TCP
TCP
IP
IP
NetzNetzzugang
zugang
129.13.42.112
129.13.42.115
FTPBenutzer A
Port
Port
400
400
FTPBenutzer B
Port
Port
400
400
TCP
TCP
TCP
TCP
IP
IP
NetzNetzzugang
zugang
IP
IP
NetzNetzzugang
zugang
Internet
Fehleranzeige
TKDP - 5. Transportschicht im Internet
Identifikation von TCP-Diensten geschieht über Ports
(TSAPs in der OSI-Terminologie)
Portnummern bis 255 sind für häufig benutzte Dienste reserviert
(z.B. 21 für FTP, 23 für TELNET, 80 für HTTP)
Ein Socket besteht aus der Internetadresse eines Rechners und einem
Port. Notation: (IP-Adresse:Portnummer) → Internet-weit eindeutig
Beispiel – Der FTP-Server der TU Ilmenau ist über den Socket
141.24.191.41:21 erreichbar:
141.24.191.41
Datenübertragung
„
„
„
Multiplexen
„
TCP: Adressierung
„
Verbindungsaufbau zwischen zwei „Sockets” (entspricht CEP im
TSAP).
Datentransfer über virtuelle Verbindung.
Gesicherter Verbindungsabbau (alle Daten müssen quittiert sein).
121
122
TKDP - 5. Transportschicht im Internet
123
TCP: fest vereinbarte Port-Nummern
(well-known ports)
Viele Anwendungen wählen
TCP als Protokoll, allerdings
muss der richtige Port gewählt
werden, um auf der Gegenseite
mit der richtigen Anwendung
zu kommunizieren.
„
13: Tageszeit
„
20: FTP Daten
„
25: SMTP
(Simple Mail Transfer
Protocol)
„
53: DNS
(Domain Name Server)
„
80: HTTP
(Hyper Text Transfer
Protocol)
„
119: NNTP
(Network News Transfer
Protocol)
„
„
„
„
„
„
„
TKDP - 5. Transportschicht im Internet
Verbindungsaufbau
Close; FIN
ACK; -
FIN wait2
Estblshd
FIN; ACK
FIN; ACK
Piggyback
Piggyback Acknowledgement
Acknowledgement
SYN sent
44 bit
bit TCP
TCP
header
header
length
length
SYN+ACK; ACK
FIN; ACK
Closing
FIN+ACK;
ACK
Destination
Destination Port
Port
Sequence
Sequence Number
Number
Send
Close; FIN
31
16
Source
Source Port
Port
Close; -
Close wait
ACK; -
Close; FIN
Timed wait
Last ACK
Window
Window
Paketkopf
Urgent
Urgent Pointer
Pointer
Daten
Daten ...
...
Dieses Bit wird in der Literatur auch durch
PSH (Push-Bit) bezeichnet.
Closed
TKDP - 5. Transportschicht im Internet
U
U AA EE RR SS FF
RR CC O
O SS YY II
G
M TT N
NN
N
G KK M
Options
Options (0
(0 oder
oder mehr
mehr 32-bit-Worte)
32-bit-Worte)
ACK; -
(Timeout; -)
66 bit
bit
unused
unused
Checksum
Checksum
Close Passive
FIN wait1
125
TCP-Paketformat: Aufbau
0
SYN; SYN+ACK
(gleichzeitig)
ACK; -
Anmerkung: Die Verbindung wird von den TCP-Instanzen ohne
weiteres Eingreifen der Dienstbenutzer aufgebaut (es existiert z.B.
kein Primitiv, das T-CONNECT.Rsp entspricht).
124
Close; -
Listen
SYN rcvd
Spezifikation eines speziellen Sockets, von dem er eine eingehende
Verbindung erwartet wird (fully specified passive open) oder
Alle Verbindungen annehmen (unspecified passive open).
Geht ein Verbindungsaufbauwunsch ein, wird ein neuer Socket erzeugt,
der dann als Verbindungsendpunkt dient.
Connect; SYN
Closed
RST; -
Aktiver Modus: Anforderung einer TCP-Verbindung mit dem
spezifizierten Socket.
Passiver Modus: Ein Benutzer informiert TCP, dass er auf eine
eingehende Verbindung wartet.
„
TCP: Verbindungsmanagement
SYN; SYN+ACK
aktiv (connect) oder
passiv (listen/accept)
aufgebaut werden.
> telnet mailhost 25
Trying 129.13.3.161...
Connected to mailhost .
Escape character is '^]'.
220 mailhost ESMTP Sendmail 8.8.5/8.8.5;
Mon, 4 Aug 1997 17:02:51 +0200
HELP
214-This is Sendmail version 8.8.5
214-Topics:
214- HELO
EHLO
MAIL
RCPT
DATA
214- RSET
NOOP
QUIT
HELP
VRFY
214- EXPN
VERB
ETRN
DSN
214-For more info use "HELP <topic>".
...
214 End of HELP info
Listen; -
Verbindungen können nach der Erstellung eines Sockets
„
> telnet walapai 13
Trying 129.13.3.121...
Connected to walapai.
Escape character is '^]'.
Mon Aug 4 16:57:19 1997
Connection closed by foreign host
TKDP - 5. Transportschicht im Internet
Close Activ
„
TCP: Verbindungsaufbau
126
TKDP - 5. Transportschicht im Internet
127
TCP-Verbindungsaufbau
im Detail
TCP-Paketformat
„
„
„
„
„
„
„
„
„
„
„
„
„
„
Source- und Destinationport: identifizieren die Endpunkte der Verbindung.
Wie die Hosts ihre Ports zuweisen, bleibt ihnen überlassen (bis auf die
standardisierten bis Nummer 255)
Sequence number: enthält die Byte-Folgenummer
Piggyback acknowledgement: Huckepackverschickung von Quittungen. Die
nächste erwartete Folgenummer
TCP header length: Anzahl der 32-bit-Wörter im Paketkopf
URG: Wird auf 1 gesetzt, falls der Urgent Pointer verwendet wird
SYN: Wird beim Verbindungsaufbau verwendet, um CONNECT.Req/Ind
anzuzeigen
ACK: Unterscheidet bei gesetztem SYN-Bit eine CR-PDU von einer CC-PDU.
Signalisiert die Gültigkeit des Acknowledgement-Feldes
FIN: Gibt an, dass der Sender keine Daten mehr senden möchte
RST: Wird benutzt, um eine Verbindung zurückzusetzen
EOM (bzw. PSH): Dieses Bit zeigt das Ende einer Nachricht an
Window: Dient zur Flusskontrolle. Anzahl der Bytes, die nach dem höchsten
bestätigten Byte gesendet werden dürfen
Checksum: Enthält die Prüfsumme über Paketkopf und Daten
Urgent Pointer: Relativer Zeiger auf wichtige Daten
Das Options-Feld kann Optionen variabler Länge aufnehmen
TKDP - 5. Transportschicht im Internet
128
TCP-Verbindungsaufbau:
Verwaistes SYN
A
B Passive Open
Active Open
SYN i
A beantragt Verbindung
+1
ACK i
,
j
N
SY
D AT
A i+
„
1, A
CK j
+1
„
„
Beide SYNs müssen bestätigt sein
Für den Empfänger gilt die Verbindung erst nach der
Bestätigung seines SYNs als aufgebaut
TKDP - 5. Transportschicht im Internet
RST
,A
Active Open
Altes SYN kommt an
+1
ACK i
,
j
N
SY
CK j
+1
B akzeptiert und bestätigt
B Passive Open
CK
k, A
p
SY N
S
RST YN i
, AC
K k+
1
+1
ACK i
,
j
N
SY
D AT
A i+
1, A
CK j
+1
A verweigert Bs Verbindung
TKDP - 5. Transportschicht im Internet
129
TCP-Verbindungsaufbau:
Verspätetes SYN/ACK
B Passive Open
altes S
YN i
A akzeptiert und beginnt
Übertragung
3-Wege-Handshake
A
A
B akzeptiert und bestätigt
130
A beantragt Verbindung
Altes SYN/ACK kommt an
A bricht „alte” Verbindung
ab
B akzeptiert und bestätigt
neue Verbindung
A bestätigt und beginnt
Übertragung
TKDP - 5. Transportschicht im Internet
131
TCP: Duplikaterkennung
„
„
„
„
Kein Anzeichen für Duplikate
Datenpakete können Verbindungsabbau überstehen und irrtümlich
einer neuen Verbindung zugeordnet werden
Durch einen Systemzusammenbruch kann die Paketnummerierung
verloren gehen
„
2K
IN=2048
ACK=2048 W
2K SEQ=
204
8
Voll
Sender ist
blockiert
6 WIN=0
ACK=409
048
6 WIN=2
ACK=409
Sender kann bis zu
2KB übertragen
Uhr-unterstützte Sequenznummer (Clock-based initial sequence
number)
Sendeverzögerung (Quiet Time)
Empfängerpuffer
0
4K
Leer
2K SEQ
=0
Anwendung
schreibt 3KB
Problemvermeidung:
„
Empfänger
Anwendung
schreibt 2KB
Sequenznummernbereich muss groß genug sein, dass zwei
Pakete mit der gleichen Sequenznummer genügend weit
auseinander liegen
Allerdings:
„
„
Sender
Datenpakete werden zur Duplikaterkennung durchnummeriert
Unter Umständen wird ein Datenpaket mehrfach bestätigt
Î
„
TCP: Fenstermanagement
1K SE
Q=4
Anwendung liest 2KB
2K
096
1K
TKDP - 5. Transportschicht im Internet
132
TKDP - 5. Transportschicht im Internet
TCP: Flusskontrolle / Staukontrolle
„
„
Flusskontrolle regelt den Datenfluss zwischen den Endsystemen
Staukontrolle befasst sich mit Stausituationen in den
Zwischensystemen
Flusskontrolle in TCP: Fenstermechanismus mit Kreditvergabe
„
„
„
„
44
„
Timeout
40
36
ACK-Feld im Paketkopf bestätigt alle niedrigeren Bytefolgenummern
Window-Feld gibt an, wieviele Bytes der Empfänger zusätzlich akzeptiert
Staukontrolle in TCP: Problem „congestion collapse”:
Stau in Zwischensystemen führt oftmals dazu, dass Transportprotokolle
nach einem Timeout Pakete wiederholen.
⇒ Die Stausituation wird verstärkt!
TCP: „slow start” und „multiplicative decrease” Mechanismen
„
133
TCP: Staukontrolle am Beispiel
Bei Datenverlust reduziert TCP den Schwellwert, bis zu dem eine Steigerung
der Senderate möglich ist, auf die Hälfte des aktuellen Fensterwerts.
(multiplicative decrease).
Nach einer Stauperiode wird die Fenstergröße um ein Datenpaket erhöht
und weiterhin nach jeder empfangenen Quittung (slow start)
⇒ Der „slow start” Mechanismus verhindert, dass nach einem Stau direkt
zu hoher Verkehr auftritt
Übertragungsfenster (KB)
„
2K
Schwelle
32
28
24
Schwelle
20
16
12
8
4
0
0
TKDP - 5. Transportschicht im Internet
134
2
4
6
Anzahl der Übertragungen
8
10
12
14
16
TKDP - 5. Transportschicht im Internet
18
20
22
24
135
TCP: Verbindungsabbau
„
UDP (User Datagram Protocol)
Bestätigter und nummerierter Verbindungsabbau
„
„
Noch ausstehende Datenpakete können erkannt werden, so
dass der Verbindungsabbau erst mit Eintreffen des letzten
Datenpakets vollzogen werden kann.
Close
A
„
B
FIN i
j
1, FIN
+
i
K
AC
„
0
A sendet VerbindungsabbauAnfrage
Unzuverlässig, verbindungslos, einfacher und schneller als TCP
Demultiplexing der empfangenen Pakete basiert auf der PortNummer
Optionale Prüfsumme
16
Source
Source Port
Port
Destination
Destination Port
Port
Message
Message Length
Length
Checksum
Checksum
j+1
B bestätigt und sendet eigenes
Verbindungsabbau-Signal
„
festgelegte, so genannte „well-known” Ports:
13:
53:
123:
„
A bestätigt den Verbindungsabbau von B. Ist dieses Signal
bei B angekommen, gilt die
Verbindung als abgebaut.
TKDP - 5. Transportschicht im Internet
„
„
„
„
„
„
„
Einfacher zu merken
Dienste einfacher auf andere Rechner übertragbar
Länder
Weltweit eindeutig
Hierarchische Struktur
Gliederung in Domänen
us
ikmcip1.e-technik.tu-ilmenau.de
Rechner
Allgemeine Kategorie
(vorrangig innerhalb
der USA)
de
se ...
tu-ilmenau
uk net org gov mil
e-technik
Benötigt:
„
„
„
ac co
Land
Abteilung Institution
„
Namensraum ist in Zonen aufgeteilt
edu
Beispiel
„
www
nasa
...
ikmcip1
Abbildung logischer Name → IP-Adresse
Ursprünglich: Datei (hosts.txt), die jede Nacht vom Server geladen wurde
Problem: steigende Anzahl der Namen ließ zentrale Datei nicht mehr zu
TKDP - 5. Transportschicht im Internet
137
DNS-Namensraum
Aufbau eines logischen Namens
„
„
sehr viele Multimedia-Anwendungen nehmen UDP statt TCP wegen
Leistungsvorteilen
TKDP - 5. Transportschicht im Internet
Adressierung erfolgt über logische Namen
„
daytime
domain name server
network time protocol
136
Anwendungsnahe Adressierung
im Internet
„
Paketkopf
Daten
Daten ...
...
„
ACK
31
138
TKDP - 5. Transportschicht im Internet
com
Geplante, z.T.
z.T.
bereits realisierte
weitere Zonen
(top level domains):
• arts
• firm
• info
• nom
• rec
• shop
• web
139
DNS – Resource Records
„
DNS – Beispieldatenbank
Fünf-Tupel, der einzelne Ressourcen näher
beschreibt:
„
„
„
„
Domain_name
Time_to_live
Class
Type
„
„
„
„
„
„
Domain_name
cs.vu.nl
cs.vu.nl
cs.vu.nl
cs.vu.nl
flits.cs.vu.nl
flits.cs.vu.nl
flits.cs.vu.nl
flits.cs.vu.nl
flits.cs.vu.nl
www.cs.vu.nl
ftp.cs.vu.nl
laserjet
A (IP-Adresse des Rechners)
MX (Mail Exchange)
HINFO (CPU und Betriebssystem des Rechners in ASCII)
CNAME (Canonical Name)
...
Value
TKDP - 5. Transportschicht im Internet
140
DNS – Name Servers
edu
sun
yale
eng
cs
eng
gov
„
Länderspezifisch
mil
org
acm
jack
robot
Value
„Faculteit Wiskunde en Informatica”
„Vrije Universiteit Amsterdam”
1. zephyr.cs.vu.nl
2. top.cs.vu.nl
Sun Unix
130.37.16.112
192.31.231.165
1. flits.cs.vu.nl
2. zephyr.cs.vu.nl
star.cs.vu.nl
zephyr.cs.vu.nl
192.31.231.216
„HP Laserjet IIISi” Proprietary
141
net
jp
ieee
ac
jill
us
co
de
tu-bs
keio
nec
cs
cs
csl
ibr
...
Jede Zone hat einen primären und beliebig weitere sekundäre
Nameserver
Anfragen können rekursiv oder nicht-rekursiv beantwortet
werden
„
linda
pc24
rekursiv:
Name
yahoo
Name
Info
Info
www
„
ai
Type
TXT
TXT
MX
MX
HINFO
A
A
MX
MX
CNAME
CNAME
A
HINFO
TKDP - 5. Transportschicht im Internet
„
com
Class
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
DNS – Anfragen an Name Server
Allgemeine Kategorien
int
Time_to_live
86400
86400
86400
86400
86400
86400
86400
86400
86400
86400
86400
etc.
nicht-rekursiv:
Name
Info
faxe
Name
Info
TKDP - 5. Transportschicht im Internet
142
TKDP - 5. Transportschicht im Internet
143
DNS – Beispiele
c http://www.nasa.gov/
Literatur
d IP-Adresse für
www.nasa.gov ?
Endsystem
Endsystem
„
DNSDNSName
Name Server
Server
e 198.116.142.34
f http 198.116.142.34
„
Router
Router
„
d MX-Daten für ieee.org ?
c mail [email protected]
DNSDNSName
Name Server
Server
Endsystem
Endsystem
f smtp 199.172.136.14
„
e gemini.ieee.org,
IP-Adresse 199.172.136.14, SMTP
COMER, D.E. (2002). Computernetzwerke und
Internets mit Internet-Anwendungen. Pearson
Studium / Prentice Hall, München, 3. überarbeitete
Auflage. ISBN 3-8273-7023-X.
COMER, D.E. (2003): TCP/IP – Konzepte, Protokolle
und Architekturen. mitp-Verlag, Bonn, 4. Auflage,
2003. ISBN 3-8266-0995-6.
PETERSON, L.; DAVIE, B.S. (2003): Computernetze –
Eine systemorientierte Einführung. dpunkt.verlag,
Heidelberg, 3. Auflage. ISBN 3-89864-242-9.
STEVENS, W.R. (1994). TCP/IP Illustrated, Bd. 1 – The
Protocols. Addison-Wesley, Boston; San Francisco;
New York. ISBN 0-201-62246-9.
Router
Router
TKDP - 5. Transportschicht im Internet
144
RFCs
„
„
„
„
„
„
POSTEL, J.: User Datagram Protocol, August 1980, RFC
768.
POSTEL, J.: Transmission Control Protocol – DARPA
Internet Program Protocol Specification, September
1981, RFC 793.
MOCKAPETRIS, P.V.: DNS encoding of network names
and other types. April 1989. RFC 1101.
POSTEL, J.: Domain Name System Structure and
Delegation, März 1994, RFC1591.
FREED, N.: Behavior of and Requirements for Internet
Firewalls, Oktober 2000, RFC 2979.
RAMAKRISHNAN, K.; FLOYD, S.; BLACK, D.: The Addition of
Explicit Congestion Notification (ECN) to IP,
September 2001, RFC 3168.
TKDP - 5. Transportschicht im Internet
146
TKDP - 5. Transportschicht im Internet
145
Herunterladen