Inhalt Teil 4: Datenkommunikation • ISO/OSI Schichtenmodell • Ethernet und TCP/IP Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 1 Netzwerke Arten von Netzwerken: • LAN („Local Area Network“): Abstand der Rechner untereinander max. einige hundert Meter; in privater Hand ! Beispiele für verschiedene LAN-Technologien: Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Wireless LAN (IEEE 802.11) • MAN („Metropolitain Area Network“): Rechnernetz ist auf eine bestimmte Region (z.B. eine Stadt) beschränkt • WAN („Wide Area Network“): Rechnernetz erstreckt sich über mehrere Länder und Kontinente und verbindet mehrere LANs und MANs miteinander; Benutzung öffentlicher Datenwege Beispiele: Telefonnetzwerk (Public Switched Telephone Network, PSTN), ARPANET (Advanced Research Projects Agency Network, 1969-1990), Datex-P (X.25), Internet, BelWü, DFN Gigabit Wissenschaftsnetz (G-WiN) Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 2 Netzwerktopologien • Bus alle Knoten teilen sich eine Datenleitung; dezentrale Steuerung; einfache Realisierung und Erweiterbarkeit Nachteile: Leitungslänge begrenzt, Zugriffskonflikte • Stern von einem zentralen Vermittlungsknoten besteht eine Punkt-zu-Punkt Verbindung zu jedem anderen Knoten; einfache, zentrale Steuerung; Ausfall einer Leitung hat nur lokale Folgen; einfache Realisierung Nachteile: hohe Leistungs- und Zuverlässigkeitsanforderungen an Zentralknoten • Ring jeder Knoten ist mit genau zwei Nachbarknoten verbunden; einfache dezentrale Steuerung mittels „Token“ Nachteile: Knoten- oder Leitungsausfall bewirkt Totalausfall des Netzwerks, lange Wege Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 3 Netzwerktopologien (Forts.) • Baum: Kommunikation zwischen zwei Knoten erfolgt immer über die in der Hierarchie höheren Knoten bis zu dem ersten beiden Unterbäumen gemeinsamen Knoten Nachteile: Ausfall oder Überlastung eines in der Hierarchie höher liegenden Knotens oder einer Leitung betrifft alle niedrigeren Knoten; Anforderung an Leistung und Zuverlässigkeit der Knoten und Leitungen wächst im Baum von unten nach oben • Maschennetz: jeder Knoten ist mit mindestens zwei, i.a. jedoch mit mehreren anderen Knoten direkt verbunden; hohe Ausfallsicherheit und hohe Leistung (durch parallele Verbindungen) bei großem Vermaschungsgrad Nachteile: hoher Aufwand für die große Anzahl von Verbindungen; hohe Kosten; aufwendige Steuerung. Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 4 Kopplung von Netzwerken • Kopplungseinheiten dienen der Verbindung von Netzwerken • verschiedene Ziele bei der Kopplung von Netzwerken, z.B.: – Überwindung der physikalisch bedingten maximalen Ausdehnung eines Netzwerks (z.B. aufgrund der Leitungslänge) – Erhöhung der Knotenzahl – logische Trennung von Netzwerksegmenten zur Reduzierung der Netzlast • mögliche Aufgaben einer Kopplungseinheit sind: – – – – Adreßumwandlung Wegewahl (Routing) Zusammensetzen von Paketen und Aufteilung in Pakete anderer Größe Fehlerkontrolle • Die Schicht im ISO/OSI-Referenzmodell, auf der eine Kopplungseinheit operiert, bestimmt den Funktionsumfang. Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 5 Kopplung von Netzwerken (Forts.) • ein Repeater dient der reinen Signalverstärkung auf der untersten (physikalischen) Schicht und somit der einfachen Verbindung von zwei Netzwerksegmenten • Protokolle aller darüberliegenden Schichten müssen gleich sein ! • ein Hub ist ein Repeater mit mehr als zwei Netzanschlüssen Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 6 Kopplung von Netzwerken (Forts.) • eine Brücke („Bridge“) – verbindet i.a. zwei Netze mit unterschiedlichen Übertragungsmedien – arbeitet auf der Sicherungsschicht, d.h. sie führt vor der Weiterleitung der Daten eine Fehlerbehandlung durch – leistet eine logische Trennung von Netzen: nur Pakete mit nichtlokalen Zieladressen werden in das angekoppelte Subnetz übertragen • ein Switch ist eine Brücke mit mehr als zwei Netzanschlüssen Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 7 Kopplung von Netzwerken (Forts.) • ein Router – verbindet Netze mit unterschiedlichen Topologien, Netzwerktechnologien und Netzwerkprotokollen – operiert auf Vermittlungsschicht: bei mehreren alternativen Pfaden kann Router einen Weg zum Zielknoten auswählen – wertet die in Paketen enthaltenen Adressangaben aus und legt interne Routing-Tabellen zur Bestimmung optimaler Wege an Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 8 Ethernet • weltweit sehr verbreitete LAN-Technologie • historische Entwicklung: – 1976 im Xerox Palo Alto Research Center entwickelt – 1980 erster Standard von Xerox, DEC und Intel – 1983 erster IEEE Standard 802.3 • leistet ungesicherte Übertragung von Paketen mit verschiedenen Übertragungsmedien und Übertragungsgeschwindigkeiten • verschiedene Standards: Bezeichnung Standard „thickwire“ Ethernet 10Base5 „thinwire“ Ethernet 10Base2 Ethernet Fast Ethernet Gigabit Ethernet 10BaseT 100BaseT 1000BaseT Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Übertragungsmedium 10 mm ∅ Koaxialkabel 5 mm ∅ Koaxialkabel 2 „twisted pair“ Kabel 2 „twisted pair“ Kabel 4 „twisted pair“ Kabel Bitrate 10 MBit/s 10 MBit/s Topologie Bus (< 500m) Bus (< 185m) 10 MBit/s Stern 100 MBit/s Stern 1000 MBit/s Stern Kapitel 4.2 : Ethernet und TCP/IP 9 Ethernet Protokoll Standard-Protokoll für Halb-Duplex Betrieb: CSMA/CD 1) Wenn ein Rechner A Daten senden möchte, prüft er zunächst, ob der Übertragungskanal frei ist (CS = „Carrier Sense“) 2) Sobald Kanal frei ist, beginnt Rechner A mit der Datenübertragung 3) Gleichzeitig hört Rechner den Datenkanal ab und vergleicht gesendetes Signal mit abgehörtem Signal 4) Hat ein anderer Rechner B (fast) gleichzeitig mit einer Übertragung begonnen (MA = „Multiple Access“), wird eine Kollision festgestellt (CD = „Collision Detect“). Bei Vorliegen einer Kollision: 5) Rechner A sendet spezielle „Jam“-Signale, um andere Rechner am Netz von der Ungültigkeit der gesendeten Daten zu informieren 6) Rechner A wartet eine zufällig gewählte Zeitspanne und beginnt Übertragung erneut mit Punkt 1) Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 10 Ethernet Paket • Aufbau eines Ethernet Paketes (Größe: 64-1516 Bytes): • Bedeutung der Komponenten: – „preamble“: 56-Bit Muster zur Synchronisation (gibt dem Empfänger Zeit, ein Signal auf dem Kanal zu erkennen und Lesevorgang zu starten) – „destination address“: physikalische 6-Byte Adresse des Zielrechners, eine Multicast-Adresse für eine bestimmte Gruppe von Zielrechnern oder eine Broadcast-Adresse (alle 48 Bit auf 1 gesetzt) – „source address“: eindeutige physikalische 6-Byte Adresse des sendenden Rechners; in den ersten 3 Byte ist Hersteller/Modell kodiert – „length“: Länge des Datenfeldes (in Byte) – „data“: zu übertragende Daten (46-1500 Byte); ggf. werden Null-Bytes eingefügt, um eine minimale Paketlänge von 64 Byte zu erreichen – „checksum“ : 32-Bit CRC Rest Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 11 Ethernet Timing • „propagation delay“ τ – maximale Zeit τ, die ein Paket benötigen darf, um von einem Ende eines Netzwerks zum anderen Ende transportiert zu werden – legt maximale Kabellänge und maximale Anzahl der Repeater fest • „round trip time“ („slot time“, 2 × τ) – minimale Zeit, in der auch der entfernteste Rechner am Netzwerk eine Kollision erkennen und ein „Jam“-Signal zurücksenden kann ! – wurde für 10/100 MBit/s Ethernet festgelegt als die Übertragungszeit für 512 Bit, also 51,2 µs bzw. 5,12 µs – hieraus resultiert eine minimale Paketlänge von 64 Byte • „interpacket gap“: – minimale Zeit, die ein Knoten vor dem Versenden eines weiteren Paketes warten muß – Übertragungszeit von 96 Bit, bei 10/100 MBit/s also 9,6 µs bzw. 0,96 µs – ermöglicht auch anderen Knoten, ein Paket zu senden (⇒ Fairness !) Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 12 TCP/IP • Abk. für „Transmittion Control Protocol / Internet Protocol“ • ursprünglich vor über 30 Jahren als Standard-Protokoll des (D)ARPANET entwickelt, heute das Protokoll des Internet • hohe Popularität, da bereits seit 1982 in jeder Berkeley UnixImplementierung verfügbar; heute auf jeder Plattform vorhanden • technologieunabhängige Protokolle für ISO/OSI-Schichten 3 + 4 • Einordnung in ISO/OSI-Modell: Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 13 IP Protokoll • Protokoll der Netzwerkschicht für eine paketvermittelte (d.h. verbindungslose) Datenübertragung zwischen zwei Netzwerkknoten A und B • von der Transportschicht übernommene Nachrichten werden in kleinere Pakete aufgeteilt und unbestätigt über das Netzwerk übertragen (⇒ keine gesicherte Übertragung, Verlust von Paketen ist möglich !) • Pakete können über Netzwerke unterschiedlicher Technologie transportiert werden • dynamisches Routing: Pakete einer Datenübertragung können unterschiedliche Wege nehmen • Verwendung globaler logischer Adressen (IP-Adressen) zur Adressierung aller Netzwerkknoten (32-Bit Adressen in IP Version 4, 128-Bit Adressen in IP Version 6) Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 14 IP Protokoll (Forts.) • Aufbau eines IP Paketes: – – – – – – – – „version“: IP Versionsnummer (z. Zt. IPv4) „length“: Länge des Headers (in Bytes) „type of service“: angeforderte Service-Qualität (z.B. „normal, priority“) „packet length“: Länge des Gesamt-Paketes (in Bytes) „identification“: Name des Datenübertragung, zu der ein Paket gehört „flags“ und „offset“: Angaben zum Paket (Position, noch weitere Pakete ?) „time-to-live“: max. Zeit, die ein Paket im Netzwerk verbleiben darf „header checksum“: CRC Prüfsumme, nur für Header ! Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 15 IP Adressen • jeder Host und jeder Router im Internet verfügt über eine ihm zugeteilte 32-Bit IP Adresse • 5 verschiedene Klassen von IP-Adressen legen unterschiedlich große Netzwerke fest: • jedes Netzwerk der Klassen A, B oder C kann in Subnetzwerke aufgeteilt werden, indem die „host ID“ in zwei Teile unterteilt wird: „subnet ID“ und neue „host ID“, z.B. für Klasse B: Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 16 IP Adressen (Forts.) • spezielle IP Adressen: • den IP-Adressen werden symbolische Namen zugeordnet, z.B.: 134.60.73.1 = neuro.informatik.uni-ulm.de • mittels des DNS-Namendienstes („Domain Name Service“) kann die IP-Adresse eines Rechners anhand des symbolischen Namens ermittelt werden • ARP-Protokoll dient der Abbildung von 32-Bit IP-Adressen auf physikalische 48-Bit Ethernet-Adressen Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 17 TCP Protokoll • verbindungsorientiertes Protokoll der Transportschicht zwischen zwei Endknoten einer Datenübertragung • ermöglicht Übertragung eines (byte-orientierten) Datenstroms vom Sender zum Empfänger • leistet sichere Übertragung: TCP erkennt und fordert fehlende Pakete erneut an, sortiert Pakete ggf. in korrekter Reihenfolge • Schnittstellen zum TCP bilden vom Anwendungsprogramm vergebene Kommunikationspunkte (sogenannte „Ports“), die durch 16-Bit Portnummern angegeben werden • Portnummern für Standard-Anwendungen sind festgelegt (z.B.: 7 für Echo, 21 für ftp, 23 für telnet, 25 für smtp, 80 für http, ...) • als TSAP („Transport Service Access Point “) bezeichnet man die Kombination aus IP-Adresse und Portnummer Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 18 TCP Protokoll (Forts.) • Aufbau eines TCP Paketes: – – – – „source/destination port“ : End-Kommunikationspunkte auf beiden Seiten „sequence number“: Nummer des ersten gesendeten Bytes im Paket „acknowledgement number“: Nummer des nächsten erwarteten Bytes „flags“: Kennzeichnung spezieller Nachrichten, z.B. „acknowledgement“, „urgent“, „final“, „connection reset“ – „window size“: erlaubte Größe des Antwort-Paketes (⇒ Flußkontrolle !) – „urgent pointer“: Zeiger (Offset) auf wichtige Information in Paket – „checksum“: CRC Prüfsumme, für Header und Daten ! Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 19 Sockets • auf TCP/IP aufbauende „stream“-basierte Kommunikationsschnittstelle, mit der eine Punkt-zu-Punkt Verbindung zwischen zwei Prozessen implementiert werden kann • Unterscheidung zwischen Server (Dienstanbieter) und Klient • Ablauf einer Socket-basierten Kommunikation (C, vereinfacht): • Sockets in Java: Klassen Socket und ServerSocket im Package java.net Technische Informatik II, WS 2001/02 A. Strey, Universität Ulm Kapitel 4.2 : Ethernet und TCP/IP 20