Verteilte Systeme

Werbung
Kap. 7
Verteilte
Systeme
Version vom 14.06.2007
Kap. 7 - Inhalt
Grundlagen
Schichtenmodelle
Netzkommunikation
Dateisysteme im Netz
Sicherheit im Netz
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 2
Grundlagen I - Netze
Arbeitsstation
Arbeitsstation
File Server
Ethernet
Drucker
Computer
Netze:
ƒ Verknüpfung von einzelnen Rechnern
zu Netzwerken
ƒ Datenzugriff
ƒ Gemeinsame Nutzung von Ressourcen
Router
Internet
ƒ Zusammenschluß von Netzen
Protokolle
ƒ Vereinbarungen über die
Kommunikation zwischen Rechnern
Internet
Mainframe
Router
Mainframe
Router
File Server
File Server
Arbeitsstationen
Arbeitsstationen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
ƒ Auf- und Abbau der
Kommunikationsverbindung
ƒ Datentransport
ƒ Format
ƒ Sicherstellung (Prüfsummen,
Verschlüsselung, Fehlererkennung)
© H. Weber, FH Wiesbaden
Folie 3
Grundlagen II - Zahlen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 4
Grundlagen III - Netzwerk-Nutzen
Können wir uns überhaupt noch vorstellen, ohne Netzwerk zu
arbeiten?
electronic mail
Kommunikation: Terminabsprachen, Projektkoordination, Mitteilungen, ...
file sharing
keine multiplen Kopien: Dateikonsistenz, Speichererparnis
device sharing
bessere Druckerauslastung, lohnende Anschaffung von Spezialhardware
(Farblaserdrucker, high-speed-scanner,...)
processor sharing
Zeitersparnis durch bessere Prozessorauslastung bei Lastverteilung und
/oder Kostenersparnis durch geringere Investitionen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 5
Grundlagen IV - Verteilte Betriebssysteme
Verteiltes System: Aufteilung von Funktionen in einem
Rechnernetz; BS auf jedem Rechner.
Verteiltes Betriebssystem: Jede BS-Funktion ex. nur einmal
im Netz
client
file server
print server
Benutzerprozeß
DateisystemManager
PrinterManager
Mikrokern
Betriebssysteme und Grundlagen verteilter Systeme:
Mikrokern
Netzwerkdienste
Mikrokern
© H. Weber, FH Wiesbaden
Folie 6
Grundlagen V - Verteilte Betriebssysteme
Vorteile
Flexibilität inkrementelle Erweiterbarkeit um neue Dienste
Transparenz durch ortsunabhängige Dienste
Leistungssteigerung bei Lastverteilung
Fehlertoleranz bei multiplen, gleichen Diensten
Nachteile
Leistungseinbuße durch Kommunikationsverzögerung
Keine Fehlertoleranz wenn Funktion nur einmal vorhanden
Fazit
Alle BS sind Mischsysteme aus netzbasierten und
lokalen BS-Funktionen; es ex. kein „reines“ System
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 7
Schichtenmodelle I - Definitionen
ƒ Schichtenmodelle zerlegen Aufgaben in verschiedene Abstraktionsebenen
ƒ Jede Ebene und die Weiterleitung/Schnittstelle von einer Ebene in die
nächste Ebene ist definiert
ƒ Ziel des OSI Schichtenmodells:
ƒ Referenzmodell für die „Verbindung offener Systeme“
ƒ Interoperabilität zwischen Herstellern (Hardware und Software)
ƒ Unterteilung des Kommunikationsprozesses in eine Reihe von separaten
Schichten, wobei sich die der jeweiligen Schicht zugewiesenen Funktionen auf
die Funktionen der benachbarten Schicht stützen
ƒ Interner Aufbau der Schicht ist offen (Entwicklern überlasses Detail), Funktion
der Schicht und die Schnittstellen zwischen den Schichten sind definiert
ƒ Unterteilung in Funktionsgruppen:
ƒ Hardware Schichten (inkl. Treiber)
ƒ Logische Schichten (Bildung von Netzen und virtuellen Verbindungen über
Netzwerkgrenzen hinaus)
ƒ Anwendungsschichten (bedient sich des Netzes, ohne daß die verwendete
Hardware von Bedeutung ist)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 8
Schichtenmodelle II - Analogie
Versand einer Porzellanfigur von Hamburg nach München:
ƒ Bruchsichere Umhüllung der Figur mit Zeitungspapier (Encapsulation)
ƒ Verpackung der Figur in einem Postpaket, Auffüllen mit Holzwolle
(zweite Encapsulation, Padding)
ƒ Adressierung des Pakets (erste Protokolldaten für Transportschicht)
ƒ Glasbruchaufkleber und Transportversicherung mit Rückschein (weitere
Protokolldaten für Transportschicht – nicht fragmentieren, Empfang
quittierren lassen und zurücksenden)
ƒ Übergabe an Poststelle in Hamburg – Vermerk der Post, an welches
Paketlager das Paket weitergeleitet wird
ƒ Vorbereitung zum Bahntransport – Einsortierung in entsprechende
Transportbox, Beladen des Waggons
ƒ Bahntransport nach München
ƒ Auslieferung des Pakets – Entladen des Waggons und der
Transportbox, Weiterleitung an Auslieferungspostamt
ƒ Übergabe des Pakets, Kontrolle der Adressdaten, Quittierung des
Erhalts
ƒ Auspacken aus Postpaket und Zeitungspapier
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 9
Schichtenmodelle III - Aufbau
Kommunikation
Arbeitsstation
Arbeitsstation
Application
Terminal
Emulation
Anwendung
Presentation
Telnet
Protokoll
Darstellung
Session
Telnet Daten
Sitzung
Transport
Network
Data Link
LLC-Header
802.x-Header LLC-Header
TCP-Header Telnet Daten
Transport
IP-Header TCP-Header Telnet Daten
Netzwerk
IP-Header TCP-Header Telnet Daten
IP-Header TCP-Header Telnet Daten 802.x Trailer
Physical
Datenübertragung
Sicherung
Physikalische
Schicht
Beispiel: Telnetsession
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 10
Schichtenmodelle IV - Erklärung
Physikalische Schicht (Physical Layer)
ƒ
ƒ
ƒ
ƒ
Übergabe und Empfang des Bitstroms an physikalisches Medium (Draht, LWL,...)
Definition der elektrischen Signale der Hardware
Ethernet, Standleitungen,... (802.x)
Spezifikation der Verbindungsleitungen
Datenübertragungs-, Sicherungsschicht (Data Link Layer)
ƒ
ƒ
ƒ
ƒ
Verantwortlich für fehlerfreie Kommunikation zwischen zwei Netzknoten
Z.B. MAC Adressen bei Ethernet oder Token Ring
Treiber für Betriebssystem
MTU (Maximum Transfer Unit)
Netzwerkschicht (Network Layer)
ƒ Verbindung der Netzknoten zwischen den Rechnern zu einem Netzwerk (über die
Netzwerkgrenzen hinweg)
ƒ Routing und Flußkontrolle
ƒ Logische Adressen für die einzelnen Netzwerkschnittstellen (NIC)
ƒ Zerlegung des Datenstroms in Datagramme passender Größe (Fragmentierung,
entsprechend dem verwendeten Protokoll, bsp. MTU – Ethernet 1518 Byte)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 11
Schichtenmodelle V - Erklärung
Transportschicht (Transport Layer)
ƒ Bereitstellung von Transportprotokollen für Anwendungsentwickler
ƒ Verbindungsorientierte und verbindungslose Portokolle
Sitzungsschicht (Session Layer)
ƒ Definition der Datenstrukturen
ƒ Ende-zu-Ende Kommunikationsprozeß (aktiver Prozeß des einen Hosts
kommuniziert mit aktivem Prozeß des anderen kommunizierenden Hosts)
ƒ In TCP/IP beschreiben Ports und Sockets den Weg, über den Applikationen
kommunizieren
ƒ Authentisierung und Verrechnung
Darstellungsschicht (Presentation Layer)
ƒ Definition des Formats der eigentlichen Daten
ƒ Bspw. Kompression, Zeichencodeumsetzung (ASCII, EBCDIC, usw.),
Verschlüsselung (Veschlüsselung und Entschlüsselung der Übertragung; z. B.
DES)
Anwendungsschicht (Application Layer)
ƒ Definition des eigentlichen anwendungsspezifischen Protokolls
ƒ Bsp: SMTP, FTP, TFTP, HTTP(S), Telnet, DNS, SNMP, ...
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 12
Schichtenmodelle VI - ARPA
Anfang der 70er Jahre entwickelte die Advanced Research Projects Agency ein
Schichtenmodell zur Beschreibung der Kommunikation von Rechnersystemen bestehend aus vier Schichten. Dieses Modell ist die Grundlage für die
TCP/IP Protokollimplementierung.
Application
Session
Transport
Process/
Application
Network
Host-to-Host
Data Link
Internet
Physical
Network
Interface
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
ARPA Schichtenmodell
OSI Schichtenmodell
Presentation
ƒ Schichten 5 bis 7 werden in der
Prozeß- und AnwendungsSchicht zusammengefaßt
ƒ Schicht 4 (TCP und UDP)
entspricht der Host-to-Host
Schicht
ƒ Schicht 3 (IP, ICMP) entspricht
der Internet-Schicht
ƒ Schicht 1 und 2 werden als
Netzwerkschnittstellen-Schicht
(Network Access Layer, Local Network
Layer) bezeichnet
© H. Weber, FH Wiesbaden
Folie 13
Schichtenmodelle VII - ARPA
Netzwerkschnittstellen-Schicht:
ƒ Verbindet den Host mit der Netzwerk Hardware (physikalische
Verbindung zum Netz und Zugriff auf das Netzwerk Æ Carrier
Sense Multiple Access mit Collision Detection, CSMA/CD oder
Token Passing Verfahren) und verpackt die Daten in einen Frame
(Rahmen)
ƒ Frameformat ist durch die angeschlossene Hardware definiert
(z.B. Ethernet – RFC 894, IEEE 802 LANs – RFC 1042, Fiber
Distributed Data Interface, FDDI – RFC 1103, Serial Line Internet
Protocol, SLIP – RFC 1055, Frame Relay – RFC 1490,
Asynchronous Transfer Mode, ATM – RFC 1438)
ƒ Frame enthält Informationen über Hardwareadresse des Hosts
und Checksummen zur Überprüfung der Datenintegrität
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 14
Schichtenmodelle VIII – Internet-Schicht
Internet-Schicht:
ƒ Übertragung von Paketen von einem Host zu einem anderen Host
ƒ Pakete enthalten die Adressinformation für die Datenübertragung
durch das Netzwerk
ƒ Realisierung durch das Internet Protokoll (RFC 791); definiert
werden:
ƒ Quell- und Zieladresse
ƒ Time to Live (TTL)
ƒ Flags (z.B. DF – don‘t fragment)
ƒ Fragment Offset
ƒ Versionsnummer
ƒ Protokollnumer
ƒ Zerlegung und Wiederzusammenführung von Paketen
ƒ Keine Sicherstellung des Empfangs
ƒ Pakete, die einen Fehler verursachen, werden ignoriert und
verworfen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 15
Schichtenmodelle IX – Internet-Schicht
8
Version
IHL
16
Type of Service
31 Bitstelle
Total Length
Flags
Identifier
Time to Live
24
Protocol
Fragment Offset
Header Checksum
Source Address
IP Header
0
Destination Address
IP Data
Options & Padding
Data
...
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
...
© H. Weber, FH Wiesbaden
Folie 16
Schichtenmodelle X – Internet-Schicht
IP Header:
ƒ Versionsnummer: 4 Bit – meist Version 4 (IPv4), wird zukünftig durch
Version 6 (IPv6) abgelöst
ƒ Länge des Headers: 4 Bit – Festlegung der durch die verschiedenen
Optionen variablen Länge des Headers (in 4 Byte-Einheiten)
ƒ Type of Service: 8 Bit – definiert die Priorität eines IP Pakets
ƒ Gesamtlänge: 2 Byte – von IP Header und Daten (2 Byte definieren
maximale Paketgröße auf 65536 Byte = 64 kByte)
ƒ Identification: 16 Bit – für Zusammensetzen fragmentierter IP Pakete
genutzt
ƒ Flags: 3 Bit – Fragmentierungsinformation; erstes Bit ohne Bedeutung;
zweites Bit (DF) 0=fragmentierbar, 1=nicht fragmentierbar; drittes Bit (MF)
0=letztes Fragment, 1=mehr Fragmente folgen
ƒ Fragment Offset: 13 Bit – zeigt an, an welcher Stelle ein fragmentiertes IP
Paket ursprünglich stand
ƒ Time to Live: 8 Bit – zeigt die maximale Anzahl von Routerhops (oder
Sekunden) an; jeder Router, den das IP Paket durchläuft, dekrementiert
diesen Wert; der Router, der den Wert auf Null setzt, verwirft das Paket
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 17
Schichtenmodelle XI – Internet-Schicht
IP Header:
ƒ Protocol ID: 8 Bit – identifiziert, welches Protokoll der höheren
Schichten dem IP Header folgt (Bsp.: 1dec ICMP, 6dec TCP, 17dec
UDP, 89dec OSPF)
ƒ Prüfsumme: 16 Bit – Prüfsumme des IP Headers
ƒ Ausgangs- (Source) und Ziel- (Destination) adresse: je 4 Byte
Erstes Byte Netzanteil
Klasse A
Klasse B
Klasse C
Klasse D
Klasse E
0 – 127
128 – 191
192 – 223
224 – 239
240 – 255
Hostanteil
Anzahl
Anzahl
Netze
Hosts
7 Bit
24 Bit
128
16.777.216
14 Bit
16 Bit
16.384
65.536
21 Bit
8 Bit
2.097.152
256
IP-Multicast Adressen gemäß RFC 1112
Reserviert
ƒ Optionen und Padding: 32 Bit – Debug-, Meß- und
Sicherheitsfunktionen (z.B. Zeitpunkt, zu dem sich das Datenpaket
in einem bestimmten Router befunden hat) und Padding zum
Auffüllen der 32 Bit mit Nullen
ƒ Daten: enthält die eigentlichen Nutzdaten
Folie 18
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Schichtenmodelle XII – Internet-Schicht
ICMP (Internet Control Message Protocol)
ƒ Sind in IP Paketen verpackt (Protokollnummer 1)
ƒ Signalisieren das Auftreten von Fehlern in der Übertragung von IP
Paketen
ƒ Große Bedeutung bei der Fehlerbeseitigung (-suche); RFC 792
sowie RFCs 896, 1016, 950
8
Type
16
Code
24
Checksum
Typabhängige Struktur
...
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
31 Bitstelle
ICMP Meldung
0
Folie 19
Schichtenmodelle XIII – Internet-Schicht
ICMP Header
ƒ Typ: 8 Bit – bezeichnet die Art der ICMP Meldung
Typ 0 / 8
Typ 3
Typ 4
Request
Typ 5
Typ 11
Typ 12
Error
Echo Reply / Echo Request
Destination unreachable
Source Quench
Typ 13
Typ 14
Typ 17
Timestamp
Timestamp Reply
Address Mask
Redirect
Time Exceeded
Parameter Problem
Typ 18
Typ 30
Typ 31
Address Mask Reply
Traceroute
Datagram Conversion
ƒ Code: 8 Bit – bezeichnet jeweiligen Typ genauer (Bsp. Für Typ 3
Ziel nicht erreichbar: 0 Netz nicht erreichbar, 1 Host nicht
erreichbar, 2 Protokoll nicht erreichbar, 3 Port nicht erreichbar, 4
Fragmentierung notwendig, aber DF Flag gesetzt, 5 falsche
Source Route, ...)
ƒ Checksum: 16 Bit – Wert des Prüfungsalgorithmus über gesamte
ICMP Meldung
ƒ Typspezifische Struktur: enthält nähere Informationen zur ICMP
Meldung
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 20
Schichtenmodelle XIV – Internet-Schicht
ARP/RARP Adreßauflösung
ƒ Verbindung der logischen Netz(IP)adresse mit der von LAN bzw.
WAN Infrastruktur abhängigen Hardware Adresse
ƒ Address Resolution Protocol, ARP, RFC 826: Übersetzung der IP
Adresse in die entsprechende Hardware Addresse
ƒ Reverse Address Resolution Protocol, RARP, RFC 903:
Übersetzung der Hardware Adresse in die zugehörige IP Adresse
8
16
Hardwaretyp
Hardwareadressenlänge
Protokolladressenlänge
24
31 Bitstelle
Protokolltyp
Operation
Hardwareadresse der Sendestation
Hardwareadresse der Sendestation
Protokolladresse der Sendestation
Protokolladresse der Sendestation
Hardwareadresse der Zielstation
Hardwareadresse der Zielstation
Protokolladresse der Zielstation
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
ARP/RARP Meldung
0
Folie 21
Schichtenmodelle XV – Internet-Schicht
ARP/RARP Message
ƒ Hardwaretyp: Angabe der verwendeten Netzhardware (Bsp. 1
Ethernet, 6 IEEE 802 Netzwerke, 7 ARCNET,11 LocalTalk, 15
Frame Relay, 16 ATM)
ƒ Protokolltyp: Angabe des Netzprotokolls (Bsp. 0800Hex IP
Protokoll)
ƒ Hardwareadressenlänge: 8 Bit – Länge der Hardwareadresse
(Bsp. MAC Adresse bei Ethernet oder Token Ring 48 Bit)
ƒ Protokolladressenlänge: 8 Bit – Länge der Protokolladresse (Bsp.
IPv4 32 Bit)
ƒ Operation: 16 Bit – definiert 1=ARP Reqest, 2=ARP Response (bei
InARP auch 8 und 9 möglich – wird bei IP über Frame Relay
benutzt, um einer IP Adresse einen DLCI, Data Link Connection
Identifier zuzuordnen)
ƒ Adressen: 4 Adreßfelder für Hardware- und Protokolladressen der
Absender und Zielstationen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 22
Schichtenmodelle XVI – Host-zu-Host-Schicht
Host-zu-Host-Schicht:
ƒ Zuordnung der IP Datagramme zu den jeweiligen Prozessen
mittels UDP bzw. TCP Ports
ƒ Routing auf den Zielsystemen
User Datagram Protocol, UDP:
ƒ Sicherung (Quittierung) für die einzelnen Datenpakete wird den
Applikationen überlassen
ƒ Reihenfolge der IP Pakete muß duch die Applikation kontrolliert
und ggf. berichtigt werden
ƒ Schnelles, verbindungsloses Protokoll
ƒ Verwendung: DNS, NFS, TFTP, RIP, SNMP
Transport Control Protocol, TCP:
ƒ Verbindungsaufbau Ende-zu-Ende (von Port zu Port), ohne
Festlegung des Wegs in der Internet-Schicht
ƒ Reihenfolge der IP Pakete wird kontrolliert und ggf. in die richtige
Reihenfolge sortiert
ƒ Gesichertes, verbindungsorientiertes Protokoll
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 23
Schichtenmodelle XVII – Host-zu-Host-Schicht
UDP Header:
ƒ Minimaler Protokolloverhead
ƒ Ausgangs- (optional) und Zielport
ƒ Länge des gesamten UDP Datenpakets
ƒ Checksumme über das gesamte Datenpaket (optional;
abhängig davon, ob höheres Protokoll eine Checksumme
verlangt) wird unter Berücksichtigung des Pseudoheaders,
bestehend aus Ausgangs- und Zieladresse sowie
Protokollfeld des IP Headers, berechnet
8
16
24
Source Port
Destination Port
Length
Checksum
Data ...
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
31 Bitstelle
UDP Message
0
Folie 24
Schichtenmodelle XVIII – Host-Host-Schicht
TCP Header:
ƒ Adressierung der Applikation über Portnummer
ƒ Datenpakete werden nummeriert (Sequenznumber) und bestätigt
(Acknowledgement Number)
ƒ Tree Way Handshake zum Verbindungsaufbau
ƒ Flußkontrolle ist vorgesehen
8
16
24
Source Port
31 Bitstelle
Destination Port
Sequence Number
Acknowledgement Number
Offset Reserviert
Code
Window
Urgent Pointer
Checksum
Padding
Options
TCP Message
0
Data ...
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 25
Schichtenmodelle XIX – Prozeß- und Anwendungsschicht
ƒ Nutzung der TCP bzw. UDP Daten in Applikationen
Application
Presentation
FTP
HTTP
SNMP
TFTP
telnet
DNS
SMTP
TCP
ICMP
UDP
OSPF
Host-to-Host
RIP
IP
Network
Internet
ARP
Data Link
Sicherung
Physical
Physikalische Verbindung
Betriebssysteme und Grundlagen verteilter Systeme:
Process/
Application
BootP
Session
Transport
DHCP
Netzwerkdienste
© H. Weber, FH Wiesbaden
RARP
Network
Interface
Folie 26
Schichtenmodelle XX ScProtokollfamilie
OSI
Schichtenmodell
Application
Presentation
Session
Transport
Network
Protokoll-Implementierung
Hypertext
File
Electronic Terminal Domain
File
Transfer Transfer
Mail Emulation Names Transfer
Hypertext
Transfer
Protocol
(HTTP)
File
Transfer
Protocol
(FTP)
Simple
Mail
Transfer
Protocol
(SMTP)
Telnet
Protocol
RFC 2068
RFC 959
RFC 821
RFC 854
Domain
Name
System
(DNS)
RFC 1034,
1035
Transmission Control Protocol (TCP)
RFC 793
Address Resolution
ARP RFC 826
RARP RFC 903
Data Link
Physical
Betriebssysteme und Grundlagen verteilter Systeme:
ARPA
Schichtenmodell
Client/
Server
Trivial
Sun Micro- Simple
Network
File
systems
Transfer Network FileManagement
Protocol
Protocol
System
(SNMP)
(TFTP)
(NFS)
RFC 1157,
RFCs 1014, 1901-10,
RFC 783 1057, 1094 2271-75
User Datagram Protocol (UDP)
RFC 768
Internet Protocol (IP)
Internet Control
Message Protocol (ICMP)
RFC 792
RFC 791
Network Interface Cards:
Ethernet, Token Ring, ARCNET, MAN, WAN
RFC 894, RFC 1042, RFC 1201 und andere
Übertragungsmedien
Twisted Pair, Coax, LWL, Wireless Media u.a.
Netzwerkdienste
Network
Management
© H. Weber, FH Wiesbaden
Process/
Application
Host-to-Host
Internet
Network
Interface
Folie 27
Schichtenmodelle XXI - Kommunikationsschichten: Unix
Stream-System für Protokollschichten
Schicht = Treiber, leicht austauschbar
7 Anwendung
6 Präsentation
5
4
3
2
1
Sitzung
Transport
Netzwerk
Datenverbindung
Phys. Verbindung
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
named pipes, rlogin, …
XDS
BS-Schnittstelle: sockets
ports, IP Adresse
TCP/IP
Ethernet
© H. Weber, FH Wiesbaden
Folie 28
Schichtenmodelle XXII - Kommunikationsschichten: NT
Kompatibilität zu bestehenden Protokollen
SMB (server message block)
NetBIOS (network basic input output system)
7 Anwendung
6
5
4
3
2
Präsentation
Sitzung
Transport
Netzwerk
Datenverbindung
NDIS Protokoll
1 Phys. Verbindung
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
files, named pipes,
mail slots
Subsysteme
Redirector
NetBIOS
Net
BEUI
IPX/
SPX
NBT
WindowsSockets
TCP/IP
NDIS-Treiber
Ethernet/token net
© H. Weber, FH Wiesbaden
Folie 29
Netzkommunikation I
Namensgebung im Internet
Eindeutige IP-Adresse: z.B. 141.2.15.25,
32 Bits, notiert in 4 Dezimalzahlen je 0..254 (Bytes) (IP 4)
Name: mailhub.informatik.fh-wiesbaden.de server.LocalNet.domain.country
Zuordnung IP-Nummer»¼Name wird auf speziellen Rechner gehalten
(dynamic name server DNS)
Vergabe und Zuordnung der IP-Adresse durch zentrale Instanzen
byte 0
A 0
byte 1
Netz Id
B 1 0
byte 2
byte 3
Rechner Id
Netz Id
C 1 1 0
Rechner Id
Netz Id
Rechner Id
D 1 1 1 0
Multicast
E 1 1 1 1
reserviert
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 30
Netzkommunikation II
Internetnamen: Subnetze
Problem: hoher zentraler Verwaltungsaufwand bei zu vielen Netzen
Lösung: Unterteilung der Rechneradresse in (Subnetz,Rechner),
dezentrale Verwaltung
Beispiel:
Klasse B-Netz: 2 Byte Rechner ID = (1Byte Subnetz, 1Byte Rechner)
besser: dynamische Aufteilung durch Bitmaske (Subnetzmaske)
Adressierung (Routingentscheidung) der Subnetze durch die Maske:
(Adresse AND Maske) = ? Subnetznummer
™ JA
: Zielrechner ist lokal im Subnetz
™ NEIN
: Routing-Rechner ansprechen
Beispiel
Rechner 160
im Subnetz
Maske
129.206.218.160
129.206.218.0
255.255.255.0
1000 0001.1100 1110.1101 1010.1010 0000
1000 0001.1100 1110.1101 1010.0000 0000
1111 1111.1111 1111.1111 1111.0000 0000
Also: Festlegung eines Subnetzes durch Angabe (Subnetznummer,Maske)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 31
Netzkommunikation III
Namen im regionalen Netz
wide area network WAN
Problem
Integration von Diensten mehrerer Domänen
Konsistente, zeitveränderliche Ressourcentabelle
Lösung
CCITT X.500
(1988)
DAP Directory Access Protocol
Dateizugriff
DSP Directory Service Protocol
Server-Server Kommunikation
DISP Directory Information Shadowing Protocol
LDAP Lightweight DAP
vereinf. DAP-Version auf TCP/IP
Beispiel
Windows NT
ADS Active Directory Service
nutzt LDAP
Ressourcen sind Blätter im Pfadbaum <DomänenId>://<Pfad>
„Aktive Objekte“: Jede Änderung im Verzeichnis wird dem Knoten darüber
mitgeteilt.
Nur die letzte Änderung an einem Objekt bleibt erhalten
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 32
Netzkommunikation IV
Namen im lokalen Netz
Zusammenschluß mehrer Rechner
gemeinsame Wurzel
//
…
Hera
Zentrale
EDV
Einzelverbindung
Zentrale
…
…
Netzwerkdienste
…
Kronos
…
Abteilung 7
…
/
EDV
…
Betriebssysteme und Grundlagen verteilter Systeme:
local area network LAN
AndereAbteilungen
Abteilung 7
© H. Weber, FH Wiesbaden
…
Folie 33
Netzkommunikation V
Beispiel Windows NT Namensraum im lokalen Netz
Symbolic links
parse-Methode der Treiber (MS Redirector, Novell NetWare File System)
führt zum Netzverbindungsaufbau.
Beispiel: Neuer „Laufwerks“buchstabe V:für Netzverbindung +Dateiname
führt zu Umleitung „V:\public\text.doc“
\
Device
Floppy0
\Device\NetWareFileSystem\public\text.doc
DosDevices
NetWareFileSystem
A: .. V:
MUP
UNC:
V:\public\text.doc
Redirector
Universal Naming Convention UNC
Beispiel
\\textserv\public\text.doc
→ UNC:\textserv\public\text.doc → \Device\MUP\textserv\public\text.doc
→ \Device\NetWareFileSystem\textserv\public\text.doc
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 34
Netzkommunikation VI - Ports
Konzept „Kommunikationspunkte“
Beispiel
TCP/IP: well known port numbers
Dienst
Telnet
FTP
SMTP
rlogin
rsh
portmap
rwhod
portmap
Betriebssysteme und Grundlagen verteilter Systeme:
Portnummer Protokoll
23
TCP
21
TCP
25
TCP
513
TCP
514
TCP
111
TCP
513
UDP
111
UDP
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 35
Netzkommunikation V - Sockets
Arten von Sockets:
- UNIX Domain Sockets
lokal, Repräsentation im Dateisystem
- Internet Domain Sockets
verteilt, Repräsentation über
IP-Adresse + Portnummer
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 36
Netzkommunikation VI – Sockets
Stream-Sockets:
• Verlässliche Kommunikation (i.d.R eines Bytesroms) zwichen zwei Endpunkten
• Verbindungsorientierter Transportdienst
• Im Fall von Internet-Domain-Sockets ist TCP das benutzte Default-Protokoll
Datagram-Sockets:
• Unzuverlässige Kommunikation von Einzelnachrichten (best effort delivery)
• Verbindungsloser Datagram-Dienst
• Im Fall von Internet-Domain-Sockets ist UDP das benutzte Default-Protokoll
Raw Sockets:
•Erlauben Zugriffe auf untergelagerte Protokolle wie IP, ICMP, ...
(hier nicht weiter betrachtet)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 37
Netzkommunikation VII – Sockets
Socket-Adressen Datentypen
• Include-Dateien:
#include <sys/types.h>
#include <sys/sockets.h>
• Internet-Adresse:
struct in_addr { u_long s_addr; };
• Socket-Adresse (allg. Typ, in System Calls benutzt):
struct sockaddr {u_short sa_family; /* hier AF_xxxx */
char sa_data[14];
/* bis 14B typ-spez.Adresse */ };
• Socket-Adresse (Internet-Typ):
struct sockaddr_in { u_short sin_family; /* hier AF_INET, o. AF_UNIX */
u_short sin_port;
/* Port-Numer in network byte order */
struct in_addr sin_addr;
/* IP-Adresse in network byte order */
char sin_zero[8];
/* unbenutzt */ };
• Cast:
struct sockaddr_in my_addr; ...(struct sockadd*) &my_addr
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 38
Netzkommunikation VIII – Sockets
Überblick über Systemaufrufe
socket( )
bind( )
listen( )
accept( )
connect( )
send( ) / write( )
recv / read( )
shutdown( )
close( )
sendto( ) / recvfrom( )
select( )
Betriebssysteme und Grundlagen verteilter Systeme:
Erzeugen
Adresse oder Namen zuordnen
Server: Socket auf Akzeptieren von
Clients vorbereiten
Server: Warten auf Verbindungsanfrage
Client: Verbindung aufbauen
Senden
Empfangen
Verbindung schliessen
Socket zerstören
UDP senden/empfangen
Warten auf Eintreffen eines von
mehreren I/O-Ereignissen
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 39
Netzkommunikation IX – Sockets
Verbindungsorientierte Kommunikation mit TCP/IP
Client
Betriebssysteme und Grundlagen verteilter Systeme:
Server
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 40
Netzkommunikation X – Sockets
Verbindungslose Kommunikation mit UDP
Server
Client
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 41
Netzkommunikation XI – Sockets
Erzeugen eines Sockets
• int socket(int family, int type, int protocol)
Erzeugt einen Socket in der Internet-Domäne (family = AF_INET) oder der
UNIX-Domäne (AF_UNIX) vom Typ Stream-Socket
(type = SOCK_STREAM), Datagram-Socket (SOCK_DGRAM) oder RawSocket (SOCK_RAW) zur Verwendung mit dem Protokoll protocol und
liefert einen Deskriptor für den erzeugten Socket.
Für protocol wird i.a. der Wert 0 übergeben. Dann wird das Default-Protokoll
gewählt. In der Internet-Domäne ist dies TCP für einen Stream-Socket bzw.
UDP für einen Datagram-Socket. Es ist noch keine Adresse zugeordnet. Der
Socket ist nicht gebunden.
Beispiele:
sd = socket(AF_INET, SOCK_STREAM, 0)
sd = socket(AF_INET, SOCK_DGRAM, 0)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 42
Netzkommunikation XII – Sockets
Binden einer Socket-Adresse
• int bind(int sd, struct sockaddr *addr,
int addrlen)
Bindet die in der struct sockaddr übergebene, von der Domäne des
betrachteten Sockets abhängige Adresse an den Socket.
Internet-Domäne: struct sockaddr_in
UNIX-Domäne: Filename
Der Socket wird im TCP/IP Protokoll-Modul registriert.
Für Clients in verbindungsorientierter Kommunikation nicht notwendig.
Beispiel:
r = bind(sd,(struct sockaddr)* my_addr,
sizeof(my_addr))
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 43
Netzkommunikation XIII – Sockets
Socket vorbereiten auf Verbindungsanfragen
• int listen(int sd, int qlength)
Zeigt dem TCP/IP-Modul an, dass TCP-Verbindungen über den Socket sd
angenommen werden sollen.
qlength gibt die maximale Länge der Warteschlange eingehender
Verbindungsanfragen an, für die ein accept aussteht. Dies ist nicht die
Gesamtzahl von möglichen Clients.
Nur auf der Serverseite notwendigBeispiel:
r = listen(sd, 10)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 44
Netzkommunikation XIV – Sockets
Warten auf Verbindungsanfragen
• int accept(int sd, struct sockaddr * claddr,
int *addrlen)
Blockiert, bis eine Verbindungsanfrage eines Clients am Socket sd anliegt.
Dann wird ein neuer Socket erzeugt und dessen Deskriptor zurückgegeben.
Damit entsteht eine private Verbindung zwischen Client und Server.
Der Socket sd steht für weitere Verbindungsanforderungen zur Verfügung.
Die Identität des Clients (entfernte Socket-Adresse) steht in der Struktur
claddr zur Verfügung, deren Länge wird in addrlen zurückgegeben.
Nur auf der Serverseite bei verbindungsorientierter Kommunikation notwendig.
Beispiel:
sndnew = accept(sd, struct sockaddr* clientaddr,
*clientaddrlen)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 45
Netzkommunikation XV – Sockets
Verbindungsanfrage
• int connect(int sd, struct sockaddr *saddr,
int saddrlen)
Aktive Verbindungsanfrage eines Clients über seinen Socket sd an
den durch die Adresse in saddr mit Länge saddrlen adressierten
Server.
Dies ist nur für die Client-Seite bei verbindungsorientierter
Kommunikation notwendig.
Beispiel:
r = connect(sd, &saddr, sizeof(saddr))
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 46
Netzkommunikation XVI – Sockets
Senden / Empfangen
• int write(int sd, char *buf, int len)
• int send(int sd, char *buf, int len, int flag)
Der write-Aufruf wird wie bei File-Deskriptoren benutzt. Der send-Aufruf
besitzt einen zusätzlichen Parameter flag für spezielle Optionen.
•int read(int sd, char *buf, int nbytes)
•int recv(int sd, char *buf, int nbytes, int flag)
Der read-Aufruf wird wie bei File-Deskriptoren benutzt. Der recv-Aufruf
besitzt einen zusätzlichen Parameter flag für spezielle Optionen.
Beispiel:
count
count
count
count
=
=
=
=
write(sd, buf, len)
read(sd, buf, len)
send(sd, buf, len, sflag)
recv(sd, buf, len, rflag)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 47
Netzkommunikation XVII – Sockets
Schliessen einer Verbindung
• int shutdown(int sd, int how)
Geordnetes Schliessen einer Verbindung, how gibt an, ob sich das
TCP/IP-Modul auch nach dem Schliessen noch um die Verbindung
kümmern soll.
Der Socket-Deskriptor bleibt bestehen und muß gegebenenfalls mit
close zerstört werden.
Beispiel:
r = shutdown(sd, 2)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 48
Netzkommunikation XVIII – Sockets
Hilfsfunktionen
gethostname()
gethostid()
gethostbyname()
getservbyname()
getsockopt()
setsockopt()
Betriebssysteme und Grundlagen verteilter Systeme:
Ermitteln des eigenen Hostnamens
Ermitteln der eigenen IP-Adresse
Ermitteln der IP-Adresse eines
Rechners bei gegebenem Hostnamen
Ermitteln der Portnummer bei
gegebenem Dienstnamen
Ermitteln der Optionen eines Sockets
Setzen von Socket-Optionen
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 49
Netzkommunikation XXII - Named Pipes
Konzept: Named pipe („Netzwerk/Pfadname“)
= LAN-Interprozeß-Kommunikation
Unix
Named pipe = special device ⇒ nur IPC auf selben Rechner, nicht NFS
Named pipe = STREAM (SystemV) socket_pair() / bind()
Windows NT
CreateNamedPipe() : Objekt im globalen Namensraum, auch NetzPfad
IPC = ReadFile() / WriteFile()
UNC-Name = \\ComputerName\PIPE\PipeName
Lokale pipe:
\\ .\PIPE\PipeName
Kommunikation zu Unix möglich, wenn LAN-Manager für Unix LM/U installiert.
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 50
Netzkommunikation XXIII - Mailbox
Briefkasten ex. bei Sender und Empfänger
Multicast & Broadcast möglich
Probleme: keine garantierte Reihenfolge,
kein garantierter Empfang
Beispiel Windows NT
mail slots
Briefkasten = mail slot, erzeugt mit CreateMailslot(MailBoxName)
Senden: CreateFile(MailSlotName)-WriteFile()-CloseFile()
mit MailSlotName = „\\ComputerName\mailslot\MailBoxName“
bei ComputerName= „.“
⇒ lokale IPC
bei ComputerName= „*“
⇒ Broadcast an alle angeschlossenen Rechner
bei ComputerName= „DomainName“ ⇒ Broadcast an alle Rechner der Domäne
Empfänger sind jeweils alle Briefkästen mit dem angegebenen Namen, falls existent.
Einschränkungen:
Nachrichtenlänge bei NetBEUI: 64kB bei Punkt-zu-Punkt, 400Byte bei broadcast
Höheres Protokoll erforderlich für Reihenfolge, Empfang, etc.
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 51
Netzkommunikation XXIV - RPC
Remote Procedure Calls
Remote Method Invocation
Remote Function Call
RPC
RMI
RFC
Java!
Form: wie normaler Prozedur/Methodenaufruf, Ausführung
durch Netzwerkdienst & Transport bleiben verborgen
Client-Server Standardmechanismus!
Syntaxformen
Stub-Procedure
Argument
ComputeWetter(heute) → RemoteProc(Wetter,heute)
RemoteProc(Wetter,heute)
Client
Anwenderprozeß
RPC-Prozeduren
Transport
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
Server
RPC - Prozeß
RPC-Prozeduren
Transport
© H. Weber, FH Wiesbaden
Prozeduraufruf
OriginalProzeduren
Folie 52
Netzkommunikation XXV - RPC
RPC-Ablauf
Client
Stub
Prozeduraufruf
Netzwerk
Argumente
packen
RPC
warten …
RPC return
Stub
Server
wartet ..
Argumente
entpacken
Prozeduraufruf OriginalRückkehr
ablauf
Ergebnisse
packen
Ergebnisse
auspacken
RETURN
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 53
Netzkommunikation XXVI - RPC
Transport der Argumente: maschinenunabhängig!
Problem:
Hardwareformat von Zahlen
Big endian Motorola 680X0, IBM 370
höherwertig
Byte0
Little endian
höherwertig
Byte3
niederwertig
Byte1
Byte2
Byte3
Intel 80X86, VAX, NS32000
Byte2
Byte1
niederwertig
Byte0
Lösung data marshaling, z.B. mit XML, Java Serialisierung, ...
auch für compiler data alignment (Adreßgrenzen bei records, Wortadressierung, ...)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 54
Netzkommunikation XXVII - RPC
Beispiel Unix
Spezielle C-Bibliotheken /lib/libc.a; SystemV: /usr/lib/librpc.a
RPC über NFS
Schichtenmodell RPC/XDR external data representation
Client: anmelden mit registerrpc()
Client: callrpc()
Server: svr_run()
clnt_. ../ svc_...
Parameter des Transportprotokoll TCP/IP setzen/lesen
Berechtigungen setzen/lesen
Pmap_.., ath_.., xdr_..
Details des Protokolls: Vorsicht!
RPC bei DCE: Compiler für spezielle Interface Definition Languge.
RPC durch stub-Aufrufe und Laufzeitbibliothek für Transport
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 55
Netzkommunikation XXVIII - RPC
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 56
Netzkommunikation XXIX - RPC
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 57
Netzkommunikation XXX - RPC
• Verwendung des RPC-Protokoll-Compilers rpcgen
• Zu schreiben: Spezifikationsdatei mul.x
• rpcgen mul.x -> generiert:
mul.h
mul_clnt.c <- Client-Stub
mul_xdr.c <- XDR-Transformationen
mul_svc.c <- Server-Stub
• Zu programmieren: Client-Hauptprogram mul.c
Server-Funktion mul_svc_proc.c
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 58
Netzkommunikation XXXI - RPC
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 59
Netzkommunikation XXXII - RPC
Beispiel Windows NT
Verbindungslose RPC: anonymer Service
Verbindungsorientierte RPC: bestimmte Prozeduren
Network Data Representation(NDR)-Format
Programmierung durch MIDL-Compiler
Protokoll-Wahl durch Namensnotation:
„ncacn_ip_tcp: MyServer[2004]“ = TCP/IP-Protokoll zu MyServer,port 2004
presentation layer
RPC
named
files
session layer
transport layer
TCP/IP
IPX/SPX
sockets
NetBEUI
etc.
...
network layer
Betriebssysteme und Grundlagen verteilter Systeme:
mail WinNet
slots
API
redirector
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 60
Netzkommunikation XXXIII – Server-Modelle
Wo entstehen in Client-Server-Systemen Qualitäts- und
Effizienzprobleme?
Im Bereich des Servers !
Wann?
- Bei zu lang dauernder Antwort des Servers
- Bei zu vielen gleichzeitigen Clients
- Bei zu starker Beanspruchung des Server-Rechners
Client 1
Client 2
...
Server
Client n-1
Client n
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 61
Netzkommunikation XXXIV – Server-Modelle
Ziel: Leistungssteigerung
Es werden hier nur Socket-basierte Server betrachtet, bei RPCs sind
ähnliche Vorgehensweisen möglich
Iterativer Server
Server mit select-Technik
Konkurrenter Server mit Prozeßmodularität
Konkurrenter Server mit Thread-Modularität
Konkurrenter Server mit Pool von n wiederverwendbaren Prozessen
(unterschiedliche Techniken bezüglich Einsatz und Schutz des accept,
eventuell zusätzliche Synchronisierung notwendig je nach Betriebssystem)
Konkurrenter Server mit Pool von n wiederverwendbaren Threads
(verschiedene Thread-Arten: KLT, ULT, unterschiedliche Techniken bzgl.
Einsatz und Schutz des accept)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 62
Dateisysteme im Netz I
Zugriffssemantiken
Read Only File
Problemlos, da alle Kopien aktuell sind, unabhängig von der Pufferung
Operationssemantik
race conditions
Alle Änderungen werden sofort umgesetzt; die zeitlich nächste Operation
bemerkt die Folgen der vorigen
Sitzungssemantik
race conditions
Alle Änderungen werden nur auf einer Kopie ausgeführt.
Am Ende der Sitzung wird das Original überschrieben.
Transaktionssemantik
Atomare Transaktion: Während der Sitzung ist die Datei gesperrt.
Problem: Zugriffssemantik hängt von der Implementierung ab (Hardware,
Existenz von Puffern, Netzprotokollen, ...)
Beispiel Operationssemantik: Reihenfolge der Operationen = Inhalt hängt von
der Kommunikationsgeschwindigkeit (Leitungsgeschwindigkeit,
Netzstruktur, CPU-Takt, BS-Version, Lastverteilung, ...) ab.
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 63
Dateisysteme im Netz II
Zustandsbehaftete und zustandslose Server
= verbindungsorientierte Kommunikation
vs. verbindungslose Kommunikation
Verbindung/Dienst eröffnen
Datenstrukturen für Zugriff aufsetzen (Kennungen etc.)
Zugriffsrechte prüfen
Puffer einrichten
Verbindung/Dienst nutzen
Mit Dateikennung lesen/schreiben
Auftragskopien werden über gleiche Sequenznummern erkannt
Verbindung/Dienst schließen
Puffer leeren + deallozieren
Datenstrukturen abbauen
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 64
Dateisysteme im Netz III
Zustandsbehaftete und zustandslose Server
Vorteile
Schneller Zugriff:
keine Adreßinfo, keine Berechtigungsprüfung
Effizienter Cache:
Strategien möglich (read ahead etc.)
Vermeiden von Auftragskopien Nummerierung der Aufträge
Dateisperrung möglich (Exklusiver, atomarer Zugriff)
Datenbanken!
Nachteile
Client crash: kein Löschen der Strukturen+Puffer
Server crash: kein Löschen der Strukturen+Puffer, Dateizustand ungewiß
Begrenzte, gleichzeitig benutzte Dateienzahl: begrenzte Speicherbelegung
Fazit: Server(Verbindung) mit Zustand kann Dateien reservieren,
Auftragskopien vermeiden.
Server(Verbindung) ohne Zustand ist fehlertoleranter, kann mehr
Benutzer gleichzeitig verwalten.
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 65
Dateisysteme im Netz IV
Beispiel Unix
Auftrag: file locking
™ Zustandsloser
Server
™ Zugriffsinfo
auf Client
+Server
gespeichert
™ File lock durch
RPC
Betriebssysteme und Grundlagen verteilter Systeme:
NFS-Server
Network Lock Manager
Client
Benutzer
prozeß
statd
Server
4) Status
statd
3)
1)
lockd
2)
6)
5) Auftrag
lockd
OK
7)
NFS-Server
File locking
NFS-Client
Netzwerkdienste
/etc/sm
© H. Weber, FH Wiesbaden
7)
Datei
Folie 66
Dateisysteme im Netz V
Cache und Puffer
Vorteil:
Nachteil:
Puffer auf Client beschleunigt Lesen/Schreiben
lokaler Puffer führt zu Inkonsistenz bei Zugriffen anderer Rechner
Mögliche Pufferorte:
Benutzerprozeß
Transport
Netzdateisystem
Transport
lokaler Treiber
Platte
Leiter
Client
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Benutzerprozeß
Transport Client
Leiter
Transport Server
Lokaler Treiber
Plattencontroller
Betriebssysteme und Grundlagen verteilter Systeme:
Server
Heap/Stack
Ausgangspuffer
1GHz auf 3 km=10kB
Eingangspuffer
Dateipuffer
Schreib/Lesepuffer
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 67
Dateisysteme im Netz VI
Cache und Puffer Konsistenzstrategien
Write Through
Änderungen gehen am Puffer vorbei sofort zum Original
Delayed Write
Sammeln der Änderungen, dann erst schicken
Zentrale Kontrolle
Vor dem Lesen Vergleich der Änderungsinfos (VersionsNr,Quersummen)
zwischen Client-Server
Write On Close
Sitzungssemantik: lokale Kopie geht an Server bei close()
Fazit: Puffern auf Serverseite ist einfacher auf Clientseite effizienter, aber komplexer (Protokolle)
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 68
Dateisysteme im Netz VII
Beispiel UNIX NFS-Cachestrategien
Asynchrone RPC durch basic input output biod – Dämonen
Read ahead
Vorauseilende Anforderung von Benutzerblöcken
Delayed write
Pufferung aller Schreibdaten,
flush() alle 3 s (Daten) , 30 s (Verzeichnisse), bei sync(), Puffer belegt
Write through
bei exklusiv gesperrten Dateien
Code aus Effizienzgründen im Kernel
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 69
Dateisysteme im Netz VIII
Implementierung eines Dateiserver durch Prozesse
Client
Server
Anwenderprozeß
Netzdateimanager
System call
Betriebssystemaufruf
Dateitreiber
Gerätetreiber
Vorteil
Nachteil
Netzdateitreiber
Transport
Netzanschlußtreiber
Betriebssystemaufruf
Netzdateitreiber
Transport
Netzanschlußtreiber
Dateitreiber
Gerätetreiber
symmetrisches System, jeder kann beides sein
Kopieren der Systempuffer kernel space/user space
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 70
Dateisysteme im Netz IX
Implementierung eines Dateiserver durch Treiber
Client
Server
Anwenderprozeß
System call
Betriebssystemaufruf
Dateitreiber
Gerätetreiber
Vorteil
Nachteil
Netzdateitreiber
Transport
Netzanschlußtreiber
Betriebssystemaufruf
Netzdateitreiber
Transport
Netzanschlußtreiber
Dateitreiber
Gerätetreiber
schnelles System
asymmetrische Kerne
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 71
Dateisysteme im Netz X
Beispiel Unix
Das NFS-System
Mount() zum Einhängen eines Server-Dateisystems
Prozesskommunikation zum mount-demon
Nfs_svc() im kernel mode auf dem Server
Virtual i-nodes für virtuelles Dateisystem
Client
Server
Anwenderprozeß
System
call
Systemaufruf-Verteiler
Virtual File System
MS-DOS UNIX
NFS
file
file
Client
system system
Gerätetreiber
UDP/IP
Virtual File System
UNIX MS-DOS
NFS
file
file
Server system system
UDP/IP
Gerätetreiber
Netz
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 72
Dateisysteme im Netz XI
Beispiel Windows NT
Netzdateisystem
Verbindungsorientierter Netzaufbau durch Redirector mit Transport Driver
Interface TDI über virtual circuits (Kanäle)
Kernel Thread pool im Server
Server
Client
Anwenderprozeß
System call
Systemaufruf-Verteiler
I/O-Manager
MS-DOS NT-file Redirecsystem
file
tor
system
Netztransport
Gerätetreiber
I/O-Manager
Server
NT-file OS/2-file
Treiber
system system
Netztransport
Gerätetreiber
Netz
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 73
Dateisystem im Netz XII - Sicherheitskonzepte
Problem
Inkonsistente Netz-Kopplung von Systemen bei
unterschiedlichen Sicherheitsmechanismen !
z.B. Authentifizierung bei unterschiedlich langen Namen und
Groß/Kleinschreibung Unix/WinNT vs MS-DOS, fehlende
ACLs, ...
Beispiel Unix
NFS-Sicherheitssystem NIS
Benutzerliste (yellow pages) verwaltet von NIS
RPC hat Zugriffsrechte user/group/other
SuperUserID=0 auf Client ⇒ UserId=-2 auf Server („external Super User“)
konsist. Behandlung von gleichen NutzerIds unterschiedl. Systeme
Beispiel Windows NT
NT 4.0: ACL, Netzbenutzer müssen beim SAM registriert sein mit
gleichem Paßwort, sonst Nachfrage bzw. Ablehnung
NT 5.0: Kerberos-System bei netzweiter Zugangskontrolle
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 74
Sicherheit im Netz I
Netzeinbruch
Paßwort erraten
Paßwort abhören
Trojanische Pferde
™ Email-Programme
™ WWW-Dienste
™ FTP file transfer
Kontrollübernahme
Dateisystem-Zugriffsrechte
Systemprogramme-Zugriffsrechte
Viruserzeugung
Virusentdeckung
Virusentfernung
selbstreplizierende Trojanische Pferde
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
Start
user
program
code
Infektion
virus
program
user
program
code
Start
© H. Weber, FH Wiesbaden
Folie 75
Sicherheit im Netz II
Beispiel Unix
Authentifizierung am Rechner
Prozeßfolge:
init Prozeß
getty → login → sh
/etc/passwd :
Kommando 1
Kommando 2
root:Igl6derBr45Tc:0:0:The Superuser:/:/bin/sh
...
brause:ntkyb1ioøkk3j:105:12:&Brause:/user/user2/ASA:/bin/csh
LoginName Paßwort PersonId GruppeId uid Name
StartPfad
ShellName
/etc/group:
staff:*:12:boris,peter,brause
GruppenName GruppenPaßwort Gruppenkennung gid Benutzerliste
Authentifizierung im Netz
rsh remote shell, rlogin remote login:
Dominoeffekt!
basierend auf etc/hosts.equiv
Autorisierung
BenutzerProzeßRechte =ruid, rgid
ProgrammErzeugerRechte = uid, gid
effektive ProzeßRechte = euid, egid
Laufzeit: euid = ruid, egid=rgid.
Speziell set userId/groupId: euid=uid, egid=gid
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 76
Sicherheit im Netz III
Beispiel
Windows NT
Benutzerauthentifikation
lokale Anmeldung, bei der sich der Benutzer mit seinem lokalen
Benutzernamen auf seinem Computer anmeldet (lokale ACL)
Netzwerk-Anmeldung, um Zugriff auf die Dateien eines Dateiservers zu
erhalten (Server-ACL)
Anmeldung in einer Domäne, mit der der Zugriff auf die Rechner und die
Dienste der Domäne geregelt wird primary domain controller (R/W),
backup domain controller (R)
Anmeldung in einem Domänennetz durch trust relationship = ACL
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 77
Sicherheit im Netz IV
Problem: Zugriff auf 1000 Rechner durch 1000 Benutzer
Muß jeder sich bei jedem registrieren mit Paßwort?
Idee: Capability-Modell vs. ACL
User A
User B
User C
User D
Objekt 1
rw
Objekt 2
Objekt 3
Objekt 4
rwx
rx
rx
r
r
Capab.
rw
ACL
Erweiterungen
• Rollen-basiertes Modell: User können Rollen mit Capabilities annehmen
• Vertraulichkeit (Informationsweitergabe)
Kein User darf Objekte lesen/schreiben, die höher klassifiziert sind als er selbst
Betriebssysteme und Grundlagen verteilter Systeme:
Netzwerkdienste
© H. Weber, FH Wiesbaden
Folie 78
Herunterladen