Praktikum zur Vorlesung Datenkommunikation Teil I 1 1 Praktikum zur Vorlesung Datenkommunikation Ansprechpartner Rainer Krogull [email protected] Tel. 0241 / 80 - 21 406 URL http://www-i4.informatik.rwth-aachen.de/dk-ma/ 2 2 Praktikum zur Vorlesung Datenkommunikation Inhalt • • • • • Einführung in Netze und Protokolle Das Internetprotokol (IP) Hilfsprotokolle: ICMP, ARP, RARP Transportprotokolle: UDP und TCP Dienstprotokolle: FTP, Telnet, SSH, Finger, POP, SMTP, DNS, HTTP • • Der Netzwerkmonitor (Netmon) TCP/IP-Dienstprogramme 3 3 Internet Protocol Protokolle im TCP/IP-Referenzmodell HTTP Internetprotokolle FTP Telnet IGMP SMTP TCP Schicht 1 Ethernet TokenRing SNMP TFTP UDP ICMP IP RARP DNS ARP Token Bus Wireless Lan 4 4 Internet Protocol IP (Internet Protocol) • Verwendung von logischen 32-bit Adressen • Verschickt Datenpakete in einer transparenten Ende-zu-EndeKommunikation zwischen Rechnern • arbeitet verbindungslos und unzuverlässig • IP-Pakete laufen als Datagramme unabhängig voneinander zum Ziel • • Fragmentieren und Zusammensetzen der Pakete weitere Aufgaben: - Routing - Interoperabilität zwischen verschiedenen Netztypen beheben 5 5 Internet Protocol IP Paket 32 bits (4 Bytes) Version HLEN Type of Service Identification Time to Live Protocol Total Length Flags Fragment Offset Header Checksum IP Header 20 Bytes gross Source Address Destination Address Options (variable) Padding DATA (variable) 6 6 Internet Protocol Fragmentierung Ident. Flags Offset 777 x00 Data 0 0 1200 Bytes IP Header 777 x01 777 511 0 0 x01 64 777 512 x00 128 1023 1024 1200 • Eine zu große oder zu kleine MTU (Maximum Transfer Unit) verhindert eine gute Performance. • Bis auf das letzte Segment, muss die Datenlänge ein Vielfaches von 8 Byte sein. • Wenn das `Don`t Fragment`-Bit gesetzt ist, wird Fragmentierung verhindert. 7 7 Internet Protocol IP Adresse 137.226.12.0 137.226.35.0 137.226.12.1 137.226.35.65 Router 137.226.12.21 • • 137.226.35.66 Binärformat 10001001 11100010 00001100 00010101 Dotted Decimal Notation 137.226.12.21 jeder Host hat (wenigstens) eine weltweit eindeutige IP-Adresse Router oder Gateway haben für jedes angeschlossene Netz eine IP-Adresse 8 8 Internet Protocol Struktur von IP-Adressen 0 8 16 Net 0 Klasse A 10 Klasse B 24 31 Host Net 110 Klasse C 1. Oktett Class A 1 – 126 Class B 128 – 191 Class C 192 – 223 Host Host Net # Netze # Hosts 9 9 Internet Protocol Struktur von IP-Adressen 0 8 16 24 31 Multicast-Adressen 1110 Klasse D: wird für Multicast gebraucht 1111 reserved Klasse E: für zukünftigen Gebrauch reserviert 1. Oktett # Netze # Hosts Class A 1 – 126 126 16777214 Class B 128 – 191 16384 65534 Class C 192 – 223 2097152 254 Class D 224 - 239 Class E 240 - 254 IP Multicast Address Reserved for exp. Purposes 10 10 Internet Protocol Ein Beispiel 137.226.12.211 10001001 Class B Adresse 11100010 Class B Adresse der RWTH Aachen 01110000 11010011 Subnetz (Informatik 4) Terminal 11 11 Internet Protocol IP-Subnetze • mit einer IP-Netzwerk-Adresse können mehrere physikalische Netze adressiert werden • einige Bits der Rechner-Adresse werden als Netzwerk-ID genutzt • eine Subnetz-Maske identifiziert die „missbrauchten“ Bits • alle Hosts eines Netzes sollten die gleiche Subnetz-Maske haben • hierarchisch unterteilt in - Netzwerk-Adresse für physikalisches Netz (z.B. 137.226.0.0) - Rechner-Adresse pro Host des Netzes (z.B. 137.226.12.211) • Rechner-Adressraum meist weiter unterteilt in Subnetz- und Rechner-Adresse 12 12 Internet Protocol IP-Subnetze - ein Beispiel 120 . 2 . 35 . 210 0111 1000 0000 0010 0010 0011 1101 0010 IP Adresse AND 255 . 255 . 0 . 0 1111 1111 1111 1111 0000 0000 0000 0000 Subnetz Maske 120 . 2 . 0 . 0 0111 1000 0000 0010 0000 0000 0000 0000 Aufteilen der IP Adresse 13 13 Internet Protocol IP-Subnetze – ein weiteres Beispiel 137 . . 226 12 11100010 0111 1000 10001001 00001100 . 255 . 21 00010101 IP Adresse AND 255 . 255 . 0 1111 1111 1111 1111 1111 1111 0000 0000 Subnetz Maske 137 . 226 . 12 . 0 1000 1001 1110 0010 0000 1100 0000 0000 Aufteilen der IP Adresse 14 14 Internet Protocol Subnetz Beispiel Zugeteilte Netzwerkadressen für Informatik IV und das Lehr- und Forschungsgebiet (LuFG) 137.226.12.0 Info IV 137.226.35.0/29 ( = 8 Rechner ) 137.226.59.0/24 LuFG 137.226.113.0 • Subnetzmaske für die Teilnetze = 255.255.255.0 • 254 Rechner pro Teilnetz • andere Notationsweise ist die Angabe der Präfixlänge zu einer IPAdresse (Bsp. /24) 15 15 Internet Protocol TCP-IP Dienstprogramme Hostname Zeigt den Namen des aktuellen Hosts an. Ipconfig [/all] Zeigt alle aktuellen TCP/IP-Netzwerkkonfigurationswerte an. Dieser Befehl ist insbesondere auf Systemen nützlich, die DHCP ausführen. Mit ihm können die Benutzer ermitteln, welche TCP/IP-Konfigurationswerte von DHCP konfiguriert wurden. Ohne Angabe von Parametern zeigt das Dienstprogramm ipconfig alle aktuellen TCP/IP-Konfigurationswerte an, einschließlich IP-Adresse und Subnetzmaske. Parameter: all Erstellt eine vollständige Anzeige. Ohne diesen Parameter zeigt ipconfig nur die IP-Adresse, die Subnetzmaske und das Standard-Gateway für jede Netzwerkkarte an. 16 16 Internet Protocol Netmon Netzwerk Monitor (Netmon) ist ein Programm des Microsoft Systems Management Server (SMS). Mit dem Netzwerk Monitor kann man: • Datenpakete direkt aus dem Netzwerk mitschneiden. • Mitgeschnittenen Netzwerkverkehr anzeigen und filtern. • Pakete von einem anderen Rechner mitschneiden und auf dem lokalen Rechner auswerten. • Mitgeschnittene Pakete verändern und zu Testzwecken ins Netzwerk senden, um Netzwerk Probleme reproduzierbar zu machen. Man kann den Netmon auch als ständigen Überwachungsmonitor konfigurieren, der spezielle Pakete filtert. 17 17 Internet Protocol Netmon Start der Aufzeichnung Adressdatenbank 18 18 Internet Protocol Netmon Ende der Aufzeichnung und Detailbetrachtung der Pakete Statistische Auswertung der Pakete 19 19 Hilfsprotokolle Protokolle im TCP/IP-Referenzmodell HTTP Internetprotokolle FTP Telnet IGMP SMTP TCP Schicht 1 Ethernet TokenRing SNMP TFTP UDP ICMP IP RARP DNS ARP Token Bus Wireless Lan 20 20 Hilfsprotokolle ARP (Address Resolution Protocol) • Der Sender muß die Hardwareadresse des Empfängers kennen, bevor er ein IPPaket direkt verschicken kann. • Mit Hilfe von ARP werden IP- und Hardwareadresse einander zugeordnet • ARP benutzt die lokale Broadcastadresse, um die Hardwareadresse dynamisch zu erhalten. • ARP speichert diese Zuordnungen für einen gewissen Zeitraum in einer Tabelle (arp cache). • Statische Eintragungen in der Tabelle können manuell vorgenommen werden. 21 21 Hilfsprotokolle ARP (Address Resolution Protocol) ARP Request A B C D E ARP Response A 1. 2. 3. B C D E Ein Broadcast wird an alle Stationen im Netzwerk geschickt Nur die Maschine mit der angefragten Adresse sendet eine Antwort Die ARP-Anfrage ist nur gültig im lokalen Netz 22 22 Hilfsprotokolle RARP (Reverse Address Resolution Protocol) • Mit Hilfe von Reverse-ARP werden bekannte Hardwareadressen IP-Adressen zugeordnet. • Ein RARP-Server weist auf eine Anfrage per Broadcast einem Client-Rechner die entsprechende IP-Adresse zu (Bsp. Bootp, DHCP) A B C D E RARP-Server 23 23 Hilfsprotokolle ICMP (Internet Control Message Protocol) • Sendet Fehler- und Kontroll-Nachrichten • ICMP-Nachrichten werden in einem IP-Paket verpackt • ICMP ist ein Debugging-Hilfsmittel ICMP Message Format: IP Header...... Type Code Identifier Checksum Sequence Number Optional Data 24 24 Hilfsprotokolle ICMP (Internet Control Message Protocol) Host ICMP Reply Router ICMP Request Host ICMP Message Router • Information vom Router zum Host oder Host zu Host • Ping benutzt ICMP Nachrichten • Fehlermeldungen werden mit Hilfe von ICMP erzeugt 25 25 Hilfsprotokolle Verschiedene ICMP Typen 0/8 Destination unreachable Paket kann nicht zugestellt werden 792 3 Echo Reply / Echo Request Zustandsantwort / -abfrage 792 4 Source Quench Choke-Paket 792 5 Change Route Format 792 9 Router Advertisement 1256 10 Router Selection 1256 11 Time exceeded for Datagram Time-to-Live hat den Wert 0 792 12 Parameter Problem on Datagram Ungültiges Headerfeld 792 13 / 14 Time Stamp Request / Reply Wie Echo reply, aber mit Zeitstempel 792 15 / 16 Information Request / Reply 792 17 / 18 Address Mask Request / Reply 950 30 Traceroute 1393 31 Datagram Conversion Error 1475 26 26 Hilfsprotokolle TCP-IP Dienstprogramme Ping [-t] [-n Anzahl] [-l Länge] [-f] [-i TTL] [-v TOS] [-s Anzahl] Zielliste Überprüft die Netzwerkverbindung zu einem oder mehreren Remote-Hosts. Dieser Befehl ist nur verfügbar, wenn das TCP/IP-Protokoll installiert wurde. -t Sendet fortlaufend Ping-Signale zum angegebenen Host. -n Sendet die mit Anzahl angegebene Anzahl an ECHO-Paketen. Standardwert ist 4. -l Sendet ECHO-Pakete der mit Länge angegebenen Datenlänge. Standardwert ist 64 Bytes, Maximum ist 8192 Bytes. -f Sendet ein "Nicht fragmentieren"-Flag im Paket. Das Paket wird dadurch von keinem Gateway in der Route fragmentiert. -i Setzt das Feld "Lebensdauer" auf den mit TTL angegebenen Wert. -v Setzt das Feld "Servicetyp" auf den mit TOS angegebenen Wert. Zielliste Gibt die Remote-Hosts an, für die Ping ausgeführt werden soll. Weitere Parameter s. Handbuch 27 27 Hilfsprotokolle TCP-IP Dienstprogramme ARP -a ARP dient zur Anzeige oder Änderung der Übersetzungstabellen, die von ARP (Address Resolution Protocol) für die Umsetzung von IP-Adressen in physische Ethernet- oder Token-Ring-Adressen verwendet werden. Dieser Befehl ist nur verfügbar, wenn das TCP/IP-Protokoll installiert wurde. Zeigt anhand einer TCP/IP-Abfrage alle aktuellen ARP-Einträge an. Bei Angabe von IP_Adr werden nur die IP-Adresse und die physische Adresse des betreffenden Computers angezeigt. Weitere Parameter s. Handbuch 28 28 Hilfsprotokolle TCP-IP Dienstprogramme tracert Zielname Dieses Diagnose-Dienstprogramm ermittelt die Route zu einem Ziel, indem es ICMP-Echopakete (Internet Control Message Protocol) mit unterschiedlichen TTL-Werten (Time-To-Live) sendet. Von jedem Router auf dem Pfad wird erwartet, daß er den TTL-Wert für ein Paket vor dem Weiterleiten um mindestens 1 verkleinert. TTL ist also in Wirklichkeit ein Abschnittszähler. Wenn der TTL-Zähler für ein Paket den Wert Null erreicht, sendet der Router eine "ICMP-Zeitüberschreitung"-Nachricht zur Quelle zurück. Tracert ermittelt die Route, indem es das erste Echopaket mit dem TTL-Wert 1 sendet und den TTL-Wert bei jeder folgenden Übertragung um Eins erhöht, bis das Ziel antwortet oder der TTL-Höchstwert erreicht ist. Die Route wird durch Prüfen der "ICMP-Zeitüberschreitung"-Nachrichten ermittelt, die von den dazwischenliegenden Routern zurückgesendet werden. Beachten Sie, daß einige Router Pakete mit abgelaufenem TTL-Zähler "heimlich" entfernen, so daß sie für tracert unsichtbar sind. 29 29 Hilfsprotokolle Netmon Filterauswahl Rechnerauswahl 30 30 Transportprotokolle Protokolle im TCP/IP-Referenzmodell HTTP Internetprotokolle FTP Telnet IGMP SMTP TCP Schicht 1 Ethernet TokenRing SNMP TFTP UDP ICMP IP RARP DNS ARP Token Bus Wireless L. 31 31 Transportprotokolle UDP und TCP - die Transportschicht A SSH Client IP Network B SSH Server • Die Transportprotokolle sind als Dienste für die Applikationsschicht verfügbar • TCP ist ein verbindungsorientiertes Protokoll, das die Ankunft der Pakete bestätigt • UDP ist ein verbindungsloses und schnelles Protokoll 32 32 Transportprotokolle UDP - so einfach wie möglich Header Format Bit Positon 0 8 16 24 Source Port Destination Port Message Length Checksum 31 Data • • • • • • 8 Byte + Overhead Verbindungslos Keine Bestätigung der Pakete auf der UDP-Schicht Die Checksumme bietet die einzige Möglichkeit die Ankunft der Pakete auf Vollständigkeit zu testen Adressierung des Programms (Applikation) geschieht über Portnummern Im Gegensatz zu TCP erfolgt der Austausch von Informationen schneller 33 33 Transportprotokolle UDP - basierte Applikationen Routing Information Automatic Address Assignment Management Name Service File Transfer DNS BOOTP TFTP SNMP RIP 53 67 / 68 69 161 / 162 520 „Well-Known Ports“ (UDP) • • • Bestätigung der Verbindung erfolgt über die Applikation „Datagramme“ werden fortlaufend in bestimmter Größe gesendet Vorzüge beim Transport von geringen Datenmengen 34 34 Transportprotokolle TCP - die sichere Verbindung • Verbindungsorientiert • Flusskontrollmechanismen • Erzeugt logische Verbindungen zwischen zwei Prozessen: IP address & port number • Zuverlässige Verteilung der Pakete von Ende-zu-Ende • Daten, die zwischen den beiden Kommunikationsstationen ausgetauscht werden, nennt man “Segment” • Segmente werden aus folgenden Gründen ausgetauscht: – Verbindungsaufbau “Three-Way-Handshake” – Vereinbarung der Fenstergröße – Datentransfer – Verschicken der Bestätigungen – Verbindungsabbau 35 35 Transportprotokolle TCP - die sichere Verbindung Header Format Bit Positon 8 0 Source Port 16 24 Destination Port 31 Sequenz Number Acknowledgment Number Offset Res. Flags Window Checksum Urgent Pointer Padding Options Data • • • Adressierung der Applikation über Portnummern Datenpakete haben Sequenz - und Bestätigungsnummern: Flusskontrolle Anwendungen haben keinen Einfluss auf die Grösse der Segmente 36 36 Transportprotokolle Die Verbindung über TCP Client Server SYN, SEQ=100 SYN, SEQ=200, ACK=101 Verbindungsaufbau ACK=201, SEQ=101 „Three-Way-Handshake“ 37 37 Transportprotokolle Die Verbindung über TCP Client Server SEQ=101, ACK=201, Data SEQ=201, ACK=102 Datenübertragung SEQ=102, ACK=201, Data SEQ=201, ACK=103 … 38 38 Transportprotokolle Die Verbindung über TCP Client Server FIN, SEQ=116, ACK=203 SEQ=203, ACK=117 FIN, SEQ=203, ACK=117 Verbindungsende SEQ=117, ACK=204 39 39 Transportprotokolle TCP-basierte Applikationen Routing Information Virtual Terminal World Wide Web File Transfer Electronic Mail FTP telnet 20 / 21 23 SMTP 25 http BGP 80 179 „Well-Known Ports“ (TCP) • Bestätigungen schon auf Schicht 4 • Applikationen werden um einige Arbeitsschritte erleichtert • „Overhead“ durch Bestätigungen 40 40 Transportprotokolle Alles verstanden ? Dann kann nur noch eine helfen .... http://www.wdrmaus.de/sachgeschichten/internet/ 41 41