Verteilte Systeme - Übung 3 - Parallele und verteilte Systeme

Werbung
Verteilte Systeme
Übung 3
Alexander Ploß
Gruppe PVS (Parallele und Verteilte Systeme)
Institut für Informatik
Westfälische Wilhelms-Universität Münster
Sommersemester 2008
3.1 OSI-Referenzmodell
Prozess B
Prozess A
Anwendungsschicht
Application Layer
Anwendungsprotokoll
Anwendungsschicht
Application Layer
Darstellungsschicht
Presentation Layer
Darstellungsprotokoll
Darstellungsschicht
Presentation Layer
Sitzungsschicht
Session Layer
Sitzungsprotokoll
Sitzungsschicht
Session Layer
Transportschicht
Transport Layer
Transportprotokoll
Transportschicht
Transport Layer
Netzwerkschicht
Network Layer
Sicherungsschicht
Data Link Layer
Übertragungsschicht
Physical Layer
Netzwerk−
protokoll
Sicherungs−
protokoll
Übertragungs−
protokoll
Gateway
Netzwerkschicht
Network Layer
Sicherungsschicht
Data Link Layer
Übertragungsschicht
Physical Layer
Netzwerk−
protokoll
Sicherungs−
protokoll
Übertragungs−
protokoll
Netzwerkschicht
Network Layer
Sicherungsschicht
Data Link Layer
Übertragungsschicht
Physical Layer
3-2
3.1 OSI-Referenzmodell
7 Anwendung (Application Layer)
Standardisierte Protokolle für bestimme Anwendungsaufgaben (www,
E-Mail, ...)
6 Darstellung (Presentation Layer)
Regelung der Informationskodierung
5 Sitzung (Session Layer)
Steuerung der Kommunikationssitzung
4 Transport (Transport Layer)
Interprozesskommunikation
3 Vermittlung (Network Layer)
Adressierung
Wegewahl (Routing)
Überlastkontrolle
Segmentierung/Reassemblierung
2 Sicherung (Data Link Layer)
Fehlerkontrolle
Zugriffsregelung
1 Bitübertragung (Physical Layer)
Übertragung von Bitströmen über ein Medium
3-3
3.2 TCP/IP-Stack
Das OSI-Referenzmodell dient vielen verteilten Systemen als Vorlage, aber
gerade nicht für das Internet. Dort einfacherer TCP/IP-Stack:
4 Anwendungsschicht (Application Layer)
3 Transportschicht (Transport Layer)
2 Vermittlungsschicht (Network Layer)
1 Netzzugangsschicht (Host to Network)
3-4
Entwickler/User−Space
3.2 TCP/IP-Stack
Web−Browser, E−Mail,.
Anwendung
Andere
Anwendungen
(erfordern
spezielle
Optimierung)
Appl.−Protokolle:
FTP, HTTP, SMTP, ...
Andere
Anwendungen
Middleware:
CORBA, RMI
Programming Interface (Sockets)
Betriebssystem
TCP
IGMP
ICMP
RARP
ARP
UDP
Transport
RIP
IP
OSPF
Vermittlung
Ethernet
WLAN
...
ATM
Netzzugang
3-5
TCP/IP: Ethernet als Netzzugangsschicht
B
D
.. 1 0 0 1 0 ..
MAC−Adresse
72:B0:11:2C:00:3C
A
geteiltes
Ethernet−Medium
28:A3:60:43:C2:4B
C
E
Adressierung der Hosts durch 48-bit große MAC-Adresse (Media
Access Control)
Auflösung der MAC-Adresse zu einer IP-Adresse durch ARP (Address
Resolution Protocol)
Regelung des Medienzugriffs durch CSMA/CD-Verfahren (Carrier
Sense Multiple Access with Collision Detection)
(http://www.erg.abdn.ac.uk/users/gorry/course/lan-pages/csma-cd.html)
3-6
TCP/IP: Ethernet als Netzzugangsschicht
0 12 34 56 7 89 01 23 45 67 89 0 12 34 56 78 90 1
Präambel (0−31)
Präambel (32−63)
Zieladresse (0−31)
Zieladresse (32−47)
Quelladresse (0−15)
111111111111111111111111
000000000000000000000000
000000000000000000000000
111111111111111111111111
000000000000000000000000
111111111111111111111111
000000000000000000000000
111111111111111111111111
000000000000000000000000
111111111111111111111111
Quelladresse (0−15)
Paket−Typ
Daten
Daten
...
Prüfsumme
Präambel (1010101...) dient zur Sender-Empfänger-Synchronisierung
Maximal 1500 Bytes Nutzdaten pro Frame (Header + Trailer: 18
Byte groß)
Mindestgröße eines Frames ist 64 Bytes
1. Vereinfacht Kollisionsbehandlungen
2. Verhindert “späte Kollisionen”
Nutzdaten werden aufgefüllt falls kleiner als 46 Bytes
3-7
TCP/IP: Ethernet als Netzzugangsschicht
Ab ca. 50 % Auslastung führt der gemeinsame Medienzugriff zur
Überlastung ⇒ Switches statt Hubs lösen das Problem durch
Punkt-zu-Punkt-Verbindungen
Trotzdem: Anzahl der Hosts in einem Netzwerk ist beschränkt
⇒ Internetworking zum Verbinden verschiedener Netze
Alternative Implementierungen einer Netzzugangsschicht:
Wireless LAN, Zugriffssteuerung durch CSMA/CA (Carrier Sense
Multiple Access with Collision Avoidance)
CAN Bus (Controller Area Network), eingesetzt im Auto oder
anderen störanfälligen Bereichen, Zugriffssteuerung durch CSMA/BA
(Carrier Sense Multiple Access with Bitwise Arbitration)
Token Ring, ATM, PPP, Frame Relay, ...
3-8
TCP/IP: Vermittlungsschicht
Die Vermittlungsschicht verbindet mehrere Netzwerke. Aufgaben:
Adressierung
Wegewahl (Routing)
Kommunikationskontrolle
Segmentierung/Reassemblierung
3-9
Vermittlungsschicht: Adressierung
Jedes Netzwerkinterface wird durch eindeutige 32-bittige (IPv4)
IP-Adresse identifiziert
IP-Adresse besteht aus Netzadresse und Hostadresse
Früher: Statische Unterteilung von Netz- und Hostadresse durch feste
NetzKlassen (RFC 990)
Netzklasse
A
Binär-Format
0xxxxxxx.X.X.X
B
10xxxxxx.X.X.X
128.x.x.x - 191.x.x.x
C
110xxxxx.X.X.X
192.x.x.x - 223.x.x.x
D
1110xxxx.X.X.X
224.x.x.x - 239.x.x.x
E
1111xxxx.X.X.X
240.x.x.x - 255.x.x.x
Netzklasse
Adressbereich
0.x.x.x - 127.x.x.x
A
Länge Netzadresse
8 Bit
Länge Hostadresse
24 Bit
Anzahl Netze
Hosts/Netz
126
16 777 216
B
16 Bit
16 Bit
16 384
65 534
C
24 Bit
8 Bit
2 097 151
254
3-10
Vermittlungsschicht: Adressierung
Einzig heute noch relevant: Klasse D (Multicast)
Heute (bzw. 1993 eingeführt):
Classless Internet Domain Routing (CIDR) mit Netzmasken
Die Maske gibt an, welche Bits zur Netzadresse gehören
Beispiel: IP-Adresse 128.176.180.44, Maske 255.255.252.0
Schreibweise: 128.176.180.44/22
Um nur Netzwerke zu adressieren den Hostteil auf “null setzen”:
Beispiel: 192.168.0.0/16
3-11
3.2.2 TCP/IP: Vermittlungsschicht
128.176.80.55
A
Netzadresse
128.176.80.0/24
128.176.80.1
[...]
1
Netzadresse
128.155.19.0/24
128.155.19.4
128.155.19.1
Ein Router vermittelt zwischen (mindestens) zwei Netzen
Routing-Tabellen geben an (in normalen Hosts wie auch in den
Routern), über welches Interface ein Paket weitergeleitet werden soll
3-12
3.2.2 TCP/IP: Vermittlungsschicht
Beispiel: Routing-Tabelle des Host A
Destination
128.176.80.0
127.0.0.0
0.0.0.0
Gateway
0.0.0.0
0.0.0.0
128.176.80.1
Genmask
255.255.255.0
255.0.0.0
0.0.0.0
Iface
eth0
lo
eth0
Genmask
255.255.255.0
255.0.0.0
255.255.255.0
0.0.0.0
Iface
eth0
lo
eth1
eth1
Beispiel: Routing-Tabelle des Routers 1
Destination
128.176.80.0
127.0.0.0
128.155.19.0
0.0.0.0
Gateway
0.0.0.0
0.0.0.0
0.0.0.0
128.155.19.1
3-13
Vermittlungsschicht: Wegewahl (Routing)
Für den Routing-Vorgang und das Anpassen der Routing-Tabellen
(adaptives Routing, z. B. bei Teilnetzausfall) gibt es eine Vielzahl von
Mechanismen, z. B.:
RIP: Routing Information Protocol (veraltet)
OSPF: Open Shortest Path First
BGP: Border Gateway Protocol
. . . (Vgl. Tanenbaum, Computernetzwerke)
Grundsätzlich: “Best effort”-Kommunikation
Keine Auslieferungsgarantie
Paketreihenfolge kann sich ändern
Pakete können auf verschiedenen Routen zum Empfänger gelangen
Keine Dienstgüteunterstützung (Quality of Service)
3-14
Vermittlungsschicht: Wegewahl (Routing)
Time To Live eines IP-Paketes:
TTL-Feld im IP-Header wird durch jeden Router dekrementiert
Bei TTL=0 wird das Paket verworfen
Schützt vor Routing-Zyklen durch defekte Routen
Das TTL-Feld wird auch zum Anzeigen einer Route zu einem Zielhost mit
tracepath/traceroute benutzt
3-15
3.2.2 TCP/IP: Vermittlungsschicht
tracepath www.heise.de:
1:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
karlovo (128.176.180.50)
C65RRZA-MATHE.UNI-MUENS.. (128.176.180.4)
UNIA0010-RZA-0039.UNI-MUENS.. (10.29.3.9)
UNIA4019-UNIA0010.UNI-MUENS.. (10.29.1.9)
C65RISPA-UNIA.UNI-MUENS.. (192.168.16.65)
..nster1-ge1-0-0.x-win.dfn.de (188.1.49.9)
..ln1-ge8-2.x-win.dfn.de (188.1.18.122)
..nkfurt1-po2-0.x-win.dfn.de (188.1.18.97)
..nkfurt2-po6-0.x-win.dfn.de (188.1.80.66)
...ffm.plusline.net (80.81.192.132)
..de.plusline.net (213.83.57.23)
www.heise.de (193.99.144.71)
Resume: pmtu 1500 hops 11 back 11
0.125ms pmtu 1500
0.468ms
0.540ms
0.565ms
1.072ms
1.425ms
8.222ms
10.084ms
10.601ms
11.000ms
11.530ms
11.924ms reached
3-16
Vermittlungsschicht: Kommunikationskontrolle
Das Internetprotokoll beeinhaltet zwei Protokolle zur Steuerung der
Kommunikation:
ICMP Internet Control Message Protocol
Spezifiziert Steuerungsnachrichten wie Host Unreachable,
Fragmentation Needed, DF Set, TTL Exceeded oder Echo Request
und Echo Reply (für ping)
Im Allgemeinen können ICMP-Nachrichten verschickt werden, müssen
aber nicht
IGMP Internet Group Management Protocol
Spezifiziert Steuerungsnachrichten für Multicast-Kommunikation
3-17
Vermittlungsschicht:
Segmentierung/Reassemblierung
Die MTU (Maximum Transfer Unit) als maximale Nutzdatengröße eines
Frames der Netzzugangsschicht ist üblicherweise kleiner als die eines
IP-Paketes (64 kB).
Zwei Segmentierungstrategien:
1 Dynamisch durch die Router
Jeder Router kennt die MTU der angeschlossenen Netze
Beim Routing von grösserer auf kleinerer MTU (z. B. von ATM (4500)
auf Ethernet (1500)) teilt der Router zu grosse IP-Pakete auf:
IP
Header
IP
Header Datenfragment
Daten
IP
Header Datenfragment
IP
Header Datenfragment
3-18
Vermittlungsschicht:
Segmentierung/Reassemblierung
2 Statisch direkt beim Sender mit Path MTU Discovery (RFC 1191)
Ermittelt geringste MTU auf dem kompletten Weg zum Empfänger:
A
B
C
D
Wähle geeignete Anfangs-MTU und zerlege IP-Pakete entsprechend
Setze DF-Bit im IP-Header (Don’t Fragment)
Versende Pakete
Bei Empfang von ICMP Frag Needed, DF Set Nachricht eines
Routers verringere MTU entsprechend und beginne bei A
Problem 1: Pakete können auf verschiedenen Routen zu demselben
Empfänger ausgeliefert werden. Trotzdem praktikabel, da Routen im
Internet meist stabil
Problem 2: ICMP-Nachrichten werden mitunter von schlecht
konfigurierten Firewalls oder NAT-Routern geblockt
Dynamische Segmentierung/Reassemblierung belastet Router,
deswegen wird üblicherweise die Segmentierung am Sender
vorgenommen.
3-19
Vermittlungsschicht: IP-Header
0 1234 567 89 01 234 567 8901 234 5678 9 01
Version
HLänge
Diensttyp
Fragmentidentifizierung
TTL
Gesamtlänge (Bytes)
Flags
Protokoll
Fragmentadresse
Kopfprüfsumme
Quelladresse
Zieladresse
Optionen
Füllbyte
Daten . . .
3-20
Vermittlungsschicht: IPv6
Substantielles Redesign von IP
Erweiterte und verbesserte Funktionalität
Übernahme erfolgreicher Konzepte von IPv4
Neue Eigenschaften
Adressen 128 Bit groß, hexadezimale Notation, Bsp:
2a75:5db0:85a3:08d3:1079:6b2e:0363:7a04
Path MTU Discovery fest vorgeschrieben, Router segmentieren nicht
Adressauflösung und Gruppenmanagement Teil von ICMPv6,
ARP und IGMP entfernt
Neue Headerstruktur, jetzt über optionale Header erweiterbar
Dienstgüteunterstützung (Quality of Service)
Beeinhaltet IPsec als Protokoll für Verschlüsselung und
Authentifizierung auf dem Network-Layer
3-21
Linux/BSDs: Netzwerkinformationen
Anzeigen von Information und steuern des TCP/IP Stacks:
Iproute2,ip(8)
Anzeigen von Adressen: ip address show
Anzeigen von Routing-Tabellen: ip route show
Anzeigen des ARP-Caches: ip neighbour show
Weitere tools (iputils)
Route eines Pakets verfolgen: traceroute oder tracepath
Well-known ports: /etc/services
Weiterführende Online Referenz:
http://www.tcpipguide.com/free/index.htm
3-22
TCP/IP: Transportschicht
Aufgabe der Transportschicht:
Datentransport zwischen Prozessen
Zwei Transportprotokolle im TCP/IP-Stack:
UDP - User Datagram Protocol
Unzuverlässige Kommunikation, kein Verbergen der zugrundeliegenden
IP-Unzuverlässigkeiten
Protokollentwickler muss selbst Mechanismen zu Erreichen der
gewünschten Zuverlässigleit implementieren
TCP - Transmission Control Protocol
Expliziter Verbindungsaufbau
Erhält Absendereihenfolge von Daten
Liefert Daten garantiert aus
Welches Protokoll man einsetzt hängt von der Anwendung ab
3-23
Transportschicht: UDP-Header
0 1234 567 89 01 234 567 8901 234 5678 9 01
Quell−Port
Ziel−Port
Länge
Prüfsumme
Daten . . .
3-24
Transportschicht: TCP-Header
0 12 34 56 7 89 01 23 45 67 89 0 12 34 56 78 90 1
Quell−Port
Ziel−Port
Sequenznummer
Bestätigungsnummer
Offset
nicht verw.
1 2 3 4 5 6
Prüfsumme
Fenster
Dringlich
Optionen
Füllbytes
Daten . . .
1 URG
2 ACK
3 PSH
4 RST
5 SYN
6 FIN
3-25
Transportschicht: TCP-Zustandsautomat
CLOSED
EINGABE/AUSGABE
(Anwendungsbefehlle)
(passive open)/
(active open)/SYN
timeout/RST
LISTEN
SYN/SYN,ACK
(send data)/SYN
RST/
(close)
SYN/SYN,ACK
SYN RECVD
timeout
SYN,ACK/ACK
ACK/
ESTABLISHED
(close)/FIN
SYN SENT
FIN/ACK
CLOSE WAIT
(close)/FIN
(close)/FIN
FIN WAIT−1
FIN/ACK
CLOSING
LAST ACK
ACK/
FIN WAIT−2
FIN,ACK/ACK
FIN/ACK
ACK/
ACK/
TIME WAIT
timeout
3-26
Transportschicht: TCP-Verbindungsaufbau
3-way handshake“:
”
(active open)
CLOSED
SYN−SENT
SEQ=100
CTL=SYN
CLOSED
LISTEN
(passive open)
ESTABLISHED
SEQ=300
ACK=101
CTL=SYN,ACK
SYN−RECVD
SEQ=101
ACK=301
CTL=ACK
DATA
ESTABLISHED
3-27
Herunterladen