**Dies ist eine alte Version des Dokuments!**
Internet & Netzwerke
Das Internet ist überall, jeder von uns benutzt es täglich hundert- oder tausendfach. Aber was ist denn eigentlich das Internet? Was sind dessen Bausteine? Was passiert beim Aufruf einer Webseite? Wie hat das Internet unsere Welt verändert, und welche Veränderungen könnten noch kommen?
Was ist das Internet?
Das Internet heisst Netz, weil es die Welt tatsächlich wie ein Netz umspannt. Wie in einem Strassennetz gibt es leistungsfähige Hauptverbindungen, während lokal kleinere Strassen und Wege die Versorgung jedes Gebäudes sicherstellen. Weshalb aber ein Netz? Was ist eigentlich das Ziel?
Netz-Topologien
Fully Connected (voll-vermascht)
Das Internet bietet uns eine geniale Illusion: nämlich, dass jedes Gerät mit jedem anderen verbunden sei, als gäbe es ein direktes Kabel zwischen den beiden. Weil die Illusion so gut gelingt, sprechen wir auch von einer Abstraktion: Das Internet abstrahiert die Verbindung zwischen zwei Geräten, auch wenn diese in Wirklichkeit gar nicht so direkt ist. Für die Geräte ist es unerheblich, ob die Daten über ein WLAN oder Ethernet, via USA, den Suezkanal, einen Satellit im Weltraum oder ein Tiefseekabel fliessen. Es ist sogar möglich, dass ein Teil der übermittelten Daten den einen Weg nehmen und andere einen weiteren.
Weshalb gibt es denn nicht zwischen allen Geräten eine eigene Verbindung? Wieviele Verbindungen bräuchte es, um die 30 Milliarden (30e9) Geräte alle miteinander zu verbinden?
Die Anzahl Verbindungen wächst mit dem Quadrat der Geräte, es wären also 9e20 (fast eine Trilliarde) Verbindungen nötig.
Stern
Es ist also nicht möglich, zwischen allen Geräte-Paaren je ein Kabel zu verlegen. Die Sterntopologie verbindet n Knoten mit n-1 Verbindungen - besser geht nicht. Was könnte das Problem bei dieser Variante sein?
Problem: Fällt der zentrale Knoten aus, sind alle Knoten vom Netz getrennt.
Im richtigen Internet kommen Ausfälle dauernd vor, und das Netz ist so ausgelegt, dass die Benutzer davon nichts mitbekommen. Die Ausfallsicherheit des Internets ist entscheidend, um die Illusion der direkten Verbindung zu erhalten.
Mesh (vermaschtes Netz)
In der Praxis sieht das Internet eher wie ein Strassennetz aus: Das Rückgrat wird ähnlich den Autobahnen durch leistungsfähige Hauptverbindungen zwischen den Städten, Datencentern, und über Unterseekabel zwischen den Kontinenten gebildet. Das grösste Kabel zwischen den USA und Europa (MAREA) hat eine Übertragungskapazität von 160 Terabit, was ca. 70 Millionen gleichzeitigen Netflix-Filmen entspricht. Das Kabel ist in der Tiefsee nur etwa doppelt so dick wie ein Gartenschlauch. Die Hauptverbindungen sind normalerweise redundant (es gibt also Alternativen, wenn eine Verbindung ausfallen würde).
Um die Städte und Dörfer zu versorgen, legen Provider Verbindungen ähnlich der Hauptstrassen an. Die Feinverteilung auf die Gebäude erfolgt durch die Netze der Telefon- und Kabel-TV-Anbieter. Die meisten Haushalte haben nur eine einzige Verbindung.
Surfe ich mit meinem Smartphone auf eine Webseite in Taiwan, fliessen die Daten von langsameren Verbindungen (z.B. der WLAN-Verbindung an der KSR) zur nächst-schnelleren (z.B. der Swisscom) und von da durch Unterseekabel z.B. nach Asien, wo sie schliesslich beim Ziel-Server ankommen.
Paket und Datenstrom
Bevor wir etwas genauer untersuchen, wie diese Abstraktion zustande kommt, schauen wir uns kurz an, was denn eigentlich bei einem Seitenaufruf im Internet passiert.
Verfolgen wir den Datenaustausch zwischen meinem Gerät und einem Server (zum Beispiel mit Wireshark), so fallen ein paar Dinge auf.
- Die Kommunikation erfolgt in Paketen (Frames, Packets).
- Ein Datenstrom (en. stream) wird aus einer Paketfolge zusammengesetzt.
- Jeder Stream entspricht eigentlich einem verschachtelten Gespräch auf mehreren Ebenen.
- Für jede Ebene enthält ein Paket Metadaten, entsprechend dem Protokoll der Ebene, und als Nutzlast (payload) die Daten der nächst-höheren Ebene.
- Auf der letzten Ebene folgen die eigentlichen Nutzdaten (z.B. das HTML einer Webseite).
Kommunikationsebenen
Die Kommunikation im Internet ist so aufgebaut, dass es für zwei Endgerät keine Rolle spielt, ob sie direkt miteinander verbunden sind, oder ob die Verbindung über das weltweite Internet verläuft. Grundlage dafür ist das Schichtenmodell, das die komplexe Verbindung in vier Schichten teilt, und jeder ihre eigenen Aufgaben zuweist 1).
Eine Verbindung zwischen zwei Geräten besteht eigentlich aus ineinander verschachtelten Gesprächen. Jede Ebene verpackt dabei das Gespräch der nächsthöheren Schicht in einen neuen Umschlag, und löst mit den Angaben auf seiner Ebene nur die spezifischen Probleme seiner Schicht. Umgekehrt kann sich jede Ebene auf die Abstraktion verlassen, die ihr von der nächsttieferen Ebene geboten wird.
Protokolle
Auf jeder Ebene erfolgt die Kommunikation nach genau definierten Regeln, dem sogenannten Protokoll.
Wir kennen Protokolle aus vielen Bereichen des täglichen Lebens: Ein höfliches Gespräch beginnt beispielsweise mit einer Begrüssung und schliesst mit der Verabschiedung:
Anwendungsschicht
Auf der Anwendungsschicht geht es darum, was ein Benutzer (oder ein Programm) eigentlich erreichen will.
In der Analogie der Paketpost geht es darum, dass wir beispielsweise Möbel von einem Schulhaus zum anderen transportieren wollen:
Die Anwendungsschicht nützt die Abstraktion, die ihr von der Transportschicht geboten wird: den bidirektionalen Datenstrom.
Im Internet gibt es tausende von Anwendungsprotokollen, aber ein paar wenige sind besonders wichtig:
HTTP
Das HyperText Transfer Protocol dient den Browser dazu, Webseiten vom Server zu unserem Gerät zu übertragen.
Ein HTTP-Server ist normalerweise auf dem TCP-Port 80 erreichbar.
DNS
Das Domain Name System dient als „Telefonbuch des Internets“. Der DNS-Server weiss die korrekte IP-Adresse (z.B. 161.78.13.64 s. Kapitel Vermittlungsschicht) für jede Domain (z.B. „www.ksr.ch“).
Der DNS-Dienst läuft normalerweise auf dem TCP-Port 53.
SMTP
Das Simple Mail Transfer Protocol dient dem versenden von Emails. Ein SMTP-Server läuft normalerweise auf TCP-Port 25.
Transportschicht
Die Transportschicht stellt der Anwendungsschicht einen bidirektionalen Datenstrom zur Verfügung. Der Datenstrom kann beliebig grosse Daten in beiden Richtungen versenden. Die Transportschicht stellt also sicher, dass die einzelnen Daten-Pakete in der gleichen Reihenfolge beim Empfänger ankommen, wie sie abgeschickt worden sind. Verloren gegangene Pakete werden nochmals beim Sender angefordert.
In der Paket-Analogie stellt der Hausdienst sicher, dass die Möbel korrekt in einzelne Pakete zerteilt und verpackt werden. Zudem erstellt der Hausdienst einen Lieferschein der zur Sendung gehörenden Pakete, damit der Empfänger weiss, ob er alle erhalten hat.
Im richtigen Internet handelt das TCP (Transport Control Protocol) auch noch die richtige Geschwindigkeit zwischen den beiden Endpunkten aus, so dass die Daten so schnell wie möglich versendet werden, ohne das Netzwerk zu überlasten.
Um einen Datenstrom zu identifizieren verwendet TCP sogenannte Ports auf beiden Seiten der Verbindung. Zusammen mit der IP-Adresse des Senders und des Empfängers bestimmen Sie jede Verbindung eindeutig.
Einige bekannte Protokolle der Anwendungsschicht können unter sogenannten well-known Ports erreicht werden:
Dienst | Port |
---|---|
HTTP (Web) | 80 |
HTTPS (Verschlüsseltes Web) | 443 |
DNS | 53 |
SMTP (Email) | 25 |
Die Transportschicht nützt die Abstraktion, die ihr von der nächstunteren Ebene geboten wird: die End-zu-Ende-Vermittlung von einzelnen Paketen.
Vermittlungsschicht
Die Vermittlungsschicht (en. Internet Layer) stellt den oberen Schichten den Versand von einzelnen Paketen von einem Gerät im Internet zu jedem anderen (Ende-zu-Ende). Das Internet Protocol (IP) verwendet zur Adressierung die IP-Adressen.
Im Paketbeispiel entspricht die Vermittlungsschicht der Post, die IP-Adressen den Post-Adressen.
Wie bei der Paketpost verbindet auch das Internet nicht alle Geräte direkt miteinander. Wie bei der Paketpost müssen Pakete dem Netz entlang von Knoten zu Knoten (=Paketsortierzentrum) geleitet werden. An jedem Knoten muss entschieden werden, wie ein Paket weitergeleitet wird. Dieser Vorgang heisst im Internet Routing, und Knoten mit mehreren Verbindungen heissen Router. Siehe Routing
Physikalische Schicht
Die Physikalische Schicht (oder Netzzugangsschicht) ist die unterste Netzwerkebene. Sie bietet den oberen Schichten den Paketvermittlung bis zum Ende des nächsten Kabels. Als Adressen werden sogenannte MAC-Adressen verwendet, die jedes Gerät (genauer: jede Netzwerkkarte) eindeutig identifizieren. Anders als die IP-Adressen ändern MAC-Adressen nicht, wenn das Gerät in einem anderen Netzwerk angemeldet wird.
Im Internet gibt es eine Vielzahl von Technologien, die auf der Netzzugangsschicht verwendet werden. Am häufigsten begegnen uns Ethernet (Kabelgebundenes Ethernet / LAN) und Wifi (WLAN / Funknetzwerk) sowie LTE (Mobilfunk).
In unserer Paketanalogie entspricht der Netzugangsschicht der Transport von einem Knoten zum nächsten, beispielsweise von Romanshorn ins Paketsortierzentrum Härkingen. Den oberen Schichten ist egal, ob dieser Transport per Camion oder mit dem Zug erfolgt - Hauptsache, das Paket kommt an. Genauso ist dem Lastwagen die endgültige Zieladresse des Pakets egal - er kümmert sich nur um die Adresse des Paketzentrums.