Rechnernetze mit TCP/IP II

Werbung
Einführung in die
Informatik II
Kommunikation im Internet per TCP/IP Protokoll Teil 2
Prof. Dr. Nikolaus Wulff
Brücken trennen und verbinden
• Sind zu viele Rechner in einem Netzsegment, so kann
dieses durch Bridges in zwei Hälften zerlegt werden,
um die Kollisionswahrscheinlichkeit zu halbieren.
• Ein Bridge pflegt einen ARP Cache und ist nur
durchlässig für Anfragen von einer Seite auf die
Andere, wenn dies notwendig ist. Broadcasts werden
allerdings immer weitergeleitet...
1
2
3
7
8
9
10
B
4
Prof. Dr. Nikolaus Wulff
5
6
Informatik II
2
Vielseitige Bridges
• Angenommen 1 und 2 kommunizieren, die Station 7
kann dies nicht wissen und so muss die Bridge eine
Sendung von 7 nach 3 zwischenspeichern, um eine
Kollision zu vermeiden.
• Die Bridge liest daher den IP Header und interpretiert
ihn geeignet. Sie kann das Signal nicht nur speichern,
sondern auch verstärken oder transformieren wenn im
linken und rechtem Segment eine unterschiedliche
physikalische Netzwerktechnologie verwendet wird.
• Auf Grund der Zwischenspeicherung ist es nun auch
möglich z.B. 10-MBit mit 100-MBit Netzen zu
verbinden.
Prof. Dr. Nikolaus Wulff
Informatik II
3
Netzwerk Klassen
• Historisch werden die IP Netzwerke in drei Klassen
A, B und C unterteilt:
A: XXX.***.***.***/8
B: XXX.YYY.***.***/16
C: XXX.YYY.ZZZ.***/24
• mit den Netzwerkmasken 255.0.0.0, 255.255.0.0 und
255.255.255.0.
• Maximal kann es 256 A, 65356 B und 16777216 C
Netze geben (abzüglich der Broadcast Adressen).
• Entsprechend berechnet sich die maximale Anzahl an
Subnetzen bzw. Endgeräten pro Netzklasse.
Prof. Dr. Nikolaus Wulff
Informatik II
4
Subnetze
• Ein Administrator darf über seinen Netzwerkteil frei
verfügen und kann per Netzwerkmaske Subnetze
definieren, um z.B. Broadcasts zu minimieren.
• Beispiel die Netzwerk IP ist 172.168.0.0/16.
Zerlegung in 256 Subnetze:
172.168.0.0/24: enthält max. 254 Endgeräte
...
172.168.255.0/24 enthält max. 254 Endgeräte
• In jedem Teilnetz wird eine Netzwerkadresse und eine
Broadcast Adresse benötigt. Die Aufteilung eines B
Netz in 256 virtuelle C Netze benötigt 512 Adressen.
Prof. Dr. Nikolaus Wulff
Informatik II
5
(Sub)Subnetze
H
H
Broadcast Domäne
B
Kollisions Domäne
172.168.0.0/24
H
Kollisions Domäne
H
Kollisions Domäne
172.168.0.0/25
R
H
H
172.168.0.128/25 H
B
Broadcast Domäne
H
Kollisions Domäne
• Aufteilung des Netz 172.168.0.0/24 in die Subnetze
172.168.0.0/25 und 172.168.0.128/25.
Prof. Dr. Nikolaus Wulff
Informatik II
6
Netzverkehr...
• Geräte kommunizieren auf Layer II Ebene, direkt mit
den per Arp ermittelten MAC Adressen.
• Router leiten Arp Anfragen nicht weiter, das Internet
würde sonst vor lauter Arp Requests „verstopfen“.
• Wie kann Host A aus Netz I mit Host B aus Netz II
kommunizieren?
01:13:AB:15:32
01:13:AB:CD:EF
A
172.4.5.3
Netz I
...
B
172.4.5.1
172.4.3.12
R
Netz II
172.4.3.1
C
172.4.5.0/24
Prof. Dr. Nikolaus Wulff
Informatik II
172.4.3.0/24
7
Network Adress Translation (NAT)
• Router besitzen zwei MAC/IP Adressen, jeweils per
Netzsegment, dass sie verbinden.
• Host A erkennt an der IP & Netzwerkmaske das Host
B nicht in seinem Netzwerksegment I liegen kann. Er
schickt deshalb keinen ARP Request, sondern sendet
die Anfrage an sein Gateway den Router R.
• R erkennt das Host B im Netz II liegt und schickt
einen ARP Request (sofern B noch unbekannt ist).
• Der Router tauscht die MAC Adresse von A gegen
seine eigene aus und leitet die Anfrage an B weiter.
• Wenn B an A antwortet macht R die inverse
Ersetzung...
Prof. Dr. Nikolaus Wulff
Informatik II
8
Routing
• Die Router ersetzen die MAC Adressen des Layer II
durch ihre eigenen, damit ein Routing über mehrere
Router im Layer III erfolgen kann. Die IP Adressen
werden nicht verändert. 164.4.0.0/16
01:13:AB:CD:EF
A
172.4.5.3
Netz I
01:13:AB:15:32
R1
R2
...
172.4.5.0/24
Prof. Dr. Nikolaus Wulff
B
R3
164.4.3.12
Netz II
C
172.4.0.0/16
Informatik II
164.4.5.0/24
9
Private Netze
• IPv4 Adressen sind im Layer III knapp!
• In jeder Netzwerkklasse gibt es einen gekennzeichneten IP Bereich, der von Routern nicht weitergeleitet
oder per NAT transformiert wird.
• In diesen Bereichen lassen sich daher beliebig viele
private Netze gleicher IP definieren, die am weltweiten IP Netzverkehr des Layer III nicht teilnehmen:
A: 10.0.0.0
– 10.0.0.0
B: 172.16.0.0 – 172.31.0.0
C: 192.168.0.0 – 192.168.255.0
Prof. Dr. Nikolaus Wulff
Informatik II
10/8
172.16/12
192.168/16
10
Superprivate Adressen
• Zusätzlich zu den privaten Adressen gibt es noch den
Adressbereich:
127.0.0.0 – 127.255.255.255 127/8
• Kein Netzwerkadapter leitet diese Adressen weiter.
• 127.0.0.1 ist die sogenannte „Localhost“ Adresse.
• Diese Adressen werden nicht geroutet und werden
daher nie als konfigurierte Adressen verwendet.
• Sie dienen zum Testen von lokalen (Netz)
Anwendungen, ohne das eine Netzwerkverbindung
bestehen muss.
Prof. Dr. Nikolaus Wulff
Informatik II
11
Multicast/Broadcast Adressen
• Neben den Broadcast gibt es noch die Möglichkeit
eines Multicasts, d.h. die Adressierung einer lokalen
Gruppe. Diese liegt im Adressbereich:
224.0.0.0 – 239.255.255.255
224/4
• Die Adresse 255.255.255.255 wird für generelle
Broadcasts verwendet und auch nicht geroutet.
Unicast:
P2P im Internet
Broadcast: Ruf an Alle im lokalen Netz
Multicast: Ruf an Gruppe im lokalen Netz
Prof. Dr. Nikolaus Wulff
Informatik II
12
DHCP
• IP Adressen werden entweder vom Administrator
statisch per Hand vergeben oder aber dynamisch per
Dynamic Host Configuration Protokol (DHCP).
• Ein neues Netzwerkgerät sendet eine DHCP Anfrage
(per Broadcast) in das lokale Netz.
• Ein DHCP Server beantwortet diese mit einer
möglichen freien IP Adresse, sowie der zugehörigen
Netzwerkmaske (und evt. weiteren Daten wie DNS).
• Der Client beantwortet diese mit DCHP-ACK
(Acknowldge) und kann ab dann diese IP verwenden.
• Meist besitzen diese Adressen ein „Verfallsdatum“...
Prof. Dr. Nikolaus Wulff
Informatik II
13
Automatische private Adressen
• Die MAC Adressen sind vom Hersteller fest
vorgegeben. Die IP Adressen werden entweder fest
vorgegeben oder aber dynamisch per DHCP ermittelt.
• Damit Rechner auch ohne DHCP miteinander
kommunizieren können gibt es den Netzwerkbereich
169.254.0.1 – 169.254.255.255 (/16)
• Alle Rechner sind dann in einem Klasse B Subnetz.
• Ein Gerät ermittelt die nächste freie IP Adresse per
Broadcast an alle und verbindet sich zu einem Ad-hoc
Netzwerk.
• Auch dieser Adressbereich wird nicht geroutet.
Prof. Dr. Nikolaus Wulff
Informatik II
14
Domain Name System
• Zusätzlich zu den IP Adressen existiert ein paralleler
Namensraum mit „sprechenden Namen“.
• Dieser ist ebenso wie IP hierarchisch aufgebaut
(allerdings rückwärts zur europäischen Lesweise):
.de
.fh-muenster.de
.uni-muenster.de
.sap.de
lab4inf.fh-muenster.de
• Die (registrierten!) Domain Namen werden von DNS
Servern in beide Richtungen aufgelöst.
Prof. Dr. Nikolaus Wulff
Informatik II
15
Ping-Pong
• Mit dem Befehl Ping lässt sich die Verbindung zu
einem entfernten Host überprüfen:
konqueror:~ # ping www.apache.org
PING www.apache.org (140.211.11.130) 56(84) bytes of data.
64 bytes from eos.apache.org (140.211.11.130): icmp_seq=1 ttl=244 time=210 ms
64 bytes from eos.apache.org (140.211.11.130): icmp_seq=2 ttl=244 time=210 ms
64 bytes from eos.apache.org (140.211.11.130): icmp_seq=3 ttl=244 time=211 ms
64 bytes from eos.apache.org (140.211.11.130): icmp_seq=4 ttl=244 time=211 ms
64 bytes from eos.apache.org (140.211.11.130): icmp_seq=5 ttl=244 time=211 ms
--- www.apache.org ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4010ms
rtt min/avg/max/mdev = 210.752/211.170/211.820/0.472 ms
Prof. Dr. Nikolaus Wulff
Informatik II
16
Nameserver
• Forward und Reverse Lookup eines Namens:
konqueror:~ # nslookup www.apache.org
Server:
62.72.64.237
Address:
62.72.64.237#53
Non-authoritative answer:
Name: www.apache.org
Address: 140.211.11.130
IP des DNS
Servers
UDP Port 53
Forward IP von
www.apache.org
konqueror:~ # nslookup 140.211.11.130
Server:
62.72.64.237
Address:
62.72.64.237#53
Non-authoritative answer:
130.11.211.140.in-addr.arpa
Prof. Dr. Nikolaus Wulff
Reverse DN von
name = eos.apache.org. 140.211.11.130
Informatik II
17
Traceroute / Tracert
• Verfolgung eines IP Pakets durch das Internet:
traceroute to www.apache.org (140.211.11.130), 30 hops max, 40 byte packets
1 192.168.2.1 (192.168.2.1) 0.830 ms 0.785 ms 0.812 ms
2 dor002ibr010-xdsl.versatel.de (62.214.64.191) 46.074 ms 49.006 ms 49.697 m
...
8 ae-1-100.ebr1.Dusseldorf1.Level3.net (4.69.132.129) 22.923 ms 17.226 ms 13
9 ae-2.ebr2.Frankfurt1.Level3.net (4.69.132.138) 21.219 ms 16.271 ms 14.712 m
10 ae-1-100.ebr1.Frankfurt1.Level3.net (4.69.132.125) 17.818 ms 17.470 ms 27.
11 ae-2.ebr2.Paris1.Level3.net (4.69.132.141) 30.895 ms 27.874 ms 24.256 ms
12 ae-44.ebr2.Washington1.Level3.net (4.69.137.62) 111.736 ms 120.975 ms
13 ae-2.ebr3.Chicago1.Level3.net (4.69.132.69) 129.259 ms 125.769 ms 123.550
14 ae-3.ebr2.Denver1.Level3.net (4.69.132.61) 151.927 ms 148.434 ms 147.845
15 ae-2.ebr2.Seattle1.Level3.net (4.69.132.53) 179.606 ms 176.106 ms 174.805 m
16 ge-11-2.hsa2.Seattle1.Level3.net (4.68.105.167) 174.183 ms 172.986 ms
17 nero-gw.Level3.net (63.211.200.246) 209.003 ms 208.215 ms 208.532 ms
18 corv-car1-gw.nero.net (207.98.64.177) 209.679 ms 211.367 ms 211.055 ms
19 eos.apache.org (140.211.11.130) 214.146 ms 211.299 ms 210.349 ms
Prof. Dr. Nikolaus Wulff
Informatik II
18
DNS für einen HTTP Request
Prof. Dr. Nikolaus Wulff
Informatik II
19
IP Lebensdauer
• Im Prinzip kann ein IP Paket ewig lange im Netzwerk
von einem Router zum Nächsten kreisen und so das
ganze Netz lahmlegen.
• Im IP Header ist daher eine Time-To-Live (TTL)
hinterlegt (Standard ist 64).
• Bei jedem „Hop“ von Router zu Router wird diese um
eins bis auf Null dekrementiert, dann wird das Paket
vom Router verworfen und nicht mehr weitergeleitet.
• Die TTL ist eine Lebenszeit der Layer III Schicht.
Prof. Dr. Nikolaus Wulff
Informatik II
20
Layer III: Das IP Paket
• Wie das Ethernet Frame ist das IP Paket strukturiert
und enthält in seinem Header Kontrollinformationen:
IP Paket
IP-Header
TCP-Header 10010100111110101
32 Bit Version IHL
TOS
Length
Identity No.
Flags
Offset
TTL
Protocol (Layer IV)
Header-CS
Sender IP
Destination IP
Options/Padding
Data
TCP-Header
10010100111110101
Prof. Dr. Nikolaus Wulff
Informatik II
21
Problematische Nachrichten
• Ein IP Paket kann theoretisch maximal 216=64Kbit
groß werden
– Die aktuelle Größe wird durch die maximal transfer unit
MTU festgelegt (Ethernet MTU=1500).
• Ist die Nachricht größer als die MTU, so wird sie in
mehrere Pakete gesplittet, die dann beim Empfänger
wieder zusammengesetzt werden.
• Frage: Wie kommen die Pakete vom Sender zum
Empfänger und wer stellt sicher, dass alle in der
richtigen Reihenfolge wieder zusammengesetzt
werden? Was passiert, wenn zwischendurch eine
Kollision stattgefunden hat etc...?
Prof. Dr. Nikolaus Wulff
Informatik II
22
Layer IV: Die Transportschicht
• Größere Nachrichten werden in einzelne Pakete
zerlegt. Im Layer IV werden per Transmission
Control Protocol die IP Pakete wieder defragmentiert.
• Die Daten müssen hierzu fehlerfrei unabhängig von
der Eingangsreihenfolge wieder zusammengesetzt
werden.
– Nicht alle Pakete einer Nachrichten müssen über die selbe
Route laufen, es kommt daher zu Zeitverzögerungen.
– TCP ist die Kontrollinstanz um die Nachrichten zu
reassemblieren und auf Fehler zu reagieren.
• UDP (Unreliable Datagram Protocol) verzichtet auf
diesen Overhead mit dem Preis des Datenverlustes.
Prof. Dr. Nikolaus Wulff
Informatik II
23
TCP Aufgaben
• Im Layer IV werden die IP Pakete der Schicht III an
entsprechende Dienste übergeben. Die Zuordnung des
Dienstes geschieht über die 16-Bit Port Nummer.
• Die Kombination aus IP Adresse und Port Nummer
wird als Socket bezeichnet.
• TCP gewährleistet, dass die einzelnen Pakete wieder
beim Empfänger zur Orginalnachricht zusammengesetzt werden, auch wenn sie in falscher Reihenfolge
ankommen oder welche verloren gingen.
• Dementsprechend ist ein höherer Verwaltungsaufwand für TCP notwendig.
Prof. Dr. Nikolaus Wulff
Informatik II
24
Pakete transportieren
• Die fragmentierten IP Pakete enthalten eine Identifizierungsnummer. Mit dessen Hilfe kann TCP auch
größere Datenmengen wieder zur Orginalnachricht
zusammensetzen.
• Die einzelnen Pakete werden gepuffert, so dass auch
die Reihenfolge des Eingangs korrigiert werden kann.
• Ist der Puffer voll wird der Sender benachrichtigt das
Senden einzustellen.
• Fehlen Pakete wird ein neues Versenden veranlasst.
• Kommt es zu Fehlern wird die Sendegeschwindigkeit
halbiert.
Prof. Dr. Nikolaus Wulff
Informatik II
25
Bereitstellung von Diensten
• Auf einem Host laufen mehrere Dienste: Mail, WebServer, FTP Server, Bittorrent, etc.
• Der Host hat immer dieselbe IP Addresse. Wie
können die unterschiedlichen IP Pakete desselben
Host genau einer Anwendung zugeordnet werden?
• Hier kommt die Port Nummer ins Spiel. Dienste unterscheiden sich durch ihre Port Nummer.
• Die Pakete werden per IP zum richtigen Host geroutet
und dann dort per Port Nummer einer konkreten
Anwendung zugeordnet.
• So ist es möglich auf einem Endgerät mit einer IP
mehrere Dienste zu adressieren.
Prof. Dr. Nikolaus Wulff
Informatik II
26
Well-known Ports
• Die Ports von 0 – 1023 sind fest vergeben, die Ports
• von 1023 – 49152 sind zum Teil definierte „registered
Ports“ und die Ports von 49152 – 65535 stehen frei
zur dynamischen Verfügung.
Port
20
21
22
23
25
53
80
Prof. Dr. Nikolaus Wulff
FTP
FTP
SSH
Telnet
SMTP
DNS
HTTP
Anwendung
Dateitransfer
Dateitransfer-Control
Secure Shell
Remote-Console
E-Mail-Verkehr
Domain-Name-Service
World-Wide-Web-Service
Informatik II
27
TCP/IP Sniffer
Prof. Dr. Nikolaus Wulff
Informatik II
28
Das TCP Datagramm
• Der TCP Header enthält Sender- und Emfänger Port
Nummern und Informationen zur Paketreihenfolge.
IP Paket
IP-Header
32 Bit
TCP-Header 10010100111110101
Sender Port
Emfänger Port
Sequenznummer
Bestätigungsnummer
Header Length
leer
Flags
W-Size
Checksum
Urgent
Options/Padding
Data
10010100111110101
Prof. Dr. Nikolaus Wulff
Informatik II
29
Port and Address Translation
• Die Socket Kommunikation erlaubt es einem Internet
Service Provider (ISP) mehr Kunden per IP zu bedienen als ihm eigentlich IP-Nummern zur Verfügung
hat. Beispiel Klasse B hat nur 65356 Endgeräte!
• Der ISP Router tauscht auf Layer IV nicht nur die IP
Adresse aus, sondern verändert auch die Port
Nummer. So wird aus der Source 192.168.0.2:5000
z.B. nach außen das Socket 87.5.23.4:59323.
• Wird die entsprechende Anwort an die IP 87.5.23.4
des Routers zurückgeschickt, so merkt dieser an der
Port Adresse 59323, dass er intern an das Gerät
192.168.0.2:5000 eine Antwort leiten soll.
Prof. Dr. Nikolaus Wulff
Informatik II
30
PAT Beispiel
A
192.168.0.2
H
192.168.0.1
Internet
B
R
192.168.0.3
87.5.23.4
192.168.0.0/24
140.211.11.130
140.211.11.0/24
A sendet GET Dst-IP 140.211.11.130:80
R sendet GET Dst-IP 140.211.11.130:80
H sendet ACK Dst-IP 87.5.23.4:59323
R sendet ACK Dst-IP 192.168.0.2:5000
Src-IP 192.168.0.2:5000
Src-IP 87.5.23.4:59323
Src-IP 140.211.11.130:80
Src-IP 140.211.11.130:80
Router PAT-Table:
87.5.23.4:59323 A
87.5.23.4:59324 B
Prof. Dr. Nikolaus Wulff
192.168.0.2:5000
192.168.0.3:5000
Informatik II
31
Virtuelle Vervielfältigung
• Mit dem PAT/(NAT)-Verfahren lässt sich die
Begrenzung der IP-Adressen beim Provider
durchbrechen.
• Es können virtuell wesentlich mehr Endgeräte am
Netz angeschlossen werden, als Adressen in der
Netzklasse zur Verfügung stehen.
• Voraussetzung sind schnelle Router mit Lookup
Tabellen, welche die Socket Adressen umleiten und
darüber auch Buchführung halten...
Prof. Dr. Nikolaus Wulff
Informatik II
32
Layer V-VII: Beispiel HTTP
• Im Layer V-VII befinden sich die Anwendungen.
• Als Beispiel sei hier das Hypertext Transfer Protokoll
(HTTP) angeführt.
• Ein Client (i.A. ein Web-Browser) richtet eine GET
Anfrage (Request) an einen WWW-Server.
– meistens die Aufforderung eine bestimmte Datei zu senden.
• Der WWW-Server antwortet mit OK wenn er die
Datei findet und überträgt diese als Antwort
(Response). Der Client bestätigt den Eingang und
zeigt die Datei an...
• Ein weiterer Status wird nicht vorgehalten, d.h. HTTP
ist ein zustandsloses Protokoll.
Prof. Dr. Nikolaus Wulff
Informatik II
33
Ablauf einer Sitzung
• Client Request:
GET /Lab4inf/index.html HTTP/1.1
Host: www.lab4inf.fh-muenster.de
\r\n
Leerzeile!
• Server Response:
HTTP/1.1 200 OK
Server: Apache/2.0 (Unix) PHP/5.0.4
Content-Length: (Größe von index.html in Byte)
Content-Language: de (nach ISO 639 und ISO 3166)
Content-Type: text/html
\r\n
Leerzeile!
Daten von index.html
Prof. Dr. Nikolaus Wulff
Informatik II
34
HTTP Request
Prof. Dr. Nikolaus Wulff
Informatik II
35
HTTP Response
Prof. Dr. Nikolaus Wulff
Informatik II
36
Java Netzwerk Unterstützung
Prof. Dr. Nikolaus Wulff
Informatik II
37
Klasse Socket
• Java bietet für die TCP Socket Kommunikation
bereits vorgefertigte Klassen.
Prof. Dr. Nikolaus Wulff
Informatik II
38
Herunterladen