Symbole - R Bitrate D Ausbreitungsverzögerung RD Kanalpuffergröße L Paketgröße RD/L Kanalpuffergröße in Paketen 𝐿 Durchsatz: 𝐿 ( )+2𝐷 𝑅 S Normierter Durchsatz: Durchsatz / R => S = 1/1+2a Stichwörter URL Uniform Resource Locator RTT Round Trip Time (2RTT pro Verbindungsaufbau) MSS Maximum Segment Size (TCP, bytes pro segment ohne header). MSS + Header < MTU MTU Maximum Transmission Unit (bytes pro Protocol Data Unit) HiddenTerminal: A,B,C. A<->B, B<->C, A<-!->C Statechart: Ereignis[Bedingung]/Aktion Kommunikationsart Unicast (Punkt-zu-Punkt): ein Sender, ein Empfänger Multicast (Punkt-zu-Mehrpunkt, Gruppenruf): ein Sender, ein Gruppe von Empfängern Broadcast (Rundruf): an alle Teilnehmer des Netzes Anycast: ein Empfänger aus einer Gruppe möglicher Ziele Multiplexverfahren: Verwendung eines physikalischen Mediums durch mehrere Geräte FDMA / FDM: Frequenzmultiplex (Frequency Divsion Multiplex, Multiple Access): Geräteverwenden verschiedene Teile des Frequenzspektrums (UKW-Radio): feste Kanalaufteilung TDMA: Zeitmultiplex (Time Divsion Multiplex, Multiple Access): Geräte wechseln sichzeitlich ab (ISDN, DSL) CDMA: Codemultiplex: Verschiedene Signalfolgen über eine Leitung. Erkennung im Empfänger an unterschiedlicher Kodierung (UMTS) Vermittlungsart Leitungsvermittlung o zwischen Sender und Empfänger wird mittels Signalisierung einKanal zur Übertragung aufgebaut (z.B. durch Zeit- oder Frequenzmultiplex) o die zur Verfügung stehende Bitrate muß fest auf die Kanäleaufgeteilt werden o Standardverfahren in der Telefonie, bei schwankendenDatenaufkommen mit vielen Pausen ineffizient Paketvermittlung o Sender schickt Daten in Paketen, die einzeln zum Sendergelangen o die Bitrate wird effizienter aufgeteilt o kurzfristiges höheres Datenaufkommen kann über Puffer o abgefangen werden o dies kann zu Verzögerungen und Pufferüberläufen führen ISO OSI (Open Systems Interconnection) Bitübertragungsschicht (Physical Layer): mechanische, elektrische und prozedurale Eigenschaften zur Übertragung von Bits: Zeitsynchronisation, Kodierung, Modulation, … Sicherungs- oder Verbindungsschicht (Data Link Layer): Medienzugriff und gesicherte Übertragung von Rahmen (Frames): Rahmensynchronisation, Fehler- und Flußkontrolle, … Vermittlungsschicht (Network Layer): Übertragung von Paketen bzw. Datagrammen: Verbindungsaufbau, Wegewahl, Vermittlung, Betriebsmittelverwaltung, … Transportschicht (Transport Layer): zuverlässiger Ende-zu-Ende Transport von Segmenten Sitzungsschicht (Session Layer): Kommunikation zwischen Anwendungen Darstellungsschicht (Presentation Layer): Syntax und Semantik der ausgetauschten Informationen, z.B. mit Abstract Syntax Number One (ASN.1) oder XML Anwendungsschicht (Application Layer): Kommunikation der Anwendungsprozesse mit anwendungsspezifischenInformationen Schichten: Schichten n+1 nutzen Dienste der Schicht n Dienst wird zw. Schichten an SAPs (Service Access Points) angeboten, SDUs (Serivce Data Units) werden übergeben Instanzen der Schicht n auf versch. Hosts tauschen PDU (Protocol Data Units) aus. Jede PDU enthält Header. Dienstgüte (Quality-of-Service, QoS) Sammelbegriff für quantitative Aspekte von Rechnernetzen und ihren Protokollen, z.B.: o Antwortzeit (z.B. auf die Reaktion eines Servers) o Durchsatz (übertragene Daten pro Zeiteinheit, nicht gleich der Bruttobitrate) o Verlust- und Fehlerrate (z.B. von Paketen in einem Netz bei drahtloser Übertragung) o Verfügbarkeit (Zeitanteil, in dem ein System einsatzfähig ist, wichtig zur Auswahl und Konfiguration von Netzwerkarchitekturen und Protokollen HTTP - Ansätze: Messung, (stochastische) Analyse, Simulation Unterstützung durch Werkzeuge nicht-persistent: für jedes Objekt wird einzelne TCP-Verbindung geöffnet, Server beendet sie sofort nach dem Senden eines Objekts. Entweder Basis-Seite und eingebettete Objekte sequentiell oder parallele einzelne Verbindungen für die eingebetteten Objekte persistent: Server läßt Verbindung bestehen, alle Objekte werden über eine TCP-Verbindung gesendet o ohne Pipelining: nach jedem Objekt Anfrage für nächstes Objekt o mit Pipelining: eine Anfrage für alle eingebetteten Objekte Netzwerkmanagement Überwachung und Verwaltung eines Netzwerks = komplexes HW/SWGebilde (zahlreiche Geräte, Leitungen, Datenstrukturen, …) nach ISO 5 Einsatzbereiche o Leistung: Monitoring von Auslastung, Durchsatz, Antwortzeiten, Dokumentation (z.B. für die Überwachung von Service Level Agreements), Reaktionsmaßnahmen o Fehler: Monitoring, Dokumentation, Reaktionsmaßnahmen o Konfiguration: Übersicht über Geräte und deren HW/SWKonfigurationen o Zugang: Festlegung, Kontrolle, Dokumentation des Zugangs von Benutzern und Geräten o Sicherheit: Monitoring und Kontrolle des Zugangs,Schlüsselverwaltung, z. B. Filterregeln für Firewalls, Intrusion Detection Simple Network Management Protocol (SNMP) o Managing Entity: Prozess auf zentraler Management Station = Client o Managed Device: Gerät im Netz o Managed Object: HW/SW im Managed Device (Routing Tabelle) o Management Agent: Prozess auf Managed Device, kann locale Aktionen ausführen = Server o Protokoll zw Entity und Agent über UDP DNS (Domain Name System) Domain-Name -> Wert (IP-Adresse) Verteilte Datenbank, viele Name-Server Hierarchischer Namensraum Root Name Server -> Top-Level Domain Server (com, org, de) -> ... -> autoritativer Name-Server (unterste Ebene) Resource Records: Datensätze der Nameserver: o TTL: Time to Live o Typ A: Wert = IP-Adresse o Typ NS: Domainname eines Hosts auf dem in Nameserver läuft der Nmane in der Domain auflösen kann o Typ CNAME: kanonischer Name eines Hosts, ermöglicht Aliasnamen o Typ MX: Domain-Name des Hosts auf dem Mailserver läuft Anfragearten o Iterativ: Anwort ist anderer Server, der Namen evtl auflösen kann. NS- und A-Datensatz, keine Information gespeichert, gut für hochfrequentierte Server o Rekursiv: Antwort: Auflösung des Namens die von anderen Servern geholt wird. A-Datensatz, Information muss gespeichert werden Content Distribution Networks (CDNs) Ziel: Vermeiden längerer Wartezeiten beim Laden von Web-Seiten 3 Engpässe: erste Meile, letzte Meile,Peering-Punkte (Übergängezwischen ISPs) Idee: sehr viele Spiegel-Server geografisch verteilen (wie Web-Caches, Inhalt wird proaktiv auf sie repliziert) Verteilung der Anfragen o Server-basierte HTTP Redirection: Server liefert aufgrund der IPAdresse des Clients einen geeigneten anderen Server, erfordert zusätzliche RTT, Gefahr der Überlast für Server o Client-nahe HTTP-Redirection: z.B. durch Web-Proxy, schwieriger zu verwirklichen o DNS-basierte Redirection: DNS-Server bildet den Domain-Namen des Servers auf die IP-Adresse eines geeigneten Servers ab o URL-Rewriting: Server liefert Basisseite, die URLs der eingebetteten Objekte werden umgeschrieben, mit dem Domain-Namen eines geeigneten anderen Servers Socket-Schnittstelle verbreitetes API für Transportdienste Festlegung von TCP/UDP, IP-Adressen, Portnummern Peer-to-Peer (P2P): Overlay-Netz: logisches Netz aus Peers über physikalischem Netz Unstrukturiert (1st/2nd Generation) o Zentralisierte P2P Netze (Napster) Datenaustausch P2P, Verzeichnis aber zentral o Reine P2P Netze (Gnutella 0.4) Keine Zentrale, vollständige Vermaschung der Peers (Skalierbarkeit?!) o Hybride P2P Netze (Gnutella 0.6, JXTA) Inseln mit Serverstruktur, Vermaschung der Inseln Strukturiert o DHT (Distributed Hash Table) basiert, Z.B. Chord, CAN - o Keine zentralen Server, hochgradig skalierbar Fluten: Anfrage an Nachbarn weiterschicken. Schlecht skalierbar. DHT: ringförmiges Overlay Netz. Jeder Peer hat Bezeichner p <2^m-1. Jedes Datenelement hat Schlüssel k o Nachfolger von k - Datenelement mit Schlüssel k wird auf Nachfolger p von k gespeichert, p = succ(k) - dies ist der Peer mit dem kleinstem Bezeichner p ≥ k (die ≤-Relation gilt bis auf Modulo 2m-1) - Lookup für ein Datenelement mit Schlüssel k erfolgt auf Peer succ(k) TRANSPORTSCHICHT Aufgabe: Kommunikation zwischen Anwendungsprozessen mögliche Dienstmerkmale Fehlerkontrolle Bewahrung der Reihenfolge verbindungslos/verbindungsorientiert Fluss-und Überlastkontrolle Garantien für Dienstgüte (z.B. Bitrate, Verzögerung, Verlust) User Datagram Protocol (UDP) verbindungslos, keine Kontrollmechanismen, bewahrt nicht Reihenfolge einfache Paketvermittlung mittels IP, Verantwortung für Kontrollmechanismen bei Anwendung Header: Source Port (16bit), Dest Port (16bit), Length(des Segments) (16 bit), Checksum (16bit) Pseudo-Header: o Quell-/Ziel-IP, Protokollnummer (UDP=17), Segmentlänge o Vorteil: Kontrolle der Prüfsumme erkennt auch Fehler in den IP-Adressen, z.B. fehlgeleitete Segmente o Nachteil: Verletzung des Schichtenprinzips (aber nur auf Endsystem) Transmission Control Protocol (TCP) verbindungsorientiert, Fehler-, Fluss-, Überlastkontrolle, keine Dienstgütegarantien, Abstraktion eines Bytestroms Header: Source Port (16), Dest Port (16), SQN (32), ACK Nr(32), ( HeadLen, URG(ent), ACK, PSH(push segment), RST(reset), SYN(synchronisiere Verb.), FIN(beenden)), AdvertizeWindow: Fenstergröße für Flusssteuerung, checksum Pseudoheader: wie UDP, einschl. Prüfsummenberechnung Verbindung eindeutig identifiziert durch Tupel (Quell-IP, Ziel-IP, Quell-Port, Ziel-Port) Fehlerkontrolle: o Verhalten des Senders 1.wenn Daten zum Senden und Platz im Fenster: erstelle Segment mit nextSQN und sende es mit IP, erhöhe nextSQN um Länge der Daten; wenn es das erste Paket im Fenster ist, starte Timer 2.wenn ein ACK mit ACK-Nr. im Fenster zurückkommt, schiebe das Fenster bis zu dieser ACKNr.; wenn das Fenster leer ist, stoppe den Timer, sonst starte den Timer neu 3.wenn der Timeout abläuft, sende das erste unbestätigte Paket des Fensters erneut, starte den Timer erneut o Verhalten des Empfängers (Segment kommt an): SQN = Fensteranfang ist und alle vorherigen Segmente bereits bestätigt sind: schiebe Fensteranfang bis zum nächsten erwarteten Byte und warte ein Timeout (500 ms), wenn bis dahin kein neues Segment ankommt, schicke ein ACK mit dem Fensteranfang (delayed ACK) SQN = Fensteranfang ist und ein vorheriges Segment noch nicht bestätigt wurde, schiebe Fensteranfang bis zum nächsten erwarteten Byte und schicke sofort ein kumulatives ACK mit dem Fensteranfang SQN > Fensteranfang ist, puffere die Daten und schicke sofort ein kumulatives ACK mit dem Fensteranfang es eine Lücke teilweise oder ganz füllt, puffere die Daten, schiebe Fensteranfang bis zum nächsten erwarteten Byte und schicke sofort ein kumulatives ACK mit dem Fensteranfang Fehlerkontrolle Stop-And-Wait o Verhalten des Senders 1. sende Paket mit aktueller SQN und starte Timer 2. wenn ein ACK ohne Bitfehler und mit aktueller SQN vor Ablauf des Timeouts zurückkommt, inkrementiere SQN und gehe zu 1 3. wenn der Timeout abläuft, sende das Paket erneut, starte den Timer erneut und gehe zu 2 o Verhalten des Empfängers wenn Paket ohne Bitfehler und mit aktueller SQN ankommt, sende ACK mit aktueller SQN und inkrementiere SQN, sonst sende das letzte ACK erneut 1−𝑝 o Leistungsanalyse: mit Fehler Durchsatz S = , ohne Fehler: 1+2𝑎 - 𝑊 o Ohne Fehler: 𝑊 ≥ 1 + 2𝑎: 1 𝑠𝑜𝑛𝑠𝑡 𝑊 < 1 + 2𝑎: 1+2𝑎 Go-Back-N o - Versus - Verhalten des Senders 1. wenn Daten zum Senden und Platz im Fenster: sende Paket mit nextSQN und inkrementiere nextSQN; wenn es das erste Paket im Fenster ist, starte Timer 2. wenn ein ACK ohne Bitfehler und mit SQN im Fenster zurückkommt, schiebe das Fenster bis zu dieser SQN; wenn das Fenster leer ist, stoppe den Timer, sonst starte den Timer neu 3. wenn der Timeout abläuft, sende alle unbestätigten Pakete des Fensters erneut, starte den Timer erneut o Verhalten des Empfängers wenn Paket ohne Bitfehler und mit aktueller SQN ankommt, sende ACK mit aktueller SQN und inkrementiere SQN, sonst sende das letzte ACK erneut (wie bei Stop-and-Wait) o base: SQN des ältesten unbestätigten Pakets o nextSQN: SQN des nächsten zu verschickenden Pakets o W: Fenstergröße, Anzahl der Pakete, die Sender vor Erhalt eines ACKs senden darf o [base, nextSQN-1]:versendete unbestätigte Pakete o [nextSQN, base+W-1]: ungesendete Pakete, die vor Erhalt eines ACKs noch gesendet werden dürfen Selective Repeat o Verhalten des Senders 1. wenn Daten zum Senden und Platz im Fenster: sende Paket, starte Timer für dieses Paket und inkrementiere nextSQN 2. wenn ein ACK ohne Bitfehler und mit SQN im Fenster zurückkommt, markiere das Paket mit SQN als bestätigt, schiebe das Fenster bis zur nächsten Lücke 3. wenn der Timeout für das Paket mit SQN abläuft, sende dieses Paket erneut, starte den Timer für dieses Paket erneut o Verhalten des Empfängers wenn Paket ohne Bitfehler und mit SQN im Fenster ankommt, sende ACK mit dieser SQN, puffere das Paket und schiebe das Fenster bis zur nächsten Lücke wenn Paket mit SQN aus vorigem Fenster ankommt, sende das ACK hierfür erneut o hinreichende Bedingungen für SQN Raum falls Empfangsfenstergröße = 1: W < m falls Sendefenstergröße = Empfangsfenstergröße = W > 1:W < (m+1)/2 1−𝑝 𝑊 ≥ 1 + 2𝑎 1+2𝑎𝑝 o Leistung: 𝑆 = { 𝑊(1−𝑝) 𝑊 < 1 + 2𝑎 (1−𝑝+𝑊𝑝)(1+2𝑎) Go-Back-N: kumulative ACKs gleichen ACK-Verluste und -Verspätungen schnell aus, ohne daß die Pakete erneut gesendet werden müssen, der Sender benötigt nur einen Timer, der Empfänger benötigt keinen Puffer, Sender und Empfänger können einfacher realisiert werden, weil keine Lücken in den Fenstern beachtet werden müssen Vorteil Selective Repeat: weniger Wiederholungen von Sendungen, weil nur wirklich fehlerhafte oder verlorengegangene Pakete erneut gesendet werden Flusskontrolle, Überlastkontrolle Flusskontrolle (Flow Control) o Mechanismus, mit dem der Empfängerden Sender steuern kann, damit er ihn nicht überlastet aber auch so schnell sendet wie möglich o üblicherweise durch Benachrichtigung über Fenstergröße Überlastkontrolle (Congestion Control) o Mechanismus, mit dem der Sender davon abgehalten wird, das Netz(Bandbreiten und Puffer) zu überlasten o kann durch explizite Signaledes Netzes an den Sender erfolgen (z.B. bei ATM) o in TCP gibt es klassischerweise keinen solchen expliziten Mechanismus, der Sender leitet sich aus den zurückkommenden ACKsInformationen über den Netzzustand ab und reagiert entsprechend o inzwischen gibt es auch Vorschläge für die Erweiterung von TCP und IP zur expliziten Überlastbenachrichtigung: Explicit Congestion Notification (ECN) Vermeidung des Silly Window Syndroms o Segmente mit wenig Daten sind ineffizient o wenn die Puffer voll sind und kleine Segmente gesendet werden, zirkulieren sie zwischen Sender und Empfänger und bleiben im System o MSS (Maximum Segment Size), Default sind 536 Bytes o wenn der Empfänger ein AdvertizedWindow = 0 bekannt gibt, wartet er danach bis er ein AdvertizedWindow ≥MSS bekannt geben kann Überblick über die Überlastkontrolle o der TCP-Sender versucht aus den zurückkommenden ACKs Informationen über die mögliche Senderate zu erhalten o hierzu gibt es das CongestionWindow, das zusammen mit der Flußkontrolle zur Ermittlung des tatsächlichen Sendefensters verwendet wird: o o o o o - - MaxWindow = Min(CongestionWindow, AdvertizedWindow) EffectiveWindow = MaxWindow -(LastByteSent-LastByteAcked) die Bitrate ergibt sich ungefähr aus CongestionWindow/RTT durch Vergrößerung des CongestionWindows vergrößert der Sender die Bitrate und versucht sich an die mögliche Bitrate anzunähern bei einem Verlust (durch 3 doppelte ACKs oder einen Timeout zu erkennen) wird das CongestionWindows und damit die Bitrate wieder verkleinert genauer: o Slow Start setze CongestionWindow = MSS nach Erhalt eines ACKs: CongestionWindow += MSS(hierdurch wird ein exponentielles Ansteigen realisiert) bis Threshold erreicht ist, dann Additive Increase (am Anfang ist Threshold unendlich) o nach 3 doppelten ACKs: Multiplicative Decrease:Threshold = CongestionWindow/2; CongestionWindow /= 2 Additive Increase: bei Erhalt eines ACKsCongestionWindow += MSS x (MSS/CongestionWindow) hierdurch wird ein Wachstum um ca. ein MSS pro RTT realisiert z.B.: MSS = 1.460 Bytes, CongestionWindow = 14.600 Bytes, jedes ACK vergrößert um ca. 1/10 MSS, 10 ACKs um ca. 1 MSS o nach Timeout Threshold = CongestionWindow/2; CongestionWindow = MSS Festes Fenster: Fenster füllt den Kanal: WS/R > RTT + S/R ..... (S = MSS) o Verzögerung = 2RTT + O/R Festes Fenster: Fenster zu klein um Kanal zu füllen: WS/R < RTT + S/R 𝑂 - o Verzögerung = 2RTT + O/R + (K-1)(S/R + RTT – WS/R), 𝐾 = ⌈ ⌉ 𝑊𝑆 Slow Start 𝑂 𝑆 𝑆 o Verzögerung = 2𝑅𝑇𝑇 + + 𝑃 [𝑅𝑇𝑇 + ] − (2𝑃 − 1) 𝑅 o - 𝑅 Anzahl Slow-Start Wartezeiten: 𝑃 = min(⌊log 2 (1 + 𝑅 𝑅𝑇𝑇 𝐿/𝑅 𝑂 )⌋ + 1, ⌈log 2 ( + 1)⌉ − 1) 𝐿 Web-Seite mit: o 1 Basis-HTML-Seite (O Bits) o M Bilder (auch jeweils O Bits) o nicht-persistentes HTTP: M+1 sequentielle TCP-Verbindungen Antwortzeit = (M+1)O/R + (M+1)2RTT + Slow-Start-Wartezeiten o persistentes HTTP: 2 RTT für Basis-Seite 1 RTT für M Bilder Antwortzeit = (M+1)O/R + 3RTT + Slow-Start-Wartezeiten o nicht-persistentes HTTP mit X parallelen Verbindungen Annahme: M/X ist ganze Zahl 1 TCP-Verbindung für Basis-Seite M/X Mengen von parallelen Verbindungen für Bilder Antwortzeit = (M+1)O/R + (M/X+1)2RTT + Slow-Start-Wartezeiten NETZWERKSCHICHT Aufgaben: Hosts senden und empfangen, Vermittlungseinheiten leiten weiter Weiterleitung (Forwarding): Vermittlungseinheit empfängt Dateneinheiten auf einer Leitung und leitet sie auf einer anderen (derrichtigen) weiter Wegewahl (Routing): Verfahren, mit denen Vermittlungseinheiten entscheiden, über welchen Weg Dateneinheiten gesendet werden sollen Header: Ver: 4 für Ipv4 Header Length: 4bits, Header Länge in 32Bit Worten Type of Service: 2 bits für Unterscheidung bei Dienstgüte Length: Gesamtlänge in bytes (16 bit) Identifier, Flags, Offset: Für Fragmentierung TTL: Time to live: Hoplimit, jeder Router dekrementiert (8bit) Upper Layer: höheres Protokoll (8bit) Internet Checksum (16 bit) Source IP (32 bit), Destination IP (32 bit) Options (if any) (32 bit). Data => ohne Options 20 Bytes Besondere Adressen: Alles 0: This host. 00000 Host: Host on this Network. Alles 1: Broadcast on local network. Network 1111: Broadcast on distant network. 127 xxx: Loopback Klassenbasierte Adressierung: Vorteil der klassenbasierten Adressierung o selbstidentifizierende Adressen: an den ersten Bits wird erkannt, um welche Klasse es sich handelt o Weiterleitungstabelle benötigt nur Netzwerkteil der Adresse und kann klein gehalten werden Nachteile der klassenbasierten Adressierung o feste Zuordnung von Netzwerken, wenn ein Rechner in eine anderes Netzwerk zieht, muss seine IPAdresse angepasst werden o C-Netze erlauben nur wenige Hosts (8 Bits), B-Netze erlauben sehr viele Hosts (16 Bits) o Verschwendung: größere Organisationen bemühen sich um B-Netz und nutzen Adressen nur teilweise o Anfang der 90er Jahre war absehbar, dass der Adressraum für weiteres Wachstum nicht ausreicht CIDR (Classless Inter-Domain Routing) Weiterleitung basiert nicht mehr auf klassenbasierten Netzwerkadressen sondern auf einer beliebigen Anzahl von Bits in der Adresse, die durch die Maske gekennzeichnet werden Adresse und Maske können als Einträge in die Weiterleitungstabelle geschrieben werden die starre Zuordnung ist aufgelöst, aber größere Tabellen heute verbreitet die Router müssen ein Longest-Prefix-Match durchführen: sie vergleichen die Adresse mit Übereinstimmungen in der Weiterleitungstabelle und wählen diejenige, bei denen die meisten Bits übereinstimmen hierfür gibt es spezielle Datenstrukturen (Varianten von Binärbaumen), mit denen dieses effizient durchführbar ist Fragmentierung wenn Verbindungen unterwegs eine kleinere MTU (Maximum Transmission Unit) erfordern, wird das Datagramm in Fragmente zerlegt und als kleinere Datagramme weitergeleitet dies kann sich u.U. mehrmals wiederholen IP-Header-Felder o identifier: Kennzeichnung o zusammengehöriger Fragmente o flag: Fragment folgt o offset: Position der Daten des Fragments bei offset*8 Reassemblierung: erst am Ziel wird wieder zusammengesetzt NAT (Network Address Translation) Umgehung der Adressknappheit Netzwerk verwendet intern global ungültige Adressen, z.B. 10.0.0.0/24 Netzwerk besitzt eine global gültige IP-Adresse Verbindungen zu internen Hosts werden auf Paare abgebildet, die aus dieser Adresse und einem Port bestehen nächster Router muss die Abbildung ausführen, er besitzt Tabelle hierfür und überschreibt Adressen und Ports in den IP-Datagrammen Größe durch Anzahl von Portnummern begrenzt Nachteil: Verletzung des Schichtenprinzips (Router beschäftigt sich mit Hosts) und Eingriff in die Ende-zu-EndeVerbindung Vorteil: interne Änderungen ohne externe Auswirkung, bessere Abschirmung IPv6 (IP version 6) ursprünglicher Name: IP – The next Generation (IPng) IPv5 war experimentelles Protokoll IETF-Standardisierungsbemühung initiiert wegen Adressraumproblemen von IPv4, dabei gleich Lösung weitererProbleme o Header mit fester Länge (für schnelles Weiterleiten) o keine Fragmentierung (wird einfach verworfen falls > MTU) o keine Prüfsumme (Fehlererkennung in höheren Schichten) o zusätzliche Optionen außerhalb als nächster Header o Autokonfiguration (inzwischen DHCP) o Dienstgütemerkmale (inzwischen IntServ, DiffServ) Probleme bei der Durchsetzung, inzwischen „kann“ IPv4 vieles auch Kurzformen: 4BF5:0000:0000:0000:BA5F:039A:000A:2176 o Nullen kompakter: 4BF5:0:0:0:BA5F:39A:A:2176 o Nullen weglassen: 4BF5::BA5F:39A:A:2176 gemischte Notation: die letzten 32 Bits sind oft IPv4-Adresse, Darstellung durch ::FFFF:128.155.12.198 Header: Ver, Pro, Flow Label; Payload len, next Hdr, Hop Limit; Source IP; Dest IP; Data Übergang von IPv4 zu IPv6 - gleichzeitige Umstellung unmöglich 2 Ansätze, wenn IPv6-Datagramme zu einem IPv4-Router geschicktwerden müssen Dual Stack: IPv6-Knoten haben auch IPv4-Implementierung und können Datagramme als IPv4 versenden, zusätzliche IPv6-Information geht dabei verloren Tunneling: das IPv6-Datagramm wird in ein IPv4-Datagramm eingepackt ROUTER Aufgaben: Weiterleitung, Ausführung von Routingprotokollen Aufbau: Input Ports -> (Switching Fabric <-> Routing Processor) -> Output Port Funktionen am Input Port: (Line Termination -> Data Link Processing -> Lookup, Forwarding, Queuing) o Pufferung, fals Pakete schneller von der Leitung kommen als sie weitergegeben warden können. Paketverlust bei Überlauf. o Verteiltes Weiterleiten: Port besitzt Kopie der Weiterleitungstabelle o Effiziente Datenstrukturen für schnelle Suche Möglichkeiten für die Switching Fabric o Speicher CPU kopiert Paket von Eingangsport in Hauptspeicher, führt Weiterleitungsentscheidung durch und kopiert Paket zum Ausgangsport 2 mal internen Bus benutzen, Begrenzung der Leistungsfähigkeit frühe Router waren einfache Rechner, heute auch noch möglich o Bus ein Bus verbindet alle Ports, kann nur jeweils für einen Transfer benutzt werden, Wettbewerb üblich für kleine bis mittlere Router o Verbindungsnetzwerk bekannt aus der Verbindung von Prozessoren in Parallelrechnern z.B. Crossbar: jeder Port kann direkt mit jedem anderen verbunden werden (quadratischer Schaltungsaufwand) auch mehrstufige Anordnungen Funktionen am Output Port (Queueing -> Data Link Processing -> Line Termination) o Pufferung: wenn Switching Fabrik schneller liefert als gesendet werden kann o Paketverlust bei Überlauf o Active Queue Management: Entscheidung, welches Paket verworfen wird bei Überlauf o Scheduling: Entscheidung welches gepufferte Paket zuerst weitergesendet wird. Head-of-the-Line (HOL) Blocking o -mehrere Eingangports wollen auf gleichen Ausgangsport o -manche müssen warten, die dahinter werden blockiert, obwohl ihr Ausgangsport frei wäre ROUTING - Routing: Verfahren, mit denen Router entscheiden, über welchen Weg Pakete gesendet werden sollen Intradomain: innerhalb einer Routing-Domäne (= unter einer administrativen Instanz), hier können Verfahren verwendet werden, die nicht für sehr große Netze skalieren, zwei Varianten o Link-State: jeder Router besitzt vollständige Information über die gesamte Routing-Domäne, jeder Router berechnet kürzeste Pfade von ihm zu allen anderen Routern z.B. mit dem DijkstraVerfahren, Beispiel: OSPF o Distanzvektor: jeder Router kennt nur Kosten zu direkten Nachbarn und die von ihm erreichbaren Ziele, die kürzesten Pfade werden verteilt mit Bellman-Ford-Verfahren berechnet, Beispiel: RIP Interdomain: zwischen Routing-Domänen o ausgetauschte Routing-Informationen enthalten ganzen Pfade, o Auswahl durch Regeln, Beispiel: BGP Unicast-Routing (Punkt-zu-Punkt) o proaktiv: Information p oa t o at o über Netztopologie wird ausgetauscht, aktuell gehalten, mit Graphbasierten Verfahren werden Pfade zu allen Zielen bestimmt, bei Sendewunsch werden diese genutzt o auf diesen Fall beschränken wir uns hier Multicast-Routing (Punkt-zu-Mehrpunkt) o Router sollen effizient genutzt werden o Erweiterung von Unicast-Routing o ebenfalls proaktiv Ad-Hoc-Routing o dynamische Netztopologie: Pfade veralten schnell o Erweiterung von proaktiven Verfahren o auch reaktive Verfahren: erst bei Sendewunsch wird Pfad bestimmt Datenzentrische Verfahren o adresslos, Nachrichten werden aufgrund ihres Inhalts weitergeleitet, z B Sensornetzen Graphenbegriffe: Pfad: Sequenz (v1,...vn) sodass alle Paare(v1,v2)..(vn-1,vn) element E Zyklus: Pfad mit Anfang = Ende Graph ist zusammenhängend wenn es Pfad zwischen jedem Knotenpaar gibt Baum: zusammenhängender Graph ohne Zyklen Link-State-Routing alle Knoten besitzen vollständige Kenntnis der Netztopologie (durch Fluten erreicht) jeder Knoten berechnet die kürzesten Pfade zu allen anderen Knoten (Dijkstra-Verfahren) bei Änderungen in der Netztopologie (kann z.B. die Verbindungsschicht erkennen), erfolgt erneutes Fluten und Neuberechnung der kürzesten Wege Forward-Search: Initialisierung o bestätigteListe = <(u,0,-)>, vorläufigeListe = <>; Wiederhole o w = letzter in bestätigteListe eingetragener Knoten o für alle Nachbarn v von w falls v weder in bestätigteListe noch in vorläufigeListe füge (v, D(w)+c(w,v), nexthop(w)) vorläufigeListe zu falls v in vorläufigeListe und D(w)+c(w,v) < D(v) ersetze in vorläufigeListe den Eintrag für v durch (v, D(w)+c(w,v), nexthop(w)) o verschiebe Eintrag mit geringsten Kosten von vorläufigeListe in bestätigte Liste o bis vorläufigeListe leer Fluten Link-State-Advertisements (LSAs) mit o Kennung des Knotens, der LSA erzeugt o Kosten zu Nachbarn und dessen Kennung o Sequenznummer o Lebensdauer jeder Knoten erzeugt LSAs mit den ihm bekannten Informationen über die Verbindungen zu den Nachbarn und sendet sie an alle Nachbarn neue von Nachbarn erhaltene LSAs werden an alle Nachbarn weitergeleitet, aber nicht an den Nachbarn, von dem das LSA kam zur Erzielung von Zuverlässigkeit auch Bestätigungen und Sendewiederholungen zwischen Nachbarn sowie Sequenznummern und Lebensdauer Distanzvektor Verhalten bei Änderungen der Netztopologie o der Algorithmus funktioniert auch bei Topologieänderungen und wenn die Informationen in asynchroner Weise ausgetauscht werden (also nicht jeweils gleichzeitig) o bei Verkleinerung der Verbindungskosten konvergiert das Verfahren schnell: good news travel fast o bei Vergrößerung der Verbindungskosten können jedoch durch Zyklen in den Pfaden Probleme entstehen: bad news travel slowly Count-to-infinity-Problem o veraltete Information in den verteilten Routing-Tabellen enthält zyklischen Pfad o die langsame Iteration endet erst, wenn die Kosten des alternativen Pfads erreicht sind o Abhilfe größten Kostenwert beschränken (z.B. 16) Poisoned Reverse: wenn der kürzeste Weg von u nach v über den nächsten Hop w führt, sendet u an w die Kosten von unendlich für die Entfernung von u nach v mit Poisoned Reverse können Zyklen der Länge 2 vermieden werden, nicht jedoch längere Zyklen RIP (Routing Information Protocol) o frühes und verbreitetes Routing-Protokoll, Teil von BSD Unix o Distanzvektor-Routing o Router teilen in Advertisements über UDP den Nachbarn mit, welche Netzwerke sie mit welchen Kosten erreichen können o Advertisements werden periodisch (alle 30 s) und bei Änderungen gesendet o Kostenmetrik: Anzahl von Hops, maximal 15 (16 für Poisoned Reverse) Link-State vs Distanzvektor: Link-State: o Zentrales Verfahren o Komplexität von Dijkstra: O(n^2) o Effiziente Implementierung: O(nlogn) o Beschränkt Skalierbarkeit) Nachrichtenaustausch: O(ne) (e = Kanten) o Robustheit: Router können nur fehlerhafte Verbindungsinformation weitergeben Distanzvektor: o Verteilter Algorithmus - o o o o Folgt: o Konvergenzproblem bei Zyklen Beschränkt Skaliebarkeit Robustheit: Router können fehlerhafte Pfade weitergeben, Fehlerfortpflanzung möglich Fehlfunktion eines Router wirkt sich auf andere aus Dynamische Metriken (die von aktueller Netzlast abhängen) führen zu instabilem Verhalten, nicht bewährt Interdomain-Routing Routinghierarchie o innerhalb einer Routingdomäne: Intradomain Routing, Interior Gateway Protokolle (IGP) o zwischen Routingdomänen Interdomain Routing, Exterior Gateway Protokoll (EGP), „das“ EGP ist BGP: Border Gateway Protocol, RFC 1771 Routingdomänen: autonome Systeme (AS) • Stub AS: hat nur eine Verbindung zu anderen AS Multihomed AS: hat mehrere Verbindungen zu anderen AS, befördert aber keinen Durchgangsverkehr Transit AS: hat mehrere Verbindungen zu anderen AS und befördert Durchgangsverkehr Transit AS gekennzeichnet durch zentral vergebene AS-Nummer (16 Bits) ein Router eines AS ist Gateway und führt EGP aus Pfadbasiertes Routing o Austausch von ganzen Pfaden o keine Berücksichtigung von Kosten (wegen Größe der beteiligten Netze und uneinheitlicher Metriken nicht möglich) o Router gibt nur die Pfade bekannt, die andere Router nutzen sollen o Router sucht sich aus den bekannten Pfaden einen Pfad nach individuellen Regeln aus (z.B. Länge des Pfads, AS im Pfad) o Zyklen können erkannt werden (ein Router zweimal im Pfad) o Pfade können auch annulliert werden Funktion von BGP o Gateways tauschen Advertisements in BGP-Sessions über TCP aus o Advertisements enthalten Pfade, die Gateways zu Netzwerken kennen o ein Pfad besteht aus Liste von Netzwerken (Adresse+Präfix, CIDR) in einem erreichbaren AS Sequenz von AS-Nummern zu diesem AS IP-Adresse des sendenden Gateways o beim Weiterleiten eines Pfades fügt ein Router sein AS am Anfang des Pfads an und setzt sich als den nächsten Hop ein o dadurch erlaubt er, dass Verkehr an die Liste von Netzwerken über ihn geleitet wird o ein Pfad, in dem er selbst in der Sequenz auftaucht, wird verworfen Multiprotocol label switching (MPLS) Beispiel für virtuelle Leitungsvermittlung, Wurzeln in der ATM-Technologie virtuelle Leitungen o IP Pakete erhalten Label o Weiterleitung durch die Label Switched Routers (LSRs) entlang des Label-Switched Path (LSP) o jeder LSR erkennt Eingangsport und Label, sieht in Tabelle nach, welchesdas neue Label sein soll, und auf welchem Ausgangsport das Paket weitergeleitet werden soll o Label Swapping: das alte wird durch das neue Label ersetzt o Weiterleitung an den Ausgangsport o LSP muss vorab aufgebaut werden Vorteile o schnelles Weiterleiten (kein Longest Prefix Match) o Planung von LSPs für die gezielte Verkehrsleitung o Virtual Private Networks (VPNs): Tunnels zwischen Knoten o Aggregation von LSPs durch Label Stacking SICHERUNGSSCHICHT Physikalische Adresse (MAC) 48 bit, 6 bytes, 12 Hex. In ROM. Verwaltet durch IEEE. Global eindeutig != IP, keine Strukturierung Address Resolution Protocol (ARP) jeder Knoten besitzt ARP-Tabelle mit Zuordnungen (IP-Adresse, physikalischer Adresse, TTL) Time To Live (TTL): Dauer der Gültigkeit des Eintrags, z.B. 20 Minuten - Knoten A möchte an B Rahmen schicken, kennt IP-Adresse, aber nicht physikalische Adresse von B A sendet ARP-Anfrage als Broadcast (Adresse FF-FF-FF-FF-FF) mit seiner physikalischen Adresse und der IPAdresse von B B erkennt sich als Ziel an IP-Adresse in der ARP-Anfrage und sendet in ARP-Antwort seine physikalische Adresse an die physikalische Adresse von A A speichert die Zuordnung der Adressen von B in seiner ARP-Tabelle Autonomität, „Soft State“ Medienzugriff Punkt-zu-Punkt-Verbindungen o nur die zwei Endpunkte greifen auf das Medium zu, z.B. Point-to-Point Protocol (PPP) zwischen Host und Router über Telefonverbindung o Verbindung zweier Router über anderes Netz (z.B. Transportnetz) o keine komplizierte Koordination notwendig Medien mit Mehrfachzugriff o gemeinsamer Bus: früher bei Ethernet, in Bussen für die Fahrzeugund Automatisierungstechnik (z.B. CAN), Systembus (z.B. PCI), Peripheriebus (z.B. SCSI) o gemeinsamer Funkkanal: WLAN 802.11, Bluetooth, ZigBee o Internetzugang über Kabel o benötigt verteilte Koordination des Medienzugriffs (Medium Access Control, MAC) Möglichkeiten für den Mehrfachzugriff feste Kanalaufteilung o durch geeignetes Multiplexverfahren, wird das Medium in feste Kanäle für Knotenpaare aufgeteilt o bekannt: Frequenz-, Zeit-, Codemultiplex o für Sprachkommunikation verbreitet o Nachteil für Datenkommunikation: Daten werden typischerweise sporadisch versendet, ineffiziente Nutzung des Mediums Zufallszugriffverfahren o Stationen greifen zufällig auf Medium zu, eventuelle gleichzeitige Übertragungen (Kollisionen) müssen beachtet werden o Urform: ALOHA, abgeleitet: MAC bei Ethernet und WLAN zyklische Zuteilung o zentralisiert: Polling durch zentralen Knoten o verteilt: Sendeerlaubnis durch rotierendes Bitmuster (Token), z.B. Token Ring, FDDI, USB, Profibus ALOHA in den 1970ern zur Vernetzung von Rechnern der Uni Hawaii gemeinsamer Funkkanal für alle Knoten Verfahren: o wenn die MAC-Schicht eines Knotens von der Netzwerkschicht ein Datagramm erhält, wird der Rahmen sofort gesendet o wenn der Empfänger ihn fehlerlos erhält, sendet er eine positive Bestätigung (ACK) zurück o wenn nach einem Timeout kein ACK zurückkommt, wartet der Sender eine zufällige Wartezeit (Backoff) und wiederholt dann das Senden Kollisionen werden wie Fehler bei der Fehlerkontrolle behandelt das Protokoll ist einfach, verteilt, es gibt keine Absprachen zwischen den Knoten Binärer exponentieller Backoff: m-te Kollision: gleichverteilte Auswahl von K aus {0,1,2,3,4,…, 2m-1} o Backoffzeit an aktuelle Last anpassen o niedrige Last: vermutlich sind nur wenige Knoten an der Kollision beteiligt, Auswahl von K aus wenigen Möglichkeiten reicht o höhere Last: mehr kollidierende Knoten, Auswahl von K aus mehr Möglichkeiten, größere mittlere Backoffzeit Carrier Sense Multiple Access (CSMA) Knoten prüfen vor dem Senden, ob Medium belegt (listen before talking) reduziert Kollisionen Voraussetzung: Ausbreitungsverzögerung < Rahmensendezeit (sonst sinnlos) Kollisionen immer noch möglich: wenn anderer Knoten startet, bevor sich das Signal auf dem Medium zu ihm ausgebreitet hat CSMA-Varianten o 1-persistent wenn das Medium belegt ist, wartet der Knoten bis es frei ist und sendet dann sofort geringe Wartezeit aber mögliche neue Kollision, wenn mehrere Knoten auf freies Medium warten o nicht-persistent wenn das Medium belegt ist, geht der Knoten in Backoff weniger Kollisionen aber längere Wartezeit o p-persistent wenn das Medium belegt war und wieder frei ist, sendet der Knoten jeweils mit Wahrscheinlichkeit p oder wartet noch einen Slot mit Wahrscheinlichkeit 1-p -Kompromiss Zyklische Zuteilung Token Ring o die Knoten sind ringförmig vernetzt o Knotenadapter hat Eingang und Ausgang, 2 Modi: Listen Mode: Bits vom Eingang werden mit Pufferung (typisch1 Bit) weitergereicht, Knoten erhält Kopie Transmit Mode: Bits vom Eingang werden an Knoten geleitet, Bits zum Ausgang kommen vom Knoten ein Bitmuster (Token) zirkuliert auf Ring, 2 Zustände (frei, belegt), z.B.: frei = 01111110, belegt = 01111111 wenn Knoten freies Token empfängt und Sendewunsch vorliegt, verändert er das Token durch Umsetzen des Bits in belegt und sendet Daten der Empfänger erhält die Daten nach Ringumlauf entfernt der Sender das belegte Token und die Daten vom Ring und sendet das freie Token weiter Leitungskodierung NRZ: Non-Return-To-Zero NRZI: NRZ-Inverted Bipolar Manchester-Kodierung Differentielle Manchester-Kodierung 4B/5B-Kodierung SMTP S: C: S: C: S: C: S: C: S: C: S: C: C: C: C: C: C: C: C: C: C: C: S: C: S: 220 smtp.example.com ESMTP Postfix HELO relay.example.org 250 Hello relay.example.org, I am glad to meet you MAIL FROM:<[email protected]> 250 Ok RCPT TO:<[email protected]> 250 Ok RCPT TO:<[email protected]> 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> From: "Bob Example" <[email protected]> To: "Alice Example" <[email protected]> Cc: [email protected] Date: Tue, 15 Jan 2008 16:02:43 -0500 Subject: Test message Hello Alice. This is a test message with 5 header fields and 4 lines in the message body. Your friend, Bob . 250 Ok: queued as 12345 QUIT 221 Bye Uniform Resource Locator (URL) Hypertext Transfer Protocol (HTTP) Domain Name System (DNS) File Transfer Protocol (FTP) Round Trip Time (RTT) Common Gateway Interface (CGI) Simple Mail Transfer Protocol (SMTP) Simple Network Management Protocol (SNMP) Service Access Points (SAP) Service Data Units (SDU) Protocol Data Units (PDU) Management Information Base (MIB) Structure of Management Information (SMI) Abstract Syntax Notation One (ASN.1) Bit Encoding Rules (BER) Content Distribution Networks (CDNs) Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Dynamic Host Configuration Protocol (DHCP) Distributed Hash Table (DHT) Explicit Congestion Notification (ECN) Maximum Segment Size (MSS) Classless Inter-Domain Routing (CIDR) Maximum Transmission Unit (MTU) Internet Control Message Protocol (ICMP) Network Address Translation (NAT) Head-of-the-Line (HOL) Multiprotocol Label Switching (MPLS)=Virt. Leitungsvermittlung (ATMs),schnelles Weiterleiten Label Switched Routers (LSRs) Label-Switched Path (LSP) Interior Gateway Protokolle (IGP) Exterior Gateway Protokoll (EGP) Autonome Systeme (AS) Border Gateway Protocol (BGP) Routing Information Protocol (RIP) Open Shortest Path First (OSPF) Link-State-Advertisements (LSAs) Session Description Protocol (SDP) = Aushandeln von Kodierungsverfahren bei SIP Asynchronous Transfer Mode (ATM) Media Access Control (MAC) Address Resolution Protocol (ARP) Time To Live (TTL) Zeitmultiplex (Time Division Multiplex Access, TDMA) Frequenzmultiplex (Frequency Division Multiplex Access, FDMA) Carrier Sense Multiple Access (CSMA) /CD = Collision Detection (Ethernet) /CA = C. Avoidance (WLAN) Fiber Distributed Data Interface (FDDI, Multi-Token Ring) Distribution Interframe Space (DIFS) Short Interframe Space (SIFS)