Verteilte Systeme

Werbung
Verteilte Systeme BS AI



Rumen Stainov
http://www2.hs-fulda.de/~stainov/
[email protected]
Verteilte Systeme
2009 © R. Stainov
1
Das Internetmodell

Schicht 3 und 4. Die Internet- und die Transportschicht
entsprechen der (dritten) Vermittlungs- und der (vierten)
Transportschicht bei OSI. Das Internetmodell lässt allerdings keine
anderen Protokolle als IP (Internetprotokoll) oder IPv6 (die neue 6.
Version) auf der Internetschicht und TCP oder UDP auf der
Transportschicht zu.
Schicht
Protokolle
Anwendung
Telnet
FTP
Vordergrund
(Terminal) (Filetransfer)
TCP
Transport
HTTP
SMTP
P2P-Protokolle
(WWW)
(E-Mail) (Ressourcen)
RTP (IP-Telefon)
(Personen)
UDP
(verbindungsorientiert über TCP-Pakete)
(verbindungslos über UDP-Datagramme)
ICMP (Fehlermitteilung und Steuerinformation), IGMP (Gruppenkommunikation)
Vermittlung
IP oder IPv6 (unzuverlässige IP-Datagramme zwischen zwei Internetcomputern)
X.25
GigabitIEEE 802.x HDLC
PPP
Einkapseln von IPEthernet
Paketen
Link
(LANs)
(Netze)
(über DSL)
Verteilte Systeme
(LAN)
2009 © R. Stainov
2
Internetworking
ICMP (Internet Control Message Protocol)
4-Bit
4-Bit
Version
HeaderLänge
8-Bit
Type_of_Service
TOS
Identifikator
Time-to -live TTL
Typ
Verteilte Systeme
2009 © R. Stainov
16-Bit
Länge des Datagramms
Flags
Protokolltyp
IP-Adresse des
IP-Adresse des
Code
weitere
Offset des Fragments
Prüfsumme des Headers
Absenders
Empfängers
Prüfsumme
Kontroll-Information
3
Internetworking - ICMP
Typ
Bedeutung
0 Informationsnachricht: Echo-Antwort (Ping-Antwort).
3 Fehlermeldung: Empfänger ist nicht erreichbar (destination unreachable).
4
5
Das Feld Code bestimmt die Ursache: 0 = Netzwerk ist nicht erreichbar, 1= Host ist nicht
erreichbar, 2= Das Protokoll ist nicht erreichbar, 3 = Port ist nicht erreichbar, 4 =
Fragmentierung ist notwendig, aber das Bit „nicht fragmentieren“ ist gesetzt, 5 = SourceRouting-Fehler, 6 = unbekanntes Netzwerk, 7 = unbekannter Host, 8 = Sender-Host ist
abgetrennt, 9 = Zielnetzwerk ist administrativ nicht zugänglich, 10 = Ziel-Host ist administrativ
nicht zugänglich, 11 = Das Netzwerk ist nicht erreichbar für TOS (Type of Service), 12 = Der
Host ist nicht erreichbar für TOS, 13 = Die Kommunikation ist administrativ nicht erlaubt
(wegen Filtrieren), usw.
Fehlermeldung: Flusskontrolle (source quench)
Fehlermeldung: Umleitung zum anderen Router (redirect) (zur Veränderung der RoutingTabelle des Senders).
Das Feld Code bestimmt: 0 = redirect für Netzwerk-ID, 1 = redirect für Host-ID, 2 = redirect
für TOS und Netzwerk-ID, 3 = redirect für TOS und Host-ID
8 Informationsnachricht: Echo-Anforderung (Ping-Anforderung).
9 Informationsnachricht: Router-Advertisement als Antwort auf Typ 10 router solicitation oder
zum periodischen Broadcasting von Routing-Tabellen.
10 Informationsnachricht: Router-Solicitation - Abfragen der Routing-Tabellen des lokalen
Router. Systeme
Verteilte
2009 © R. Stainov
4
Internetworking - ICMP
Typ
Bedeutung
11 Fehlermeldung: Die Zeit ist abgelaufen (time exceeded) (TTL hat 0 erreicht).
12
Das Feld Code bestimmt: 0= TTL hat 0 erreicht während der Übertragung, 1= TTL hat 0
erreicht während der Zusammensetzung des Paketes nach der Fragmentierung.
Fehlermeldung: Problem mit den Parametern (parameter problem).
Das Feld Code bestimmt: 0= der IP-Header ist beschädigt, 1= die erforderliche Option fehlt.
13
14
Informationsnachricht: Zeitstempel-Anforderung (time stamp request) (UTC-Zeit in
Millisekunden).
Informationsnachricht: Zeitstempel-Antwort (time stamp replay) (UTC-Zeit in Millisekunden).
15
16
17
18
Informationsnachricht: Informationsanforderung (information request).
Informationsnachricht: Informationsantwort (information replay)
Informationsnachricht: Adressmaske-Anforderung (address mask request).
Informationsnachricht: Adressmaske -Antwort (address mask replay).
Verteilte Systeme
2009 © R. Stainov
5
Transportschicht (UDP und TCP)
Multiplexing an die Ports
Schichten
7
6
5
4
Computer „Palme“
Computer „Eiche“
Programme
Programme
Sender-Ports
Empfänger-Ports
Das TCP-Protokoll
TCP/UDP
TCP/UDP
3
Protokollnummer
IP-Adresse/Interface
Version
2
IP
FDDI
1
Protokollnummer
Das IP-Protokoll
IP
FDDI
IP- Adresse/Interface
Version
Ethernet
LAN Ethernet
LAN FDDI
Verteilte Systeme
2009 © R. Stainov
INTERNET
6
Transportschicht - UDP
Multiplexing an die Ports
4-Bit
4-Bit
8-Bit
Version
HeaderLänge
Type_of_Service
TOS
Identifikator
Time-to -live TTL
16-Bit
Länge des Datagramms
Flags
Protokolltyp
Offset des Fragments
Prüfsumme des Headers
IP-Adresse
des
Absenders
IP-Adresse
des
Empfängers
IP-Optionen
Port- Nummer
des Senders
UDP- Länge
Verteilte Systeme
2009 © R. Stainov
Portnummer des Empfängers
UDP-Prüfsumme
7
Transportschicht - TCP
Multiplexing an die Ports + TCP-Pipe
4-Bit
4-Bit
Version
H-Länge
8-Bit
16-Bit
Type_of_Service TOS
Identifikator
Flags
Time-to -live TTL
Port-
HeaderLänge
Protokolltyp
IP-Adresse
IP-Adresse
IP-Optionen
Nummer des Senders
Sequenznummer
Bestätigungsnummer
URG,
PSH, RST, SYN, FIN,
ACK
TCPPrüfsumme
Optionen
Daten
Verteilte Systeme
2009 © R. Stainov
des
des
Länge des Datagramms
Offset des Fragments
Prüfsumme des Headers
Absenders
Empfängers
Portnummer des Empfängers
Fenstergröße
Urgent-Pointer
8
TCP
4-Bit
4-Bit
Port-
Nummer
Header
-Länge
8-Bit
des Senders
Sequenznummer
Bestätigungsnummer
16-Bit
Portnummer des Empfängers
URG, PSH, RST, SYN, FIN,
ACK
TCPPrüfsumme
Optionen
Daten
Fenstergröße
Urgent-Pointer
Sequenznummer für geordnete Übertragung - beide Sender verwalten je eine
Sequenznummer (Folgenummer) für die Verbindung. Die Sequenznummern
werden während der Verbindungsaufbauphase ausgewählt und gegenseitig
ausgetauscht.
Das Feld Bestätigungsnummer dient zur Bestätigung eines empfangenen TCPPakets.
URG = Urgent Pointer ist gültig
ACK = Bestätigung (Acknowledgment),
PSH = unverzögertes Weiterleiten der Daten zur Anwendung
RST = Zurücksetzen (Reset) der Verbindung
SYN = Synchronisiere die Sequenznummer
FIN = Sender hat die Datenübertragung beendet.
Das Feld Fenstergröße dient zur Flusskontrolle.
Das Feld
Urgent Pointer zeigt auf die dringenden Daten (URG-Flag)
Verteilte Systeme
2009 Segment
© R. StainovSize (MSS) bestimmtdie maximale Länge des TCP-Pakets.
Maximum
9
TCP
4-Bit
4-Bit
8-Bit
16-Bit
Port-
Nummer
des Senders
Sequenznummer
Bestätigungsnum.
Portnummer des Empfängers
Header
-Länge
URG, ACK PSH, RST, SYN,
FIN,
TCPPrüfsumme
Optionen
Daten
Fenstergröße
Urgent-Pointer
Weitere TCP-Dienste



Segmentierung. Große TCP-Pakete werden in kleinere Segmente aufgeteilt,
UDP-Datagramme nicht. Bei TCP spricht man grundsätzlich von Übertragung
von Segmenten, statt von Paketen.
Erneutes Senden. Zu jedem TCP-Segment wird beim Senden ein Timer
gestartet. Wenn der Timer für eine Bestätigung abgelaufen ist, wird das
Segment erneut gesendet (retransmission).
Duplikatenbehandlung. TCP-Segmente werden nicht dupliziert zugestellt
(auch wenn die IP-Datagramme dupliziert sind). Die Sequenznummern
werden zur Erkennung der Duplikate verwendet.
Verteilte Systeme
2009 © R. Stainov
10
TCP
4-Bit
4-Bit
8-Bit
16-Bit
Port-
Nummer
des Senders
Sequenznummer
Bestätigungsnum.
Portnummer des Empfängers
Header
-Länge
URG, ACK PSH, RST, SYN,
FIN,
TCPPrüfsumme
Optionen
Daten
Fenstergröße
Urgent-Pointer
TCP-Verbindungsaufbau - 3-Wege-Handshake
Der Client sendet eine SYN-Nachricht an die Portnummer des Servers (8080) und
mit der 32-Bit-langen Sequenznummer des Client für diese Verbindung
(Seq=2948254858).
1 bragi->inti TCP D=8080 S=37518 SYN Seq=2948254858 Win=8760
Der Server antwortet mit einer SYN-Nachricht an die Portnummer des Clients
(37518), schickt seine eigene Sequenznummer für diese Verbindung
(Seq=2789133898) und bestätigt die Clients-SYN-Nachricht (Ack=2948254859).
2 inti->bragi TCP D=37518 S=8080 Syn Ack=2948254859
Seq=2789133898 Win=8760
Der Client bestätigt die Servers-SYN-Nachricht (Ack=2789133899)
3 bragi->inti TCP D=8080 S=37518 Ack=2789133899
Seq=2948254859 Win=8760
Verteilte Systeme
2009 © R. Stainov
11
4-Bit
4-Bit
8-Bit
16-Bit
Port-
Nummer
des Senders
Sequenznummer
Bestätigungsnum.
Portnummer des Empfängers
Header
-Länge
TCP
URG, ACK PSH, RST, SYN,
FIN,
TCPPrüfsumme
Optionen
Daten
Fenstergröße
Urgent-Pointer
TCP-Datenaustausch
4
bragi->inti TCP D=8080 S=37518 Ack=2789133899 Seq=2948254859
Len=288 Win=8760
5 inti->bragi TCP D=37518 S=8080 Ack=2948254860 Seq=2789133899
Len=190 Win=8760
TCP-Verbindungsabbau
6 inti->bragi TCP D=37518 S=8080 Fin Ack=2948254862
Seq=2789133902
7 bragi->inti
TCP D=8080 S=37518 Ack=2789133903 Seq=2948254862
8 bragi->inti TCP D=8080 S=37518 Fin Ack=2789133903
Seq=2948254862
9 inti->bragi
TCP D=37518 S=8080 Ack=2948254863 Seq=2789133903
Verteilte Systeme
2009 © R. Stainov
12
4-Bit
4-Bit
8-Bit
16-Bit
Port-
Nummer
des Senders
Sequenznummer
Bestätigungsnum.
Portnummer des Empfängers
Header
-Länge
TCP
URG, ACK PSH, RST, SYN,
FIN,
TCPPrüfsumme
Optionen
Daten
WWW-SERVER
Fenstergröße
Urgent-Pointer
WWW-CLIENT
auf Port 8080
TelekomNETZWERK
inti
auf Port 37518
bragi
Verbindungsaufbau
SYN (Port=8080, Seq=2948254858)
SYN (Port=37518, Seq=2789133898,Ack=2948254859)
ACK(Port=8080, Seq=2789133899)
Datenaustausch
Ack=2789133899 Seq=2948254859
Ack=2948254860
Länge=288
Seq=2789133899 Länge=190
Verbindungsabbau
FIN( )
ACK( )
FIN( )
Verteilte Systeme
2009 © R. Stainov
ACK( )
13
DNS (Domain Name System)
Normale Abbildung. Abbildung von alphanumerischen Internetnamen in
numerischen Internetadressen. Da die Internetnamen strukturiert sind,
werden die entsprechenden Domains und ihre DNS-Server dieser globalen
(baumförmigen) Hierarchie folgen.
virtuelle Root-Domain
arpa
193
gov
edu
fr
normale DNS-Eintragung
de
ca
fh-fulda
193.174.26
174
26
inverse DNS-Eintragung
fh-fulda.de
Verteilte Systeme
2009 © R. Stainov
14
DNS Beispiel
Root-Server
ns.nic.de
rz.uni-bonn.de
inti.fh-fulda.de
193.174.26.19
tethis.uni-bonn.de
131.220.4.4
buche
eiche
NS olymp.uni-bonn.de
NS rz.fh-fulda.de
2
7
A? tethis.uni-bonn.de
6
1
DNS-Server
rz.fh-fulda.de
A 131.220.4.4
Root-Server
ns.nic.de
rz.uni-bonn.de
5
DNS-Server
rz.fh-fulda.de
IP-Paket
4
9
3
PTR? 193.174.26.19
PTR inti.fh-fulda.de
8
A 131.220.4.4
DNS-Server
olymp.uni-bonn.de
Verteilte Systeme
2009 © R. Stainov
PTR inti.fh-fulda.de
OK
DNS-Server
rz.fh-fulda.de
15
WWW
1. Einheitliche Adressierung. Statt durch die absolute Rechneradresse
wie es bis jetzt üblich war, wird in WWW ein Objekt adressiert.. Ein Objekt wird
durch die "Adresse der Ressource", die sogen. URL (Universal Resource Locator)
angesprochen.
2. Einheitliche Client-Server-Kommunikation.
Das Hypertext
Transfer Protocol (HTTP) ist das einheitliche Client-Server-Protokoll, das auch
eine Anpassung an die Daten- und Kommandoformate und ihrer Interpretation
spezifiziert. Weiterhin werden Sicherheitsmechanismen für Authentifizierung und
Zugriffskontrolle angeboten.
3. Hypertext-basierte Oberflächengestaltung auf der Basis
einheitlicher Beschreibungssprache. Das Oberflächengestaltungsprogramm
(der sogen. WWW-Browser) interpretiert die WWW-Seite mit Hypertextmenues,
Internetlinks, Grafiken, Video etc., die in der Beschreibungssprache HTML
(Hypertext Markup Language) notiert ist.
Verteilte Systeme
2009 © R. Stainov
16
HTTP (Hypertext Transfer Protocol)
1. Die Adressierung des Objektes über URL.
2. Abwicklung der Client-Server-Interaktion. Die HTTPAnforderung (HTTP-Request) fordert eine Ressource auf
(z.B. profs.html), die dann zum WWW-Browser über eine
HTTP-Antwort (HTTP-Response) geht und stellt die
Ressource zu.
3. Die Anpassung der Formate erfolgt durch Verhandlung
zwischen dem Client und dem Server und durch
Einbeziehen seitens des Client von externen Interpretern
(sogen. Browser für Grafik, Bilder, Audio, Video).
Verteilte Systeme
2009 © R. Stainov
17
HTTP
Erweiterungen in HTTP 1.0:
1. die Universalität des Einsatzes für verschiedene
natürliche Sprachen, Medien, Codierungen, Hardware- und
Softwaresysteme.
2. die Leistungserhöhung durch Caching über das Internet.
3. den Ausbau der Unabhängigkeit der Datenformate
durch deren Anpassung und Verhandlung.
4. die Sicherheit durch Zugriffsschutz und
Authentifizierungstest.
Verteilte Systeme
2009 © R. Stainov
18
HTTP
Zugriff auf eine HTML-Seite durch WWW-Browser
WWW-Client
PC
WWW-Server
WWW-Browser
HTTP-Request mit URL
DNS
MIME
HTTP-Response mit HTML
TCP/UDP
IP
HTTPDämon
RPC
DNS
TCP/UDP
IP
INTERNET
Verteilte Systeme
2009 © R. Stainov
19
HTTP – Requests
GET
Aufforderung zum Kopieren der durch URI adressierten Daten in
den Nachrichtentext der Antwort.
HEAD
wie GET, aber nur für Testzwecke. Es werden keine Daten in den
Nachrichtentext der Antwort kopiert.
POST
Senden von Daten im Nachrichtentext der Anforderung zu dem
durch URI adressierten Server.
PUT
Senden von Daten im Nachrichtentext der Anforderung, um sie
unter URI zu speichern.
DELETE
LINK
Löschen der durch URI adressierten Daten.
Herstellen von Links zwischen den durch URI adressierten Daten
und einer anderer Ressource (HTTP 1.0).
UNLINK
Auflösen von Links zwischen den durch URI adressierten Daten
und einer anderer Ressource (HTTP 1.0).
TRACE
Zurücksenden mit der OK-Antwort der originalen HTTPAnforderung. Der Client kann dadurch überprüfen, was vom
Verteilte Systeme
Server empfangen wurde (HTTP 1.1).
2009 © R. Stainov
20
HTTP – GET-Request
% telnet sta2.informatik.hsfulda.de 80
Trying 193.174.26.22...
Connected to
sta2.informatik.hs-fulda.de.
Escape character is '^]'.
GET /index.html HTTP/1.0

Verteilte Systeme
2009 © R. Stainov
HTTP/1.1 200 OK
Date: Thu, 23 Oct 2008 13:58:57 GMT
Server: Apache/1.3.28 (Linux/SuSE) PHP/4.3.3
Last-Modified: Tue, 02 Mar 2004 08:40:56 GMT
ETag: "15e79-8f-40444898"
Accept-Ranges: bytes
Content-Length: 143
Connection: close
Content-Type: text/html
<HTML>
<HEAD>
<TITLE>sta2.informatik.fh-fulda.de</TITLE>
</HEAD>
<BODY>
<BR>
<IMG SRC="apache_pb.gif" HEIGHT=32 WIDTH=259
ALIGN=RIGHT></DIV>
....
<H1>sta2.informatik.fh-fulda.de
(193.174.24.142)</H1>
</BODY>
21
</HTML>
HTTP – HEAD-Request
% telnet sta2.informatik.hsfulda.de 80
Trying 193.174.26.22...
Connected to
sta2.informatik.hs-fulda.de.
Escape character is '^]'.
HEAD /index.html HTTP/1.0

Verteilte Systeme
2009 © R. Stainov
HTTP/1.1 200 OK
Date: Thu, 23 Oct 2008 13:58:57 GMT
Server: Apache/1.3.28 (Linux/SuSE) PHP/4.3.3
Last-Modified: Tue, 02 Mar 2004 08:40:56 GMT
ETag: "15e79-8f-40444898"
Accept-Ranges: bytes
Content-Length: 143
Connection: close
Content-Type: text/html
Connection closed by foreign host.
22
HTTP – POST-Request
% telnet sta2.informatik.hsfulda.de 80
Trying 193.174.26.22...
Connected to
sta2.informatik.hs-fulda.de.
Escape character is '^]'.
POST /index.html HTTP/1.0

Verteilte Systeme
2009 © R. Stainov
HTTP/1.1 405 Method Not Allowed
Date: Thu, 23 Oct 2008 14:05:52 GMT
Server: Apache/1.3.28 (Linux/SuSE) PHP/4.3.3
Allow: GET, HEAD, POST, PUT, DELETE,
CONNECT, OPTIONS, PATCH, PROPFIND,
PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK,
TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for
the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.28 Server at
sta2.informatik.fh-fulda.de Port
80</ADDRESS>
23
</BODY></HTML>
HTTP – Caching-Modelle
1. Validierungs-Modell. Es wird über ein Validator zuerst bei dem originalen
überprüft, ob diese Eintragung noch aktuell ist.
• Falls aktuell, wird die Kopie aus dem Cache genutzt, wobei die erneute
Übertragung der gesamten Daten erspart wird. Als könnte auch der „LastModified“-Header dienen.
• Falls nicht aktuell, wird die WEB-Seite zum Cache übertragen.
2. Gültigkeitsdauer-Modell. Festlegen einer Gültigkeitsdauer für die CacheEintragung (keine Kommunikation mit dem Server)
• Der Server kann festlegen, wie lange die Eintragung noch gültig ist. (z.B.
durch das Feld expire = 604800 (7 days)).
• Der Cache legt fest, wie lange eine Eintragung im Cache gültig ist: einen Tag,
eine Woche ...: „heuristisch“ auf der Basis des „Last-Modified“-Headers oder
auf der Basis des berechneten „Alters“ im Cache.
3. Explizite Mechanismen. Der Client oder der Server können selbst
entscheiden, wie „alt“ eine Kopie im Cache werden darf. Z.B. festlegen im
Cache-Control-Header (HTTP/1.1), dass er auch Cache-Eintragungen mit einer
abgelaufenen
Verteilte SystemeGültigkeitsdauer bis zum 3600 Sekunden akzeptieren kann:
2009 © R. Stainov max-stale=3600
24
Cache-Control:
HTTP – Cache-Validierungs-Modell
% telnet sta2.informatik.hs-fulda.de 80
Trying 193.174.26.22...
Connected to sta2.informatik.hs-fulda.de.
Escape character is '^]'.
GET /index.html HTTP/1.0
If-Modified-Since: Mon, 10 Mar 2008 13:43:24 GMT

HTTP/1.1 304 Not Modified
Date: Thu, 23 Oct 2008 14:08:22 GMT
Server: Apache/1.3.28 (Linux/SuSE) PHP/4.3.3
Connection: close
ETag: "15e79-8f-40444898"
Connection closed by foreign host.
Verteilte Systeme
2009 © R. Stainov
25
Herunterladen