4.1 Netzwerke / Einführung SS 05 4.1.1 Einleitung, Begriff Protokoll 4.2.1 Begriffe in Rechnernetzen: geschichtetes Protokoll Bild aus [1], S. 234 Es wird am Beispiel des Ablaufes eines Telefongespräches erläutert, in welche unterschiedlichen zeitlich aufeinander folgenden Teile sich ein typisches Gespräch am Telefon gliedern läßt (=Phasen des Nachrichtenaustausches): 1) Begrüßung = Verbindungsaufbau 2) Warum ich anfrufe ... Nutzdatenübertragung 3) Fehlerbehandlung bei Störungen 4) Tschüß ... Verbindungsabbau Die zugrunde liegenden Regeln, die beim Telefonieren beachtet werden (z.B. man legt nicht einfach auf, ohne sich zu verabschieden, usw.) werden im Sprachgebrauch der Netzwerke als Protokoll bezeichnet. 4.2 Netzwerke / Protokolle [1], S236, Abb. 8.8 Erläuterung des Begriffes geschichtetes Protokoll am Beispiel des Telefons. Das Protokoll des Telefonierens (oder genauer der Protokollschicht "Gespräch führen") ist weitgehend unabhängig von der Telefontechnologie, d.h. die Regeln beim Telefonieren gelten unabhängig davon, wie die Sprache technisch zwischen der beiden Partnern beim Telefonieren ausgetauscht wird. Es entsteht dabei der Eindruck das man mit dem Teilnehmer am anderen Ende der Leitung direkt spricht (die Protokollschicht "Gespräch führen" beschreibt also die Regeln der Kommuniaktion zwischen zwei Gesprächspartner) und nicht den Telefonapparat als Gesprächspartner hat, obwohl das Gespräch damit übertragen wird. In dieser Betrachtungsweise dient der Telefonapparat lediglich als Schnittstelle, um die Daten zu übermitteln. Jeder Teilnehmer muß wissen, wie diese Schnittstelle zu bedienen ist (Wählen, Hörer richtig halten), ohne, daß es erforderlich wäre, zu verstehen, wie die darunter liegende Übertragung durch die Leitungen der Telekom und die Vermittlungsstellen funktioniert. Für die darunter liegende Sprachübertragung gibt es dann weitere technische Protokolle (darunter liegende Protokollschichten), die elektrische Signalübertragung festlegen (z.B. ISDN, analoges Telefon [Tonwahl, Impulswahl]) SS 05 4.2.1 Begriffe in Rechnernetzen: geschichtetes Protokoll ● 4.2 Netzwerke / Protokolle SS 05 SAP hier: Service Access Point [1], S. 237, Abb. 8.9 Die Kommunikationspartner, die zwar tatsächlich über darunter liegende Protokollschichten (durch die Nutzung von Schnittstellen, sogenannten Service Access Points (SAP)) mit einander kommunizieren, aber in der Betrachtungsweise der geschichteten Protokolle Daten mit dem Kommunikationspartner auf der gleichen Protokollebene am anderen Ende der Übertragung austauschen, diese Kommunikationspartner bezeichnet man als Peers. Der Kommunikationsfluß zwischen ihnen wird als virtuelle Kommunikation bezeichnet, der Kommunikationsfluß zwischen den Protokollschichten wird als realer Kommunikationsfluß bezeichnet. 4.2 Netzwerke / Protokolle SS 05 4.2.2 Arten der Kommunikation (Fortsetzung) ● Klassifikation nach der Empfängerzahl – Datenübertragung zwischen einem Sender und einem Empfänger: Punkt-zu-Punkt-Kommunikation (Unicast, Peer to Peer) – Übertragung zwischen einem Sender und allen möglichen Empfängern in Netz: Broadcast – Übertragung Sender und einer echten Teilmenge der möglichen Empfänger: Multicast 4.3 Netzwerke / Ehernet 4.5 Netzwerke / Nachrichtenübertragung (2) SS 06 SS 06 4.5.2 Ethernet Eigenschaften Ethernet: Bus-Technologie ● LAN (Local [100m] Area Network) mit Bus-Topologie ● Übertragung mit 10 MBit/s, 100MBit/s (Fast Ethernet), 1000MBit/s = 1GBit/s (Gigabit Ethernet) ● MTU (Maximum Transfer Unit): maximal 1500 Byte Nutzdaten ● Netzzugang: CSMA/CD (Kollisionen möglich, Behandlung mit: Carrier Sense, Multiple Access with Collision Detection) ● 6-Byte Adressen, die von Hersteller vergeben werden und für jede (Ethernet) Netzwerkkarte weltweit eindeutig sind, Bezeichnung: Ethernet- oder MAC-Adresse (Media Access Control). [Oberbegriff: Hardware-, physische, physikalische Adresse, d.h. Ehternet ist ein Beispiel für eine Hardware-... Adresse] Beispiel: 00:0E:35:1F:27:0C Das Bild zeigt einen typischen Ethernet Stecker (RJ 45 - Stecker) – In diesem Beispiel liefert http://standards.ieee.org/regauth/oui/index.shtml: 00-0E-35 (hex) Intel Corp, 2111 NE 25th Ave, JF3420, Hillsboro OR 97123, UNITED STATES 4.2 Netzwerke / Protokolle SS 06 4.2.2 Begriffe in Rechnernetzen: Nachricht, Protokoll Frage: Wie werden die Daten in Rechnernetzen übertragen? – – 4.5 Netzwerke / Nachrichtenübertragung (2) 4.5.3 Ethernet Datenübertragung – Nachricht ● Folge von Bits oder Bytes (allgemeiner: Zeichen), die zu Paketen (Frames, Rahmen) zusammengefasst werden ● Konvention zur Kodierung von Informationen Kommunikationsprotokoll ● Aussehen und Bedeutung der Pakete (Daten/Steuerpakete) ● zulässige Abfolgen beim Austausch der Pakete Typischer Inhalt eines Datenpaketes: Die Informationen werden mit der Zeit von links nach rechts übertragen [1], S. 235, Abb. 8.7, schematischer Aufbau eines Daten-Paktes (Kopf [Header], Körper [Body], Ende [Schwanz, Trailer]) ● mit /ohne Kollision: [1], S. 244, Abb. 8.14: ● Sendeversuch bei belegtem Bus ● Sendeversuch bei freiem Bus ● gleichzeitiges Abhören / Senden ● Kollision erkennen ● Sendung abbrechen Hinweis: Weitere Technologien ● Wireless LAN ● Bluetooth ● ... SS 05 4.7 Internet Protocol (IP) SS 06 4.7 Internet Protocol (IP) 4.7.1 Übersicht 4.7.3 Protokollschichten (Fortsetzung) Internet Protocol (1969, 1975, 1983) ● – ● ● Version 4: 4 Byte [32-Bit] IP-Adressen (Version 6: 128 Bit) ● Adressen werden zusätzlich zu den Adressen der Verbindungsschicht (z.B. Ethernet-Adressen) verwendet – ● ● Adresse wird durch 4 Zahlen angegeben: 141.22.110.160 jede Zahl steht für ein Byte => zwischen 0 .. 255 – Adressen sind unabhängig von der Technologie des verwendeten Netzwerkes rp217n35:~ # arp -a rp217n35:~ # SS 06 IP-Adresse der Maschinen ist keine offizielle Adresse, können benutzt werden, ohne dass es eine Maschine im Internet mit dieser Adresse gibt. Dadurch wird vermieden, dass der Zugriff auf offizielle Internet-Maschinen verloren geht. – 4.7 Internet Protocol (IP) Masquerading (Ein Computer gibt sich als Absender aller IP- Pakte eines gesamten Netzwerkes aus und ändert Portnummern und IP-Adressen) ● NAT Network Address Translation SS 06 4.7.6 Protokollschicht Transport, UDP ● Innerhalb der IP-Protokoll-Familie unterscheidet man zwei Unterprotokolle: – Zugang zum Internet soll möglich sein erforderlich: Adressumsetzung, Begriffe: ● Broadcast (=Nachricht an alle ): Wer hat IP-Adresse a.b.c.d ? Typisch: Wiederholung der Abfrage nach einigen Minuten. ? (141.22.110.1) at 00:00:0C:FE:FC:C0 [ether] on eth0 sr216n02.rzbd.haw-ham... (141.22.110.2) at 08:00:06:05:53:89 [ether] on eth0 Für private Zwecke reservierte IP-Adressen – In der Regel: dynamischer Aufbau (d.h. automatisch zur Laufzeit) – 4.8.6 Bereiche privater Netzwerkadressen ● Tabelle: Zuordnung IP-Adresse zur physikalischen-Adresse Netzwerkes (z.B. Ethernetadresse) ● Ethernet: 6 Byte vom Hersteller der Karte bei der Produktion festgelegt Beispiel: Auto Fahrgestellnummer (entspricht Ethernetadresse) und Kennzeichen (entspricht IP-Adresse) 4.8 IP - Routing Netzzugangnsschicht (Fortsetzung) – eigene Adressierung – SS 06 – User Datagramm Protokoll (UDP) ● Verbindungslos (wie Briefpost), „unzuverlässig“ ● minimaler Protokolloverhead ● Query/Response Anwendungen Transmission Control Protokoll (TCP) ● zuverlässiger verbindungsorientierter Datentransport (wie Telefon): ● Reihenfolge richtig 172.16.0.0 bis 172.31.255.255 (172.16.0.0/12, Class B) ● Algorithmus: Positiv Acknowledgement with Retransmission (PAR) 192.168.0.0 bis 192.168.255.255 (192.168.0.0/16, Class C) ● Verbindungsorientiert – 10.0.0.0 bis 10.255.255.255 (10.0.0.0/8, Class A) – – – logische Rechner-zu-Rechner-Verbindung durch Übertragung von Kontrollinformationen (Handshake): Verbindungsaufbau, Verbindungsabbau SS 05 4.8 IP - Routing 4.8 IP - Routing 4.8.1 Übersicht 4.8.3 IP-Adressen und Routing ● ● ● SS 06 IP-Adresse: 32-Bit (= 4 Byte) Die 32 Bit werden in einen „Landschaft“ mit Hosts und Gateways: – Physikalische Netze unterschiedlich – Frage: Wie gelangt ein Datenpaktet von A1 zu C1 Beispiel: Host A1 im Tokenring sendet Paket über Gateways G1 und X.25 Netz zu Gateway G2, das die Pakete über ein Ethernet an Host C1 übermittelt – Netzwerk-Teil (Netzwerk-Adress-Bits) und einen – Host-Teil (Host-Adress-Bits) aufgeteilt. Diese Unterteilung wird im Absendersystem eines IP-Paktes herangezogen, um anhand der IP-Zieladresse zu entscheiden, an welches Computersystem im Netzwerk das Paket im nächsten Schritt weiterzuleiten ist. – Zwei Fälle: – ● Host-Teil stimmt überein => System im gleichen Netz ● Host-Teil verschieden => Datenpaket an ein Gateway weiterleiten. Das Gateway nimmt dann die Weiterleitung anhand seiner Konfiguration vor Beispiel: IP 141.22.117.69, Netzwerkteil 22 Bit 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 Byte 1 SS 06 4.8 IP - Routing – Umfasst ebenfalls 32 Bit – Netzwerk-Teil mit 1 Bits gekennzeichnet – Mögliche Zahlenwerte für die Netzmaske: IP-Adresse: 141.22.117.69 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 Netzmaske: 255.255.252.0 Byte 3 Byte 4 Netzwerkteil Hostteil 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 Byte 1 Byte 2 Byte 3 ● SS 05 Routing Table für Hosts (Host=Computer im Netzwerk) – 8 Bit: 255; 7 Bit: 254, 6 Bit: 252, 5 Bit: 248, 4 Bit: 240, 3 Bit: 224, 2 Bit: 192, 1 Bit: 128 Byte 2 Byte 4 4.8.6 Routingtabellen Netzmaske legt Aufteilung der IP-Adresse fest Byte 1 Byte 3 4.8 IP - Routing 4.8.3 IP-Adressen und Routing ● Byte 2 Byte 4 ● Ziel im lokalem Netzwerk ● Ziel im entfernten Netzwerk: Gateway nutzen Routing-Entscheidung: Tabellen Analyse ● von „Hand“ administriert ● Wird für alle empfangenen Pakete von oben nach unten durchlaufen ● Flags: U=up, G=Gateway ● Default: 0.0.0.0 (Maske 0.0.0.0), Gateway muss im lokalen Subnetz sein) rp217n35:~ # netstat -nr Kernel IP routing table Destination Gateway 127.0.0.0 * 141.22.116.0 * 0.0.0.0 172.16.12.1 Genmask 255.0.0.0 255.255.254.0 0.0.0.0 Flags U U UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface lo eth0 eth0 SS 06 SS 06 Nutzdatenübertragung von pc-xxx zum Server rp217n35 Prozess pc-xxx PuTTy Router (Standardgateway) Nutzdatenübertragung von pc-xxx zum Server rp217n35 rp217n35 sshd ... ... 1171 ... ... ... TCP UDP IP Ethernet pc-xxx PuTTy Netzwerkprogrammmodule des Betriebssystems 22 ... TCP IP (Routing [Tabelle]) Ethernet Ethernet ... rp217n35 sshd Router (Standardgateway) ... ... ... UDP IP Ethernet 1171 ... ... ... 22 ... TCP UDP TCP IP (Routing [Tabelle]) Ethernet Ethernet IP Ethernet 141.22.112.1 141.22.112.37 00-01-02-16-25-10 00-01-02-B2-F1-27 Netzmaske 255.255.255.0 ... ... UDP IP Ethernet 141.22.117.69 141.22.116.1 00-01-02-B6-F5-FC 00-01-02-16-25-11 Netzmaske 255.255.254.0 SS 06 SS 06 Nutzdatenübertragung von pc-xxx zum Server rp217n35 pc-xxx PuTTy Router (Standardgateway) Nutzdatenübertragung von pc-xxx zum Server rp217n35 rp217n35 sshd ... ... 1171 ... ... ... 22 ... TCP UDP TCP IP Ethernet IP (Routing [Tabelle]) Ethernet Ethernet 141.22.112.1 141.22.112.37 00-01-02-16-25-10 00-01-02-B2-F1-27 Netzmaske 255.255.255.0 Ethernet: Abs.: 00-01-02-B2-F1-27 Empf.: 00-01-02-16-25-10 Datenpaket 1 IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... pc-xxx PuTTy ... rp217n35 sshd Router (Standardgateway) ... ... ... UDP IP Ethernet 1171 ... ... ... 22 ... TCP UDP TCP IP Ethernet 141.22.117.69 00-01-02-B6-F5-FC Ethernet: Abs.: 00-01-02-B2-F1-27 Empf.: 00-01-02-16-25-10 IP (Routing [Tabelle]) Ethernet Ethernet ... IP Ethernet 141.22.117.69 141.22.116.1 00-01-02-B6-F5-FC 00-01-02-16-25-11 Netzmaske 255.255.254.0 Ethernet: Abs.: 00-01-02-16-25-11 Empf.: 00-01-02-B6-F5-FC Datenpaket 1 IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... ... UDP IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 IP-Teil bleibt unverändert TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... Datenpaket 2 SS 06 SS 06 Nutzdatenübertragung von pc-xxx zum Server rp217n35 pc-xxx PuTTy Nutzdatenübertragung von pc-xxx zum Server rp217n35 rp217n35 sshd Router (Standardgateway) pc-xxx PuTTy ... ... 1171 ... ... ... 22 ... TCP UDP TCP IP (Routing [Tabelle]) Ethernet Ethernet IP Ethernet ... rp217n35 sshd Router (Standardgateway) ... ... ... 1171 ... ... ... 22 ... TCP UDP TCP UDP IP Ethernet IP (Routing [Tabelle]) Ethernet Ethernet IP Ethernet 141.22.117.69 00-01-02-B6-F5-FC Ethernet: Abs.: 00-01-02-16-25-11 Empf.: 00-01-02-B6-F5-FC Datenpaket 2 TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... Präzisierung: ● Bei UDP kann sich genau ein Prozess beim Betriebssystem registrieren, um die Nutzdaten zu erhalten, die an einen Port gesendet werden. ● Bei TCP ist das etwas komplizierter (s.o.): viele Verbindungen über einen Port möglich. Ethernet: Abs.: 00-01-02-16-25-11 Empf.: 00-01-02-B6-F5-FC IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 Datenpaket 2 TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... SS 06 Nutzdatenübertragung von pc-xxx zum Server rp217n35 Prozess pc-xxx PuTTy ... ... TCP UDP IP Ethernet 4.8.5 Routing durch Netze /Subnetze, Beispiel rp217n35 sshd ● ... ... 1171 ... Netzwerkprogrammmodule des Betriebssystems 22 ... TCP IP (Routing [Tabelle]) Ethernet Ethernet 141.22.112.1 141.22.112.37 00-01-02-16-25-10 00-01-02-B2-F1-27 Netzmaske 255.255.255.0 Ethernet: Abs.: 00-01-02-B2-F1-27 Empf.: 00-01-02-16-25-10 TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... ... IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 IP-Teil bleibt unverändert TCP: Abs: 1171 Empf.: 22 ... Nutzdaten ... lokale Änderung der Aufteilung Host/Netzadresse = Netzwerk innerhalb eines größeren Netzwerkes DFN ... UDP IP Ethernet 141.22.117.69 141.22.116.1 00-01-02-B6-F5-FC 00-01-02-16-25-11 Netzmaske 255.255.254.0 Ethernet: Abs.: 00-01-02-16-25-11 Empf.: 00-01-02-B6-F5-FC Datenpaket 1 IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 SS 05 4.8 IP - Routing Router (Standardgateway) ... IP Ethernet 141.22.117.69 00-01-02-B6-F5-FC IP: Abs: 141.22.112.37 Empf.: 141.22.117.69 ... UDP Datenpaket 2 IP-Adresse 134.100.0.0 134.28.0.0 141.22.0.0 0.0.0.0 Netzmaske 255.255.0.0 255.255.0.0 255.255.0.0 0.0.0.0 Anschluß 1 2 3 0 HAW Netzversorgung IP-Adresse 141.22.110.0 141.22.112.0 ... 0.0.0.0 ISC Netzmaske Anschluß 255.255.254.0 1 255.255.255.0 1 ... ... 0.0.0.0 0 ... 0 1 2 3 0 1 2 .. TU Harburg Internet Uni Hamburg HAW RZBD IP-Adresse 141.22.110.0 141.22.111.0 141.22.112.0 0.0.0.0 Netzmaske Anschluß 255.255.255.0 1 255.255.255.0 2 255.255.255.0 3 0.0.0.0 0 0 1 2 3 ... PC PC ... PC PC ... PC PC 4.7 Internet Protocol (IP) SS 06 4.7 Internet Protocol (IP) 4.7.11 TCP/IP Verbindung / Sockets ● 4.7.11 TCP/IP Verbindung / Sockets Vorbemerkung: Standarddienste auf einem Server werden über festgelegte Ports erreicht, Beispiele: – ● Unterschied UDP zu TCP: Verbindungsaufbau – ● http/www: TCP Port 80, ● ssh (PuTTy): TCP Port 22, ● Mail: TCP Port 25 ● Internet Namensdienst (DNS): UDP Port 42 (alt), TCP Port 53 – Hinweis TCP und UDP Port-Nummern können völlig unabhängig von einander benutzt werden: Der Verbindungsaufbau erfolgt gerichtet: ● Von einem Computersystem A ● zu einem Computersystem B (wird auch als Server bezeichnet) Schritt 1: Ein Prozess des Systems B registriert sich beim Betriebssystem, um eingehende Verbindungswünsche für einen TCP-Port zu bearbeiten. ● ● Für die Port-Nummern werden bei UDP und TCP 16 Bit genutzt ● Damit stehen 65536 UDP Ports zur Verfügung ● und zusätzlich 65536 TCP Ports (insgesamt 131072) 4.7 Internet Protocol (IP) SS 06 – Schritt 1: Ein Prozess des Systems B registriert sich ... – Schritt 2: Ein Prozess des Systems A baut eine Verbindung zu System B auf: – – – ● IP-Adresse System B und TCP-Port B Paket ist als Paket zum Verbindungsaufbau gekennzeichnet, d.h. das sogenannte Syn-Bit ist gesetzt. Beispiel Telefon: Jemand hebt den Hörer ab und wählt eine Nummer, um einen anderen anzurufen Es werden weitere Datenpakete ausgetauscht (3-Wege Handshake) und damit ist die Verbindung aufgebaut – Beispiel Telefon: Es klingelt beim Empfänger und der Hörer wird abgenommen. SS 06 4.7.11 TCP/IP Verbindung / Sockets – Schritt 1: Ein Prozess des Systems B registriert sich ... – Schritt 2: Ein Prozess des Systems A baut Verbindung auf ... – Schritt 3: Die Prozesse auf System A und B können nun jeweils Daten über die Verbindung senden und empfangen. Dafür wird ein Datenpaket von A nach B geschickt, erforderlich: – Vergleich mit dem Telefonieren: Jemand setzt sich neben das Telefon, um Anrufe entgegen zu nehmen und wartet auf einen Anruf. 4.7 Internet Protocol (IP) 4.7.11 TCP/IP Verbindung / Sockets ● SS 06 – ● ● Beispiel Telefon: Es kann auf beiden Seiten gesprochen werden ● Für verschiedene Anwendungen sind unterschiedliche Protokolle erforderlich: http, https, ftp, ssh, ... Schritt 4: Ein neuer Prozess auf System B kann sich registrieren, um neue eingehende Verbindungswünsche für den gleichen TCP-Port zu bearbeiten. Wie werden eintreffende Datenpakete den Prozessen zugeordnet? ->Nächste Folie 4.7 Internet Protocol (IP) SS 06 4.7.11 TCP/IP Verbindung / Sockets ● Wie werden eintreffende Datenpakete den Prozessen zugeordnet ? – Es werden alle 4 folgenden Informationen (die jedes Datenpaket enthält) verwendet: ● Absender IP-Adresse, Absender TCP-Port-Nummer ● Empfänger IP-Adresse, Empfänger TCP-Port-Nummer ● Allgemein wird das folgende Paar als Socket (engl. Sockel) bezeichnet: – – ● Man unterscheidet bei einem Datenpaket also: – – – IP-Adresse Port-Nummer Absender-Socket Empfänger-Socket Damit ist eine Verbindung durch ein Socket-Paar festgelegt.