1. Computernetzwerke und das Internet

1.1 Die Physikalische Schicht

In den 1960er-Jahren kam die Idee auf, die wenigen vorhandenen Computer so zu vernetzen, das Anwender digitale Daten über ein Netzwerk untereinander austauschen können, ohne einen Medienwechseln durchführen zu müssen. Das Ziel dabei war ein schneller und einfacher Informationsaustausch, z.B. durch digitale Briefe (E-Mail).

Das einfachste Netzwerk besteht dabei aus zwei Rechnern, die mit einem Netzwerkkabel verbunden sind, und über dieses Daten austauschen.

Ein Kommunikationsnetzwerk (kurz: Netzwerk) besteht aus einer Menge von Systemen, die über einen Übertragungskanal verbunden sind, um digitale Nachrichten untereinander auszutauschen. Eine visuelle Darstellung eines solchen Netzwerkes bezeichnet man als Netzwerkdiagramm. Ein Netzwerkdiagramm visualisiert die Teilnehmer und deren Verbindungen untereinander. Es zeigt, ob verschiedene Systeme miteinander kommunizieren können und wie Datenflüsse innerhalb des Netzwerks verlaufen.

Daten werden in Netzwerken als Netzwerkpakete (Packets) in Form von Binärzahlen übertragen.

Ein Endsystem in solch einem Netzwerk besteht aus der Hardware selbst (Laptop, PC, etc.), einer oder mehreren Anwendungen (Browser, Web Server, etc.) und einer Übertragungsschnittstelle, dem sogenannten MODEM (von Modulator: digital analog und Demodulator: analog digital). Der Übertragungskanal besteht aus einem Übertragungsmedium (Kabel, Luft, etc.) und Vermittlungseinrichtungen (Router, Switches, Multiplexer, Repeater), die auch als Netzwerkgeräte bezeichnet werden.

Mithilfe von Signalen werden digitale Nachrichten über einen Übertragungskanal übermittelt. Ein Signal ist die Darstellung von Informationen durch physikalische Größen, zum Beispiel Strom, Spannung, Luftdruck oder elektromagnetische Wellen.

Analoge, digitale und binäre Signale

Ein Signal gilt als analog, wenn es kontinuierlich im Wert- und Zeitbereich ist. Digitale Signale hingegen sind diskret im Wert und Zeitbereich (keine weichen Übergänge). Ein binäres Signal besitzt nur zwei Werte.

Im Falle eines Netzwerkes wird eine digitale Nachricht als analoges Signal übertragen.

Ein Signal besitzt neben seinem zeitlichen Verlauf auch einen frequenzlichen Verlauf, das sogenannte Spektrum. Das Spektrum beschreibt, aus welchen Frequenzen sich ein Signal zusammensetzt.

Außerdem ist der Zusammenhang zwischen Zeit- und Frequenzbereich ist reziprok, d.h. ein kurzes zeitliches Signal benötigt ein breites Spektrum.

Die Symbolrate ist definiert als:

Ein Übertragungskanal besitzt eine endliche Bandbreite an Frequenzen und begrenzt somit die Länge des zeitlichen Signals auf einen unteren Wert:

Übertragungskanäle

Ein Kupferkabel verhält sich aus Tiefpass, es werden also nur elektromagnetische Wellen kleiner als eine Grenzfrequenz durchgelassen:

Bei Glasfaser oder Funk hingegen verhält sich die Übertragung als Bandpass, d.h. nur elektromagnetische Wellen in einem Frequenzband um eine Mittenfrequenz (Trägerfrequenz) werden durchgelassen.

Kabelgebundene Übertragungskanäle

Kabelgebundene Übertragungskanäle basieren auf elektrischen oder optischen Leitungen. Vorteile:

  • Geringe Bitfehleranzahl bei der Übertragung
  • Höhere Datensicherheit, da die übertragenen Daten per se nicht mitgelesen werden.

Nachteile:

  • Geringe Flexibilität und Mobilität

Kupferkabel

Ein Kupferkabel besteht aus isolierten Kupferadern, die jeweils miteinander verdrillt sind. Insgesamt gibt es im Kabel vier von diesen Kupferadernpaaren, die voneinander elektrisch isoliert.

  • CAT-7:
  • CAT-8:

Koaxialkabel

Ein Koaxialkabel hat einen Kupferinnenleiter und eine Außenschirmung. Tiefpassbereich: . Es wird für Kabelfernsehen und Antennen verwendet.

Glasfaser

Ein LWL-Kabel (Lichtwellenleiter) enthält mehrere Fasern aus Glas. Jede der Fasern ist mit einem Schutzmantel aus Kunststoff umgeben. Das Kabel überträgt von einem Laser erzeugte Infrarotstrahlung. Die Daten werden auf ein Trägersignal mit der Trägerfrequenz aufmoduliert.

  • Frequenzbereich:
  • Wellenlänge:
  • Bandbreiten:

Glasfaserkabel haben eine niedrige Fehlerrate, da kein Übersprechen durch elektromagnetische Störungen vorkomme und eine geringe Dämpfung vorliegt, wodurch nur wenige repeater zur Signalverstärkung benötigt werden. Sie werden in Hochgeschwindigkeitsverbindungen in Rechenzentren, in Datenautobahnen und in Seekabeln verwendet.

Die Übertragung eines Packets über Lichtwellenleiter erfolgt über Infrarotwellen. Dabei wird einem analogen Trägersignal die digitale Information auf Basis einer Clock-Frequenz aufmoduliert.

Man unterscheidet zwischen:

  • Amplitudenmodulation (AM)
  • Frequenzmodulation (FM)
  • Phasenmodulation (PM)

Anzahl an Bits pro Symbol

Ein Symbol ist ein Signal, das ein oder mehrere Bits darstellt. Je nach Modulationsschema kann ein Symbol mehrere Bits darstellen. Mit Modulationsstufen lassen sich Bits übertragen.

Max. Datenrate auf einem Übertragungskanal

Die zeitliche Länge eines Symbols bestimmt die Anzahl der Bits, die pro Zeiteinheit übertragen werden können. Die Übertragungsrate eines Kanals ist dann gegeben durch die Symbolrate , also die Anzahl der Symbole pro Sekunde mal der Anzahl an Bits , die pro Symbol transportiert werden können:

Leitungsmodulation (Puls Amplitude Modulation, PAM)

Bei PAM werden die binären Nachrichtensignale direkt in Form von Spannungsimpulsen auf eine Kupferleitung moduliert. Das Clock-Signal ist Zeitgeber für die Leitungsmodulation des Nachrichtensignals. Die Clock-Frequenz entspricht der Symbolrate .

PAM-4 beispielsweise hat eine Clock-Rate ().

Drahtlose Übertragungskanäle

Drahtlose Übertragungskanäle basieren auf der Übertragung von Funkwellen über die Luft. Da Funkwellen sich radial im Raum ausbreiten und dadurch einfach mitgelesen werden können, erfordern Funkprotokolle immer Authentifizierung mit anschließender Verschlüsselung.

Vorteile:

  • Hohe Flexibilität und Mobilität

Nachteile:

  • Hohe Bitfehleranzahl aufgrund von Umgebungseinflüssen.

Richtfunk

  • Frequenzen: (Mikrowellen)
  • Übertragungsraten:

Vorteile:

  • Strahlengang ist unsichtbar und stark gebündelt
  • Abhören nur schwer möglich
  • Stört keine anderen Funksignale

Übertragung digitaler Nachrichten über einen Übertragungskanal

Maßeinheiten für die Bandbreite / Übertragungsraten

Übertragungsraten werden in Bit pro Sekunde oder angegeben, als 10-er Potenzen.

Speicherkapazitäten für Festplatten werden in Bytes () angegeben, als 2-er Potenzen.

Random anderes Zeug

  • Lichtgeschwindigkeit im Vakuum :
  • Ein Medium hat die Brechzahl . Wie hoch ist die Lichtgeschwindigkeit im Medium?
  • Lichtgeschwindigkeit in Luft:
  • Lichtgeschwindigkeit in Glasfaser:
  • Lichtgeschwindigkeit in Twisted-Pair-Cable (NVP = nominal velocity of propagation): , Bei einem CAT-Kabel ist , also
  • Lichtgeschwindigkeit in Koaxial-Kabel mit :

1.2 Topologie von Netzwerken

Peer-to-Peer Netzwerke

Bei einem Peer-to-Peer Netzwerk stellen sich Computer gegenseitig Funktionen (Dienstleistungen) und Daten zur Verfügung. Sie sind dabei für die Sicherheit und Verwaltung der bereitgestellten Ressourcen selbst verantwortlich.

Client-Server-Netzwerk

Hier stellt ein Server dauerhaft zentral im Internet Dienste (Funktionen, APIs, Daten) zur Verfügung, die ein Client bei Bedarf anfragen kann. Sicherheit und Management der Ressourcen erfolgt zentral beim Server.

Topologie

Als Topologie eines Kommunikationsnetzwerkes bezeichnet man den Aufbau eines Netzwerkes. Der Aufbau beschreibt den möglichen Transportweg von Daten zwischen den Netzwerkteilnehmern. Es wird zwischen physikalischer und logischer Topologie unterschieden:

  • physikalische Topologie: Der physikalische Aufbau der Verbindungen
  • logische Topologie: Regeln für den Datenfluss über die Verbindungen

Topologien werden grafisch mit Knoten und Kanten in Form von Graphen dargestellt. Für Funkverbindungen werden Funk-Icons oder gestrichelte Linien verwendet.

Auswahl der richtigen Topologie

Die Auswahl der richtigen Topologie spielt bei der Architekturplanung eines Netzwerkes eine zentrale Rolle. Folgende Kernparameter werden durch die Topologie bestimmt:

  • Leistungsfähigkeit: Effektive Datenrate
  • Latenz
  • Verfügbarkeit
  • Skalierbarkeit
  • Kosten, Zeit, Personal für den Betrieb
  • Sicherheit (Segmentierung, Secure-by-Default, …)

Da nicht immer eine Topologie für alle Anforderungen passend ist, unterteilt man ein Netzwerk in Subnets.

Bus-Topologie: Netzwerk für Arbeitsgruppen

  • Diffusionsnetz
  • Ein Signal geht an alle anderen Rechner, breitet sich in alle richtungen aus
  • Keine Switches, Router, Firewalls
  • Jeder Teilnehmer bekommt alle Signale, sendet an alle Signale
  • Signale können kollidieren falls gleichzeitig gesendet
  • Beschädigung des Buses blockiert gesamten Datenverkehr
  • Beispiele: Ethernet HUB, Koaxialkabel, WLAN

Stern-Topologie: Unternehmensnetzwerke

  • Jeder Netzteilnehmer wird separat mit zentralem Netzwerkknoten verbunden (sog. “Switch”)
  • Alle Teilnehmer wickeln Kommunikation direkt über Switch ab
  • Keine Kollisionen zwischen Endgerät und Switch durch Full-Duplex-Betrieb (gleichzeitiges Senden)
  • Teilnetze werden über Switches aufgebaut

Backbone - Rückgrat von Unternehmensnetzwerken

  • Kernnetz, über das alle Teilnetze verbunden sind
  • Besteht aus min. 2 hochleistungsfähigen Core-Switches, die zueinander redundant sind
  • Verbindung zwischen Switches wird über einen Netzwerk-Bond realisiert
    • Mehrere Ports werden zu einem logischen Port zusammengeschlossen, um eine höhere Ausfallsicherheit und bessere Datenraten zu erreichen
  • Core-Switches sind Layer 3 Switches, die gleichzeitig als Router arbeiten und die Pakete verteilen können. Layer 1 ist das Gerät selbst.

Segmentierung durch Stern-Stern-Topologie

  • Entsteht, wenn an die Core-Switches direkt weitere Switche per Kabel angeschlossen sind.
  • Idee: Pro Stockwerk werden alle Endgeräte an einen Switch (den Access-Switch) angeschlossen, die dann direkt an die Core-Switches angeschlossen werden
  • Besonders geeignet für kleinere Unternehmen, bei großen Unternehmen werden zu viele Ports benötigt

Skalierung und Segmentierung durch Baum-Topologie

  • Bei großen Unternehmen wird eine weitere Netzwerk-Ebene eingeführt, die sog. Distributionsebene
  • Pro Gebäude wird ein Distributions-Switch installiert
  • Distributions-Switches werden direkt an Core-Switches angeschlossen
  • Access-Switches werden mit Distributions-Switches verbunden
  • Ergebnis ist eine hierarchische Netzwerkstruktur, sog. Baum-Topologie
  • Verbindung zwischen Switches der unterschiedlichen Ebenen in Richtung des Core-Networks wird als Uplink bezeichnet
  • Distributions-Switch aggregiert die Daten von mehreren Access-Switches und leitet diese an Core Switches oder Router weiter.

Ausfallsicherheit durch Vermaschung

  • Zur Vermeidung eines single point of faliure im Core Tier werden alle Distributions-Switches mit allen Core Switches und alle Access Switches mit allen Distributions-Switches verbunden
  • Physikalisch entsteht eine Schleife zwischen den jeweiligen Switches diese muss logisch per Layer-2-Protokoll (STP) aufgehoben werden
  • Man spricht von einem vermaschten Netzwerk

1.3 Das Internet

Die Cloud

  • Wenn für technische Analysen die Topologie sowie die Systeme und Applikationen eines Netzwerkes keine Bedeutung haben, kann das Netzwerk in einem Graphen als Cloud vereinfacht werden
  • Die konkrete physikalische Topologie des Internets ist nicht bekannt und spielt für die meisten Betrachtungen keine Rolle
  • Rechenzentren innerhalb dieser Cloud werden als Cloud-Rechenzentren bezeichnet. Man kennt deren physikalische Infrastruktur nicht, nur die Netzwerkanbietern

Darstellungsvereinfachung für Netzwerkdiagramme

  • Spielen nur die Applikationen und enthaltenen Systeme für die technische Analyse eines Teilnetzwerkes eine Rolle, werden die Applikationen / Systeme mithilfe eines Rechteckes gruppiert
  • Das Rechteck symbolisiert die Vertrauensgrenze (trust boundary) für das jeweilige Teilnetzwerk

Das Internet: Eine Übersicht

  • Das Internet ist ein globales Rechnernetz besteht aus einer Vielzahl an autonomen (autonom = Verwaltung des Netzwerkes liegt bei einer Privatperson oder einem Unternehmen) Netzwerken und verbindet Milliarden an Endsystemen
  • Ermöglicht einfache “Erweiterung” des Internets btw. eine einfache Anbindung neuer Netzwerke

Struktur des Internets: Netzwerk von Netzwerken

  • Das Internet ist grob in 3 Ebenen (Tiers) unterteilt
  • Es gibt Tier 1, Tier 2 und Tier 3 ISPs (Internet Service Provider)
  • Tier 1 (weltweit Größte ISPs)
    • Weltweit mit eigener Infrastruktur präsent
    • Behandeln sich als gleichberechtigte Partner
    • Sind vollständig miteinander verbunden (durch Peering zusammengeschlossen)
  • Points of Presence (POPs): Verbindungspunkte eines ISPs
  • Zusammenschluss der Tier 1 ISPs erfolgt meist an Internet-Knoten (IXPs, Internet Exchange Points)

Struktur des Internets: Tier 2 ISPs

  • Besteht aus kleineren, oft nationalen oder regionalen ISPs
  • Tier 2 ISPs sind mit einem oder mehreren Tier 1 ISPs verbunden, aber auch mit anderen Tier 2 ISPs
  • Tier 2 ISP ist Kunde des Tier 1 ISPs
  • Tier 2 ISP bezahlt Tier 1 ISP für bereitgestellte Anbindung

Struktur des Internets: Tier 3 ISPs

  • Regionale und lokale ISPs (Stadtwerke, Energieversorger, …)
  • Es gibt mehrere tausend weltweit
  • Tier 3 ISPs sind Kunden von Tier 1 & 2 ISPs
  • Einordnung eines ISP geschieht nach Größe des Unternehmens, technischer Leistungsfähigkeit und geographischer Verteilung

Backbone des Internets

Struktur des Internets: Weg eines Packets

  • Internet ist ein Vermaschtes Netzwerk
  • Netzwerkpackets durchqueren teilweise viele ISP-Netzwerke
  • Es gibt keinen einheitlichen Weg (Route) für die Übertragung eines Packets von einem Ort zu einem anderen
  • ISPs können die Routen beeinflussen
  • ISPs können einzelne Packets blockieren
  • Wichtig: es gibt keine übergeordnete Kontrollinstanz

Internet und Intranet

  • Das Internet ist ein weltweites, öffentliches Kommunikationsnetzwerk
  • Es besteht aus einer Vielzahl von kommerziellen ISP-Netzwerken (= WAN), die über Internetaustauschknoten (IXP) miteinander verbunden sind.
  • Ein Intranet ist ein privates Kommunikationsnetzwerk innerhalb einer Organisation
  • Es ist mit einer oder mehreren Firewalls gegen Zugriff von außen abgeschirmt

Latency und Round Trip Time (RTT)

  • Die Laufzeit der Pakete von einem Unternehmensnetzwerk in den Backbone des Internets bestimmt neben der Übertragungsrate die Leistungsfähigkeit des Internetanschlusses
  • Die Zeiten unterscheiden sich je nach Technik, Entfernung zum Edge-Router des ISPs und Anzahl der ISP-Hops.
  • Diese Zeiten lassen sich durch die Paketumlaufzeit oder durch die sog. Latenz messen.

Siehe Ausbreitungsverzögerung in einem Medium

Anbindung der Endsysteme ans Internet

Folgendermaßen können Endsysteme technisch an das Internet angebunden werden:

  • Kabelgebundener Internetzugang (für Heimnetze)
  • Mobilfunk Internetzugang (LTE, 5G)
  • Satellitengestützter Internetzugang
  • Hotspots (WLAN)

Wichtige Dienstmerkmale einer Internetanbindung:

  • Übertragungsrate in
  • Round Trip Time
  • Verfügbarkeit der Anbindung
  • Exklusive oder geteilte Verbindung
  • Kosten für Anbindung und Betrieb

Kabelgebundener Internetzugang

Drahtloser Internetzugang via Hotspot

Drahtloser Internetzugang via Mobilfunk

Heimbereich

Satelliten

1.4 Vermittlungsarten in Netzwerken

Vermittlung von Daten

  • Das Internet besteht aus einer Vielzahl an verbundenen Geräten (Switches, Router, Firewalls, …)
  • Wie werden Daten durch ein Netzwerk geleitet? Warum?

  • Daten können via “Leitungsvermittlung” (siehe alte Telefone, manuelles Umstecken von Kabeln in Vermittlungsstationen) und via Paketvermittlung (einzelne Daten-Packets, die in einer Warteschlange geschickt werden) übertragen werden

Leitungsvermittlung

Vorteile:

  • Vor dem Austausch werden die notwendigen Ressourcen für eine Verbindung reserviert
  • Garantierte Dienstgüte, physikalische Ressourcen sind reserviert

Nachteile:

  • Ende-zu-Ende-Ressourcen werden für die Dauer der Übertragung blockiert
  • Andere Teilnehmer können die Ressourcen nicht nutzen

Leitungsvermittlung auf geteilten Leitungen

Paketvermittlung

  • Besser als Leitungsvermittlung
  • Nachricht wird in Packets einer festen Länge aufgeteilt, somit wird der Übertragungskanal nur für kurze Zeit belegt
  • Jedes Packet erhält einen Header, in dem die Adresse des Empfängers enthalten ist
  • Packets werden über Übertragungsmedien und Vermittlungseinrichten (Router, Switches) von der Quelle zum Ziel geleitet
  • Auf Basis einer Weiterleitungstabelle und der Adresse des Empfängers entscheidet die Vermittlungseinrichtung, auf welche Leitung das Packet weitergereicht wird
  • Router werden als Hops bezeichnet, da Packets von einem Router zum nächsten “hüpfen”

Statistisches Multiplexing

  • Verbesserung für Paketvermittlung
  • Benutzer versenden Packets unabhängig voneinander über die Leitung
  • Zeitliche Folge der Packets auf der Leitung besitzt kein festes Muster
  • Benutzer wechselt zwischen Aktivitätszeit und Passivitätszeiten , wobei die Passivzeiten deutlich länger sind als die Aktivseiten ()
  • Leitungskapazität wird den Packets nach Bedarf zugeteilt
  • Wettbewerb um die Kapazität
    • Queuing wird verwendet
    • Vermeidung von Kollisionen durch Carrier Sense (CS)

Packetvermittlung nutzt Ressourcen besser aus, mehr Benutzer können Leitung gleichzeitig Nutzen

Beschreibung von Nutzung durch Binomialverteilung:

  • : Wahrscheinlichkeit, dass Nutzer gleichzeitig aktiv sind
  • : Gesamtzahl Teilnehmer im Netzwerk
  • : Gleichzeitig aktive Nutzer
  • : Wahrscheinlichkeit, dass ein Nutzer sendet

Mittlere Anzahl an gleichzeitig sendenden Benutzern:

,

Im Idealfall sendet nur ein Teilnehmer.

Berechnung von Benutzern bei Vermittlungsarten

Leitungsvermittlung:

Paketvermittlung:

1.5 Verzögerung, Verlust und Durchsatz in paketvermittelten Netzwerken

Puffern und Weiterleiten von Paketen

  • Packets durchqueren ein Netzwerk nach dem “Store and Forward”-Prinzip
  • Router (Hops) empfangen ein komplettes Packet, bevor sie es weiterleiten (IP-Header lesen und die Checksumme berechnen)
  • Hops benötigen pro ausgehender Leitung eine Queue, um zu sendende Packets bei belegter Leitung zwischenzuspeichern
  • Gefahr der Überlast: Packets können von einem Hop gelöscht werden, wenn zu viele gleichzeitig ankommen

Paketvermittlung: Store-and-Forward-Verzögerung

  • Eingehende Packets werden erst nach vollständigem Eingang weitergeleitet
  • Es entsteht also eine Verzögerung
  • Jedes Packet muss auf die nächste Leitung mit der Übertragungsrate erneut übertragen werden:
  • : Packet size in Bytes
  • : Übertragungsrate in bit/s der Leitung

Bei Routern ergibt sich eine Gesamtverzögerung von

Verzögerungen und Packetloss

  • Verzögerungen entstehen durch
    • Verarbeitungszeit bei Hops
    • Fehlerüberprüfung auf Hops
    • Ausbreitungsverzögerung von Sender zu Empfänger
    • Store and Forward-Verzögerung (weiterleitung von Packets)
    • Queueing
  • Packetloss entsteht durch
    • Fehlerhafte Packets, die erkannt und verworfen werden
    • Volle Ausgangspuffer bei einem Hop

Ausbreitungsverzögerung in einem Medium

  • : Distanz
  • : Geschwindigkeit im Medium

Wartezeit in Puffern

  • : Bandbreite der Leitung
  • : Durchschnittliche Paketgröße
  • : Durchschnittliche Paketankunftsrate
  • : Verkehrswert

sollte immer deutlich kleiner 1, meist kleiner 0,7 sein, da sonst die Wartezeit exponentiell steigt.

Gesamtverzögerung auf einem Leitungssegment

  • : Meist wenige Mikrosekunden, daher vernachlässigbar
  • : Wartezeit in Puffern
  • : Übertragungsverzögerung, signifikant wenn klein ()
  • : Signifikant wenn groß.

Durchsatz in Netzwerken

  • Durchsatz : Datenrate, mit der Daten zwischen Daten zwischen Sender und Empfänger ausgetauscht werden:
  • Unmittelbar: Datenrate zu einem gegebenen Zeitpunkt ()
  • Durchschnittlich: Mittlere Rate über längeren Zeitraum
  • Die Leitung auf dem Pfad, die die geringste Übertragungsrate besitzt, begrenzt den Datendurchsatz

Durchsatz in Netzwerken

  • Datenverkehr zwischen Clients und Server muss den Backbone des Netzwerkes durchlaufen
  • Mittlerer maximaler Durchsatz für eine Ende-zu-Ende-Verbindung zwischen einem Client und einem Server bei gleichzeitigen Verbindungen im Backbone:
  • = Rate des Clients
  • = Rate des Servers
  • = Rate des Backbones
  • = Anzahl Nutzer im Backbone

muss größer/gleich sein!

1.6 Protokolle und Dienste

Ein Protokoll ist ein Regelwerk für die Kommunikation zwischen Menschen oder Maschinen.

Protokolle im Internet

  • Ethernet, WLAN, LTE/5G
  • IP: Internet Protocol (Adressierung und Weiterleitung von IP-Packets im Internet)
  • TCP: Transmission Control Protocol (Datenübertragung & Adressierung von Applikationen)
  • BGP: Border Gateway Protocol (Wegfindung im Internet über ISP-Grenzen)
  • HTTP: Hypertext Transfer Protocol (Anwendungsprotokoll des WWW)

1.7 Protokollschichten, -Standards

Das Netzwerkprotokoll ist in einzelne Schichten aufgeteilt. Jede Schicht erfüllt eine spezielle Aufgabe für einen speziellen Anwendungsfall. Schichten ermöglichen die Abstraktion, Analyse und einzelne Gestaltung und Weiterentwicklung der einzelnen Teile des Protokolls.

Referenzarchitektur

  • Besteht aus Anwendungs-, Transfer- und Signalschicht
  • Jede der Schichten interagiert nur mit direkt verbundenen Schichten
  • Schichten können einzeln Entwickelt werden, andere Schichten können in Ruhe gelassen werden

TCP/IP Stack

  • Besteht aus Anwendungs-, Transport-, Vermittlungs-, Sicherungs- und Bitübertragungsschicht
    • Anwendungsschicht: HTTP, SMTP, DNS
    • Transportschicht: TCP
    • Vermittlungsschicht: IPv4, IPv6
    • Sicherungsschicht: Ethernet, WLAN
    • Bitübertragungsschicht: Signale auf der Leitung

ISO/OSI-Modell

  • Referenzmodell für Netzwerkprotokolle
  • Besteht aus 7 Schichten: Anwendungs-, Darstellungs-, Sitzungs-, Transport-, Vermittlungs-, Sicherungs- und Bitübertragungsschicht
    • Darstellungsschicht: Verschlüsselung & Kompression
    • Sitzungsschicht: Logische Verbindung zwischen zwei Anwendungen (TLS-Handshake, Session Keys, …)

Kommunikation zwischen den Schichten

  • Jede Schicht stellt der nächsthöheren Schicht ihre Dienste durch einen “Service Access Point” (SAP) zur Verfügung
  • Vorteile: Flexibilität, Wartbarkeit, Optimaler Technikeinsatz, Standardisierung

Datenaustausch zwischen den Schichten

  • Senderseitig:
    • Ausgehend von Applikationsschicht werden von jeder Schicht zu den eigentlichen Nutzdaten (dem Payload) sog. Header hinzugefügt, die für die Übermittlung und Verarbeitung der Daten genutzt werden
    • Vorgang wird Kapselung genannt. Generiert den sog. Protokolloverhead.
  • Empfängerseitig:
    • Von Bitübertragungsschicht aus werden von jeder Schicht die Header ausgewertet und entfernt
    • Am Ende bleibt der Payload übrig

Vermittlungseinrichtungen / Netzwerkgeräte

  • Netzwerkgeräte segmentieren Netzwerke und vermitteln Datenpakete
  • Je nach Aufgabe sind unterschiedliche Protokollschichten implementiert:
    • Layer 1: Repeater (Signalverstärker auf Bitebene)
    • Layer 2: Switches (Segmentierung von physikalischen Netzen)
    • Layer 3: Router (Adressierung und Segmentierung von logischen Netzwerken)
    • Layer 3/4: Firewalls (Zugriffsregelung auf IP und TCP Port Ebene)
    • Layer 7: Gateways (Zugriffsregelung auf Applikationsebene) & Proxys (Caches, Web-Stellvertreter)

2. Die Applikationsschicht: HTTP, DNS, TLS

2.1 Netzwerkanwendungen: Prozesse, Sockets, Anwendungsschichtprotokolle

Netzwerkanwendungen

  • Eine Netzwerkanwendung (Netzanwendung) besteht aus Programmen, die auf verschiedenen Endgeräten laufen und miteinander über ein Netzwerk kommunizieren
  • Beispiele:
    • E-Mail
    • WWW
    • VoIP
    • Streaming

Kommunizierende Prozesse

  • Ein Prozess ist ein Programm, welches auf einem Host läuft
  • Innerhalb eines Hosts können zwei Prozesse mit Inter-Process Communication (IPC) Daten austauschen
  • Prozesse auf verschiedenen Hosts müssen sich Nachrichten über ein Netzwerk senden
  • Es gibt Verschiedene Arten von Architekturen für Netzanwendungen:
    • Client to Server
    • Peer to Peer (P2P)
    • Kombination der Beiden

Client to Server-Architektur

Server:

  • Immer eingeschaltet und online
  • Feste IP-Adresse / DNS-Name
  • Stellt Dienste zur Verfügung
  • Können zu Serverfarmen zusammengefasst werden, um Leistung zu skalieren

Clients:

  • Eröffnen Verbindung zu Server
  • Sporadisch online
  • Dynamische oder feste IP-Adressen

P2P-Architektur

  • Keine Server, nur Peers (Clients)
  • Endsysteme kommunizieren direkt miteinander
  • Gut skalierbar, aber schwer zu managen und abzusichern

Kommunikation bei Client-Server

  • Jeder beteiligte Prozess muss über ein Anwendungsprotokoll auf das Netzwerk zugreifen
  • Beispiel: WWW
    • Web-Browser verschickt über HTTP eine Anfrage an den Web-Server
    • Server antwortet über HTTP dem Web-Browser
    • Prozesse müssen für die Kommunikation eindeutig adressierbar sein

Overlay-Netzwerk

  • Logisches Computernetzwerk, das auf vorhandener Infrastruktur läuft
  • Ermöglicht Funktionen, die alleine durch Netzwerk nicht möglich wären
  • Beispiele:
    • VPN
    • CDN

Adressierung von Prozessen

  • Identifizierung von Host benötigt eindeutige IP-Adresse
  • IP-Adresse allein reicht nicht für Identifizierung von Prozess Port zur Unterscheidung
  • Jeder Prozess erhält Portnummer

Sockets

  • Dienen zur Kommunikation zwischen zwei Prozessen
  • Stellen Programmier- und Kommunikationsschnittstelle (API) zwischen TCP/IP und Software dar
  • Programme speichern Port und IP-Adresse der Zielapplikation in den gesendeten Packets

  • Server-Socket: Wird bei Systemstart generiert
  • Client-Socket: Wird bei Verbindungsaufbau generiert
  • Client-Portnummer: Wird vom Betriebssystem dynamisch vergeben

Netzanwendungen und Anwendungsschichtprotokolle

  • Für die Kommunikation von Netzanwendungen werden Protokolle benötigt
  • Es gibt öffentliche / standardisierte und proprietäre Protokolle
  • Eine Netzanwendung kann mehrere Anwendungsschichtprotokolle verwenden

Protokolle der TCP/IP-Familie

Anwendungsschicht:

  • HTTP
  • SMTP
  • SNTP (Simple Network Management Protocol)
  • DNS
  • DHCP (Dynamic Host Configuration Protocol)
  • FTP
  • SSH
  • BGP

Darstellungsschicht:

  • TLS (Transport Layer Security)

Portnummern

  • Well Known Ports: Ports 0 bis 1023 werden für standardisierte Serverdienste weltweit eindeutig definiert
  • Registered Ports: Ports 1024 bis 49151 können von Anwendungsherstellern für eigene Anwendungen registriert werden lassen
  • Dynamic Ports: Ports 49152 bis 65525 sind zur freien Verwendung angedacht und werden dynamisch vom Betriebssystem zugewiesen

TCP vs UDP

  • TCP:
    • Zuverlässiger Transport von Nachrichten zwischen Prozessen
    • Flusskontrolle: Sender passt Datenrate an Verarbeitungsgeschwindigkeit des Empfängers an
    • Überlastkontrolle: Sender passt Datenrate an Kapazität des Netzwerks an
  • UDP:
    • Best Effort Transport zwischen Prozessen
    • Keine Kontrollen, Orientierungen oder Zeit-/Bandbreitengarantien

UDP existiert wegen höherer Übertragungsrate, da keine Verbindung zwischen Client und Server aufgebaut wird, und keine Kontrollen existieren, die Datenraten ausbremsen. Wird hauptsächlich bei VoIP und VCoIP (Video Conferencing over IP) verwendet

2.2 HTTP

  • Client-Server-Modell
  • Verwendet TCP
    • Server nutzt Port 80/443 bei HTTPS
    • Verbindung wird nach Austausch geschlossen
  • HTTP ist stateless Performant, Stabil, Skalierbar

Network Sequence Diagram

  • Auch Weg-Zeit-Diagramm genannt
  • Visualisiert die zeitliche Abfolge von ausgetauschten Nachrichten

  • Nachrichtenaustausch wird durch Pfeile gezeigt
  • Neigung der Pfeile zeigt Ausbreitungsverzögerung
  • Zwei Pfeile zeigen die Übertragungsverzögerung einer Nachricht der Größe

Nicht persistentes HTTP

Berechnung für gesamte Übertragungszeit für Website mit Objekten der Größe :

  • Eine für TCP-Verbindungsaufbau und eine für Homepage werden benötigt
  • Außerdem muss die Übertragungsverzögerung bei Bandbreite und Hops mitberechnet werden

Zeit des Servers, um Daten bereitzustellen:

Bei Objekten:

Persistentes HTTP ohne Pipelining

Bei Persistentem HTTP wird nur eine TCP-Verbindung gebraucht, die mehrmals verwendet wird.

Summation:

Persistenz führt zu einer Halbierung der Übertragungszeit.

Persistentes HTTP mit Pipelining

Auch hier wird nur eine TCP Connection verwendet. Der Browser kann zudem per HTTP-Request mehrere Objekte nacheinander anfragen. Der Webserver antwortet in der gleichen Reihenfolge, in der die Anfragen empfangen wurden.

Bei Objekten:

Erklärung:

  • : Entfernung zum Web-Server
  • : Anzahl der Objekte
  • : Leistungsfähigkeit des Web-Servers
  • , : Route im Internet, Anzahl der Hops und Bandbreite der Leitung zwischen zwei Hops
  • : Größe der Objekte

HTTP 1.1: HOL blocking

Head of Line-Blockierung:

  • Server Arbeitet Anfragen nach FCFS-Prinzip ab (First come, first served)
  • Bei FCFS müssen kleine Objekte evtl. auf die Übertragung eines größeren Objektes warten

Persistentes HTTP mit Multiplexing

  • Eine TCP Verbindung wird verwendet
  • Multiplexing:
    • HTTP Requests und Responses werden in kleine Teile mit Headern zerlegt, können also parallel ohne Reihenfolgenzwang und ohne Blockierung übertragen werden
    • Jede Teilnachricht erhält eine Stream-ID und kann vom Client wieder zusammengesetzt werden

HTTP/2: Multiplexing

Bei Objekten bestimmt aufgrund von Multiplexing das größte Objekt die Gesamtübertragungszeit. Es wird auch hier eine einzige TCP Session verwendet.

  • 2 für Verbindungsaufbau
  • 1 für Bereitstellung aller Objekte

Es gibt weitere Optimierungen:

  • Header Compression führt zu Reduktion von
  • Server-Push: Server analysiert HTML und schickt proaktiv die benötigten Webobjekte (3 2 )

HTTP/3: Verbindungstypen

Persistentes HTTP mit Multiplexing sowie Fehlerbehandlung per Objekt

  • HTTP/3 besitzt eigenes Sitzungsprotokoll “QUIC”
  • HTTP/3 ist HTTP/2, auf QUIC angepasst
  • HTTP/3 verwendet QUIC über UDP
  • Vorteile:
    • Erhöhung des Datendurchsatzes
    • Schnellerer Verbindungsaufbau
    • Sichere Verbindung
    • Fehler- und Congestion Control per Object
    • Verschlüsselung mit TLS ist integriert

HTTP/1.1 Request

GET /somedir/page.html HTTP/1.1\r\n
Host: www.example.com\r\n
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)\r\n
Connection: keep-alive\r\n
Accept-language: en-US\r\n
Cookie: _example-cookie=amogus;lang=de-DE\r\n
\r\n

Bei einer POST-Request folgt nach dem letzten Header und dem Ende aller Header (alleinstehendes \r\n) zudem der Body der Request.

HTTP/1.1 Response

HTTP/1.1 200 OK\r\n
Connection: close\r\n
Date: Fri, 28 Nov 2025 11:09:42 GMT\r\n
Server: Express/5.0\r\n
Last-Modified: Fri, 27 Nov 2025 11:09:42 GMT\r\n
Content-Length: 69420\r\n
Content-Type: text/html;charset=utf-8\r\n
\r\n
DATA_GOES_HERE

Cookies

  • Max. Größe: 4096B

Web-Caches (Proxyserver)

  • Benutzer können einen Proxy-Server im OS festlegen
  • Proxy-Server cached alle Web-Objekte des anfordernden Browsers
  • Webzugriff erfolgt nur noch über diesen Server
  • Wenn Objekte im Cache vorliegen, können diese direkt zurück gegeben werden
  • Vorteile:
    • Antwortzeiten werden deutlich reduziert
    • Bandbreitenbedarf wird deutlich reduziert
    • Datenverkehr im Internet / Anzahl Anfragen wird deutlich reduziert
    • Inhalt von Websites kann auf Schadcode untersucht werden, bevor er weitergeleitet wird
    • Zugriff auf Seiten kann kontrolliert werden (Black-/White-Listing)

2.3 TLS (Transport Layer Security)

  • Anwendungsschichtprotokolle verwenden Daten unverschlüsselt und ohne Schutz gegen Veränderungen über das Internet.
  • Lösung: Transportsicherheitsprotokoll TLS in Sitzungs- und Darstellungsschicht
  • Port 80 für HTTP-Kommunikation im Klartext, 443 für HTTPS mit TLS

TLS besteht aus zwei Teil-Schichten und 6 Protokollen:

  • Alert Protocol: Fehlerbehandlung
  • Heartbeat Protocol: Prüfen, ob Partner einer TLS-Verbindung noch aktiv ist
  • Handshake Protocol: Aushandeln von kryptografischen Schlüsseln und Integritätssicherung
  • ChangeCipherSpec Protocol: Aktivierung der Verschlüsselung und Integritätssicherung
  • Application-Data-Protocol: Nimmt HTTP-Daten aus Applikationsschicht entgegen und leitet sie transparent weiter
  • Record Layer Protocol: Fragmentiert, komprimiert, sichert und verschlüsselt die vom ADP weitergereichten Daten in form eines TLS-Fragment

  • Protokolle, die für Sicherheit zuständig sind:
    • Handshake Protocol: Authentifiziert Server auf Basis von digitalen X.509-Zertifikaten und handelt kryptografische Algorithmen und Schlüssel für Verschlüsselung und Integrity-Checks aus
    • Change Cipher Spec: Aktiviert die Verschlüsselung auf Server und Client
  • Protokolle für Stabilität:
    • Heartbeat Protocol: Alle 30 - 60 Sekunden wird eine Hearbeat-Request an den anderen Teilnehmer gesendet, um zu sehen, ob dieser noch aktiv ist
    • Alert Protocol: Dient der Behandlung von Fehlern, kann notfalls die Verbindung sofort schließen

Record Layer Protocol

  • Fragmentierung: Byte-Strom wird in TLS-Fragmente aufgeteilt. Max. Fragmentgröße: B
  • Datenkomprimierung (optional): Fragmente können komprimiert werden
  • Message Authentification Code (MAC): 16 Byte langer Code zur Sicherstellung von Integrität und Authentizität der transportierten Daten
    • Wird mit Hash-Funktion generiert und mit einem Schlüssel pro Fragment berechnet:
    • Wird an Nachricht angehängt
  • Datenverschlüsselung: Verschlüsselt die Kombination aus und mittels symmetrischem Verschlüsselungsverfahren unter Verwendung eines Verschlüsselungsschlüssels
  • Header: 5 Byte lang. Enthält den Content-Type, die TLS-Version und Länge des Payloads.

2.4 DNS

  • Hosts und Netzwerkgeräte können über Hostnamen und IP-Adressen eindeutig adressiert werden
  • Der Domain Name Service (DNS) ist ein weltweiter Dienst zur Namens- und Adressauflösung in großen Netzwerken
  • Auflösung bedeutet Zuordnung:
    • Hostname IP-Adresse: Lookup
    • IP-Adresse Hostname: Reverse Lookup
  • DNS ist ein Protokoll der Anwendungsschicht, wird also von Applikationen verwendet

DNS-Namen

  • Fully Qualified Domain Name (FQDN)
    • Eindeutiger Hostname
    • Punkt am Ende wird meist weggelassen
    • DNS-Namen dürfen nur Buchstaben, Zahlen, Bindestriche und Punkte enthalten
    • DNS-Namen sind case-insensitive
    • Punkte dienen zum Trennen der Labels (TLD, Domain, Subdomain, Hostname)
    • Jedes Label darf max. 63 Zeichen lang sein
    • FQDN darf max. 255 Zeichen lang sein
  • Durch DNS können für eine IP-Adresse mehrere Namen vergeben werden
    • A-Einträge definieren die Primäre IP-Adresse
    • CNAMEs sind Aliasnamen
    • AAAA-Einträge sind wie A-Einträge, aber für IPv6
    • Es können mehrere IP-Adressen einem kanonischem Namen zugewiesen werden Load Balancing

DNS-Datenbank

  • DNS wird in Form einer weltweiten verteilten Datenbank zur Verfügung gestellt
  • Die verteilten Datenbanken werden durch DNS-Server bereit gestellt
  • DNS-Hierarchie besteht aus 3 Ebenen schnelle Namensauflösung

Root-Nameserver

  • DNS ist der zentrale Dienst im Internet Ohne DNS funktioniert das Internet nicht!
  • DNSSEC wird zur Absicherung der Einträge der Datenbank verwendet
    • Einträge werden mit digitalen Zertifikaten signiert
  • ICANN verwaltet die DNS Root Domain
  • Die Root-Domain besteht aus 13 logischen Root-Servern
    • Pro Root-Server existieren weltweit physikalisch verteilte DNS-Server
    • Mittels Anycast (eine Adresse für mehrere Server, Client fragt Server an, zu dem kürzeste Route ist) erfolgt eine Lastverteilung der DNS-Anfragen über die Server

  • Ein Root-Nameserver wird von einem Top-Level-Nameserver kontaktiert, wenn dieser einen Namen nicht auflösen kann
  • Kennt die Adressen aller TLDs (com, net, org, gg, de, uk, …)
  • Es gibt 13 logische Root-Nameserver, die nach dem Schema [a-m].root-servers.net benannt sind

TLD-Server

  • Verantwortlich für jeweils eine TLD
    • com, org, net, edu, … oder de, uk, fr, ca, jp, …
  • Die Verwaltungsstelle einer TLD ist für alle Domainnamen innerhalb ihres Namespaces zuständig
  • Für Länderbezogene TLDs ist das jeweilige Land verantwortlich

Autorativer DNS-Server (Autoritative DNS Server)

  • DNS-Server einer Organisation, der eine autorisierte Abbildung der Namen dieser Organisation auf IP-Adressen anbietet und diese im Internet bereitstellt.
  • Verwaltet von Organisation selbst oder Service Provider

Iterative Namensauflösung

  • Host example.com fragt nach der IP-Adresse von Host lou.gg bei Default DNS-Server dns.example.com an.
  • Lokaler DNS-Server fragt DNS-TLD-Server nach IP-Adresse für TLD-Server für .gg an
  • Default DNS-Server fragt danach den .gg-TLD-Server nach IP-Adresse des autoritativen DNS-Servers für lou.gg
  • Default DNS-Server fragt autoritativen DNS-Server nach IP-Adresse für lou.gg und erhält diese

Zeitbedarf für 4 DNS-Anfragen & -Antworten:

  • Sobald ein lokaler/default Nameserver von einer erfolgreiche Namensauflösung erfährt, kann er den Eintrag cachen
  • Cache hat eine TTL, die pro DNS-Record festgelegt werden kann. Typisch sind 900 Sekunden.
  • Jeder Nameserver und auch lokale Geräte cachen DNS-Records. Anfragezeit für jedes Level an Caching:
    • Endgerät kennt IP: 0 Sekunden
    • Default Nameserver kennt IP: -2 RTT

Kommunikation im DNS-Protokoll

  • Es gibt DNS Query- und DNS Response-Nachrichten
  • Beide verwenden das gleiche Nachrichtenformat
  • Über eine Identification-ID werden Anfrage und Antwort einander zugeordnet
    • ID wird im Header der Nachricht übertragen
  • DNS-Name und Antwort werden im Body übertragen

SOA Resource Records

  • Ein Start of Authority Record ist ein DNS-Ressourceneintrag, der administrative Informationen über die DNS-Zone enthält.
    • primary name serer: Primärer DNS-Server für diese DNS-Zone
    • responsible mail addr: Mail-Adresse des verantwortlichen DNS-Administrators für diese Zone (@ wird durch . ersetzt, alle Punkte vor @ werden durch \. ersetzt)
    • serial: Wird bei jeder Änderung der DNS-Datenbank inkrementiert. Verwendet von sekundären DNS-Servern zur Aktualisierung
    • default TTL: Die default TTL für einen DNS-Record beim Anlegen
    • refresh: Zeitspanne in Sekunden, bevor der sekundäre Nameserver erneut fragen soll, ob sich etwas verändert hat
    • retry: Zeitspanne in Sekunden, die ein sekundärer DNS-Server warten soll, bis er einen nicht reagierenden primären Nameserver erneut um Aktualisierung bittet
    • expire: Wenn ein sekundärer Server für diese Zeitspanne keine Antwort vom primären Server erhält, sollte er nicht mehr auf DNS-Abfragen für die Zone antworten.

PTR Resource Records (PTR-RR)

  • PTR Resource Records ordnen in der DNS-Datenbank eine IP-Adresse einem DNS-Namen zu und ermöglichen so reverse lookups.
  • In jeder DNS-Zonendatei gibt es zwei DNS-Zonen:
    • in-addr.arpa. für IPv4
    • ip6.arpa. für IPv6
  • Einen PTR-RR erstellt man durch Umkehr der IP-Adresse und anhängen an eine der beiden arpa-Zones: 1.2.3.4.in-addr.arpa. 3600 IN PTR example.com
  • Für jedes IP-Netzwerk wird ein verantwortlicher DNS-Server eingetragen
  • Die Zuständigkeit für den Reverse Lookup wird von der ICANN über die Regional Internet Registry (RIR) von Tier-1-ISPs bis hin zum autoritativen DNS-Server des Zielnetzwerkes delegiert.

3. Die Transportschicht: TCP und UDP

3.1 Dienste der Transportschicht

Transportdienste und -protokolle

  • Transportieren die Nachrichten zwischen zwei Anwendungsprozessen auf verschiedenen Endgeräten
    • Aus Sicht der Anwendung ist ein dazwischenliegendes Netzwerk nicht sichtbar
  • Transportprotokolle laufen auf Endgeräten
    • Sender: Teilt von der Anwendungsschicht empfangene Nachrichten in Segmente auf und gibt diese an die Vermittlungsschicht weiter.
    • Empfänger: Fügt empfangene Segmente aus der Vermittlungsschicht wieder zu Nachrihten zusammen und gibt diese an die Anwendungsschicht weiter
  • Es gibt TCP und UDP
  • Transportschicht:
    • Logische Kommunikation zwischen Prozessen über Ports
    • Verwendet Vermittlungsschicht zur Übertragung der Segmente
  • Vermittlungsschicht:
    • Übertragung von Packets zwischen Endgeräten mittels IP-Adressen
    • Bietet der Transportschicht einen Best-Effort Endgerät-zu-Endgerät Zustelldienst ohne Garantien bezüglich Zustellung, Reihenfolge oder Integrität

Transportprotokolle im Internet

  • TCP (Transport Control Protocol): Applikationsorientierter, zuverlässiger End-to-End Bytestream
    • Verbindungsaufbau: Vollständig, mit richtiger Reihenfolge
    • Flusskontrolle: Keine Überlastung des Empfängers
    • Überlastkontrolle: Keine Überlastung des Netzwerks
    • Multiplexing: Verteilung der Segmente zwischen den Prozessen
    • Fehlerüberprüfung des Segments
  • UDP (User Datagramm Protocol): Best-Effort-Transport
    • Multiplexing: Verteilung der Datagramme zwischen den Prozessen
    • Fehlerüberprüfung des Datagramms
  • Dienste, die beiden Protokollen nicht zur Verfügung stehen:
    • Garantien bezüglich Bandbreite, Latenz, Echtheit, Verschlüsselung

TCP ist langsamer aber zuverlässiger, UDP ist schnell aber garantiert keine korrekte Übertragung

Multiplexing beim Sender

  • Mehrere Anwendungen kommunizieren auf einem PC über das Netzwerk, benötigen also mehrere Sockets
  • Nachrichten von den verschiedenen Sockets werden in der Transportschicht je nach Größe in Segmente/Datagramme aufgeteilt, die zusätzlich einen Header H erhalten, der die Quell- und Zielportnummer der Anwendung spezifiziert
  • Segmente/Datagramme werden via Multiplexing an die Vermittlungsschicht übergeben und erhalten dort einen Header , der Quell- und Ziel-IP-Adresse der Endgeräte enthält

Demultiplexing beim Empfänger

  • Endgerät empfängt IP-Packets
  • Jedes Packet hat im Header eine Absender-IP-Adresse und eine Empfänger-IP-Adresse, ein TCP-Segment oder ein UDP-Datagramm und einen Absender-/Empfänger Port
  • Hosts nutzen IP-Adressen und Portnummern werden genutzt um die Segmente/Datagramme an den richtigen Socket weiterzuleiten

Verbindungsloses Demultiplexing mit UDP

  • UDP-Empfänger-Socket wird durch 2-Tupel identifiziert: (Empfänger-IP-Adresse, Empfänger-Portnummer)
  • Wenn ein Host ein UDP-Segment empfängt:
    • Liest es die Empfänger-Portnummer
    • Leitet das UDP-Datagramm an den UDP-Socket mit der Portnummer weiter
    • Der Socket reicht die Daten an die Applikation weiter, inklusive Port- und IP-Adresse des Clients
  • IP-Packets mit anderer Sender-IP oder anderer Absender-Portnummer werden an den gleichen Socket geliefert.

Verbindungsorientiertes Demultiplexing mit TCP

  • Pro TCP-Connection wird ein Connection Socket erstellt, um mehrere Connections parallel im Duplexbetrieb bedienen zu können.
  • TCP Sockets werden durch 4-Tupel in der TCP Connection Table identifiziert: (Absender-IP, Absender-Port, Empfänger-IP, Empfänger-Port)
  • Server nutzt alle vier Werte, um den richtigen TCP Socket für eine Antwort zu identifizieren
  • Server kann viele TCP-Sockets gleichzeitig offen haben
    • Jeder Socket wird durch eigenen Tupel identifiziert
    • Einzelner Socket ist ein Thread des Listener-Sockets

3.2 Verbindungslose Kommunikation mit UDP

UDP: User Datagram Protocol

  • Minimales Transportprotokoll mit zwei Diensten
    • (De-) Multiplexing von Applikationsverkehr
    • Fehlerprüfung des Datagramms
  • Best Effort-Zustellung, jedes Datagramm wird unabhängig von allen anderen zugestellt
    • Kein Handshake bei Verbindungsaufbau
    • Datagramme können unbemerkt verloren gehen
    • Datagramme können in falscher Reihenfolge zugestellt werden

UDP ist schnell, einfach und im Vergleich zu TCP klein

Einsatzszenarien & Segment-Format

  • UDP wird häufig bei Multimedia-Streaming eingesetzt, da dies verlusttolerant ist aber eine Mindesttransferrate benötigt
  • Auch in Control-Protokollen, die nur ein einziges Nachrichtenpaket benutzen (DNS, SNMP, NTP) wird UDP genutzt
  • Zuverlässiger Datentransfer über UDP ist nur möglich, wenn Zuverlässigkeit in der Anwendungsschicht implementiert wird (siehe HTTP/3)

UDP-Prüfsumme

  • Ziel: Fehler im übertragenen Segment erkennen
  • Prüfsumme wird durch Addition aller 16-Bit-Worte (Header + Data + Pseudo-Header) mit abschließender Einer-Komplement-Bildung gebildet
  • Empfänger addiert alle 16-Bit-Worte des empfangenen UDP-Segments (Header, Data, Pseudo-Header), addiert die erhaltene Summe mit dem Übermittelten Prüfsummenfeld
    • Alle Bits 1 Kein Fehler erkannt
    • Sonst Fehler erkannt, Segment verwerfen
  • Wichtig: Checksumme ist anfällig für Burst-Fehler

3.3 Verbindungsorientierte Kommunikation: TCP

Grundlagen der zuverlässigen Datenübertragung

  • Zuverlässiger Datentransfer bedeutet:
    • Fehlerfreie Übertragung der Bits
    • Reihenfolge der Bits bleibt erhalten
    • Alle Packets werden vollständig übertragen
  • Kann in mehreren Schichten implementiert werden: Anwendungsschicht, Transportschicht und Sicherungsschicht
  • Jeweilige Protokollschicht implementiert die zuverlässige Übertragung als Dienst
  • Die darüberliegenden Netzwerkschichten können die Datenübertragung als Dienst konsumieren
  • Beispiel: HTTP/2 an sich ist unzuverlässig, da es aber TLS & TCP nutzt wird es zuverlässig

Überblick TCP

  • TCP (Transmission Control Protocol) ist ein Punkt-zu-Punkt Protokoll: ein Sender, ein Empfänger.
  • TCP ist verbindungsorientiert: ein 3-Way-Handshake initialisiert einen Sende- und Empfangszustand im Sender und Empfänger, bevor Daten ausgetauscht werden
  • Es gibt Sende- und Empfangspuffer
    • Sendepuffer: Daten von Applikationsschicht werden gesammelt und segmentweise an die Vermittlungsschicht weitergegeben.
    • Empfangspuffer: Speichert empfangene Segmente. Transportschicht stellt Daten aus Puffer byteweise der Anwendungsschicht zur Verfügung.
  • Bei TCP fließen Daten in beide Richtungen (jede Seite besitzt Sende- und Empfangspuffer)
  • TCP teilt den Bytestrom der Anwendungsschicht in Segmente auf
  • Segmente werden durch eine Sequenznummer identifiziert
  • Nach Empfang mehrerer Segmente bestätigt Empfänger dies mit einer ACK-Nachricht

  • Pipelining: Bei TCP können mehrere Segmente gleichzeitig über eine Verbindung gesendet werden
    • Anzahl der Packets ist die TCP Window Size
  • Flow Control:
    • Empfänger steuert Datenfluss des Senders mit der freien Kapazität des Empfangspuffers
    • Empfänger übermittelt dazu die Größe des Empfangspuffers mit dem “Receive Window”
  • Congestion Control:
    • Netzwerk teilt überlast mit, TCP regelt dynamisch die Maximalzahl an gleichzeitig sendbaren Packets: “Congestion Window”

TCP Segment-Aufbau

  • TCP Header ist 20 Byte lang und kann mittels Optionen erweitert werden. Optionen dürfen max. 40 Byte lang sein.
  • Sequence Number: 4 Byte groß. Enthält eine zufällig generierte Nummer, die bei Initialisierung der Verbindung entschieden wird. Ist während der Datenübertragung für die Sortierung und Fehlererkennung zuständig.
  • Acknowledgement Number: 4 Byte groß. Gibt die Sequence Number an, die der Empfänger als nächstes erwartet. Nur gültig bei ACK-Flag .
  • HLEN (Header Length): Gibt die Länge des TCP-Headers in 4 Byte-Blöcken an. (Standard-Länge: 5 )
  • Window Size: Gibt Anzahl der freien Bytes im Empfangspuffer des Senders an
  • Urgent Pointer: Wenn URG-Flag gesetzt ist zeigt dieser Wert das Ende der Urgent-Daten im Payload an, welche sofort nach dem Header beginnen.
  • PSH-Flag: Wenn gesetzt soll der TCP-Stack die empfangenen Daten sofort an die Anwendungsschicht weitergeben, ohne zu warten. Wird häufig bei Echtzeit-Applikationen verwendet.

3.4 TCP-Verbindungsaufbau

Three Way Handshake beim Verbindungsaufbau

  • TCP Sender und Empfänger bauen eine Verbindung auf, bevor sie Daten austauschen können
    • Schritt 1: SYN-Packet
      • Client sender ein SYN-Segment (SYN-Flag = 1, ACK-Flag = 0) an Server
      • Übermittelt zufällig ausgewählte initiale Client-ISN im Sequenznummernfeld.
      • Übermittelt keine Daten.
    • Schritt 2: SYNACK-Packet
      • Server empfängt SYN und antwortet mit SYNACK-Segment (SYN = 1, ACK = 1)
      • Übermittelt initiale Sequenznummer Server-ISN und Acknowledgement-Nummer Client-ISN + 1 zur Bestätigung der Anfrage
      • Es werden keine Daten übermittelt
    • Schritt 3: ACK-Packet
      • Client empfängt SYNACK-Packet und antwortet mit ACK-Packet (SYN = 0, ACK = 1)
      • Client bereitet Empfangspuffer für die Verbindung vor (alloc)
      • Client übermittelt Acknowledgement-Nummer für den Server: Server-ISN + 1
      • Client darf Daten mitschicken

Schließen einer Verbindung

  • Verbindung kann von beiden Seiten geschlossen werden
  • Nach schließen der Verbindung werden die reservierten Ressourcen in den Systemen freigegeben
    • Schritt 1: Client sendet ein FIN-Segment (FIN-Bit = 1) an den Server. Segment enthält die Sequenz-ID für das nächste mögliche Byte
      • Client wechselt in Zustand FIN-Wait-1
    • Schritt 2: Server empfängt FIN und antwortet mit ACK-Segment. Sequenz-ID wird um 1 erhöht
      • Client empfängt ACK-Segment und Wechselt in FIN-Wait-2
      • Server wechselt in Close Wait und wartet auf Close-Anweisung der Applikation
    • Schritt 3: Server sendet nach Erhalt der Close-Anweisung ein TCP-FIN-Segment (FIN = 1) an den Client.
      • Segment enthält Segment-ID für das nächste mögliche Byte
      • Server wechselt in LAST-ACK
    • Schritt 4: Client empfängt FIN-Segment, Antwortet mit LAST-ACK-Segment mit Sequenz-ID
      • Client wechselt in Time Wait, wartet auf FIN-Sendewiederholungen des Servers (falls LAST-ACK nicht angenommen wurde), die er mit neuen ACK-Segmenten beantwortet
      • Nach Wartezeit von (Max. Segment Lifetime) schließt der Client die TCP-Verbindung, geht in Closed-Zustand über und gibt alle reservierten Ressourcen frei
      • Server empfängt ACK-Segment, schließt TCP-Verbindung, wechselt in Closed-Zustand und gibt Ressourcen frei

3.5 Datenübertragung mit TCP

Sequenznummern und ACK-Nummern

  • Die Sequenznummern (Seq-#) dienen zur Nummerierung der Segmente
  • Anfangssequenznummer (Initial Sequence Number, ISN) wird zufällig gewählt
    • TCP Handshake addiert 1 dazu
  • Sequenznummer für initiale Datenübertragung startet also bei ISN + 1
  • Acknowledge (ACK): Bestätigung des fehlerfreien Empfangs eines Segments
    • ACK-# ist Sequenznummer des nächsten erwarteten Bytes im Byte-Strom der sendenden Applikation

Verlust eines ACK-Packets

  • Wenn Sender kein ACK-Packet für ein Segment erhält, weiß er nicht, ob das Packet richtig angekommen ist.
  • Lösung: TCP startet Timer für ältestes noch nicht bestätigtes Segment
  • Neuübermittlung für ältestes Segment, wenn Timer überschritten wird
  • Max. Anzahl an Neuübermittlungen ist konfigurierbar

3.6 TCP Flow Control

Empfangspuffer

Definition: Flow Control

Unter Flow Control versteht man die Anpassung der Senderate an die Verarbeitungsrate der Anwendung des Empfängers.

  • Empfänger speichert eingegangene Daten im Empfangspuffer und bestätigt diese mit einem ACK
  • Anwendungsprozess extrahiert Daten aus Empfangspuffer
  • Empfangspuffer hat Größe “RcvBuffer”
  • Je nach Auslastung des Hosts/Anwendung kann es zu Verzögerungen bei der Abarbeitung des Eingangspuffers kommen
  • Empfänger übermittelt die Größe seines freien Pufferspeichers RcvWindow in Bytes mit jedem ACK-Packet im TCP-Header-Feld “Receive Window” (Empfangsfenster)
  • Receive Window: 16 Bit-Feld Max. 65kB an Daten pro RTT übermittelbar

RcvWindows

  • Sender liest die aktuelle Größe des Empfangsfensters RcvWindow und passt die Anzahl rwnd der Segmente, die gesendet werden können wie folgt an: , wobei = max. Payload-Größe eines Segmentes ist
  • Ist der Eingangspuffer des Empfängers vollgelaufen (RcvWindow = 0) kann der Sender keine Daten mehr schicken.
  • TCP Zero Window Probes: Damit der Sender einen neuen Status über die Größe des Eingangspuffers vom Empfänger erhält, sendet der Sender weiter TCP-Segmente ohne Payload.

Flow Control

  • Max. Größe des Receive Windows: 16 Bit
  • Zeitdauer, um ein TCP-Segment der Größe auf einer Verbindung mit Hops und näherungsweise konstanter Bandbreite erfolgreich zu übertragen ist gegeben durch
  • Bei einem RcvWindow zum Zeitpunkt werden Segmente übertragen. Die Datenübertragungsrate ergibt sich zu:

(Typische Werte: )

Window Scale Option

  • Originale TCP Header für alte Geräte/Leitungen gemacht, nicht für heutige Geschwindigkeiten
  • TCP kann schlecht geändert werden, da weltweit verwendet
  • TCP kann durch optionalen Header-Bereich erweitert werden
  • Header-Option besteht aus: Type - Length - Value (TLV)
    • Type (1 Byte): Nummer, die TCP-Option beschreibt (max. 256 Optionen)
    • Length (1 Byte): Länge der Option in Byte
    • Value: Wert der Option

3.7 TCP Congestion Control

Überlastkontrolle des Netzwerkes

  • Wenn alle Sender so viele Packets schicken, wie in den Puffer der Empfangsseite passen, kann es an Kreuzpunkten eines Netzwerkes zur Überlastung der Netzwerkgeräte kommen.
  • Es kann zu steigenden Wartezeiten in der Queue eines Routers kommen Pufferüberlauf, packet loss
  • Beim Sender treten Timeouts auf, verbunden mit erneuter Übertragung von bestimmten Packets
  • Überlastung eines einzelnen Routers kann auch zur Überlastung mehrerer Router führen, da TCP auf bestimmte Packets keine Antwort erhält und erneut Packets sendet Andere Router-Queues werden ebenfalls überfüllt
  • Domino-Effekt kann zu Kollaps des Netzwerkes führen

Lösung: Congestion Control (Überlastkontrolle)

  • Es gibt zwei Arten von Überlastkontrolle:
    • TCP Congestion Control
    • TCP/IP Netzwerkunterstützte Congestion Control
Netzwerkunterstützte Congestion Control
  • Router versuchen eventuelle Überlast durch Algorithmen wie Weighted Random Early Detection (WRED) vorzeitig zu prognostizieren
  • Entweder verwerfen Netzknoten gezielt und frühzeitig einzelne Packets, um Überlast anzuzaugen, oder sie signalisieren dem Empfänger durch senden eines CE-Bits im IP-Header explizit den Überlastzustand
  • Empfänger informiert Sender über das ECE-Bit im TCP-Header

Explicit Congestion Notification (ECN)

  • Das Feld ECN besteht aus 2 Bits und befindet sich im IP-Headers-Field “Type of Service”.
  • ECN besteht aus ECT und CE Bits
  • Sender: Das ECT-Bit im IP-Header wird auf 1 gesetzt, wenn der Sender ECN unterstützt
  • Router: Das CE-Bit im IP Header wird im Falle der Überlastung eines Routers von diesem auf ! gesetzt.

Explicit Congestion Notification Echo (ECE)

  • Empfänger: Der Empfänger setzt im Falle von CE = 1 das ECE-Bit im TCP-Header auf 1 und versendet die zugehörige ACK-Nachricht an den Sender.
  • Sender: Der Sender erkennt Congestion und reduziert Sendefenster wie bei Packetloss und informiert den Empfänger durch das setzen der CWR-Flag (Congestion Window Reduced) im nächsten Segment

Netzwerkunterstützte Congestion Control

  • ECT muss auf hosts explizit aktiviert werden (ECT = 1 im IP Header)
  • Wenn Netzwerk nicht belastet ist: ECN = ECH & CE = 10
  • Wenn Netzwerk überlastet ist: ECN = 11
  • Empfänger erkennt Überlast im IP-Header und setzt die ECE-Flag im nächsten ACK-Segment auf 1
  • Sender erhält ACK Segment, erkennt Congestion und reduziert Fenstergröße
  • Empfänger sieht CWR und beendet das Setzen des ECE-Bits auf 1

Congestion Window

  • Ziel: Bestimmung der optimalen Senderate als Funktion der Netzlast.
  • Erkennung
    • Sender:
      • Ablauf von RTO-Timer Annahme: Verlust vieler Segmente
      • Duplicate ACKs Annahme des Verlustes einzelner Segmente
    • Empfänger:
      • Einführung von Congestion Window analog zur Flow Control:
        • Zusätzliche TCP-Variable für Sender
        • Beschränkt die Anzahl an unbestätigten Segmenten, die der Sender senden darf
        • Congestion Control und Flow Control sind im Sender gekoppelt
        • Anzahl max. unbestätigter Segmente in der Pipeline wird durch Minimum aus und bestimmt:

Senderate und Congestion Window

  • Effektives Fenster bestimmt Senderate des Senders
  • Kann analog zur Senderate bei der Flusskontrolle abgeschätzt werden:
    • Am Anfang eines RTTs darf der Sender mit Datenbytes senden
    • Nach RTT:
      • Neue ACKs erhalten: Mehr oder weniger “Sendeplätze” werden frei gegeben
      • Fehlende ACKs bemerkt: Reduktion der “Sendeplätze”
      • Senderate D pro RTT:

Steuerung des Congestion Windows: AIMD

AIMD: Additive Increase Multiplicative Decrease

  • Erhöhe die Fenstergröße um 1 pro RTT, bis Überlast erkannt wird
  • Halbiere , sobald Überlast erkannt wird

Sägezahn-Verlauf

Slow Start für Congestion Window

  • Mit erstem Datenversand oder nach Segmentverlust startet das TCP Slow Start-Verfahren mit einem Congestion Window der Größe 1 ()
  • Bei Fehlerfreiheit aller gesendeten Segmente wird das Congestion Window innerhalb eines RTTs verdoppelt:
  • Slow Start endet, wenn einen Threshold erreicht (default: 8)

TCP Tahoe

  • Verbesserung: Nach erkannter Congestion wird der Threshold auf gesetzt, wobei der letzte maximale Wert vor Congestion ist. wird auf 1 gesetzt.

TCP Reno

  • Verbesserung: Zwei Fälle
  • Fall 1: RTO-Timeout
    • Verhalten wie bei TCP Tahoe. , Slow Start.
  • Fall 2: 3 doppelte ACKs
    • Vermutung: Einzelsegmentfehler, Netzwerk funktioniert noch
    • Fast Retransmit des fehlenden Packets und Übergang in “Fast Recovery”-Modus
    • Fast Recovery-Modus:

4. Die Netzwerkschicht: IPv4, IPv6, DHCP

4.1 Dienste der Vermittlungsschicht

Netzwerkschicht

  • Die Netzwerkschicht (Network Layer) transportiert die Segmente der Transportschicht vom Sender zum Empfänger
  • Sender verpackt Segmente der Transportschicht in IP Packets, übergibt diese der Sicherungsschicht
  • Empfänger entpackt das empfangene Packet und übergibt das Segment der Transportschicht
  • Router liest Header eines IP Packets und leitet das Packet auf Basis seiner Header-Information von einem Eingangsinterface zu einem Ausgangsinterface mit dem Ziel, das Packet entlang eines möglichst schnellen Ende-zu-Ende-Pfades durch das Internet zu führen
  • Protokoll der Vermittlungsschicht ist in jedem Internet-Gerät implementiert (Host, Router)

Datenebene und Kontrollebene

  • Kontrollebene:
    • Netzwerkweite Logik: Routing
    • Bestimmt auf welcher Route ein Daten
  • Datenebene:
    • Lokale Logik pro Router: Forwarding
    • Bestimmt zu welcher Ausgangsleitung ein eingehendes Datagramm weitergeleitet wird

Dienstmodell der Netzwerk

  • Internet agiert mit “Best Effort” Service Modell. Es gibt keine Garantien auf:
    • Loss: Erfolgreiche Zustellung
    • Order: Reihenfolge der Daten
    • Timing: Zeitliche Verzögerungen
    • Bandwidth: Verfügbare Bandbreite
  • Es gibt ein erweitertes Modell:
    • Integrated Services: Ende-zu-Ende Reservierungen (Leitungsvermittlung)
    • Differentiated Services: Markierung einzelner Packets mit Qualitätsklassen

4.2 IPv4 & IPv6

  • Das Internet Protocol hat die Aufgabe, Netzwerkteilnehmer mit einer eindeutigen Adresse zu versorgen und Packets an die richtige Adresse weiterzuleiten.
  • Es gibt zwei Versionen, die bei allen Internet-Teilnehmern implementiert sind.
  • IP verwendet folgende Protokolle des Control Plane:
    • Routing: OSPF, BGP
    • Status: ICMP

IPv4 Packet Format

  • IPv4 Header: 20 Byte
  • Version (4Bit): IPv4 Version “0100” 4
  • Internet Header Length IHL (4Bit): Zahl 5, gibt die Länge des IP Headers in 4B-Einheiten an (analog zu TCP Header Length)
    • Min. Länge: 5 4B = 20B
    • Max. Länge: 15 4B = 60B
  • Type of Service TOS (8Bit):
    • DSCP (0:5): Differentiated Services Code Point (6Bit)
    • ECN (6:7): Explicit Congestion Notification (2Bit)
  • Time-To-Live (8Bit): Wert in Sekunden (max. 255), jeder Hop reduziert Wert um 1, Packets mit TTL = 0 werden gelöscht und nicht weitergeleitet
  • Upper Layer Protocol (8Bit): Von der ICANN definierte Nummern
    • 1: ICMP
    • 6: TCP
    • 17: UDP
    • 89: OSPF
  • Header Checksum (16Bit): Internet Checksum für IP Header
  • Source & Destination IP Address (32Bit each)
  • Header Options (4Bit): Angabe in Vielfachen von 4B (32Bit)
    • Besteht aus Vielfachen von TLV-Optionen (Record Routes, Source Routes)
    • ggf. Padding, um vielfaches von 32Bit zu erreichen

IP Packet Fragmentation

  • Max. Größe eines Packets: 65535B
  • Layer-2-Protokolle limitieren Packet Size
    • Ethernet: MTU = 1500 Byte
    • WLAN: MTU = 2312 Byte
    • MTU: Maximum Transfer Unit, gibt max. Größe für IP Packet an.
  • Wenn die MTU einer Leitung sinkt, muss unter Umständen das Packet vom Router fragmentiert werden, um die Leitung nicht zu blockieren
  • Jedes Fragment wird durch eine zufällig generierte Fragment-ID (16Bit) identifiziert
    • Fragment-ID wird vom Sender auch gesetzt, wenn keine Fragmentierung statt findet
  • Fragment Flags:
    • Erstes Bit: Immer 0
    • Zweites Bit: DF-Flag (Don’t Fragment)
      • DF = 0 Fragmentierbar
      • DF = 1 Nicht Fragmentierbar
    • Drittes Bit: MF-Flag (More Fragment)
      • MF = 0 Letztes Fragment
      • MF = 1 Es kommen weitere Fragmente
  • 13 Bit Fragment Offset: Offset als Vielfaches von 8 Bytes in Bezug zu Anfang des Original-Packets (Offset zeigt quasi die Nummer des Packets)

Minimale MTU

  • IPv4: 576B
  • IPv6: 1280B
  • Fragmentierung tritt erst oberhalb dieser Werte ein

IPv6 Packet Format

  • Version (4Bit): “0110” 6
  • IP-Adressen (je 128B): Tupel aus 16B langen Adressen (Source-IP, Destination-IP)
  • Flow-Label (20Bit):
  • Traffic Class (8Bit): Analog zum Type of Service Feld in IPv4
  • Flow-Label (20Bit): Eindeutige ID, um Packets zwischen gleichem Sender und Empfänger zu kennzeichnen
  • Payload length (16Bit): Länge des Payloads
  • Next Header (8Bit): Nächster Header oder Upper Protocol
  • Hop Limit (8Bit): Anzahl max. Hops bis zum Erreichen des Empfängers, entspricht IPv4 TTL

IPv6 Flow Labels

  • Ziel: Quality of Service-Steuerung von IPv6-Packets
  • Flow Label dient der Identifizierung von Daten-Packets einer Anwendungssitzung zwischen gleichem Server und Client auf allen Routern
  • Router sind dann in der Lage auf alle Packets dieser Verbindung eine Dienstgüte anzuwenden
  • Integrated Services: Sender kann mittels Resource Reservation Protocol (RSVP) Dienstgütegarantien pro Flow Label anfordern
    • Feste Bandbreiten
    • Max. Verzögerungszeit pro Packet
    • Kein Packet Loss bei Überlast

IPv6 Next Header

  • Bietet die Möglichkeit, den fixen Header um weitere Header zu ergänzen, die optionale Informationen tragen (Routing-Header, Fragment-Header, …)
  • Next-Header-Feld kennzeichnet entweder den ersten Extension-Header (falls vorhanden) oder das Protokoll des nächsten Layers (TCP, UDP)

IPv6 Fragmentation Header

  • Fragmentierung in IPv6 wird exklusiv von der Quelle durchgeführt, die Router führen keine Fragmentierung durch.
  • Wenn ein IPv6-Packet zu groß für den nächsten Router ist, generiert dieser ein ICMP-Packet, um die Quelle darüber zu informieren. Die Quelle muss dann das Packet fragmentieren.
  • Fragmentation Header besteht aus:
    • Next Header (8Bit): Identifiziert den Header-Typ, der nach dem Fragmentation Header vorhanden ist
    • Reserved (8Bit): Immer 00000000
    • Fragment-Offset (13Bit): Analog zu IPv4, Vielfaches von 8B in Bezug zum Anfang
    • More Fragment M (1Bit): Analog zu IPv4
    • Identification (32Bit): Analog zu IPv4, allerdings mit doppelter Größe.

IPv4 vs IPv6 Header

4.3 IP-Adressierung

Grundlagen

  • Eine IP-Adresse ist die Adresse eines Interfaces eines Endsystems oder Netzwerkgerätes
  • Interface wird durch eine physikalische oder per Software emulierte Netzwerkkarte bereitgestellt
  • Endsysteme können mehrere Interfaces haben
    • IPv4: 32Bit Adresse, 4 8Bit
    • IPv6: 128Bit Adresse, 8 16Bit

Subnets

  • Eine IP-Adresse hat 2 Bestandteile: Die NetID und die HostID.
    • NetID: Ersten bits der Adresse identifizieren ein Netzwerk
    • HostID: Identifizieren das Interface eines Gerätes
  • Alle Interfaces mit der gleichen NetID formen ein Subnet
  • Alle Interfaces eines Subnets können sich direkt erreichen, ohne einen Router zu durchqueren

CIDR

Definition: CIDR

CIDR (Classless Inter-Domain Routing) ist ein IP-Adressierungsschema, welches eine granulare Unterteilung der IP-Adressen in Subnets ermöglicht.

  • Es werden Suffixe verwendet, die die Anzahl der Bits angeben, die das Netzwerk identifizieren (die NetID)
  • Beispiel:
    • IPv4-Adresse in CIDR-Notation: 200.100.3.1/16
    • Die ersten 16 Bits beschreiben das Netzwerk
    • 11001000.01100100.00000011.00000001
  • Mit CIDR-Notation kann der Adressraum hierarchisch aufgeteilt werden
    • Oben: Große Netzblöcke der ISPs
    • Unten: Teilnetze von Organisationen
  • Ermöglicht Aggregation: Weniger Routen im Internet
  • Ermöglicht Segmentierung: Feinere Kontrolle in lokalen Netzen

IPv4 Subnet Masks

  • In IPv4 können Subnetzmasken verwendet werden, um den Bereich der NetID und HostID zu kennzeichnen.
  • Aufbau der Netzmaske:
    • Eine 1 kennzeichnet die Bits in der IP-Adresse für die Addressierung des Subnets
    • Eine 0 kennzeichnet die Bits für die Adressierung des Geräteanteils
    • Netzmaske: 255.255.255.0
  • Durch logisches “AND” der IP-Adresse und der Subnetzmaske erhält man die Netzwerkadresse eines Gerätes.

Netzwerk- und Broadcastadresse

  • In einem IPv4-Netzwerk gibt es 2 spezielle, ausgezeichnete Host-Adressen
    • Netzwerkadresse: Alle Host Bits auf 0
    • Broadcast-Adresse: Alle Host Bits auf 1
  • Dazwischen liegen die verfügbaren Adressen für Endgeräte und Netzwerkgeräte

Netzwerke und Host-Adressen

  • Durch Verschiebung der Netzwerkmaske um 1 von links nach rechts erhält man Adressbereiche mit einer kleineren Anzahl an Host-Adressen
    • /25: 126 Host-Adressen ()
    • /26: 62 Host-Adressen ()
  • Pro Netzwerkbit verdoppelt sich die Anzahl der Subnets

Konvention für die Vergabe von IP-Adressen

  • Default-Gateway erhält die kleinstmögliche IP-Adresse
  • Nächstmögliche IPs gehen an zusätzliche Netzwerkgeräte
  • Clients erhalten größtmögliche IPs

Broadcast-IP-Adressen

Broadcast-IP-Adressen

Eine Broadcast-IP-Adresse ist eine spezielle IP-Adresse, über die Daten an alle Hosts eines Netzwerks gleichzeitig gesendet werden.

  1. Alle Geräte im gleichen Subnet empfangen die Nachricht
  2. Die Adresse ist immer die höchste Adresse eines Subnets
  • Ziele der Broadcast-Adresse:
    • Auffinden von Netzwerkdiensten
    • Gleichzeitige Verteilung von Daten
    • Finden von Ethernet-Adressen zu einer IP-Adresse
  • Es gibt zwei Arten von Broadcasts:
    • Directed Broadcast:
      • Broadcast-Adresse eines Netzwerks wird als Zieladresse verwendet
      • Alle Hosts im Subnet erhalten die Nachricht
      • Router leiten die Nachricht weiter
    • Spezialfall Limited Broadcast:
      • 255.255.255.255 wird als Broadcast-IP verwendet
      • IP Packets werden an alle Hosts des eigenen Subnets weitergeleitet
      • Router leiten nicht weiter
      • = Ethernet Broadcast

IPv4 Multicast-Adressen

Multicast-Adressen

Eine Multicast-Adresse ist eine Spezielle IPv4-Adresse, die verwendet wird, um Nachrichten an eine ausgewählte Gruppe von Hosts zu senden (nicht an alle Hosts wie bei einem Broadcast)

  • IPv4 Multicast-Adressen liegen im Adressbereich von 224.0.0.0 bis 239.255.255.255, sind von IANA reserviert
  • Funktionsweise:
    • Hosts, die Multicast-Daten empfangen wollen, melden sich beim Router/Switch mittels IGMP (Internet Group Management Protocol) an
    • Sender verschickt Packets an Multicast-Adresse
    • Router leiten Packets nur an Netzwerksegmente/Ports weiter, in denen Mitglieder dieser Gruppe registriert sind
    • Damit Switches die Packets zustellen können wird jeder IPv4 Multicast-Adresse eine Ethernet-Multicast-Adresse zugeordnet

Local Host, Private IPv4-Adressen

  • Local Host Adressen: 127.0.0.0/8
  • Private IPv4-Adressen:
    • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
    • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
    • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)

IPv6 CIDR

  • Netzmaske aus IPv4 fällt bei IPv6 weg
  • IPv6 verwendet analog zu IPv4 die CIDR-Konvention mit Netzwerk-Präfix (auch routing prefix genannt)
  • Typischerweise bekommt ein ISP die ersten 32 Bit einer IPv6 als (Sub-) Netz von einem Regional Internet Registry zugewiesen
  • Der ISP vergibt an seine Kunden auf Antrag Company Prefixes
  • Beispiel:
    • Adresse: 2001:0db8:85a3:0873:1319:8a2e:0370:7347
    • Provider Netz-ID: 2001:0db8/32
    • Routing Prefix: 2001:0db8:85a3:08/56
    • Subnet-ID: 2001:0db8:85a3:0873/64
    • Interface-ID: 1319:8a2e:0370:7347

IPv6-Schreibweise

  • Normale IPv6 ist lang, es gibt Vereinfachungen der Schreibweise:
    • Zero Compression: Wenn eine Adresse fortlaufende Nullen in mind. 2 aneinanderhängenden 16-Bit-Feldern enthält, werden diese durch :: ersetzt.
      • Das :: darf in einer Adresse nur 1x vorkommen.
    • Leading Zero Compression: Führende Nullen im 16-Bit-Feld einer IPv6-Adresse können entfernt werden. In jedem Block muss mindestens eine Zahl übrig bleiben Bei 4 Nullen, die noch nicht gekürzt wurden, muss eine 0 stehen bleiben
    • Kleinbuchstaben: a-f müssen als Kleinbuchstaben dargestellt werden

IPv6 Unicast

  • Unicast-Adressen identifizieren ein einzelnes Interface
  • Ein IP Packet, welches an eine Unicast-IP-Adresse adressiert ist, wird auf kürzestem Weg an seine Schnittstelle geleitet
  • Local Host: ::1/128
  • Link-Local-Unicast: Präfix fe80::/64
    • Jedes Interface generiert eine Local-Link-Adresse
    • Wird nicht gerouted, dient zur Adressierung eines Subnets
  • Unique-Local-Scope (Private)-Adressen: Präfix fc00::/8 & fd00::/8
    • Dienen zur Adressierung von Hosts innerhalb eines Unternehmensnetzwerkes und werden nur innerhalb eines LAN gerouted.
  • Global Scope-Adressen: 2000::/3
    • Öffentlich routbare IPv6-Adressen, die von der ICANN vergeben werden und im Internet eindeutig sind
  • Einer IPv6-Schnittstelle können mehrere IPv6-Unicast-Adressen gleichzeitig zugewiesen werden
  • Generiert von Betriebssystem aus MAC-Adresse der Netzwerkkarte:
    • 48-Bit MAC-Adresse wird in 2 Hälften aufgeteilt (00:1a:2b:3c:4d:5e 00:1a:2b und 3c:4d:5e)
    • ff:fe wird in der Mitte eingefügt, um eine 64-Bit-Adresse zu erhalten: 00:1a:2b:ff:fe:3c:4d:5e
    • Invertieren des 7. Bit von Links: 0000 0000 ... 0000 0010 ... = 00:1a:... 02:1a:... (siehe U/L-Bit)
    • Fertig: 02:1a:2b:ff:fe:3c:4d:5e
    • Zusammengesetzt mit Link-Local-Prefix: fe80::02:1a:2b:ff:fe:3c:4d:5e

U/L-Bit

Das 7. Bit einer IPv6-Adresse wird auch “U/L-Bit” genannt, da es anzeigt, ob eine Adresse global oder lokal vergeben wurde.

  • 0 universally administered
  • 1 locally administered

IPv6 Multicast

  • Multicast-Adresse: Prefix ff00::/8
    • Identifiziert eine Menge von Interfaces, welche typischerweise zu verschiedenen Hosts gehören
  • Aufbau:
    • ff: Multicast Prefix (1111 1111)
    • ffm: Drittes Hex-Zeichen ist Flag
      • 0 für permanent definierte Adresse
      • 1 für temporäre Adresse
    • ffmn: Viertes Hex-Zeichen für Scope
      • 1 für Nutzung innerhalb eines Interfaces/Gerätes
      • 2: für Nutzung innerhalb eines Subnets ohne Routing
      • 8: für Nutzung innerhalb einer Organisation (lokales Routing)
      • e: global Scope (weltweites Routing)
    • Gruppen-ID (Rest der IPv6-Adresse) ist eine ID für eine Multicast-Gruppe
      • 1: Alle IPv6-Geräte im selben LAN
      • 2: Alle Router im selben LAN

Duplicate Adress Detection

  • Zur Verhinderung von doppelten IPv6-Adressen wird ein Verfahren namens Duplicate Adress Detection (DAD) verwendet
  • DAD ist Tiel des ICMPv6 Neighbour Discovery Protocols (NDP) und ermöglicht die Erkennung von Adressen-Konflikten in einem Subnet via sog. Neighbour Solicitation Messages (NS)
  • Ablauf:
    • Interface generiert Adresse, wird als “vorläufig” markiert
    • Gerät sendet ein NS-Packet an die Solicited-Node Multicast Adresse, die aus der generierten Adresse abgeleitet wird
    • Wenn niemand Antwortet Adresse ist frei
    • Gerät markiert sie als “preferred” (bevorzugt verwendbar)

Anycast IP

  • Eine Anycast-IP-Adresse identifiziert eine ganze Gruppe von Servern, denen eine gemeinsame IP-Adresse (IPv4/IPv6) zugeteilt ist, und die weltweit verteilt stehen.
  • Diese eine IP-Adresse wird per Routing-Protokoll (BGP extern, OSPF intern) von den verschiedenen regionalen Standorten über deren Edge-Router publiziert.
  • Wenn ein Benutzer eine Anfrage an diese IP-Adresse stellt, wird der nächstgelegene Server basierend auf dem Routing ausgewählt.
  • Server wird basierend auf der Forwarding-Tabelle des nächstgelegenen Routers ausgewählt.

4.4 DHCP & NAT

DHCP (Dynamic Host Configuration Protocol)

  • IPs (v4 und v6) können dynamisch von einem DHCP-Server bezogen werden.
  • IPv4-basierende Hosts haben initial keine Adresse.
  • IPv6-basierende Hosts generieren selbst eine Local Interface ID & Link Local Adresse (fe80::/10), verwenden diese initial
  • DHCP ist ein Protokoll der Anwendungsschicht und verwendet UDP
  • Portnummern:
    • UDP/67: DHCPv4 Server
    • UDP/68: DHCPv4 Client
    • UDP/547: DHCPv6 Server
    • UDP/546: DHCPv6 Client
  • DHCP dient der automatischen Vergabe von IP-Adressen und Parametern.
  • IP-Adressen werden auf Zeit gemietet (Lease Time)
  • Optimal für mobile Geräte und PCs

DHCP Nachrichtenaustausch

  • DHCP-Client schickt eine DHCP-Discover-Nachricht per IPv4-Source-Adresse (0.0.0.0) an Broadcast-Adresse (255.255.255.255)
  • DHCP-Relays (Router) leiten diese Nachrichten an den DHCP-Server weiter
  • DHCP-Server antwortet mit einer DHCP-Offer-Nachricht und dem Angebot einer IP-Adresse
  • Endsystem beantragt diese IP-Adresse mittels DHCP-Request-Nachricht
  • Server vergibt IP-Adresse mittels DHCP-ACK-Nachricht
  • Der gesamte Nachrichtenverkehr erfolgt via Broadcasts

DHCPv6

  • Nachrichtenversand bei DHCPv6 erfolgt initial per Multicast, dann nur noch per Unicast
  • DHCP-Discover per Multicast
    • Client verwendet Link Local Adresse und sucht den DHCP-Server per Multicast
  • DHCP-Request per Unicast
    • Client verwendet Link Local Adresse und kennt aber die IPv6 des DHCP-Servers
  • DHCP-Offer und DHCP-ACK per Unicast
    • DHCP-Server kennt die Link-Local-Adresse des Clients und verwendet diese

DHCP und IPv4/IPv6

  • Die ersten beiden Schritte werden nur initial benötigt, danach merkt der Client sich die IP-Adresse des DHCP-Servers
  • Möchte ein Client die IP-Adresse verlängern überspringt er die ersten zwei Schritte und startet sofort mit einer DHCP-Request
  • DHCP-Server kann dann mit DHCP-ACK-Nachricht annehmen oder via DHCP-NACK-Nachricht ablehnen, woraufhin der Client eine neue DHCP-Discover-Nachricht senden kann

Network Address Translation (NAT)

  • Anzahl der öffentliche IP-Adressen einer Organisation kann begrenzt sein Zu wenig IP-Adressen für viele Geräte
  • Privathaushalte brauchen nur eine IPv4-Adresse, die vom Provider temporär zugewiesen wird, aber alle Geräte sollten Internetfähig sein
  • Idee: Vergebe private (weltweit nicht eindeutige) IP-Adressen an Systeme im Privaten Netzwerk
  • Router/Firewall zur Anbindung ans Internet übersetzt die lokalen IPs in eine weltweit eindeutige IP-Adresse
  • Portnummern werden genutzt, um verschiedene Geräte voneinander zu unterscheiden

NAT Overloading

  • Nicht öffentliche IP-Adressen der Geräte werden auf eine öffentliche Adresse gemapped
  • Alle Packets, die das lokale Netzwerk verlassen, haben die gleiche öffentliche Outside-NAT-IP-Adresse, aber unterschiedliche Outside-TCP-Portnummern.
  • Funktionsweise:
    • Bei ausgehenden Packets ersetzt der Router die Sender-IP und den TCP-Port durch die Router-IP und einen Port im Router
    • Empfänger schickt Antworten an Router
    • In einer NAT-Table speichert der Router die Beziehnung zwischen der IP-Adresse und dem Port des Clients mit der eigenen IP-Adresse und dem genutzten Port für 24h
    • Bei eingehenden Packets ersetzt der Router die IP-Adresse und den Port erneut und gibt das Packet weiter an das lokale Gerät

NAT Traversal mit Port Forwarding

  • Selbe Idee wie bei NAT, allerdings bekommt ein Server einen festen Port, an den alle öffentlichen Anfragen weitergeleitet werden

4.5 ARP und ICMP

ARP: Address Resolution Protocol

  • Um IPv4-Adressen einer MAC-Adresse zuzuordnen wird das Address Resolution Protocol verwendet
  • ARP ist ein Layer-2-Protokoll
  • Jedes System in einem LAN hat einen ARP-Cache, in dem Zuordnungen von IP- zu MAC-Adresse gespeichert werden
  • ARP verwendet Ethernet
  • Szenario:
    • C möchte eine Nachricht an B schicken, MAC-Adresse von B ist nicht im Cache von C
    • C schickt ARP-Query als Ethernet Broadcast Frame
      • Destination-MAC: FF-FF-FF-FF-FF-FF
    • Alle Systeme erhalten die Anfrage
    • ARP-Request enthält IP-Adresse von B und MAC- und IP-Adresse von C als ARP-Payload
    • B empfängt ARP-Request, erkennt eigene IP und antwortet C (Unicast) mit eigener MAC-Adresse in Form einer ARP-Response
    • C trägt die MAC-Adresse und IP-Adresse von B in ARP-Cache ein (mit TTL-Wert)
    • C verschickt eigentliche Nachricht

ARP-Request und ARP-Response Messages

Routing zwischen zwei Subnets

  • ARP funktioniert via Router auch über Subnet-Grenzen hinweg
  • Router besitzt pro Interface eine eigene ARP-Table
  • Im diesem Fall wird ein Zwischenschritt über den Router gemacht, der dann erneut ARP verwendet, um den Host im anderen Subnet zu finden
  • Ablauf:
    • Schritt 1: Host A Router
    • Schritt 2: Router Host B

ICMP: Internet Control Message Protocol

  • Kontroll- und Diagnose-Protokoll
  • ICMP ist ein Layer-3-Protokoll und verwendet IP, um Nachrichten zu transportieren
  • Kann zur Überprüfung der Verbindung zwischen zwei Hosts eingesetzt werden
  • Aufbau:
    • Type (1 Byte): Art der Nachricht
    • Code (1 Byte): Verfeinerung für Art
    • Checksum (2 Byte): Internet Checksum für die Nachricht
    • Content

Types & Codes

  • Eine ICMP-Message wird über Type und Code beschrieben
  • Type stellt allgemeine Art der Nachricht dar, z.B.:
    • Fehler
    • Request
    • Reply
  • Code steht für konkrete Bedeutung der Nachricht, z.B.:
    • Konkreter Fehler
    • Request für was
    • Reply zu was

Traceroute

  • Schickt ICMPv4-Type-8-Code-0-Echo-Request mit TTL = 1 ab
  • Router 1 blockiert Packet, gibt Nachricht zurück
  • TTL wird auf 2 gesetzt
  • Router 2 blockiert Packet, gibt Nachricht zurück
  • Prozess wird so lange wiederholt, bis Ziel erreicht ist

ICMPv6: Neighbour Discovery

  • Ersatz für ARP in IPv6
  • Verwendet ICMPv6-Nachrichten
  • Ergebnisse der Anfragen werden im sog. Neighbour Discovery Cache gespeichert
  • ICMPv6-Nachrichten werden als Multicast-Packets im Subnetz verteilt
  • Besteht aus Solicitation und Advertisment
    • Solicitation ist Multicast-Nachricht, die an Netzwerk gesendet wird, wenn nach MAC-Adresse gesucht wird
    • Advertisment ist Antwort auf Solicitation, enthält selbe Target-Adresse

MTU Path Recovery mit ICMPv6

  • Bei IPv6 werden Packets vom Sender fragmentiert, nicht vom Router
  • Stellt ein Router auf dem Weg eines Packets zum Ziel fest, dass die Nachfolgende Schnittstelle eine zu kleine MTU-Größe unterstützt, sendet der Router eine ICMPv6-Type-2, Code-0 Nachricht an den Sender und informiert ihn im Payload über die maximal mögliche MTU
  • Der Sender fragmentiert die Packets daraufhin mit der neuen MTU und verschickt die Frames erneut

5. Die Netzwerkschicht: Routing

💀

6. Die Sicherungsschicht: Ethernet, VLAN, STP

6.1 Dienste der Sicherungsschicht

  • Layer 2 im OSI-Modell wird als Sicherungsschicht bezeichnet
  • Layer 2 wird von der IEEE standardisiert
  • Jeder Teilnehmer wird als Node bezeichnet
  • Ein Kanal, der zwei benachbarte Knoten verbindet, wird als Link bezeichnet
    • Kabelgebundene Links (wired)
    • Kabellose Links (wireless)
  • Ein Daten-Packet der Sicherungsschicht nennt man Frame
  • Ein Frame umhüllt ein IP-Packet

Zentrale Aufgabe

  • Die Sicherungsschicht hat die Aufgabe, Frames von einem Knoten über einen Link zu einem benachbarten Knoten innerhalb einer Broadcastdomäne zu transportieren
  • Eine Broadcastdomäne ist ein Verbund von Netzwerkgeräten, der sich dadurch auszeichnet, das ein limited Broadcast (255.255.255.255) alle Teilnehmer des Verbundes erreicht

Dienste der Sicherungsschicht

  • Fehlererkennung
    • Fehler entstehen durch Signaldämpfung auf der Leitung und durch elektromagnetisches Rauschen
    • Empfänger sollte Fehler in den Frames erkennen und fehlerhafte Frames verwerfen
  • Fehlerkorrektur (optional)
    • Empfänger korrigiert Bitfehler mit CRC
  • Flusskontrolle (optional)
    • Anpassung der Sendegeschwindigkeit an die Verarbeitungsgeschwindigkeit des Empfängers
  • Half-Duplex und Full-Duplex-Übertragung
    • Halb-Duplex-Betrieb: Einer der beiden Knoten sendet, der andere hört zu, abwechselnd
    • Full-Duplex-Betrieb: Beide Knoten können Senden und Zuhören, gleichzeitig

6.2 Zugangsschichtprotokoll

Ethernet

  • 1970 entwickelt
  • Protokoll für LANs
  • Früher: Bus-Topologie mit allen Knoten an Kollisionsdomäne
  • Heute: Stern-Topologie mit Switch als Vermittlungsgerät und Full-Duplex-Betrieb

MAC-Adressen

  • Jede NIC (Network Interface Card) in einem Subnet besitzt eine eindeutige MAC-Adresse
  • Die Vergabe von MAC-Adressen wird von der IEEE durchgeführt
  • Hersteller von NICs kaufen einen Teil des Adressraums (um Eindeutigkeit sicherzustellen) und können dann innerhalb des Adressraums eindeutige MAC-Adressen vergeben
    • Erste 24 Bits: Beschreiben den Hersteller, auch Organisationally Unique Identifier (OUI) genannt
    • Zweite 24 Bits: Adressieren einzelne NIC, stellen Device Identifier dar
    • Beispiel: 3C-8B-7F-76-09-AD
      • 3C-8B-7F: Herstellererkennung (Hier CISCO)
      • 76-09-AD: Device Identifier
  • IP-Adressen werden verwendet, um ein IP-Packet zu einem Zielnetzwerk zu leiten (Subnet to Subnet)
  • MAC-Adressen werden verwendet, um ein Frame von einem Adapter zu einem anderen im selben Subnet weiterzuleiten
    • Früher in ROM einer Netzwerkkarte eingebrannt
    • Heute per Software veränderbar
    • Jeder Adapter innerhalb eines Subnets benötigt eine eindeutige MAC-Adresse
    • Broadcast-Adresse: FF-FF-FF-FF-FF-FF

Dienste von Ethernet

  • Unzuverlässiger (Best Effort) Dienst zum Austausch von Daten zwischen Stationen in einem LAN
  • Verbindungslos, keine Nummerierung der Frames, keine Session
  • Kein ACK/NACK, bei Übertragungsfehlern werden Frames verworfen
  • Flusskontrolle: Im Full-Duplex-Betrieb besteht die Gefahr, dass ein Switch durch andere Nodes überlastet wird
    • Switches können bei Überlast “PAUSE-Frames” an die angebundenen Nodes per Ethernet-Multicast (01-80-C2-00-00-01) schicken
    • PAUSE-Frame enthält Duration-Feld n, 16 Bit groß, vielfaches einer 512 Bit Time:
    • Beispiel mit :

Media Access Control Protocol (MAC-Protocol)

  • Bei Zugriff auf gemeinsamen KS-Kanal (Kollisionskanal) kann es zu Sendekollisionen kommen, wenn mehrere Teilnehmer gleichzeitig senden
  • Bei älterem Ethernet wird das CSMA/CD-Protokoll als MAC-Protokoll verwendet, um Sendekollisionen zu reduzueren
  • CSMA (Carrier Sense Multiple Access):
    • Carrier Sense: Jede Node überprüft, ob die Leitung frei ist, bevor er zu senden beginnt
    • Multiple Access: Mehrere Teilnehmer teilen sich dasselbe Medium
  • CD (Collision Detection)
    • Jede Node überprüft während der Übertragung eines Frames, ob ein weiterer Knoten ebenfalls sendet.
    • Wenn ja, liegt eine Kollision vor
    • Bei Kollision beendet die Node ihre Übertragung sofort und informiert alle anderen Nodes via JAM-Signal über das Übertragungsende
    • Jede Node, der gerade einen Frame empfängt, bekommt anstelle eines 32-Bit-MAC-CRC das JAM-Signal, wodurch der Frame aufgrund eines CRC-Fehlers verworfen wird
    • Die Sendewiederholung erfolgt nach dem “binary exponential backoff”-Verfahren.
      • Nach zufällig gewählter Zeit (exponential backoff timer) started die Node einen erneuten Sendeversuch
      • Exponential backoff timer ist ein Vielfaches der 512 Bit Time (Slot time )
    • Ethernet-Frame-Größen sind so festgelegt, dass die Übertragung mind. 1 Slot Time dauert, damit eine Kollision immer erkannt werden kann

Ethernet Frame

  • Sendende Netzwerkkarte verpackt Nutzerdaten in einem Ethernet-Frame
  • Layer 1 ergänzt eine Präambel (8 Bytes) zur Signalisierung des Packet-Anfangs
    • 7 Bytes mit 10101010 zur Synchronisation der Datenabtastrate zwischen Sender und Empfänger
    • 1 Byte (Start Frame Delimiter, 10101011)
  • Layer 2 Packet-Ende wird erkannt durch Ruheperiode von 96 Bit Time, sog. Internet Gap Time. Beispiel bei 1Gbit-Ethernet:

  • Adressen (jeweils 6B): Destination & Source MAC-Adressen
  • Ether Type (2B): Definiert das Upper-Layer-Protokoll
    • ARP: 0x0806
    • IPv4: 0x8000
    • IPv6: 0x86DD
  • Frame Check Sequence (FCS, 4B): CRC-32 zur Fehlerbehandlung und 1-Bit Fehlerbehebung
  • Optionales Protokoll der Sicherungsschicht
  • Zwischenschicht zwischen Zugriff auf physikalisches Medium (MAC) und höheren Protokollen (IP, …)
  • Unterstützung verschiedener MAC-Protokolle
  • Unterstützung verschiedener Netzwerkschicht-Protokolle

6.3 Der Switch

Switch

  • Arbeitet auf Sicherungsschicht (Layer-2)
  • Empfängt und sendet Ethernet-Frames über Switch-Ports
  • Forwarding:
    • Liest MAC Destination Address im Header eines eingehenden Frames und entscheidet auf Basis dieser Adresse, zu welchem Ausgangs-Port der Frame weitergeleitet wird.
  • Filtering:
    • Switch verwirft ein Frame, falls:
      • Die MAC Destination Address über denselben Port erreichbar ist über den der Frame empfangen wurde (Input-Port = Output-Port)
      • Ein Frame einen Bitfehler enthält
  • Switches arbeiten transparent, sie verändern empfangene Frames also nicht
  • Endsysteme wissen nichts von der Gegenwart eines Switches
  • Switch ist ein selbstlernendes Gerät (plug-and-play)

Betriebsmodi

  • Switches unterstützen zwei Betriebsmodi
  • Fast-Forward-Mode: Switch leitet Packets unmittelbar nach Lesen der Empfängeradresse weiter
    • Voraussetzung: Input- und Output-Port dürfen nicht Puffern Ports benötigen die gleiche Bandbreite
    • Vorteil: Schnelles Weiterleiten von Frames, nur die ersten 6 Byte werden gelesen
    • Nachteil: Auch fehlerhafte Frames werden weitergeleitet, keine FCS-Prüfung
  • Store-Forward:
    • Switch speichert ein Packet und liest es komplett
    • Überprüft Packet mit FCS-Feld auf Bitfehler
    • Falls es Bitfehler enthält, wird es verworfen
    • Enthält es keine Fehler findet Forwarding oder Filtering basierend auf Destination- und Source-Address statt.
  • Vorteil: Fehlerhafte Frames werden gelöscht, Filtering möglich
  • Nachteil: Langsames Weiterleiten von Frames

Simultane Übertragung

  • Jeder Host hat eigenen Link zum Switch
  • Ethernet wird auf jedem Link verwendet
  • Link wird im Full-Duplex-Modus betrieben
    • Switch und Host können gleichzeitig senden, ohne dass es zu Kollisionen kommt
    • Jeder Link ist eigene Kollisionsdomäne
  • Wenn zwei Hosts an einen gleichen, dritten Host gleichzeitig senden, muss der Switch die Packets buffern

Switch Table

  • Ein Switch lernt, welche Hosts er über gegebene Schnittstellen erreichen kann:
  • Wenn ein Switch über einen Port ein Frame empfängt, lernt der Switch die Source-MAC-Adresse und speichert sich diese zum passenden Port mit einer bestimmten TTL

Forwarding/Filter-Algorithmus

  • Wenn die Empfänger-Adresse bekannt ist, leite an diesen Port weiter, insofern Ausgangsport Eingangsport
  • Wenn Ausgangsport Eingangsport, ignoriere den Frame
  • Sonst: Flooding Frame an alle Interfaces weiterleiten, die nicht das Eingangsinterface sind

Layer-2- vs Layer-3-Forwarding

  • Layer-2:
    • L2-Forwarding Tabelle
    • Transparenter Modus: Switch verändert die MAC-Adressen nicht
  • Layer-3:
    • L3-Forwarding Tabelle
    • Intransparenter Modus: Router ersetzt Source-MAC-Adresse durch MAC-Adresse seines Out-Ports und die Ziel-MAC-Adresse des Empfängers im neuen Subnet

6.4 Virtual LANs (VLANs)

VLANs dienen der Verkehrsisolation innerhalb einer Broadcast-Domain. Außerdem helfen sie, ineffiziente Switches zu vermeiden.

Port-Based VLANs

  • Switches können via Software so konfiguriert werden, dass sie mehrere Subnets über eine einzige physikalische Switch-Hardware anbieten.
  • Bei Port-Based VLAN erhält jeder Port eine VLAN ID, die ein eigenes Subnet darstellt.

  • Der Switch verhält sich im oberen Bild wie zwei verschiedene Switches.

Konfiguration und Weiterleitung in VLANs

  • Packet-Vermittlung zwischen VLANs kann nur über Layer-3 Routing erfolgen, wie bei separaten physikalischen Switches in separaten Subnets.
  • Den Hosts eines VLANs müssen IP-Adressen unterschiedlicher Subnets zugeordnet werden.
  • In der Praxis verkaufen Anbieter kombinierte Switches und Router, sog. L3-Switches

VLANs und mehrere Switches

  • VLAN Trunking: auf jeden Switch wird ein spezieller Port als Trunk-Port definiert
  • Trunk-Port gehört zu allen VLANs
  • Frames, die innerhalb eines VLANs einen Empfänger adressieren, der mit einem anderen Switch mit der gleichen VLAN ID verbunden ist, können sie via der Trunk Connection an diesen Switch weitergeleitet werden
  • Dazu wird der Ethernet-Header durch ein VLAN-Tag erweitert

VLAN Tagging

  • VLAN-Tagging erweitert den Ethernet Header um ein VLAN ID-Feld
  • Ein VLAN-Tag wird nur dann hinzugefügt, wenn ein Frame über einen Trunk-Port an einen Nachbar-Switch weitergeleitet wird
  • VLAN-Tags existieren nur während der Übertragung über einen Trunk-Port und werden nach der Übertragung entfernt
  • Trunk-Ports besitzen eine “native VLAN ID” (Default: 1)

VLAN Frame Format

  • Vor das Ether Type-Feld wird ein 4 Byte großes Headerfeld eingeschoben
    • Besteht aus Protocol ID und Tag Control Information
  • Protocol ID Datenfeld wird bei 802.1Q-VLANs auf 0x8100 gesetzt
  • Tag Control info besteht aus
    • Priority Code Point (3 Bit): Analog zur IP Precedence, regelt Priorität des Ethernet-Frames
    • Drop Eligible Indicator (1 Bit): Zeigt, ob das Frame gelöscht werden darf
    • VLAN ID (12 Bit)
  • Max. Länge des Ethernet-Frames erhöht sich auf 1522B

Router on a Stick

  • Router on a Stick (ROAS) ist eine Technik, um über eine einzige Physische Verbindung einen Router mit einem Switch zu kombinieren, um IP Routing zwischen mehreren VLANs durchzuführen
  • Physikalische Port des Routers verwendet für jedes VLAN ein virtuelles Sub-Interface
  • Jedes Sub-Interface bekommt eine IP-Adresse des VLANs und dient als dessen Default Gateway
  • Verbundener Switch-Port ist ein Trunk-Port

6.5 Spanning Tree Protocol (STP)

  • Moderne Architektur aus Stern-Topologien erfordert redundante Verbindungen, um für den Ausfall eines Switches zu kompensieren
  • Allerdings führt das selbstlernende Verhalten von Switches in Kombination mit Flooding zu loops, auch Broadcast-Stürmen genannt, da ein Ethernet Frame unendlich kreiselt
  • Switches lernen außerdem, dass die gleiche Absender-Adresse auf verschiedenen Ports zu erreichen ist Instabile Forward-Tabelle
  • Mit STP können Switches ihre Ports als “Forwarding” oder “Blocking” markieren.
    • Forwarding State: Ein Switch-Port in diesem Zustand arbeitet wie gewohnt.
    • Blocking State: Ein Port in diesem Zustand lernt keine Ethernet-Frames und MAC-Adressen, verarbeitet aber Frames des Protokolls, um im Falle eines Fehlers den Zustand wechseln zu können.

BPDU

  • Zur Berechnung verwendet STP sog. BPDU-Frames (Bridge Protocol Data Unit)
  • Es gibt zwei Arten von BPDU-Frames:
    • Configuration BPDU (C-BPDUs):
      • Werden verwendet, um Topologie zu berechnen
      • Auch als Hello-Frames bezeichnet
      • Werden an Multicast-Adresse 01:80:C2:00:00:00 gesendet
      • Nur STP-fähige Ports lesen die Frames
    • Topology Change Notification BPDU (TCN-BPDUs)
      • Werden von einem Non-Root-Switch an einen Root-Switch gesendet, nachdem dieser eine Topologie-Änderung durchgeführt hat.
        • FWD-Port BLK-Port
        • BLK-Port FWD-Port
      • Werden per Unicast über den Root Port zur Root-Bridge gesendet

STP-Algorithmus

  • Bestimmt in einem vermaschten LAN, welche Ports in einen Forwarding und welche Ports in einen Blocking State versetzt werden sollen
  • Vorgehensweise:
    • Root-Switch Auswahl: Algorithmus bestimmt einen Root-Switch, dessen Ports alle in FWD-Modus gesetzt und als Designated Ports (DP) bezeichnet werden
    • Root-Port Berechnung: Für die restlichen Switches bestimmt der Algorithmus den Port mit den geringsten Pfadkosten zum Root-Switch. Dieser Port wird als Root-Port (RP) bezeichnet und ebenfalls in FWD-State gesetzt
    • Ports zwischen Non-Root Switches: Ports zwischen Non-Root Switches werden je nach Pfadkosten zum Root-Switch zu einem DP oder BLK gemacht. Der Switch mit den geringsten Pfadkosten erhält den DP, alle anderen Blockieren. Wenn ein Switch die Hello Frames des Root Switches über zwei verschiedene Ports erhält, weiß er, dass ein Loop vorliegt.

  • Der Root-Switch wird dann an seiner Priority (manuell Festlegbar, Default 32769) festgelegt. Wenn alle Switches den gleichen Priority-Wert haben, wird anhand der kleineren MAC-Adresse entschieden. Dies wird mithilfe von C-BPDU-Frames und der Bridge-ID geregelt: BID = (Priority + VLAN ID) + MAC Address
  • Sobald ein Switch ein C-BPDU-Frame mit einer niedrigeren BID erhält, hört er auf, C-BPDU-Frames zu senden und leitet nur noch Hello-Frames eines potentiellen Root-Switches weiter.
  • Die C-BPDU-Frames enthalten ein RCP (Root Cost Path)-Feld, das von jedem Switch durch seine Portkosten erhöht wird.

Portkosten

  • Je geringer die Bandbreite, desto höher die Portkosten
  • Portkosten können auch manuell eingestellt werden

Aktualisierung der STP-Topologie

  • Alle 2 Sekunden (per Default) berechnet der Root-Switch den Spannbaum neu, indem er neue C-BPDU-Frames verschickt
  • Wenn ein Switch auf seinem Root Port 20 Sekunden Lang keine BPDUs mehr erhält, nimmt er an, dass der Weg zum Root Switch weggefallen ist.
  • Der Switch berechnet dann seine Topologie aufgrund der BPDU-Frames der anderen Interfaces neu und informiert den Root-Switch mittels TCN-BPDUs

Endlicher Automat für STP-Ports

  • Initial ist ein Switch-Port im Disabled State

StateReceive BPDU FramesSend BPDU FramesRemember MAC AddressForward Data
Blocking
Listening
Learning
Forwarding