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