Kapitel 1. OSI-Referenzmodell Kommunikationssystem in Schichten 1. Schicht – Übertragungsschicht Festlegung von mechanischen, elektrischen u. elektromagnetischen Eigenschaften Bsp. Kabel, Frequenz, Spannung 2. Schicht - Sicherungsschicht Bitszusammenfassung in Frames. Erkennung von Fehlern 3. Schicht – Vermittlungsschicht Vermittlung zw. nicht direkt verbundenen Rechnern 4. Schicht – Transportschicht Logische Verbindungen, kompensieren von Paketverlüsten, Engpassvermeidung 5. Schicht – Kommunikationssteuerungschicht Sitzungsaufbau, Kontrolle und Wiederabbau. 6. Schicht – Darstellungsschicht Einheitliche Kodierung und Datenkompression Dient als Übersetzer 7. Schicht – Anwendungsschicht Darstellung der Anwendungsfunktionen TCP/IP besteht aus 4 Schichten Die ersten zwei Schichten des OSI werden in Netzwerkschicht zusammengefaßt. Vermittlungsschicht = Internetschicht Transportschicht bleibt gleich Die oberen 3. Schichten des OSI werden in einen Anwendungsschicht zusammengefaßt. Jede Schicht besitzt ihre eigene Adressierung: 1.Schicht: MAC – Adressen (Ethernet 48 Bit) , eindeutige Identifizierung von Rechnernetzwerkadaptern. 2. Schicht: IP – Adressen (32 Bit aktuell) 3. Schicht: Portnummer (zusätzl. Zu IP-Adresse) 4. Schicht: je nach Anwendung werden andere Adressen verwendet: z.B. http, www, ftp, usw. Unterschiede der beiden Modelle: OSI hat sich nicht durchgesetzt; TPC/IP dagegen hat sich in der Rechnernetzenwelt signifikant durchgesetzt. TCP/IP – schnell lauffähig (UNIX), OSI Protokolle – schwer zu implementieren, Kapitel 2: Direktverbindungsnetzwerke: Betriebsweise: Synchron vs. Asynchron: Synchron: der Sender darf nicht zu beliebigen Zeitpunkten senden (Sendenfreigabe durch den Empfänger) Asynchron: der Sender kann zu beliebigen Zeitpunkten senden (Tastatur, langsam) Multiplexverfahren: Frequenzmultiplex: Trennung unterschiedlicher Frequenzen durch Empfänger (Rundfunk) Zeitmultiplex: Benutzen des Übertragungsmediums nacheinander für bestimmte Zeit (Slot) Nachteil: Kollision = Mehrfachbelegung. Lösung: zentrale Verfahren – Senderrechterteilung Dezentrale Verfahren – Vereinbarung der Sendereihenfolge (flexibel aber komplex) Raummultiplex: Verwendung im mobilen Umfeld (Handy, WLANs) Elektromagnetische Signale Codemultiplex: Funk – Frequenzen, teuer Modulation: Darstellung von Binärzeichen durch Variation von Amplitude, Frequenz, oder Phase eines sinusartigen Signals Sicherung der Übertragung: 5 Probleme: •Kodierung •Framing: Frameszusammenfassung •Fehlererkennung •Zuverlässige Zustellung: Erreichen der Zustellung trotz Fehler •Medienzugriff: gleichzeitiger Zugriff Diese Funktionen werden auf der NW-Karte bereitgestellt NRZ – Kodierung von Bits Bits werden 1:1 übertragen. 0-Bit low, 1-Bit high NRZ 0 0 1 0 1 1 1 1 0 1 0 0 0 0 Nachteil: lange Sequenzen von 0 oder 1 Lösung: Takt über eigene Leitung transportieren NRZI Non-Return-to Zero Inverted 0-Bit -> Wiederholung des letzten Signals 1-Bit -> Wechsel des Signals Der Wechsel findet in der Mitte der jeweiligen Zeiteinheit statt. Sonst gleich. Manchester-Kodierung: 0-Bit -> Signal wechselt von low->high 1-Bit -> Signal wechselt von high->low 0-Bit bedeutet: 0 1-Bit bedeutet: 1 Vorteil: in jedem Takt findet ein Wechsel statt Nachteil: Änderungsrate der Signalwechsel verdoppelt sich. 4B/5B – Kodierung Jeweils 4 Daten-Bits werden 5 Code-Bits zugeordnet Die Codes sind vorgeschrieben, siehe Tabelle Frameserzeugung Sentinel-Methode: Spezielle Sentinel-Zeichen (Start of Text-STX, End of Text-ETX). Nicht genügend übersichtlich, denn kann auch im Nutzdatenanteil vorkommen. Andere Methoden… Parität: Einfache Parität Die Bits werden um 1 Bit erweitert: Even Parity – gerade Parität -> 1011 010 -> 1011 0100 Odd Parity – Ungerade Parität -> 0110 110 -> 0110 1101 Nachteil: schon 2 umgekippte Bits können nicht erkannt werden. Zweidimensionale Parität Zu jedem Paritätsbits einzelner Informationsblöcke wird noch mal die Parität über alle Blöcke gebildet: 1 0 0101 101 0 Die Anzahl der 1 ablesen->gerade=0 0110 100 1 ungerade = 1 0111 111 0 0000 000 0 1111 111 1 0100 101 1 0111 111 0 1000 011 1 Parität über alle Blöcke nach dem obigem Schema (ung=1, ger=0) Zyklische Blocksicherung CRC Interpretation einer Nachricht der Länge n+1 durch ein binäres Polynom des Grades n, z.B. 1011 0011 -> x^7+x^5+x^4+x+1 Informationspolynom I(x) sind die übertragenen Daten Generatorpolynom G(x) wurde vom Sender u. Empfänger vorher vereinbart und ist fest Codepolynom C(x) wird vom Sender an den Empfänger übertragen und enthält redundante Information Folgende Schritte: I(x)*x^k wo x^k Grad des Generatorpolynoms ist Das Ergebnis wird durch das Generatorpolynom geteilt. Man bekommt Restpolynom R(x) Bsp: G(x)=x^3+x+1 Information: 1001 1001 01 -> x^9+x^6+x^5+x^2+1 I(x)*x^3=x^12+x^9+x^8+x^5+x^3 (I(x)*x^3)/G(x)->R(x)=x^2+1 Kapitel 3: Direktverbindungsnetzwerke (Teil 2) Zwei Grundmechanismen zur Erkennung fehlerhafter Übertragung: Bestätigungen (ACKs) Timeout ARQ Automatic Repeat Request Der Empfänger sendet das ACK, wenn ein Frame erfolgreich empfangen wurde: Bekommt der Sender das ACK, so ist die Zustellung erfolgreich abgeschlossen, wenn nicht, so sendet er den Frame erneut. Stop and Wait – erst nach der Bestätigung wird ein neuer Frame ausgesendet. Hat der Empfänger einen Frame erfolgreich empfangen und geht das ACK verloren, so sendet der Sender denselben Frame erneut. Sliding Window: man erlaubt es dem Sender, mehrere Frames unbestätigt auszusenden. Kumulative ACKs: es werden nur ununterbrochene Folgen erfolgreich empfangener Frames bestätigt, z.B. 1,2,3,4,6,7->ACK(4) Bsp: 1 ACK1 1 2 3 U S W Werden z.B. Pakete von 3 Bits ausgesendet, so kann es dazu kommen, daß einer von diesen Bits verloren geht. Dann wird der Empfänger das letzte ACK aussenden, um zu zeigen, daß er nach diesem ACK nichts anderes bekommen hat. Doch es kann vorkommen, daß der Sender nach der mißerfolgten Übersendung noch weiter versendet. Die weiteren Bits, die er sendet, werden im Speichertabelle rechts abgelegt, wie z.B. man bekam 1, 2 nicht, dann 3 und 4, und in der Tabelle steht 1, 3, 4. Nachdem der Sender festgestellt hat, daß einer der Pakete nicht angekommen ist, kann er schon mehrere ACK mit der gleichen Nummer bekommen haben. Dann versendet er z.B. 2 und dann auch 3. Nach 2 bekommt er aber Antwort ACK4, was bedeutet, daß der Sender alle 4 Pakete empfangen hat. Medienzugriff: Problem: Media Access Control, MAC: Mehrere gleichzeitige Sendungen auf einem Medium machen die Übertragungen unbrauchbar-> Lösung: Man erlaubt Kollisionen, aber erarbeitet Mechanismen, um diese zu entdecken und behandeln zu können (CSMA/CD) Verhinderung der Kollisionen (CSMA/CA) Ethernet: Mehrfachzugriffsnetz. Ein Ethernet ist ursprünglich ein Bus. Jede Ethernet-Station verfügt über eine Einrichtung, die gesendeten Signale wieder vom Medium zu lesen: Sind die Signale verfälscht worden, liegt eine Kollision vor (vom Sender erkannt), die Signale verbreiten sich mit Lichtgeschwindigkeit. Ist das Medium frei, wird sofort gesendet, Ist das Medium nicht frei, wird gewartet, bis es frei ist, und dann sofort gesendet. Wird während des Sendens eine Kollision erkannt, so wird das Senden abgebrochen, Statussignal wird versendet, dann wird eine Zufallszahl aus {0,1} ausgewählt und z*twait (twait = 51,2 Ms) Die Daten werden Manchester-kodiert. WLAN – Medienzugriff Kollisionserkennung ist bei Funknetzen ein Problem, denn Eine Station muß gleichzeitig senden und empfangen können (Wird ein Frame gesendet, müßte sie Funkmedium abhören und erkennen, ob gleichzeitig eine andere Übertragung abläuft, am Ort des Senders ist die Signalstärke so hoch, daß alle anderen Signale Überdeckt werden. Einfaches CSMA/CA Ein Sender hört erst das Medium ab Findet eine Übertragung statt, so wird auf das Ende gewartet, noch zusätzlich eine Zeit abwarten, dann wenn immer noch frei, wird gesendet. Wird das Medium während der Wartezeit von einem anderen Sender belegt, wird erneut gewartet, Backoff wird solange wiederholt, bis Senden möglich wird. Dies garantiert die Kollisionsvermeidung nicht, denn z.B. zwei Sender haben die gleiche Zufallszahl ausgewählt und starten zum gleichen Zeitpunkt -> Problem., wenn CW (Connection Window) groß -> lange Wartezeiten, weniger Kollisionen, klein-> kurze Wartezeiten, mehrere Kollisionen Das Gleiche System funktioniert auch mit ACKs. Token Ring Alle Rechner eines Netzwerks sind zu einem Ring verbunden, die Daten fließen in einer festgelegten Richtung im Ring. Will die Station nicht senden, so gibt sie das empfangene Token weiter an den nächsten Nachbarn Will eine Station einen Frame senden, so wartet sie auf das Token und nimmt diesen vom Ring, oder sendet statt dessen einen Nutzlast-Frame Empfängt die Station einen Frame, so gibt sie diesen an den nächsten Nachbarn weiter, wenn sie der Empfänger ist, so kopiert sie den Inhalt. Bekommt der Sender seinen Frame zurück, verwandelt er ihn in ein Token. Wenn ein PC ausgeschaltet wird, wird dieser den Token-Ring verhindern. Lösung: Ein Relais schlißt den Ring und überdrückt die NW-Karte. Es können mehrere Umläufe von Frames geben, bevor die Station wieder ein Token sendet. Ein Sender muß berechnen, ob die Zeit für einen weiteren Umlauf vorhanden ist. Daher rechnet er: TRT (Rotation Time)=Aktive Knoten * THT + RingLatenz (Ausbreitungsverzögernung des Rings) MonitorStation. Jede Station muß in der Lage sein, zu einer Monitor Station zu werden. Wenn fehlerfrei reicht nur eine Monitor Station. Sie überwachen den Ring und schauen, ob es ewig kreisende Frames gibt und verhindern, daß diese mehrmals eine Monitor Station passieren (nur einmal) Paketvermittlung (Kapitel 4, Teil 1) Vernetzung nicht direkt verbundener Rechner OSI-Referenzmodell verwendet Hardware: Schicht 1: Repeater-Verstärker, Hub-Kabelverteiler und (wenn aktiv) mehrwegiger Repeater. Schicht 2: Bridge - Verbindet unabhängige Netzwerksegmente Störungen, Kollisionen und Fehler bleiben auf ein Segment beschränkt. Naiver Ansatz: Kopiert alle Frames eines Segments in das jeweils andere Segment Optimierter Ansatz: Optimierung durch Administrator Selbstlernend: wenn ein Rechner aus einem Segment etwas sendet, kann sich die Bridge es in einer Tabelle merken (seine Adresse). Die Tabelle muß nicht vollständig gefüllt sein, die Einträge haben Verfallsdatum. z.B. Rechner A sendet an YY, der in einem anderen Segment liegt. Bridge 1 merkt, daß Rechner A über Port 1 erreichbar ist, Bridge 2 merkt, daß A über Port 3 erreichbar ist und wenn YY dann sendet, wird der direkte weg gewählt. Switch, wird auch Bridge genannt. Unterschied ist, daß Switches auch im dritten Schicht des OSI – Referenzmodells verwendet werden (z.B. ATM) Router: vermittelt Pakete zwischen LANs, kann Netzwerke unterschiedlicher Technologien verbinden, wichtiger Verteiler: IP Router Circuit Switching vs. Packet Switching Zwei unterschiedliche Ansätze: 1. Packet Switching: jedes Paket wird separat über das Vermittlungsnetz zugestellt, ohne die Reihenfolge der Pakete zu berücksichtigen. 2. Circuit Switching. Von der Datenübertragung wird eine Verbindung aufgebaut (Signalisierung), diese wird nur für die Zeit der Sitzung aufgebaut. Es ist unüblich eine echt elektrische Verbindung für eine Sitzung zu schalten, deshalb verwendet man Virtual Circuit Switching. Bei diesen beantragt erst der Rechner durch signalisieren eine virtuelle Verbindung und jeder Switch richtet seinen Teil der virtuellen Verbindung ein. Jedes Paket besitzt einen virtuellen Wegweiser (Leitungsbezeichner), an dem der Switch ablesen kann, über welchen Port das Paket verschickt wird. Fällt ein Switch aus, muß eine neue virtuelle Verbindung eingerichtet werden. Vorteile der Circuit Switching: durch das Konstrukt können bestimmte Eigenschaften beim Verbindungsaufbau spezifiziert werden, die während der Verbindung erhalten bleiben. Die Paketreihenfolge bleibt erhalten, was bei Paket Switching nicht der Fall ist, denn hier wird der Laufweg pro Paket ermittelt und kann sich bei einer Paketfolge ändern. Nachteil: Rekonstruierung der Verbindung bei Ausfällen oder Engpässen. ATM (Asynchronous Transfer Mode) Eine verbindungsorientierte, paketvermittelte Technologie (eng mit Typ 1 Schichten verbunden). Bei Verbindung kann man bestimmte Anforderungen setzen und wenn diese akzeptiert werden, können die für die Dauer der Verbindung gewährleistet werden. ATM verwendet Pakete fester Länge (53 Byte), diese werden Zellen genannt. Vorteile: Implementierung einfacher; Die Ausführungszeit bei allen Zellen ist gleich, daher einfacher parallelisierbar; Häufig müssen Abschätzungen gemacht werden, wie lange es dauern wird, bis Pakete übermittelt werden. Bei Paketen fester Größe ist diese Worst – Case – Schätzung leichter und exakter. ATM-Zellen-Format: GFC – Generic Flow Control: 4 Bit VPI – Virtual Path Identifier: 8 Bit VCI – Virtual Circuit Identifier: 16 Bit Zusammen spezifizieren sie die virtuelle Leitung. Type: 3 Bit = 8 versch. Möglichkeiten der Zellen CLP: 1 Bit. Zeigt an, ob Zellen bei Überlast bevozugt verworfen werden oder nicht. HEC: 8 Bit: CRC – Prüfsumme des Headers Insgesamt 5 Bytes = 40 Bit. Und noch 48 Bytes = 384 Bit der Nutzdaten Nur der Header wird gesichert, weil Fehler in dem Header sind viel kritischer, die Nutzlast wird häufig ungesichert übertragen (Audio, Video), soll dieser jedoch gesichert werden, muß dies über die überlagerten Protokolle erfolgen. Um die Zellengrenzen zu erkennen, wird ständig die CRC – Berechnung durchgeführt. Es gibt zwei Möglichkeiten, wie man Verbindungen einrichtet: Permanente Virtual Circuits: permanente Eintragung einer virtuellen Verbindung: zwei entfernte Rechner können auf diese Weise dauerhaft miteinander kommunizieren. Keine Signalisierung nötig. Switched Virtual Circuit: virt. Verbindung wird per Signalisierung angefordert, das Verbindungsnetzwerk signalisiert sich bei Bedarf. Bei der Signalisierung können Anforderungen an die virtuelle Verbindung spezifiziert werden. Kritik: ATM Switches sind teuerer als LAN – Switches, Verbindungsauf- und –abbau kostet Zeit, Broadcasting problematisch. ATM wird hauptsächlich in Backbone-Bereich eingesetzt (Telefongesellschaften, große Unternehmen). Paketvermittlung (Kapitel 5, Teil 2) Unter Routing wird die Festlegung eines Übertragungsweges bei der Versendung von Paketen in Computernetzen (Wegeauswahl). Switching befaßt sich aber mehr mit der Weiterleitung von Paketen. Routing Verfahren: Distance – Vector: Ermitteln der Distanz zu allen Knoten, Austausch von Distanzinformationen nur mit den Nachbarn Link – State: Messen der Distanz zu den Nachbarn, Austausch der Distanzinformation mit allen Knoten DBF (Distance Vector) Jeder Knoten kennt seine Nachbarn und den „Abstand“ zu diesen. Jeder Knoten hat eine Routing – Tabelle mit folgenden Spalten: Ziel: zeigt den Zielknoten, an den ein Paket gesendet werden soll. Hop: Über welchen Nachbarn gesendet wird Metrik: zeigt Distanz bis zum Ziel Routing – Tabelle von Na Ziel Hop Metrik … … … Nb Ha b Ma b ------Count – to – Infinity – Problem N1 ----- N2 ----- N3 N1—x—N2 ---- N3 Verbindung zw. N1 u. N2 getrennt N2 aktualisiert seine Tabelle und besitzt immer noch die Route zu N1, die durch N3 liegt, denn die alte Route verschwindet. N3 besitzt die Route zu N1, die über N2 liegt. Mit jedem Austausch werden die Distanzen der beiden Tabellen wachsen, sie werden aber nie unendlich -> Count – to – Infinity Lösung: Difinition eines kleinen, endlichen Werts als unendlich, wie z.B. 16 DSDV (Destination Sequenced Distance Vector) dient zur Behebung des Count-Infinity Problem: Ziel: Hop: Metrik: SeqNr Bei jeder Verbreitung wird die Sequenznummer erhöht. Damit kann ermittelt werden, wie aktuell ein Eintrag ist. Ein Eintrag wird nur dann übernommen, wenn die Sequenznummer sich erhöht hat, oder wenn die Sequenznummer gleich geblieben ist und die Gesamtdistanz sich verringert hat. Jeder Knoten Ni initialisiert seine Tabelle mit Hii<-Ni Mii<-0 Sii<<0 Und trägt für alle anderen Knoten Nm ein Him<-? Mim<-∞ Sim<- -1 Ein Nachbar Nj von Ni sendet nun Distanzinformation bzgl. Eines Knotens Nk an Ni. Ni prüft, ob Sik<Sjk oder Sik<Sjk und Mij + Mjk < Mjk Ist dies der Fall, aktualisiert Ni die Tabelle wie folgt Djikstra – leicht. Internetworking (Kapitel 6, Teil 1) Internet ist ein zusammenschluß verschiedenster Netzwerke wie Ethernet, WLAN, Token – Ring – Netze etc. Jeder Host muß eindeutig identifizierbar sein. 5 Klassen der IP – Adressierung: A 0 Netzwerk 7 Host 24 B 10 Netzwerk 14 Host 16 C 110 Netzwerk 21 Host 8 D 1110 Netzwerk 28 E 1111 Netzwerk 28 Bei der Vergabe von Adressen kann die Größe des Netzwerks berücksichtigt werden Klasse Mögl. Netzwerke Mögl. Hosts A 126 = 2^7 16 777 214=2^24 B 16 384 65 534 C 2 097 152 254 Im Host – Anteil: Nur 1-Bits dürfen nicht vorkommen, denn beschreibt Broadcast – Adresse des NW; Nur 0 – Bits nicht vorkommen, denn beschreibt das Netzwerk in Routing – Tabellen Adresse 127. x. y. z. dürfen nicht für Netzwerke vergeben werden. 127. 0. 0. 1 – Loop Back Adresse (der Host selbst) Von Bis 10.0.0.1 10,255,255,254 172,16,0,1 172,31,255,254 192,168,0,1 192,168,255,254 Diese Adressen können für die privaten Hosts verwendet werden. Die IP – Pakete werden nicht von Routern übertragen. ARP (Adress Resolution Protokol) Jeder Host führt einen Cache über schon aufgelöste Adressen Adressen, die älter als 15 Minuten sind, werden aus dem Cache gelöscht. Subnetting Vergabe von Adress – Blöcken Bsp. Ein Campus möchte 15 Netzwerke mit je 300 Rechnern anmelden = 300*15 = 4500 Adressen -> Klasse C ist zu klein. Es müssen daher 15 Klassen B – Netze beantragt werden. 300 Hosts/ Subnetz = 9 Bits notwendig 15 Subnetze = 4 Bits notwendig Insgesamt 15 Bits = 9+4+2 (am Anfang) Ist allerdings nicht effizient, denn 90% der Klasse B Adressen bleiben umsonst belegt. Deshalb wäre die Vergabe von vielen Klasse C Adressen von Vorteil: 4500/254=etwa 18 Klasse C Adressen. Problem: statt einem Eintrag für dieses Netz müssen jetzt 18 Einträge gemacht werden. Lösung: Klassenlose Adresse: Ein Router merkt sich die Adresse 221.176.128 und zusätzlich die Maske 255.255.224.0 um alle Klasse – C – Netze zu erreichen. NAT (Network Address Translation) Router mit NAT Fall 1. Rechner des Subnetzes kommunizieren untereinander. Die Subnetzmaske im Beispiel ist 255,255,255,0. Von Innen nach Außen ist eine Weiterleitung erforderlich. Der Nat Router ersetzt die Absender – Adresse durch seine eigene (globale) 84,56,65,2 und sendet weiter. Der Empfänger bekommt Paket und sendet ggf. Antwort an 84,56,65,2. Der Router merkt aber die Adresse des Absenders und leitet die Antwort weiter. Die Liste der Verbindungen kann u. U. sehr umfangreich werden. Fragmentierung: Im Heimnetzwerk des Senders wird nicht fragmentiert, nicht alle MTUs (Maximum Transmition Unit) sind bekannt. D.h. IP Pakete werden in Fragmente aufgeteilt (danach). Reassemblierung: Alle Fragmente werden gesammelt, das ursprüngliche IP – Paket wird zusammengesetzt, Fragmente müssen nicht über denselben Router gehen. Fragmentierung und Reassemblierung Ident (16 Bits) Identifikator des Fragments Wird vom Sender indentifiziert u. muß eindeutig sein Flags (3 Bits) 1 Bit – reserviert, 2 Bit – 0/1 – erlaubt/verboten 3 Bit – More 1-folgen weitere Pakete, 0 – Ende Offset (13 Bits): Wo liegt dieses Fragment innerhalb der gesamten Nutzdaten? (8 Byte Blöcke) Segmentierung und Fragmentierung Zerlegung der übertragenen Einheiten TCP -> IP: Segmentierung Beliebig große Pakete werden in IP – Pakete von max. 64 kByte zerlegt IP -> Netzwerk: Fragmentierung IP – Pakete werden so zerlegt, daß sie in Rahmen der MTU passen. wird. Nach einer bestimmten Zeit versucht der Client den Lease zu erneuern (mit DHCPREQUEST), wenn aber bis zu einem Zeitpunkt T2=87,5% keine Erneuerung eingeht, so wendet sich der Client per Broadcast an alle DHCP – Server des Netzes. Häufig sollen dieselben Pakete an eine ganze Gruppe von Empfängern gesendet werden. Möglichkeit: einzeln Senden. Nachteil: Manche Transportwege müssen denselben Inhalt mehrfach transportieren. Multicast: Hosts, die eine Multicast – Übertragung empfangen möchten, treten einer Multi – Cast – Gruppe ein (Klasse D – Adressen). Der Sender sendet ein Paket an eine Multicast – Gruppenadresse und die Routing – Infrastruktur sorgt dafür, daß alle teilnehmenden Hosts das Paket empfangen. Link – State Multicast: Wenn ein Router ihre Link – States im Netz verteit, sendet er auch die Gruppen – Adressen von angemeldeten Hosts. Verwendung von Djikstra. Internetworking (Kapitel 7 Teil 2) ICMP Internet Control Message Protocol IP – Router und Hosts teilen dem Sender über ICMP mit, wenn Fehler aufgetreten sind. Typische Fehler: Ein Paket kann wegen dem Puffer – Überlauf nicht transportiert werden. Destination Unreachable: Zielhost nicht mehr erreichbar. Time Exceeded: TTL – Wert hat 0 erreicht oder Time Out. Redirect: Ein Router kann prinzipiell das Ziel erreichen, es gibt aber einen besseren Router. Jeder Computer, der IP versteht, sende „Echo request“ und „Echo reply“ – Inhalt gleich. Ping wird verwendet, um zu testen, ob Host erreichbar ist. Traceroute: Ermittlung der Route zu einem bestimmten Host. Ein Teilnehmer in einem Subnetz muß die entsprechende Netz – und Subnetzadresse besitzen, sonst können ihm keine Pakete zugestellt werden. Lösung: Ein mobiler Rechner bekommt in jedem Subnetz automatisch eine neue Adresse zugewiesen. Die Vergabe von IP – Adressen ist zwar eine Lösung, erfordert aber einen gewissen Aufwand. Bei der doppelten IP – Adressenvergabe kann es zu Netzstörungen kommen. DHCP – Dynamic Host Configuration Protocol. Ein Rechner, der in ein Subnetz eingebunden wird, sucht selbstständig nach einem DHCP-Server und bekommt von diesem ein freie IP – Adresse, Subnetzmaske, Adresse des Domain Name Servers, Adresse von Standard – Gateway, weitere Parameter. Die Adressen werden entweder manuell (Hinterlegung der MAC – Adressenliste von einem Administrator) oder automatisch (eine freie IP – Adresse wird für eine unbegrenzte Zeit vergeben) oder dynamisch (die IP – Adresse wird nur für eine bestimmte Zeit vergeben. Prinzip: Der Client sendet per Broadcast ein DHCPDISCOVER, Ein DHCP – Server antwortet mit einem DHCPOFFER und sendet eine mögliche Netzwerkkonfiguration. Nimmt der Client diese Adresse an, sendet er ein DHCPREQUEST. Ist der Server einverstanden, antwortet er mit DCHPACK. Der Client ist dann im Besitz eines Leases, d. h. er darf die IP – Adresse eine bestimmte Zeit benutzen. Wenn ein Client aber keine Netzwerkparameter haben, so ist es ein Problem. Der Server kann dann keine Antwort schicken. TCP steht dann nicht zur Verfügung, denn dieser benötigt IP – Adressen. UDP kann versendet werden, wenn als Zieladresse keine IP – Adresse, sondern MAC – Adresse benutzt Internetworking (Kapitel 8 Teil 3) Wichtig: garantierte Übertragung von Nachrichten, beliebig große Nachrichten, Unterstützung mehrerer Anwendungsprozesse auf einem Host, Flußkontrolle, Überlastkontrolle UDP (User Datagramm Protocol) Erweitert IP – Pakete um die Funktionalität zu demultiplexen. UDP ist geeignet für bestimmte Anwendungen, die verbindungslos sind. Die Nachrichten können verloren gehen (Audio, Video Übertragung) TCP (Transmission Control Protocol) Demultiplexen verläuft analog zu UDP TCP stellt zuverlässige, bidirektionale Byte – Streams zur Verfügung, Fluß – und Überlastkontrolle. Bildung der TCP – Segmente aus dem Byte – Strom: Es wurden genug Bytes gepuffert, eine TCP – Nachricht ohne IP – Fragmentierung zu versenden. Die Anwendung wünscht explizit, die bisher gepufferten Bytes zu versenden (flush); periodischer Timer. TCP verwendet das Sliding – Window – Verfahren. Unterschied zwischen Sliding – Windows der 2 u. 4 Schichten. Schicht 4 erfodert Verbindungsauf – und – abbau, während Schicht 2 – Verbindung zweier Computern implizit definiert ist. Die Round – Trip – Zeit schwankt bei Schicht 4 sehr stark, bei Schicht 2 ist sie im Wesentlichen konstant. Die Ressourcen auf Schicht 4 (Größe) ist variabel und können sich zur Laufzeit ändern. Auf Schicht 4 können die Pakete umgeordnet werden, bei Schicht 2 nicht. Überlastungen auf Schicht 4 betreffen Router, u. auf Schicht 2 – Direktverbindung TCP muß viel über die Verbindung lernen, während auf Schicht 2 die Optimierung priori vorgenommen werden können. TCP – Flusskontrolle. Der Empfänger sendet bei jedem empfangenen TCP – Segment eine Antwort mit Aknowledge (komulatives ACK) Advertised Window: wie viele Bytes kann der Empfänger noch puffern, bevor der Puffer überläuft. Advertised Window = Max Received Buffer – (Last Byte Received – Last Byte Read) Last Byte Send – Last Byte Acked ≤ Advertised Window Effective Window = Advertised Window – (Last Byte Send – Last Byte Acked) kann auch 0 sein. Dann darf der Sender erstmal nichts senden Schreibt die sendende Anwendung in den Puffer, wird dieser irgendwann voll Ist der Sendepuffer voll, wird die Anwendung beim nächsten Schreiben solange blockiert, bis wieder Pufferplatz frei ist. Der Sender versucht periodisch, ein einziges Byte zu senden (auch wenn er eigentlich nicht dürfte), bis Effective Window > 0 Geht ein TCP – Segment verloren, sollte es möglichst schnell erneut gesendet werden. Time Out Berechnung: RTT (round trip zeit) = RTT*a+RTTlast*(1-a) (a=0.8, …, 0.9) Und setzt Timeout auf 2*RRT Problem: sendet man ein TCP – Segment zweimal, kann man das ACK nicht mehr der Sendung zuordnen -> die Messung wird ausgesetzt Die 2*RTT sind häufig zu großzügig – hat man eine weitgehend konstante RTT, so wird in der Regel zu lange gewartet bis ein Segment neu übertragen wird Lösung von Jacobson/ Karels RTT wird wie bisher berechnet Zusätzlich noch der gleitende Durchschnitt wird berechnet: RTT=RTT*a+RTTlast*(1-a) Deviation=Deviation*a + IRTTlast – RTTI*(1-a) (a=7/8) Timeout=RTT+4*Deviation Bisher wurde nur die Flusskontrolle betrachtet – ein Empfänger kann die Datenrate beim Sender so drosseln, dass der Empfangspuffer nie überläuft. Notwendig ist auch die Überlastkontrolle: diese stellt sicher, daß die Übertragungswege, insb. Die Router nicht überlastet werden. Problem: Die Router sind nicht in der Lage ihre Überlastung zu zeigen. Der Sender paßt sich dynamisch an eine Überlastsituation an und berechnet ständig einen Wert Congestion Window. Anpassung der Formel für das Effective Window (Anzahl der Bytes, die noch unbestätigt versendet werden dürfen) Max Window = min (Congestion Window, Advertised Window) Effective Window = Max Window – (Last Byte Send – Last Byte Acked) Der Wert Congestion Window (Überlastfenster) gibt an, wie viele Bytes unbestätigt versendet werden dürfen, bis eine Überlastung droht. Start: Congestion Window =1 Wenn alle Pakete im Congestion Window positiv bestätigt wurden: Congestion Window = Congestion Window+1 Additive Increase Wenn ein Paket im Congestion Window verloren gegangen ist (Durch Timeout erkannt) Congestion Window = Congestion Window/2 Multiplicative Decrease