Computer Science Unleashed, Kapitel 1: Verbindungen

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Dieser Artikel ist eigentlich ein Auszug aus Wladston Ferreira Filhos neuem Buch Computer Science Unleashed. Dieses Buch handelt von all den bahnbrechenden Technologien hinter dem World Wide Web. Wir halten sie heutzutage vielleicht für selbstverständlich, aber es stecken wichtige und erlernbare Technologien dahinter, wie alles funktioniert. Lesen Sie weiter und bestaunen Sie den Einfallsreichtum der Technik, der es ermöglicht, dass einfache physische Verbindungen zwischen Computern zu einem globalen, nahezu sofortigen Kommunikationsmedium werden, das jeder fast kostenlos nutzen kann.

Der Mensch sehnt sich nach Verbindungen, und das Aufkommen der digitalen Revolution hat uns ermöglicht, stärker vernetzt zu sein als je zuvor. Das Internet hat Milliarden von Menschen beispiellose wirtschaftliche und politische Freiheit gebracht, aber auch mächtige Mittel zur Kontrolle und Beherrschung. Dennoch ist die überwiegende Mehrheit von uns ahnungslos über seine inneren Abläufe.

Qualifizierte Menschen, die Computer so programmieren können, dass sie das Internet nutzen, stehen an der Spitze der digitalen Revolution. Dieses Kapitel wird Ihnen beibringen, wie das Internet funktioniert, damit Sie sich dieser ausgewählten Gruppe anschließen können. Sie werden lernen,

  • Computer miteinander zu verbinden, um ein Netzwerk zu bilden,
  • Netzwerke mithilfe des Internet-Protokolls zu kombinieren,
  • Einen Empfänger anhand seiner Internet-Adresse zu lokalisieren,
  • Eine Route durch das Internet zu diesem Standort zu finden,
  • Daten zwischen entfernten Anwendungen zu transportieren.

Vor dem Internet erforderte die Telekommunikation zwischen zwei Parteien eine direkte physische Verbindung. In den 1950er Jahren hatte jedes Telefon eine Leitung, die direkt zu einer Vermittlungsstelle führte. Damit ein Anruf zustande kam, musste ein Vermittler die Leitungen der beiden Telefone physisch verbinden. Für Ferngespräche wurden Leitungen zwischen entfernten Vermittlungsstellen verlegt, und mehrere Vermittler an verschiedenen Orten mussten die Kette von Leitungen, die die beiden Telefone verbanden, physisch zusammenstecken.

Das Internet hat damit Schluss gemacht. Leitungen werden nicht mehr physisch neu konfiguriert, um direkte, exklusive Verbindungen herzustellen. Stattdessen werden die Informationen Schritt für Schritt über eine Kette von verbundenen Geräten weitergeleitet, bis sie ihr Ziel erreichen. Dadurch entfällt die Notwendigkeit für Vermittler und zentrale Koordination. Außerdem sind Leitungen nicht mehr darauf beschränkt, eine einzige Verbindung zu bedienen – viele gleichzeitige Verbindungen können dieselbe Leitung gemeinsam nutzen. Dies ermöglicht globale Kommunikation, die sofortig, billig und zugänglich ist.

Die moderne Netzwerktechnologie ist jedoch komplizierter als die frühe Telefonie. Sie hat viele aufeinanderfolgende Schichten, wobei jede auf der vorherigen aufbaut. Lassen Sie uns untersuchen, wie Verbindungen auf diesen verschiedenen Ebenen hergestellt werden, beginnend mit der grundlegendsten Schicht.

Eine direkte Verbindung zwischen zwei Computern wird durch ein Übertragungsmedium hergestellt: einen physischen Kanal, durch den Signale fließen. Dies kann ein Kupferkabel sein, das elektrische Ströme leitet, ein Glasfaserkabel, das Licht lenkt, oder Luft, die Radiowellen beherbergt. Jeder verbundene Computer verfügt über eine Netzwerkschnittstelle, um Signale im Übertragungsmedium zu senden und zu empfangen. Mobiltelefone haben beispielsweise einen Funkchip und eine Antenne, um Funksignale zu verarbeiten, die durch die Luft reisen.

Abbildung 1.1 Ein Link wird zwischen zwei Netzwerkschnittstellen hergestellt, wenn sie ein Übertragungsmedium teilen und sich auf die Kommunikationsregeln einigen.

Um kommunizieren zu können, müssen sich Netzwerkschnittstellen auf die Regeln einigen, die beim Senden und Empfangen von Signalen zu befolgen sind. Diese Regelsammlung wird als Verbindungsschicht (Link Layer) bezeichnet.

Wenn ein Medium exklusiv zwei Computer verbindet, sprechen wir von einer Punkt-zu-Punkt-Verbindung, und ihre Verbindungsschicht stützt sich auf die grundlegendsten Regeln: das Point-to-Point-Protocol (PPP). Es stellt lediglich sicher, dass die beiden Computer einander identifizieren und Daten fehlerfrei austauschen können.

Allerdings genießen verbundene Computer nicht immer solch eine exklusive Verbindung. Oft müssen sie das Übertragungsmedium mit mehreren anderen Computern teilen.

Eine Möglichkeit, Computer in einem Büro zu verbinden, besteht darin, jeden von ihnen mit einem Kabel an einen Hub anzuschließen. Der Hub verbindet physisch alle Kabel, die ihn erreichen, sodass ein von einem Computer gesendetes Signal von allen anderen erkannt wird! Das Gleiche geschieht bei Ihrem Heim-WLAN, da alle verbundenen Geräte dieselbe Funkfrequenz nutzen. Die Kommunikation kann unübersichtlich werden, wenn alle gleichzeitig das Medium nutzen.

Abbildung 1.2 Eine auf einem geteilten Link gesendete Nachricht wird von allen erkannt.

Die Verbindungsschicht enthält eine Reihe von Regeln, um zu definieren, wie Computer ihr Kommunikationsmedium teilen sollen, passenderweise als Medium Access Control (MAC) bezeichnet. Die Regeln lösen zwei Hauptprobleme

KOLLISIONEN — Wenn zwei Computer gleichzeitig ein Signal durch dasselbe Medium senden, stören sich die resultierenden Interferenzen gegenseitig. Solche Ereignisse werden als Kollisionen bezeichnet. Ein ähnliches Problem tritt auf, wenn Ihre Gruppe von Freunden oder Familie durcheinanderredet und keine einzelne Stimme deutlich zu hören ist.

Es gibt Methoden, um Kollisionen zu vermeiden. Erstens: Beginnen Sie nur mit der Übertragung von Signalen, wenn kein anderer Computer sendet. Zweitens: Überwachen Sie Ihre Kommunikation – wenn eine Kollision auftritt, warten Sie eine kurze, aber zufällige Zeitspanne, bevor Sie versuchen, erneut zu senden.

Abbildung 1.3 Kollision zwischen Ada und Andrew.
Abbildung 1.4 Ada und Andrew senden beide nach einer zufälligen Dauer erneut.

Diese Methoden haben einige Einschränkungen. Wenn zu viele Übertragungsversuche durch ein Medium unternommen werden, treten unaufhörlich Kollisionen auf. Wir sagen, der Link ist gesättigt, wenn übermäßige Kollisionen die Kommunikation unterbrechen. Waren Sie schon einmal auf einer großen Veranstaltung frustriert, weil Ihr Telefon keine Textnachrichten senden oder Anrufe tätigen konnte? Dies kann passieren, wenn zu viele Telefone gleichzeitig versuchen zu kommunizieren und die zellulare Verbindung gesättigt wird.

PHYSISCHE ADRESSIERUNG — Ada und Charles haben eine direkte Verbindung zwischen ihren Computern. Ada möchte mit Charles sprechen, also sendet sie ein Signal mit ihrer Nachricht durch das Medium. Da das Medium jedoch geteilt wird, empfängt jeder, der mit dem Medium verbunden ist, die Nachricht. Wie können die anderen Computer wissen, dass das Signal, das sie empfangen haben, nicht für sie bestimmt war?

Abbildung 1.5 Andrews Netzwerkschnittstelle verwirft die Nachricht.

Die Netzwerkschnittstelle jedes Computers hat einen Bezeichner, bekannt als seine physische Adresse oder Hardwareadresse. Eine Übertragung in einem geteilten Medium muss mit zwei solcher Adressen beginnen: der des Empfängers und der des Senders. Beim Empfang einer Übertragung weiß ein Computer, ob er sie ignorieren oder annehmen soll und an welche Adresse er antworten soll.

Dies kann nur funktionieren, wenn physische Adressen eindeutig sind: Wenn zwei Computer „my_netinterface“ verwenden, sind wir wieder am Anfang. Aus diesem Grund folgen praktisch alle Netzwerkschnittstellen einem Benennungsschema, das in den Regeln der Medium Access Control definiert ist. Diese standardisierten physischen Adressen werden MAC-Adressen genannt.

MAC-Adressierung

Computer, Smartphones, Smartwatches und Smart-TVs können jeweils über WLAN-, Bluetooth- und Ethernet-Netzwerkschnittstellen verfügen. Jede Netzwerkschnittstelle hat ihre eigene, eindeutige MAC-Adresse, die während der Produktion in die Hardware eingebrannt wird. Sie müssen sich nicht darum kümmern, Ihrem Computer eine MAC-Adresse zuzuweisen: Sie können immer diejenige verwenden, die mit der Netzwerkschnittstelle geliefert wurde.

Da MAC-Adressen einfach große, zufällig aussehende Zahlen sind, müssen sich Netzwerkschnittstellenhersteller auf der ganzen Welt koordinieren, um zu vermeiden, dass versehentlich dieselbe Nummer zwei verschiedenen Geräten zugewiesen wird. Zu diesem Zweck verlassen sie sich auf das Institute of Electrical and Electronics Engineers (IEEE), das jedem von ihnen einen anderen Bereich von MAC-Adressen zuweist.

Eine MAC-Adresse wird als sechs Paare von Hexadezimalzahlen1 dargestellt, die durch Doppelpunkte getrennt sind. Die erste Hälfte der Adresse ist ein Bezeichner, der vom IEEE einem eindeutigen Hersteller zugewiesen wird. Dieser Hersteller wählt dann eine eindeutige zweite Hälfte für jede Netzwerkschnittstelle.

60:8B:0E:C0:62:DE

Hier ist 608B0E die Herstellernummer. Diese spezifische Nummer wurde vom IEEE an Apple vergeben, sodass diese MAC-Adresse zu einem Apple-Gerät gehören sollte.2 Die MAC-Adresse eines Geräts ist oft auf einem Etikett auf der Verpackung oder auf dem Gerät selbst neben der Seriennummer aufgedruckt.

Abbildung 1.6 Jede MAC-Adresse ist eindeutig.

Es gibt eine spezielle Adresse, die für Übertragungen an alle Computer in einem Medium reserviert ist. Sie wird als Broadcast-Adresse bezeichnet und lautet FF:FF:FF:FF:FF:FF. Sie verwenden sie, wenn Sie versuchen, sich mit einem unbekannten Gerät zu verbinden. Wenn beispielsweise die WLAN-Karte Ihres Smartphones nicht deaktiviert ist, sendet sie ständig einen Broadcast an FF:FF:FF:FF:FF:FF, dass sie nach einem Access Point sucht. Erkennbare Access Points antworten mit ihrer eigenen MAC-Adresse, damit Sie eine Verbindung herstellen können.

Solche Erkennungs-Broadcasts enthalten, wie alle anderen Übertragungen, die MAC-Adresse des Senders. Mit einem Smartphone herumzulaufen kann daher so sein, als würde man mit einem Lautsprecher herumlaufen, der ununterbrochen seinen Namen ruft, nur dass Funkwellen anstelle von Schall und die MAC-Adresse anstelle Ihres Namens verwendet werden. Im Jahr 2013 enthüllte Edward Snowden, dass die NSA3 die Bewegungen von Menschen überwachte, indem sie WLAN-Übertragungen in Großstädten abhörte und Aufzeichnungen darüber speicherte, wo jede MAC-Adresse gesehen wurde.

Sie können Ihre eigene Netzwerkschnittstelle auch in den Promiscuous Mode versetzen, und sie wird alle Übertragungen abfangen, unabhängig von ihrem beabsichtigten Empfänger. Auf diese Weise können Sie versteckte WLAN-Netzwerke entdecken, auflisten, welche MAC-Adressen sich in Ihrer Nähe befinden, und manchmal sogar den Inhalt der Übertragungen anderer Personen lesen. Das Surfen im Internet über ein ungesichertes WLAN-Netzwerk kann daher unsicher sein: Ihre Kommunikation wird für jeden in Reichweite übertragen, um sie zu hören. Deshalb ist Verschlüsselung4 für die WLAN-Verbindungsschicht wichtig.

Seien Sie vorsichtig: Eine Netzwerkschnittstelle kann so konfiguriert werden, dass ihre Übertragungen mit jeder MAC-Adresse sowohl für den Empfänger als auch für den Sender beginnen. Nichts hindert einen böswilligen Akteur daran, sich als Sie auszugeben, indem er Ihre MAC-Adresse in seinen Übertragungen verwendet. Diese Art von Angriff wird als MAC-Spoofing bezeichnet. Als die Verbindungsschicht erfunden wurde, war Sicherheit kein Anliegen. Protokolle entwickeln sich weiter, um sicherer zu werden und solche Angriffe zu neutralisieren, aber es ist ein fortlaufender Prozess.

Frames

Manchmal muss eine Übertragung viele Daten enthalten, und das Senden einer einzigen, großen Nachricht ist unpraktisch. Netzwerkschnittstellen und Computer sind nicht alle in der Lage, dieselbe Übertragungsgeschwindigkeit zu erreichen. Was würde außerdem passieren, wenn mitten in der Übertragung eine Kollision aufträte? Die gesamte Übertragung müsste verworfen werden, da es für Sender und Empfänger schwierig wäre, genau festzustellen, welche Teile der Nachricht empfangen wurden und welche nicht.

Um diese Probleme zu lösen, werden lange Nachrichten immer in kleine Teile aufgeteilt, die jeweils als unabhängige Übertragung gesendet werden. Die Dauer zwischen den Übertragungen kann je nach den Fähigkeiten beider Computer variieren: Langsamere Geräte benötigen längere Pausen. Wenn ein Fehler auftritt, muss nur die kleine Übertragung verworfen und erneut gesendet werden, die fehlgeschlagen ist.

Abbildung 1.7 Ein Ethernet-Frame. Sobald es in einem Kupferkabel übertragen wird, wird es zu einer Reihe von elektrischen Signalen, die eine Zahl kodieren. Das Ethernet-Protokoll weist an, wie diese Zahl zu interpretieren ist. Beispielsweise kodieren die ersten 12 Hexadezimalziffern der Zahl die Ziel-MAC-Adresse.

Jede unabhängige Übertragung wird als Frame bezeichnet. Standard-WLAN-Protokolle begrenzen die Größe von Frames auf 2.346 Bytes. Vierunddreißig Bytes werden für MAC-Adressen und Fehlererkennungscodes benötigt. Daher kann ein WLAN-Frame letztendlich bis zu 2.312 Bytes an Daten transportieren, die als Nutzlast (Payload) bezeichnet werden.5 In drahtgebundenen Netzwerken beträgt die maximale Frame-Größe normalerweise 1.526 Bytes, mit Platz für eine 1.500-Byte-Nutzlast.

In seltenen Fällen stören Störungen im Medium eine Übertragung, und der Empfänger empfängt Signale, die nicht genau dieselben Informationen kodieren, die der Sender senden wollte. Sehen wir uns das spezielle Feld an, das hinzugefügt wurde, um dieses Problem zu beheben.

FCS — Der letzte Teil des Frames ist die FCS (Frame Check Sequence), die sicherstellt, dass die Informationen fehlerfrei übertragen wurden. Es fügt der Übertragung keine neuen Informationen hinzu: Es ist lediglich das Ergebnis einer Berechnung unter Verwendung des Inhalts aller anderen Felder. Das Ändern eines beliebigen Inhalts vor der FCS sollte dazu führen, dass sich auch die FCS-Nummer ändert.

Beim Empfang eines Frames berechnet ein Computer die erwartete FCS-Nummer aus den empfangenen Informationen und vergleicht sie mit der empfangenen FCS. Wenn sie nicht übereinstimmen, wird der Frame verworfen. Wenn sie übereinstimmen, wissen wir, dass die Nachricht nicht verfälscht wurde, und vertrauen darauf, dass die empfangene Nutzlast fehlerfrei ist.

TYPE — Der in Abbildung 1.7 gezeigte Frame hat ein letztes Feld, über das wir noch nicht gesprochen haben: den Nutzlast-Typ. Er teilt dem Empfänger mit, welche Regeln befolgt werden sollen, um die Daten in der Nutzlast des Frames zu interpretieren. Im nächsten Abschnitt werden wir die gängigsten dieser Regeln untersuchen.

1.2 Internet

Wir haben gesehen, dass die Verbindungsschicht es direkt verbundenen Computern ermöglicht, Nachrichten in Frames auszutauschen. Die Internetschicht, auch als Netzwerkschicht bekannt, legt fest, wie diese Nachrichten zwischen Computern übertragen werden, die nicht direkt verbunden sind.

Der Trick besteht darin, einige Computer, sogenannte Router, mit mehreren Netzwerkschnittstellen auszustatten. Alle Computer in einem Netzwerk sind dann mit mindestens einem Router verbunden, und alle Router sind mit mindestens einem anderen Router verbunden. Wenn ein Router eine Nachricht an einer seiner Netzwerkschnittstellen empfängt, kann er sie über eine andere Netzwerkschnittstelle an einen anderen Router weiterleiten.

LOKALE NETZWERKE (LANs) — Wir können einen Router, mit dem wir verbunden sind, bitten, eine Nachricht an einen Computer weiterzuleiten, mit dem wir nicht verbunden sind. Angenommen, Sie haben ein kabelgebundenes Netzwerk in Ihrem Haus, das einen Router und einen Desktop-Computer verbindet. Angenommen, der Router ist auch direkt mit einem Smartphone in einem anderen, drahtlosen Netzwerk verbunden.

Auch wenn der Desktop-Computer und das Smartphone nicht direkt mit demselben Netzwerk verbunden sind, können sie Nachrichten miteinander austauschen, indem sie den Router als Relais verwenden. Computer aus verschiedenen Netzwerken in unmittelbarer Nähe, die über Router miteinander sprechen können, bilden ein größeres Netzwerk, das als Local Area Network (LAN) bezeichnet wird.

In einem Haus oder kleinen Büro reicht ein Router aus, um alle Computernetzwerke in der Umgebung zu verbinden. Beim Aufbau eines LANs, das eine große Organisation wie eine Universität oder ein Krankenhaus abdeckt, können viele Router erforderlich sein, um alle verschiedenen Computernetzwerke zu einem vollständig verbundenen System zu verbinden.

Abbildung 1.8 In diesem kleinen LAN können Ada und Andrew Nachrichten über ihren Router Charles austauschen.

GROSSFLÄCHIGE NETZWERKE (WANs) — Aber warum hier aufhören? Wenn Ihr Router mit einem Router außerhalb Ihres Hauses verbunden ist, der wiederum mit einem Router an der Universität verbunden ist, können Sie bitten, dass Ihre Nachricht an Computer im LAN der Universität weitergeleitet wird. Wenn entfernte LANs miteinander verbunden werden, bilden sie ein Wide Area Network (WAN).

Abbildung 1.9 Charles ist mit einem entfernten Router, Marie, verbunden, und beide leiten Nachrichten in diesem WAN weiter.

Ein WAN kann größer werden, wenn weitere LANs damit verbunden werden. Verschiedene WANs können auch verbunden werden, um ein noch größeres WAN zu bilden. Das größte WAN der Welt ist eine Sammlung von Tausenden von interconnected networks, die wir das Internet nennen. Es ist das Netzwerk, das wir jeden Tag verwenden, um E-Mails zu senden und im Web zu surfen. Im Jahr 2019 enthielt dieses WAN über eine Milliarde Computer. Sehen wir uns an, wie sie alle verbunden wurden.

Interconnection

Der unkomplizierteste Weg, Ihren Router mit dem Internet zu verbinden, ist, dafür zu bezahlen. Einige Organisationen im Internet werden einen ihrer Router mit Ihrem verbinden und es Nachrichten von und zu Ihrem Netzwerk ermöglichen, über diesen Link durch ihr Netzwerk zu passieren. Dieser bezahlte Dienst wird Transit genannt, da alle Ihre Nachrichten durch ihr Netzwerk transiteren, bevor sie zu dem spezifischen Router gelangen, den Sie anstreben.

Das Transitieren durch ein Drittanbieternetzwerk ist jedoch nicht immer notwendig, um sich mit einem anderen Router des Internets zu verbinden. Wenn beispielsweise zwei benachbarte Universitäten viel kommunizieren, können sie ihre Router miteinander verbinden, damit Nachrichten direkt zwischen ihren Netzwerken fließen können. Dies kann Geld sparen, da diese Nachrichten andernfalls über eine bezahlte Verbindung transiteren müssten. Der freie Austausch von Nachrichten zwischen den Netzwerken verschiedener Organisationen wird Peering genannt.

Routing

Jeder Computer, der mit einem Router des Internets verbunden ist, kann darum bitten, dass seine Nachrichten von anderen Routern weitergeleitet werden. Nachrichten können über große Entfernungen geroutet werden. Zum Beispiel gibt es ein System von Seekabeln, das Router in vielen Küstenstädten verbindet

Abbildung 1.10 Das SAm-1-System verbindet Router in 16 Städten aus 11 verschiedenen Ländern über mehr als 15 Tausend Meilen Unterwasserkabel.

Es gibt keine direkte Verbindung zwischen den Routern in Miami und Buenos Aires. Miami ist jedoch mit Puerto Rico verbunden, das mit Fortaleza verbunden ist, das mit Rio de Janeiro verbunden ist, das mit Buenos Aires verbunden ist. Miami und Buenos Aires können Nachrichten über diese Kabel austauschen, wenn Router entlang des Weges die Nachrichten hin und her weiterleiten. Heute gibt es Seekabel, die Hunderte von Routern in Küstenstädten auf der ganzen Welt verbinden

Abbildung 1.11 Glasfaser-Seekabel derzeit in Betrieb.

Praktisch jede andere Stadt auf der Erde ist direkt oder indirekt mit diesen Küstenstädten verbunden, oft durch Kabel im Boden. Kommunikationssatelliten haben auch Router, um drahtlose Verbindungen zu abgelegenen Orten herzustellen. Alle Router können Nachrichten weiterleiten, sodass eine Nachricht, die Sie im Internet senden, zu jedem anderen Computer im Internet geroutet werden kann. Das heißt, wenn ein Pfad dorthin gefunden werden kann.

Standort-Adressierung

In der Verbindungsschicht werden Computer durch eine physische Adresse identifiziert. Physische Adressen identifizieren Computer eindeutig, geben aber keine Hinweise darauf, wo ein Computer verbunden ist und wie er erreicht werden kann. Wenn der Computer auf die andere Seite der Welt umzieht, behält er seine physische Adresse!

Angenommen, Sie haben ein Paket an Louis per Post geschickt, zusammen mit einem Bild von ihm anstelle seiner Adresse. Dieses Paket hat ein definiertes Ziel; ein internationaler Postdienst hätte jedoch keine Möglichkeit zu wissen, in welche Richtung das Paket gesendet werden sollte, um es an Louis zuzustellen.

Postämter müssen zuerst wissen, in welches Land das Paket gehen soll. Das erste Postamt in diesem Land sollte dann wissen, in welche Provinz oder welchen Bundesstaat es gehen soll. Das nächste Postamt sollte die Stadt kennen, und das letzte Postamt die Straßenadresse. Eine Adresse, die all diese Informationen enthält, wird als hierarchische Adresse bezeichnet. Wie bei Postämtern benötigen Router eine hierarchische Adresse des Standorts des Paketempfängers

Abbildung 1.12 Ada möchte Louis ein Paket schicken, also bittet sie ihren Router Charles, es weiterzuleiten. Sie schreibt eine hierarchische Adresse von Louis auf das Paket. Charles weiß dann, dass er das Paket nach Frankreich schicken muss, also sendet er es an den französischen Router, mit dem er verbunden ist: Marie.

Damit dieser Mechanismus auf globaler Ebene funktioniert, müssen alle beteiligten Computer dieselben Regeln befolgen, um Paketumleitungsanfragen zu erstellen und zu bearbeiten. Ein Computer in China muss eine Anfrage von einem Computer in Nigeria verstehen, auch wenn die beiden unterschiedliche Sprachen, Betriebssysteme und Hardware verwenden.

Abbildung 1.13 „Vor dem Internet“, mit freundlicher Genehmigung von http://xkcd.com.

Internet Protocol

Wir haben gesehen, dass ein Computer die Regeln der Medium Access Control befolgen muss, um eine Verbindung mit einem anderen Computer herzustellen. Ebenso muss er das Internet Protocol oder IP6 befolgen, um Router zu bitten, Nachrichten an andere Computer in Ihrem LAN oder im Internet weiterzuleiten.

Eine Nachrichtenweiterleitungsanfrage, die den IP-Regeln folgt, wird als IP-Paket bezeichnet. Das IP-Paket ist im Wesentlichen eine große Zahl, bei der Ziffern an bestimmten Positionen wichtige Informationen kodieren. Praktisch alle Computer verstehen IP-Pakete und sind in der Lage, sie weiterzuleiten. Dies macht ein IP-Paket leicht von einem Computer zum nächsten bewegbar, bis es sein Ziel erreicht.

Ein IP-Paket enthält die Standort-Adressen seines Senders und Empfängers, gefolgt von den gewünschten Daten. Um ein IP-Paket zu senden, senden wir einen Frame, bei dem die Nutzlast das IP-Paket ist und der Frame-Typ 86DD lautet. Wenn ein Router einen Frame dieses Typs empfängt, wird das IP-Paket in einem anderen Frame an den nächsten Computer im Pfad zum Ziel des Pakets weitergeleitet.

Abbildung 1.14 Ada sendet einen Ethernet-Frame an ihren Router Charles, der ein IP-Paket für Louis enthält. Der Ethernet-Frame enthält daher die physische Adresse von Charles und das Paket enthält die Standort-Adresse von Louis. Charles wird das Paket dann in einem neuen Frame von ihm weiterleiten, der die physische Adresse von jemandem in Frankreich enthält.

Damit IP-Pakete überall weitergeleitet werden können, müssen sich alle auf einen Standard für die Standortadressierung einigen. Wir haben gesehen, wie physische Adressen von Herstellern gemäß den Regeln der Medium Access Control zugewiesen werden. Lassen Sie uns nun lernen, wie das Internet Protocol dies für Standort-Adressen tut. Wir werden dann sehen, wie das Internet Protocol Routing-Regeln basierend auf diesen Adressen definiert.

1.3 IP-Adressierung

Das Internet Protocol legt die Regeln fest, wie Standort-Adressen funktionieren – deshalb werden sie IP-Adressen genannt. Computer können IP-Pakete erst senden oder empfangen, nachdem sie eine IP-Adresse erhalten haben. Die Erlaubnis zur Verwendung einer Gruppe von IP-Adressen wird zunächst einer Organisation erteilt. Diese Adressen werden dann Computern zugewiesen, die direkt oder indirekt mit der Organisation verbunden sind.

Um zu erklären, wie dieser Prozess funktioniert, definieren wir, was IP-Adressen sind und wie sie geschrieben werden.7 Eine IP-Adresse ist eine 128 Bit lange Zahl.8 Sie werden typischerweise in Hexadezimalform geschrieben, wobei Doppelpunkte acht Gruppen von vier Ziffern trennen. Dies ist die IP-Adresse eines Facebook-Servers

2a03:2880:f003:0c07:face:b00c:0000:0002

IP-Adressen können verkürzt werden, indem die führenden Nullen eines vierstelligen Blocks weggelassen werden

2a03:2880:f003:c07:face:b00c::2

Wie bei einer Postanschrift mit Land, Stadt und Straße sind IP-Adressen hierarchisch aufgebaut, damit Routing möglich ist. Während der weiteste Teil einer Postanschrift das Land ist, ist der weiteste Teil einer IP-Adresse das Routing-Präfix (2a03:2880).

Das Präfix erscheint als die ersten Ziffern einer IP-Adresse. Sobald einer Organisation ein solches Präfix gewährt wird, hat sie das Recht, jede IP-Adresse, die mit diesem Präfix beginnt, ihren Computern zuzuweisen. Das Präfix hat eine variable Länge: Organisationen, die mehr Computer zu verwalten haben, erhalten kürzere Präfixe. Einige Organisationen erhalten sogar mehrere Präfixe.

Zum Beispiel wissen wir, dass alle Adressen, die mit 2a03:2880 beginnen, Computern im Netzwerk von Facebook zugewiesen sind. Diejenigen, die mit 2c0f:fb50:4002 beginnen, befinden sich im Netzwerk von Google in Kenia. Für sein Rechenzentrum in Singapur erhielt Google das Präfix 2404:6800.

Für Routing-Zwecke werden die LANs und WANs, die dasselbe Präfix teilen, in kleinen Netzwerken organisiert, die als Subnetze bezeichnet werden. Die Ziffern nach dem Routing-Präfix und bis zur Mitte einer IP-Adresse geben an, in welchem Subnetz (f003:c07) ein Computer gefunden werden kann.

2a03:2880:f003:c07:face:b00c::2

Das bedeutet, dass es bei Facebook ein Netzwerk gibt, in dem alle Computer IP-Adressen haben, die mit 2a03:2880:f003:c07 beginnen. Zusammen bilden das Routing-Präfix und das Subnetz die Netzwerk-ID (2a03:2880:f003:c07) einer IP-Adresse. Die Netzwerk-ID ist immer 16 Ziffern lang (einschließlich weggelassener Nullen). Das bedeutet, dass eine Organisation mit einem längeren Routing-Präfix weniger Subnetze darin haben kann.

Schließlich werden die nächsten 16 Ziffern einer IP-Adresse als Interface-ID (face:b00c::2) bezeichnet, da sie eine bestimmte Netzwerkschnittstelle innerhalb eines Subnetzes identifizieren. Viele Netzwerkadministratoren füllen diesen Teil der IP-Adresse einfach mit der MAC-Adresse des Geräts aus. Diese Ziffern können eine beliebige Zahl sein, solange sie nur einmal pro Subnetz verwendet wird.

Damit dieses Adressierungssystem universell funktioniert, muss es einen Mechanismus geben, der sicherstellt, dass nicht zwei Organisationen dasselbe Routing-Präfix verwenden. Wie bei MAC-Adressen lösten Ingenieure dies durch eine internationale Koordination.

Abbildung 1.15 Fragen Sie Ihre Chefin nicht, wo sie wohnt!

IANA

Ingenieure weltweit einigten sich darauf, dass eine amerikanische gemeinnützige Organisation, die Internet Assigned Numbers Authority (IANA), entscheidet, wer die Kontrolle über welche IP-Routing-Präfixe erhält. In der Praxis delegiert die IANA den größten Teil ihrer Macht an fünf gemeinnützige Organisationen, die als Regional Internet Registries oder RIRs bezeichnet werden. Dazu teilt sie jedem RIR kurze Hexadezimal-Kombinationen zu, die sie als erste Ziffern der von ihnen zugewiesenen Routing-Präfixe verwenden können.

Abbildung 1.16 Beispiele für Zuweisungen an jeden RIR.
Abbildung 1.17 IANA delegiert ihre IP-Adressierungsbefugnis geografisch: Jeder RIR ist für eine andere Region verantwortlich.

Um ein Routing-Präfix für Ihre Organisation zu erhalten, müssen Sie eine Anfrage an den RIR der Region stellen, in der sich Ihre Router befinden werden. Dieser RIR wird Ihnen dann ein Präfix zuweisen, das mit einer ihrer Hexadezimal-Kombinationen beginnt, die IANA ihnen zugewiesen hat.

Zum Beispiel erhielt Facebook, dessen Hauptsitz sich in Irland befindet, sein Routing-Präfix von RIPE NCC. Ebenso hat die Schweizer Bank Credit Suisse eine lateinamerikanische Niederlassung, die von LACNIC ein Routing-Präfix erhielt

Abbildung 1.18 IP-Adresszuweisungskette für zwei Unternehmen.

Das bedeutet, dass Computern in den lateinamerikanischen Credit Suisse-Niederlassungen IP-Adressen wie folgt zugewiesen werden können

2801:80:1380: ■ ■ ■ ■ :____:____:____:____

Netzwerkadministratoren in der Bank weisen jedem ihrer Subnetze eine eindeutige Kombination von Hexadezimalziffern zu, die in den verbleibenden Platz des Netzwerkteils passen . Da jede Hexadezimalziffer 16 verschiedene Werte haben kann, hat die Bank Platz für 164 = 65.536 verschiedene Subnetze. Facebook, als größere Organisation, erhielt ein Präfix mit Platz für über 4 Milliarden Subnetze!

Wir haben gesehen, dass Netzwerkadministratoren wählen können, wie die sechzehn Leerstellen der Interface-ID für einzelne Geräte ausgefüllt werden sollen. Solche Geräte können dann IP-Pakete an das und vom Internet senden und empfangen, solange ihr Router Konnektivität hat.

Internet Service Provider

Die meisten Einzelpersonen und kleinen Organisationen haben keinen direkten Kontakt zu RIRs und unterhalten auch keine Peering-Links zu anderen Computernetzwerken. Stattdessen kaufen sie Internetkonnektivität von spezialisierten Unternehmen, die als Internet Service Providers (ISP) bezeichnet werden. ISPs installieren Router in der Nähe ihrer Kunden. Auf diese Weise können sie einen ihrer Router einfach mit einem Router in den Räumlichkeiten eines Kunden verbinden. Sie weisen auch jedem ihrer Kunden ein Routing-Präfix zu.

Sehen wir uns an, wie es in der Praxis funktioniert. Im Vereinigten Königreich erhielt ein ISP namens Sky das Routing-Präfix 2a02:0c7f. Sky ist in vielen britischen Städten tätig, daher ist das Präfix auf ihre regionalen Basen aufgeteilt. Zum Beispiel weisen sie 2a02:c7f:48 ihrer Milton Keynes-Netzwerkbasis und 2a02:c7f:7e der in Romford zu.9

Nehmen wir an, Ada lebt in Romford und möchte ein Netzwerk in ihrem Haus einrichten. Sie hat einen Desktop-Computer und einen Drucker, die sie über ein Ethernet-Kabel verbinden möchte. Sie möchte auch ihr eigenes WLAN-Netzwerk, um ihr Smartphone, Tablet und Laptop zu verbinden.

Ada beauftragt Sky, und sie verbinden ihren Romford-Router mit einem Router in ihrem Haus. Sky weist Adas Router ein 14-stelliges Routing-Präfix zu, das auf dem ihrer Romford-Basis basiert. Jedem Netzwerk in Adas Haus (kabelgebunden und drahtlos) wird ein Subnetz zugewiesen, basierend auf dem Routing-Präfix, das Sky Ada zugewiesen hat. Abbildung 1.19 auf der nächsten Seite zeigt den vollständigen IP-Adresszuweisungspfad von der IANA zu jedem von Adas Geräten.

Adas Router empfängt IP-Pakete von verschiedenen Computern, dennoch ist es für ihren Router einfach zu entscheiden, über welchen Link er jedes empfangene Paket weiterleiten soll. Pakete, die an einen Computer in einem von Adas Subnetzen adressiert sind, können direkt zugestellt werden. Alle anderen empfangenen IP-Pakete werden über den Link zum ISP weitergeleitet.

Abbildung 1.19 IP-Adresszuweisungen von IANA zu Adas Geräten. Ihr Router verwendet unterschiedliche Subnetze für ihre drahtlosen und kabelgebundenen Netzwerke und hat daher für jedes eine andere IP-Adresse.

Für Router, die nicht auf einen ISP angewiesen sind, ist es nicht so einfach: Sie erhalten Konnektivität von Links mit mehreren Routern aus mehreren Computernetzwerken. Aber wie entscheiden sie, über welchen Link sie ein IP-Paket weiterleiten sollen? Und wie können sie sicher sein, dass sie es an einen Router weiterleiten, der näher am Endziel liegt?

1.4 IP-Routing

Angenommen, Ada möchte von ihrem Laptop aus eine Nachricht an Facebook senden. Sie verwendet das Internet Protocol, also erstellt sie zunächst ein IP-Paket, das ihre eigene IP-Adresse, die IP-Adresse von Facebook und ihre Nachricht als Nutzlast enthält. Dann sendet sie das Paket in einem WLAN-Frame von ihrem Laptop an ihren Heimrouter

Abbildung 1.20 Ein über WLAN übertragenes IP-Paket.10

Mehrere Router, beginnend mit dem bei Ada zu Hause, leiten das Paket weiter, bis es Facebook erreicht. Unterwegs muss jeder dieser Router auswählen, in welche Richtung das Paket "hüpfen" soll, um den nächsten Router zu erreichen. Der letzte Router lässt das Paket dann zu seinem endgültigen Zielcomputer "hüpfen".

Tabellen von Adressen

Router wählen den nächsten Hop eines Pakets basierend auf seiner Ziel-IP-Adresse. Dazu sind sie mit einer Tabelle ausgestattet, die mit Adressen gefüllt ist. Zeilen listen mögliche IP-Adressen auf, die der Router erkennen soll. Für jede Adresse gibt die Tabelle an, welcher Computer der nächste Hop eines für diese Adresse bestimmten Pakets sein soll. Jeder Router hat eine eindeutige Tabelle, die widerspiegelt, wie der Router verbunden ist. Zum Beispiel ist Adas Router so verbunden

Abbildung 1.21 Adas Router ist über Ethernet mit einem Desktop-Computer und einem Drucker, über WLAN mit einem Notebook und einem Smartphone sowie über DSL (oder Digital Subscriber Line, eine Technologie, die den Fluss digitaler Daten durch alte Telefonkabel ermöglicht) mit dem ISP verbunden.

Abbildung 1.22 Tabelle, die Adas Router anleitet, IP-Pakete korrekt an die in Abbildung 1.21 gezeigten Computer weiterzuleiten.

Wenn der Router ein Paket empfängt, dessen Ziel-IP-Adresse mit keiner Zeile in der Tabelle übereinstimmt, wird das Paket über die Standardroute weitergeleitet. Für Adas Router ist das Routing einfach: Ein Paket wird entweder direkt an einen Computer in ihrem Haus zugestellt oder an Sky Romford, ihren ISP, weitergeleitet.

Das Routing ist für den Router des ISP komplizierter. Zusätzlich zu seinen Peering- und Transit-Links empfängt er Pakete von vielen verschiedenen Kunden. Der Einfachheit halber nehmen wir an, dass der Router von Sky Romford nur zwei Kunden bedient und zwei Peering-Links hat: einen zum Sky-Router in Milton Keynes und den anderen zur Oxford University. Schließlich stellen wir uns vor, er hat einen Transit-Link zu einem größeren Telekommunikationsunternehmen

Abbildung 1.23 Karte der Sky Romford-Links. Ada, Charles und die Oxford University können nur über die lokale Infrastruktur von Sky sprechen.
Abbildung 1.24 Tabelle, die den Router von Sky Romford anleitet, IP-Pakete korrekt an die in Abbildung 1.23 gezeigten Netzwerke weiterzuleiten.

Hier ist die IP-Adresshierarchie nützlich. In der Weiterleitungstabelle von Abb. 1.24 werden IP-Adressen gemäß ihrem Routing-Präfix gruppiert. Dies funktioniert, weil alle IP-Adressen, die mit 2a0a:207 beginnen, von Computern an der Oxford University stammen und alle IP-Adressen, die mit 2a02:c7f:48 beginnen, von Computern stammen, die von Sky in Milton Keynes bedient werden.

Internet Exchange Points

Um Kapazität und Geschwindigkeit zu erhöhen, richten Netzwerkadministratoren oft Peering-Links mit so vielen anderen Organisationen wie möglich ein. Der billigste Weg, dies zu tun, ist über Orte, die als Internet Exchange Points oder IXPs bezeichnet werden. Organisationen treten einem IXP bei, indem sie ihre Router mit dem IXP-Gebäude verkabeln. Jede teilnehmende Organisation kann dann individuelle Peering-Links mit anderen Organisationen herstellen, die mit dem Gebäude verbunden sind.11

In Abb. 1.23 wurden der Einfachheit halber nur zwei Peering-Links gezeigt. Ein typischer ISP hat tatsächlich Dutzende von Peering-Links pro IXP, mit dem er verkabelt ist. Darüber hinaus ist es in Großstädten üblich, dass Internetunternehmen wie Netflix und Google Peering-Links direkt mit ISPs herstellen, was ihnen kürzere und schnellere Verbindungen zu vielen ihrer Kunden ermöglicht.

Internet Backbone

ISPs und andere Telekommunikationsunternehmen erweitern ihre Zusammenschlüsse typischerweise so weit wie möglich, indem sie Peering-Links einrichten, wo immer sie können. Um jedoch Netzwerke zu erreichen, mit denen sie kein Peering betreiben können, müssen sie Transit von anderen Betreibern kaufen.

Es gibt eine Handvoll Unternehmen auf der Welt, die niemanden für Transit bezahlen. Diese Unternehmen betreiben riesige Netzwerke, die alle untereinander Peering betreiben, wodurch regionale ISPs global verbunden werden können. Diese riesigen Netzwerke werden Tier-1-Netzwerke genannt und bilden das Rückgrat des Internets. Einige Tier-1-Netzwerke werden von AT&T, Verizon und Lumen betrieben.12

Dynamisches Routing

Große Telekommunikationsunternehmen müssen die Konnektivität aufrechterhalten, auch wenn einige ihrer Transit- oder Peering-Links ausfallen. Das bedeutet, dass sie sich nicht auf einen einzigen Link für jedes Routing-Präfix in ihrer Adresstabelle verlassen können. Tatsächlich verfügen sie über dynamische Router, die abbilden, wie andere Netzwerke miteinander verbunden sind, um zu entscheiden, welche Routen in ihren Tabellen priorisiert werden sollen.

Dynamische Router tauschen regelmäßig Informationen mit anderen dynamischen Routern aus, mit denen sie verbunden sind. Sie teilen einander mit, welche Netzwerkpräfixe über jeden ihrer Links erreichbar sind. Dies ermöglicht es ihnen, zu bestimmen, wie viele Hops jeder Link von jedem Routing-Präfix entfernt ist und wo diese Hops auftreten. Dynamische Router können dann die beste Route zu jedem Präfix basierend auf Metriken wie Entfernung und Geschwindigkeit bestimmen.13

Mit diesen Informationen erstellen dynamische Router eine Tabelle, die alle Routing-Präfixe abdeckt. Für jedes Präfix gibt die Tabelle an, welcher nächste Hop auf der besten Route zum endgültigen Ziel liegt. Wenn ein Link eingerichtet wird oder ein Link ausfällt, informieren dynamische Router ihre Peers. Wenn sich die Nachricht verbreitet, aktualisieren sie alle ihre Tabellen, um Pakete weiterhin zu den besten Routen weiterzuleiten.

Es gibt keine zentrale Entität, die den Austausch dieser Informationen koordiniert: Router teilen Linkdetails freiwillig mit ihren Peers. Folglich treten häufig Routing-Probleme auf.

Routing Loop

Falsch konfigurierte Router können Fehler verursachen. Insbesondere fehlerhafte Adresstabellen können ein Paket zurück schicken, und es gerät in einen endlosen Zyklus des Untergangs

Abbildung 1.25 Fehlerhafte Tabellen schicken ein Paket im Kreis.

Wenn die Tabellen nicht korrigiert werden, werden weitere Pakete mit demselben beabsichtigten Ziel endlos im Kreis weitergeleitet. Zu viele Pakete können sogar die Links sättigen und verstopfen. Dies wird als Routing-Loop-Problem bezeichnet. Glücklicherweise bietet das Internet Protocol eine Möglichkeit, das Problem zu identifizieren, wenn es auftritt.

HOP-LIMIT — Um unendliche Routing-Loops zu unterbrechen, führen alle IP-Pakete ein Hop-Limit zwischen 0 und 255 mit sich. Es gibt die Anzahl der Male an, die das Paket von Routern weitergeleitet werden kann. Typischerweise werden Pakete mit einem Hop-Limit von 64 erstellt. Immer wenn ein Router ein Paket weiterleitet, reduziert er das Hop-Limit um eins

Abbildung 1.26 Das Hop-Limit eines Pakets ist das einzige Element eines IP-Pakets, das Router beim Weiterleiten ändern.

Wenn ein Paket im Kreis herumläuft, erreicht sein Hop-Limit schließlich null. Wenn ein Router ein IP-Paket mit einem Hop-Limit von null empfängt, kann es verworfen werden. Ein IP-Paket, das eine Fehlermeldung enthält, sollte dann vom letzten Router an den Sender zurückgesendet werden, in dem steht, dass das Paket nicht zugestellt werden konnte, weil sein Hop-Limit erreicht wurde.

Feedback durch solche Fehlermeldungen hilft Netzwerkadministratoren, kritische Fehler zu beheben, und Routing-Loops sind nicht die einzigen. Tatsächlich deckt das Internet Protocol ab, wie mit einer Vielzahl von Routing-Problemen umgegangen werden soll.

Diagnose

Router verwerfen IP-Pakete, die sie nicht verarbeiten können. Wenn dies geschieht, senden sie eine informierende Nachricht über den Vorfall an den Absender des Pakets. Das Internet Protocol definiert, wie Router solche Nachrichten formatieren müssen, um sicherzustellen, dass sie von jedem Computer verstanden werden können. Diese Regeln sind eine Untergruppe des Internet Protocols, die als Internet Control Message Protocol (ICMP) bezeichnet wird.

ICMP weist den häufigsten Routing-Problemen Fehlercodes zu. Um ein Problem zu melden, sendet ein Router ein IP-Paket, das den Fehlercode als Nachrichtentext enthält, formatiert nach ICMP-Regeln. Sehen wir uns einige gängige Probleme an, die mithilfe von ICMP gemeldet werden können, beginnend mit dem Routing-Loop-Problem.

TIME EXCEEDED — Wenn ein Router ein IP-Paket mit einem Hop-Limit von null empfängt, ist seine Reisezeit abgelaufen. Das Paket ist entweder in einer Routing-Loop stecken geblieben, oder dem Absender wurde ein unzureichendes Hop-Limit gewährt.

In solchen Fällen wird eine ICMP-Nachricht mit dem Fehlercode time exceeded zurückgesendet. Die ICMP-Nachricht enthält die ersten Bytes des verworfenen Pakets, damit der ursprüngliche Sender weiß, welches Paket sein Ziel nicht erreicht hat.

Abbildung 1.27 Sobald ein Router ein Paket mit einem Hop-Limit von null empfängt, wird es verworfen und eine ICMP-Fehlermeldung an den Absender des Pakets gesendet.

Beachten Sie, dass das IP-Paket, das Charles in Abb. 1.27 zurücksendet, ein Protokollfeld enthält. Es ist eine zweistellige Hexadezimalzahl, die identifiziert, wie die Nutzlast des Pakets interpretiert werden soll. Der neuesten Version von ICMP wurde die Protokollnummer 0x3A zugewiesen. Alle IP-Pakete müssen eine Protokollnummer enthalten. Im nächsten Abschnitt werden wir mehr darüber erfahren. Für den Moment, lassen Sie uns andere gängige Routing-Probleme untersuchen.

DESTINATION UNREACHABLE — Manchmal weiß ein Router nicht, wohin er ein Paket senden soll. Dies kann aus vielen verschiedenen Gründen geschehen, zum Beispiel wenn die IP-Adresse nicht in der Adresstabelle des Routers enthalten ist und die Tabelle keinen Standard-nächsten Hop vorschlägt. Manchmal ist der nächste Hop zufällig offline.

Wenn der Router nicht weiß, wohin er das Paket weiterleiten soll, gibt er eine ICMP-Nachricht mit dem Fehlercode destination unreachable zurück, zusammen mit den ersten Bytes des Inhalts des verworfenen Pakets.

PACKET TOO BIG — Wir haben gesehen, dass Link-Layer-Protokolle die Datenmenge begrenzen, die in einem einzigen Frame gesendet werden kann. Frames von verschiedenen Arten von Netzwerk-Links können Nutzlasten unterschiedlicher Größe transportieren.

Die maximale Anzahl von Nutzlast-Bytes, die in einem einzigen Frame transportiert werden kann, wird als Maximum Transmission Unit (MTU) bezeichnet. Verschiedene Link-Layer-Protokolle haben unterschiedliche MTU-Werte. Für Ethernet-Frames beträgt die MTU 1.500. Für WLAN-Frames beträgt sie 2.305.

Wenn ein Router ein Paket empfängt, das größer ist, als es der nächste Hop verarbeiten kann, kann es nicht so weitergeleitet werden, wie es ist. Stattdessen gibt der Router eine ICMP-Nachricht mit dem Fehlercode packet too big zurück, den ersten Bytes des problematischen Pakets und der MTU des nächsten Hops. Der informierte Sender kann dann die ursprüngliche Nachricht trimmen oder in kleinere Pakete aufteilen, bevor er es erneut versucht.

Abbildung 1.28 „MTU“, mit freundlicher Genehmigung von Daniel Stori (http://turnoff.us).

PARAMETER PROBLEM — Ein IP-Paket enthält viele zusätzliche Informationen neben seiner Nutzlast. Wir haben gesehen, dass es IP-Adressen, ein Hop-Limit und eine Protokollnummer enthält. Es enthält auch ein Feld, das die Größe der Nutzlast angibt, und ein weiteres, das die Version des Internet Protocols spezifiziert, die es respektiert. Zusätzliche Felder sind ebenfalls vorhanden, um Routern zu helfen, wichtige Pakete zu priorisieren.

Alle diese Felder müssen nach strengen Regeln geordnet und formatiert werden. Wenn ein Router ein Paket empfängt, das nicht dem Protokoll entspricht, gibt er eine ICMP-Nachricht mit dem Fehlercode parameter problem und dem Speicherort im Paket zurück, an dem der Konflikt gefunden wurde. Wie üblich enthält die ICMP-Nachricht auch einige Bytes des verworfenen Pakets zur Identifizierung.

INFORMATIONSNACHRICHTEN — Fehlerberichte sind nicht die einzigen Nachrichten, die ICMP definiert, um fehlerhafte Computernetzwerke zu inspizieren und zu diagnostizieren. Insbesondere das Informationsnachrichtenpaar echo request und echo reply wird häufig verwendet. Wenn ein Computer eine ICMP-Echoanforderung empfängt, sendet er ein Paket zurück, das eine ICMP-Echoantwort enthält.

Dies ist nützlich, um zu testen, ob ein Computer online ist. Es gibt ein Programm namens ping, das eine ICMP-Echoanforderungsnachricht sendet und misst, wie lange es dauert, bis die Antwort bei Ihnen eintrifft.14 Darüber hinaus können Sie durch Senden von ICMP-Echoanforderungen mit unterschiedlichen anfänglichen Hop-Limits die Route verfolgen, die Pakete nehmen, um ihr Ziel zu erreichen.15


Wir haben gesehen, dass Computer im Internet Informationen – wie ICMP-Nachrichten – in IP-Paket-Nutzlasten austauschen können. Die wahre Stärke des Internets entfaltet sich jedoch, wenn Anwendungen, nicht Computer, beginnen, IP-Paket-Nutzlasten zu verwenden, um sich gegenseitig Daten zu senden. Dies erfordert, dass zusätzliche Informationen in die IP-Pakete aufgenommen werden, damit ein Computer mehrere Datenströme für die verschiedenen Anwendungen, die er ausführt, verarbeiten kann. Diese zusätzlichen Informationen werden durch die Transportschicht beschrieben, zu der die berühmten TCP- und UDP-Protokolle gehören.

Um mehr über diese Protokolle zu erfahren, sehen Sie sich unser Buch Computer Science Unleashed an. Das Buch lehrt Sie auch, wie berühmte Internetanwendungen wie E-Mail und das Web funktionieren. Und es erklärt, wie DNS und Domainnamen unter der Haube funktionieren! Das Verständnis dieser Technologien ist unerlässlich, um ein vielseitiger Webentwickler zu sein. Neben dem Internet behandelt Computer Science Unleashed auch drei weitere bahnbrechende Technologien: Datenanalyse, maschinelles Lernen und Kryptographie. Und es enthält auch ein Bonuskapitel, das erklärt, wie man reguläre Ausdrücke verwendet!

Schauen Sie sich das Buch an!


1  Im täglichen Leben drücken wir Zahlen fast immer in Dezimalform aus, wobei jede Ziffer eines von zehn Zeichen ist: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Informatiker hingegen drücken Zahlen gerne in Hexadezimalform aus, wobei jede Ziffer eines von sechzehn Zeichen sein kann: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. Weitere Informationen zu Zahlensystemen finden Sie in Anhang I.

2  Sie können nachsehen, wer ein Gerät hergestellt hat, indem Sie die ersten sechs Ziffern seiner MAC-Adresse unter http://code.energy/mac-lookup eingeben.

3  National Security Agency, eine Spionageorganisation der US-Regierung.

4   Verschlüsselung lässt Nachrichten für Lauscher verfälscht aussehen.

5   Wenn wir ein Byte pro Zeichen kodieren, hat ein WLAN-Frame Platz für etwa 500 Wörter, genug, um eine Seite Text zu füllen.

6  Mit „IP“ meinen wir die neueste Version, IPv6. Eine ältere Version des Protokolls, IPv4, wird immer noch verwendet, obwohl sie 1981 veröffentlicht wurde. IPv4 kann nur etwa 3 Milliarden Computer unterstützen. IPv6, das 2012 eingeführt wurde, kann eine praktisch unbegrenzte Anzahl von Computern unterstützen. Stand 2020 verwendet ein Drittel der Computer im Internet IPv6.

7  Wir stellen IP-Adressen vor, wie sie in der neuesten Version von IP definiert sind. Ältere IPv4-Adressen werden immer noch verwendet. Sie werden als vier Gruppen von bis zu dreistelligen Dezimalzahlen geschrieben, getrennt durch Punkte, zum Beispiel 192.168.0.1.

8  Es werden 128 Nullen und Einsen benötigt, um die Zahl zu schreiben. Das bedeutet, es ist eine Zahl zwischen 0 und 340.282.366.920.938.463.463.374.607.431.768.211.456.

9  Diese Informationen sind öffentlich, Sie können den Netzwerkstandort jedes Routing-Präfixes nachschlagen. Diese Praxis wird IP-Geolokalisierung genannt und ist die Art und Weise, wie Websites das Land und die Stadt erraten, aus der Sie surfen.

10  Wir haben die Felder des WLAN-Frames aufgenommen, die auch in Ethernet-Frames existieren. Ein WLAN-Frame hat mehr Felder, die der Einfachheit halber ausgeblendet wurden.

11  IXPs sind äußerst wichtig, um das Internet gut vernetzt und billig zu machen. Dieses Video erklärt warum: http://code.energy/IXP.

12  Um eine Vorstellung davon zu bekommen, wie kolossal diese Netzwerke sind: Lumen allein verwaltet und betreibt 750.000 Meilen Glasfaserkabel. Das ist mehr als genug Kabel, um den Mond zu erreichen, dreimal!

13   Alle fünf RIRs legen ständig Informationen über alle Routing-Präfixe offen, die sie delegieren. Dynamische Router verfolgen diese Ankündigungen genau, um sicherzustellen, dass ihre Tabellen eine Zeile für jedes existierende Routing-Präfix haben.

14  Sie können ICMP-Pakete hier senden: http://code.energy/ping.

15  Eine Erklärung, wie ICMP verwendet wird, um die Routen zu verfolgen, die IP-Pakete zurücklegen, finden Sie unter http://code.energy/traceroute.