Übung 6

Werbung
Betriebssysteme
Übung 6
Martin Alt
Gruppe PVS
Institut für Informatik
Betriebssysteme 2004 · Übung 6
1
Hinweise zum Übungsblatt
• Fehler auf dem Aufgabenblatt:
− finalize_process → process_wrapper
− append_queue → append
− Funktion main in process_manager.c darf (und muss)
verändert werden.
• Hinweise zur Abgabe:
− Bei E-Mail Abgabe wird künftig eine automatische
Eingangsbestätigung verschickt – wenn das richtige Subject
angegeben ist ([BS] Abgabe Uebung x)
− Nachfragen weil keine Bestätigung wg. falschen Subjects
führen zu Punktabzug
− Verzeichnisstruktur beibehalten!
− Dateien nicht umbenennen!
Betriebssysteme 2004 · Übung 6
2
Netzwerkkommunikation
• Kommunikationsablauf wird durch Protokolle festgelegt
• Internet Standards sind in sog. „Requests for Comments (RFC)“
beschrieben
http://www.rfc-editor.org/rfc.html
• TCP/IP
− RFC 791: IP
− RFC 792: ICMP
− RFC 793: TCP
− RFC 768: UDP
− RFC 826: ARP
• Protokolle und Netzwerk-Code sind schichtweise aufgebaut
Betriebssysteme 2004 · Übung 6
3
ISO OSI Schichtenmodell
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
Betriebssysteme 2004 · Übung 6
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
4
TCP/IP
• TCP/IP: „Internet Protokolle“
• Vier Schichten:
Application Layer
Transport Layer
Application Layer
TCP
Network Layer
UDP
IP
ICMP
Network Interface
(z.B. Ethernet)
Link Layer
(1&2)
• Darstellungsschicht: Umwandlung von Host- in Network-Byteorder
• Im folgenden betrachten wir ausschließlich TCP/IP/Ethernet
Betriebssysteme 2004 · Übung 6
5
Protokolldaten
• Protokolldaten (Kopf, header )jeder Schicht werden von der
darunterliegenden Schicht als Daten betrachtet
• Beim Empfangen werden Protokolldaten niedriger Schichten
sukzessive entfernt
Empfangen
Senden
Nutzdaten
ETHERNET
HTTP
Nutzdaten
TCP
HTTP
Nutzdaten
IP
TCP
HTTP
Nutzdaten
IP
TCP
HTTP
Nutzdaten
Betriebssysteme 2004 · Übung 6
6
Network Interface Level: Ethernet
• Entwickelt von Xerox PARC ab ca. 1970
• CMSA/CD (Carrier Sense Multiple Access with Collision Detection)
• Bus-basiertes System
• Pakete mit 46–1522 Byte Nutzinformation
0 1 2 3 4 5 6 7 8 901234 567890123456789 01
Präambel (0−31)
Präambel (32−63)
Zieladresse (0−31)
Zieladresse (32−47)
Quelladresse (0−15)
Quelladresse (0−15)
Paket−Typ
Daten
Daten
...
Prüfsumme
Betriebssysteme 2004 · Übung 6
7
Internet Protocol (IP)
• Zahl der Rechner an einem Ethernet Netzwerk ist begrenzt
(Kollisionen)
• Internet Protokoll dient zum Zusammenschluss mehrerer Netzwerke
(nicht nur Ethernet)
• Paketorientiertes Protokoll:
− Längere Nachrichten werden in Pakete zerlegt die einzeln
verschickt werden
• Pakete können weiter unterteilt werden, falls sie zu groß für ein
bestimmtes Netzwerk sind (Fragmentierung)
• Nicht zuverlässige Übertragung:
− Pakete können verlorengehen
− Pakete können mehrfach ankommen
− Pakete können sich gegenseitig überholen
Betriebssysteme 2004 · Übung 6
8
IP-Adresse
• Jedem Netzwerk Interface wird eine netzweit eindeutige Adresse
(32 Bit) zugeordnet
• Unterteilt in Netzadresse und Knotenadresse
− Früher: feste Einteilung in Klassen:
Klasse A: 8 Bit Netzwerk, 24 Bit Knoten
Klasse B: 16 Bit Netzwerk, 16 Bit Knoten
Klasse C: 24 Bit Netzwerk, 8 Bit Knoten
− Modernere Variante: Netzmasken
Geben an welche Bits zur Netzadresse gehören
− Beispiel:
128.176.180.46 Maske: 255.255.252.0
− Andere Schreibweise: 128.176.180.46/22
• Benennung von Netzwerken:
Knotenteil der Adresse ist 0, z. B. 192.168.0.0/16
• Unterteilung in Netz- und Hostteil wichtig für Routing
Betriebssysteme 2004 · Übung 6
9
IP-Routing
• Problem:
Woher weiß ein Rechner wohin ein IP-Paket verschickt werden soll?
• BS unterhält Routing-Tabelle die angibt, über welches
Netzwerk-Interface Rechner zu erreichen sind
• Beispiel:
Destination
128.176.180.0
127.0.0.0
0.0.0.0
Gateway
0.0.0.0
0.0.0.0
128.176.180.1
Genmask
255.255.252.0
255.0.0.0
0.0.0.0
Iface
eth0
lo
eth0
• BS führt Routing auf Grund der Routing-Tabelle durch; anpassen
der Tabelle ist Sache des Benutzers bzw. eines speziellen
Programms
Betriebssysteme 2004 · Übung 6
10
IP-Routing II
• Zwei Arten von Einträgen: lokale und nicht lokale Routen
• Lokale Routen: Paket kann über angegebene Netzwerkschnittstelle
direkt an den Empfänger versandt werden
• Nicht lokale Routen: Empfänger befindet sich in einem anderen
Netz, Paket kann nur an Gateway verschickt werden
• Gateways (Router) sind Rechner die an mehrere Netzwerke
angeschlossen sind und Pakete weiterleiten
Betriebssysteme 2004 · Übung 6
11
IP-Routing – Beispiel
• Weg von Rechner hisar.uni-muenster.de nach
www.heise.de
1:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
hisar.uni-muenster.de (128.176.180.46)
C65RRZA-MATHE.UNI-MUENSTER.DE (128.176.180.4)
C65UNIA-C65RRZA.UNI-MUENSTER.DE (192.168.18.1)
C65RISPA-UNIA.UNI-MUENSTER.DE (192.168.16.65)
ar-essen4-ge0-1-201.g-win.dfn.de (188.1.44.41)
cr-essen1-ge4-0.g-win.dfn.de (188.1.86.1)
cr-leipzig1-po11-0.g-win.dfn.de (188.1.18.106)
cr-frankfurt1-po10-0.g-win.dfn.de (188.1.18.189)
ir-frankfurt2-po4-0.g-win.dfn.de (188.1.80.46)
de-cix.ffm.plusline.net (80.81.192.132)
c22.f.de.plusline.net (213.83.57.23)
www.heise.de (193.99.144.71)
Betriebssysteme 2004 · Übung 6
12
Routing: G-WiN
Quelle: DFN http://www.dfn.de/uploaded/DFN-Aufbau-GWiN.pdf
Betriebssysteme 2004 · Übung 6
13
IP-Pakete
0 123 4 567 8 90 12 34 56 78 90 12 3 456 7 8901
Version
KLänge
Diensttyp
Fragmentidentifizierung
TTL
Gesamtlänge (Bytes)
Flags
Protokoll
Fragmentadresse
Kopfprüfsumme
Quelladresse
Zieladresse
Optionen
Füllbyte
Daten . . .
Betriebssysteme 2004 · Übung 6
14
ARP: Adressauflösung
• Routing Tabelle liefert IP-Adresse des nächsten Empfängers
• Wie werden IP-Adressen in Ethernet Adressen umgesetzt?
• ARP (Address Resolution Protocol):
− Sender schickt ein ARP Paket mit der IP Adresse des
gesuchten Rechners (Empfänger oder Gateway) per Broadcast
an alle Rechner im lokalen Netz
− Der gesuchte Rechner antwortet und teilt dem Sender seine
Ethernet-Adresse mit
− Erhaltene Adressen werden in einer Tabelle
zwischengespeichert
Betriebssysteme 2004 · Übung 6
15
ARP-Paketformat
01 2 34 5 6 78 90 1234567890123456789 01
Hardwaretyp (Ethernet)
HWAdresslange
Protokolltyp (IP)
Operation (Request/Reply)
Protok’adresslange
Quelladresse (Ethernet)
Quelladresse (Ethernet)
Quelladresse (IP)
Zieladresse (Ethernet)
Zieladresse (Ethernet)
Zieladresse (IP)
• ARP-Einträge anzeigen: arp(8)
• Beispiel:
sklavenhaendler (128.176.180.202) at 00:03:BA:81:74:D9 [ether] on eth0
alibaba (128.176.180.30) at 00:03:BA:02:E9:0C [ether] on eth0
denethor (128.176.180.180) at 00:03:BA:49:B3:77 [ether] on eth0
bei-gertrud (128.176.180.182) at 00:03:BA:27:04:93 [ether] on eth0
HSRP-MATHE.UNI-MUENSTER.DE (128.176.180.1) at 00:D0:04:48:FF:FC [ether] on eth
Betriebssysteme 2004 · Übung 6
16
Internet Control Message Protocol (ICMP)
• ICMP dient im wesentlichen zur Fehlerbehandlung (z. B. host
unreachable)
• In der Regeln nicht von der Anwendung sondern vom
Netzwerk-Code des BS verschickt und empfangen
• Sammlung unterschiedlicher Paketformate, je nach Art der Meldung
• ICMP-Pakete werden Nutzdaten in normalen IP-Paketen verschickt
• Wichtige ICMP-Nachrichten:
− Destination Unreachable
− Time Exceeded
− Source Quench
− Redirect
− Echo, Echo Reply
• Im Allgemeinen können ICMP-Nachrichten verschickt werden,
müssen aber nicht
Betriebssysteme 2004 · Übung 6
17
UDP
• IP erlaubt die Adressierung von Rechnern über Netzgrenzen hinweg
• Es fehlt die Adressierung einzelner Prozesse (genauer: Sockets)
innerhalb eines Rechners −→ Transportprotokoll
• User Datagram Protocol (UDP): Einfaches TCP/IP
Transportprotokoll
• Effizient aber nicht zuverlässig
• Einzige Erweiterung gegenüber IP: Ports
− Ports identifizieren Kommunikationsendpunkte innerhalb eines
Rechners (Sockets)
− Ermöglicht dem BS eingehende Pakete Sockets zuzuordnen
− Eine Reihe von Port-Nummern sind per RFC standardisiert
(well-known ports), z. B. Port 80/tcp: HTTP
• Ein Socket wird eindeutig identifiziert durch das Tupel
(IP-Adresse, Protokoll, Port)
Betriebssysteme 2004 · Übung 6
18
UDP-Paket
0 123 4 567 8 90 12 34 56 78 90 12 3 456 7 8901
Quell−Port
Ziel−Port
Länge
Prüfsumme
Daten . . .
Betriebssysteme 2004 · Übung 6
19
Transmission Control Protocol (TCP)
• TCP: Verbindungsorientiertes Transportprotokoll
− Zuverlässige Datenübertragung
− FIFO Eigenschaft (Daten werden in Absendereihenfolge
empfangen)
− Datenflußkontrolle
• Verbindung ist „stromorientiert“: Anwendung sieht einen
zusammenhängenden Datenstrom, keine Pakete
• Fragmentierung in IP-Paket vor der Anwendung verborgen
• Expliziter Verbindungsaufbau (Synchronisation, SYN) und -abbau
(FIN)
Betriebssysteme 2004 · Übung 6
20
TCP: Zustandsautomat
CLOSED
EINGABE/AUSGABE
(Anwendungsbefehlle)
(passive open)/
(active open)/SYN
timeout/RST
LISTEN
SYN/SYN,ACK
(send data)/SYN
RST/
SYN/SYN,ACK
SYN RECVD
SYN SENT
timeout
SYN,ACK/ACK
ACK/
ESTABLISHED
(close)/FIN
(close)
FIN/ACK
CLOSE WAIT
(close)/FIN
(close)/FIN
FIN WAIT−1
FIN/ACK
CLOSING
LAST ACK
FIN,ACK/ACK
ACK/
FIN WAIT−2
ACK/
ACK/
FIN/ACK
TIME WAIT
timeout
Betriebssysteme 2004 · Übung 6
21
TCP-Paket
0 12 34 5 6 7 8 9 0 1 2 3 45 6 7 8 9 01 2 3 4 56 7 8 90 1
Quell−Port
Ziel−Port
Sequenznummer
Bestätigungsnummer
Offset
1 2 3 4 5 6
nicht verw.
Prüfsumme
Fenster
Dringlich
Optionen
Füllbytes
Daten . . .
1 URG
2 ACK
3 PSH
4 RST
5 SYN
6 FIN
• Fenster: Gibt an bis zu welcher Sequenznummer der Empfänger
bereit ist Pakete zu empfangen (Flusskontrolle)
• Dringlich: Zusätzlich zum normalen Datenstrom kann ein zweiter
Strom mit höherer Priorität verwendet werden
Betriebssysteme 2004 · Übung 6
22
TCP: Verbindungsaufbau
„3-way handshake“:
(active open)
CLOSED
SYN−SENT
SEQ=100
CTL=SYN
ESTABLISHED
SEQ=300
ACK=100
CTL=SYN,ACK
CLOSED
LISTEN
(passive open)
SEQ=101
ACK=300
CTL=ACK
SYN−RECVD
SEQ=102
ACK=300
CTL=ACK
DATA
ESTABLISHED
Betriebssysteme 2004 · Übung 6
23
Anwendungsprotokolle
TCP/IP bildet die Basis für Anwendungsprotokolle:
• Domain Name System: Umsetzung von Namen in IP-Adressen
• Hypertext Transfer Protocol (HTTP): Web-Seiten
• File Transfer Protocol (FTP)
• Simple Mail Transfer Protocol (SMTP)
• Telnet
• ...
Betriebssysteme 2004 · Übung 6
24
Beispiel: Webseite lesen
Was passiert wenn man von hisar.uni-muenster.de eine
TCP-Verbindung mit www.uni-muenster.de aufbaut?
1. IP-Adresse zu www.uni-muenster.de herausfinden
• DNS-Server kontaktieren; liefert 128.176.188.115
2. Geeignete Route bestimmen
• Routingtabelle enthält keinen Eintrag für 128.176.188.115
• Default Eintrag verwenden:
Gateway: 128.176.180.1 Interface: eth0
3. Ethernet-Adresse des Gateways bestimmen
• ARP Paket mit Adresse 128.176.188.115 an alle Rechner
im lokalen Ethernet schicken
• Gateway antwortet mit IP-Adresse
Betriebssysteme 2004 · Übung 6
25
Beispiel: Webseite lesen II
4. TCP-Verbindung aufbauen zum korrekten Port (z. B. Port 80)
• IP-Pakete werden an Gateway verschickt
• Dieser leitete die Pakete an den nächsten Rechner weiter
• Antwort-Pakete kommen ebenfalls über Gateway
5. Anfrage senden:
• HTTP-GET Kommando
• Per TCP senden → wird in TCP-Pakete verpackt
• TCP-Pakete werden in IP, diese in Ethernet-Pakete verpackt
6. Server antwortet mit angeforderter Datei
7. Nach Ende der Kommunikation Verbindung beenden
Betriebssysteme 2004 · Übung 6
26
Linux/BSDs: Netzwerkinformationen
• Anzeigen von Informationen zu Netzwerk Schnittstellen (nicht auf
Ethernet begrenzt): ifconfig
• Anzeigen von Routing-Tabellen: netstat -nr
• Route eines Pakets verfolgen: traceroute oder tracepath
• Anzeigen des ARP-Caches: arp -a
• Well-known ports: /etc/services
Betriebssysteme 2004 · Übung 6
27
Zugehörige Unterlagen
Herunterladen