Wie in Folge 0 bereits erwähnt, tun wir viele Dinge mit Computern. Genauer tun wir sie in oder mit dem Internet.
Damit das funktionert ist es nötig vielerlei Protokolle übereinander zu stapeln. Wir präsentieren -- den Network Stack.
Shownotes
Vorbemerkung: Daten im Computer bzw. im Computernetzwerk sind immer nur Zahlen
Wenn wir Texte haben, haben wir tatsächlich Zahlenfolgen, von denen jede Zahl für einen Buchstaben steht.Wenn wir Bilder haben, haben wir tatsächlich Zahlenfolgen, von denen jede Zahl für den Farbwert eines Bildpunktes steht.etc.Rückerinnerung zu STP002: Protokolle
Wikipedia: "Ein Kommunikationsprotokoll ist eine Vereinbarung, nach der die Datenübertragung zwischen zwei oder mehreren Parteien abläuft. In seiner einfachsten Form kann ein Protokoll definiert werden als eine Menge von Regeln, die Syntax, Semantik und Synchronisation der Kommunikation bestimmen."Beispiel aus dem normalen Leben: Interaktion zwischen Kunde und VerkäuferComputer-Netzwerke brauchen einen ganzen Stapel von Protokollen, die aufeinander aufbauen
Problemlösung auf verschiedenen Ebenen: physikalische Signalübertragung, Suche von Verbindungspfaden, Fehlerkorrektur, finale AnwendungNachrichten einer höheren Schicht werden in Nachrichten der nächsttieferen Schicht eingewickeltmetaphorisches Beispiel: verpacktes Geschenk in Postpaket in Postwertsack in Cargo-FlugzeugAustauschbarkeit einzelner Teile des Stapels: z.B. höhere Protokollebenen hängen (fast) nicht davon ab, ob die Übertragung mittels Ethernet oder DSL oder WLAN oder LTE etc. läuftinnerhalb der Metapher: Paket kann sowohl über Luftpost als auch per Schiff zugestellt werdenLehrmodell: OSI-Modell (Open Systems Interconnection) mit 7 Schichten; entspricht aber nicht ganz der RealitätSchicht 1: Bitübertragungsschicht ("Physical Layer")
bei kabelgebundenen Wegen Spezifikation der Kabel (Aderanzahl, Materialien, Schirmung, etc.) und Steckerbei kabellosen Wegen Spezifikation des Frequenzspektrums etc.auf dieser Ebene im Allgemeinen nur Folgen von Bits (Nullen und Einsen)Problem: echte Welt ist fehlerbehaftet (Störsignale)Schicht 2: Sicherungsschicht ("Data Layer")
Realisierung einer fehlerfreien Übertragung zwischen direkt miteinander verbundenen GerätenBitfolgen werden zu Frames zusammengefasst und mit Prüfsummen versehenzu Prüfsummen siehe STP004MTU: Maximum Transfer Unit (maximale Nutzlast in einem Frame)manchmal enthalten: Protokolle zum Neustarten fehlgeschlagener Übertragungen (z.B. WLAN), ansonsten nur Verwerfen kaputter Frames (z.B. Ethernet)hier meist hohe Komplexität aufgrund strenger Anforderungen an VerarbeitungsgeschwindigkeitSchicht 3: Vermittlungsschicht ("Network Layer")
Schicht 1 und 2 war nur für Geräte, die direkt miteinander verbunden sind (bzw. maximal durch Switches und Repeater verbunden)Schicht 3 verschaltet mehrere solche lokale Netzwerke miteinanderRouter: Computer, der mit mehreren Netzwerken verbunden ist und dazwischen vermitteltInternet ist paketbasiert (wie die Post), nicht verbindungsbasiert (wie das Telefonnetz)auf Schicht 3 große Einigkeit in den Protokollen, um Interoperabilität zu ermöglichenIP (Internet Protocol)Zuweisung global gültiger Adressen ("IP-Adressen"), z.B. 91.198.174.192 für IP-Version 4 oder 2620:0:862:ed1a::1 für IP-Version 6IP-Pakete können über Netzwerkgrenzen hinweg an den Adressaten zugestellt werden; enthalten Rückadresse für AntwortpaketeIP-Adressen nicht immer eindeutig auf einen Computer zugewieseneine global erreichbare Adresse für mehrere Computer, z.B. Anycast (vgl. Großkundenadressen bei der Post)private Adressen für die Verwendung in lokalen Netzwerken (analog zu internen Adressen in der Hauspost einer einzelnen Firma)ICMP (Internet Control Message Protocol)z.B. Ping, Pfad-MTU-Aushandlung, Anzeige von nicht verfügbaren EmpfängernNAT (Network Address Translation)Anwendungsfeld: ein ganzes lokales Netzwerk hat nur eine öffentliche IP-AdresseRouter übersetzt IP-Adressen beim Übergang aus dem lokalen Netzwerk oder ins lokale Netzwerkweitere Protokolle insb. für die dynamische Verschaltung von Netzwerken, z.B. BGP (Border Gateway Protocol)Schicht 4: Transportschicht ("Transport Layer")
Erweiterung von Schicht 3 um Sitzungsverwaltung und Fehlerkorrektur (analog zum Verhältnis von Schicht 2 zu Schicht 1)Problem: IP-Adressen identifizieren nur Computer, nicht die Programme auf dem Computergetrennte Sitzungen mittels PortsVerbindung eindeutig identifizierbar durch die Verbindung aus Quelladresse, Quellport, Zieladresse und ZielportTCP (Transmission Control Protocol)garantierte fehlerfreie Zustellung der Datenpakete jeder Verbindung in der jeweils richtigen Reihenfolgez.B. für große Downloads und Uploads (HTTP)Fehlerkorrektur in TCPverpflichtendes Bestätigen erfolgreicher ÜbertragungenSender hält Daten in einem Sendefenster vor, bis der Empfang von der Gegenseite bestätigt wurde; analog Empfangsfenster beim EmpfängerÜberfüllungskontrolle: Sendefenstergröße wird angepasst, wenn die Fehlerrate zunimmt (weil jemand auf dem Weg Pakete verwerfen muss)für den Benutzer sichtbar als "TCP Slow Start" (Downloads fangen meist erst mit geringer Geschwindigkeit an und werden dann schneller, sobald die optimale Sendefenstergröße gefunden wurde)UDP (User Datagram Protocol)keine Fehlerkorrektur; im Prinzip nur IP + Portsz.B. für Echtzeit-Anwendungen (Voice over IP), wo geringe Verzögerung wichtiger ist und der Verlust einzelner Pakete hingenommen werden kannSchicht 5-7: Anwendungsschicht ("Application Layer")
feinere Aufteilung nicht wirklich hilfreich, da die verschiedenen Aspekte zunehmend schwer voneinander zu trennen sindProtokolle auf dieser Ebene: z.B. HTTP/HTTPS (Webseiten), SMTP/IMAP (E-Mail), DNS (Namensauflösung)Grenzen des Schichtenmodells
tiefere Schichten können durch höhere Schichten abgebildet werden; Beispiel: VPN-Protokolle (Virtual Private Network; Protokolle der Schicht 7, das einen Datenkanal der Schicht 3 darstellt)Schicht 8? Schicht 9?der großartige Podcast Request for Comments (dessen Produzentin natürlich Baecker und nicht Bauer heißt; ttimeless nimmt alle Schuld auf sich)hier der erwähnte RFC-Podcast über TCPaußerdem die angesprochene Episode vom Chaosradio Express: CRE197 IPv6ADSL over wet stringTwelve Networking Truths