Netzwerk-Know-how (tecCHANNEL COMPACT) Kapitel 5: Internet-Protokoll

Veröffentlicht: 22. Jun 2005

Von PROF. DR. STEPHAN EULER

Der Erfolg des Internets zeigt, dass eine weltweite Vernetzung unterschiedlichster Rechner und Systeme möglich ist und damit funktionierende Anwendungen angeboten werden können. Das Internet ist kein einheitliches Netz, sondern ein Verbund vieler Netze mit unterschiedlicher Technologie. Insgesamt entstand ein riesiger Verbund von Knoten mit weiterhin starkem Wachstum [1]. Bei dem Aufbau des bisherigen Netzes und seinem weiteren Ausbau sind das Kernproblem:

  • Heterogenität: Wie können die verschiedensten Netze einwandfrei zusammen funktionieren?
  • Adressierung: Wie werden eindeutige und aussagefähige Adressen vergeben?
  • Routing: Wie findet eine Nachricht den Weg durch das Netz?
  • Skalierbarkeit: Wie kann das Netz das noch zu erwartende starke Wachstum aufnehmen?

Auf dieser Seite

In diesem Beitrag

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Adressen

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Paketformat

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Weiterleitung

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Zuordnung IP-Adresse zu Ethernet-Adresse

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Internet Control Message Protocol

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Routing - eine kurze Einleitung

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Distanzvektor-Routing

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Interdomain-Routing

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Domain Name System DNS

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Internet-Standards

Dn151201.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Literatur

Grundlage des Internets ist IP - das Internet Protokoll. IP beinhaltet die Adressvergabe und einen verbindungslosen, unzuverlässigen Datagramm-Dienst. Im OSI-Modell stellt IP die Schicht 3 (Vermittlungsschicht) dar. Unzuverlässig bedeutet, dass keine Garantie bezüglich der richtigen Zustellung von Paketen gegeben wird. Pakete können verfälscht eintreffen, verloren gehen und mehrfach oder in der falschen Reihenfolge ankommen. Das Netzwerk bemüht sich, die Pakete zuzustellen, aber um eventuelle Fehler müssen sich Sender und Empfänger selbst kümmern. Man sagt, das Netz arbeitet nach dem Prinzip Best-Effort.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).png Zum Seitenanfang

Adressen

Eine IP-Adresse (in Version 4, IPv4) besteht aus 32 Bit. Üblicherweise schreibt man die Adressen als vier durch Punkte getrennte Dezimalzahlen, also zum Beispiel 120.56.222.94, wobei jede Zahl acht Bit repräsentiert. Sie kann damit maximal den Wert 255 annehmen. Insgesamt sind 232 verschiedene Adressen zwischen 0.0.0.0 und 255.255.255.255 möglich.

Im Gegensatz zu den Ethernet-Adressen sind die IP-Adressen hierarchisch aufgebaut. Ethernet-Adressen sind nur hierarchisch bezüglich des Herstellers der Netzwerkkarte - eine Information, die allerdings beim Routing nicht hilft. Der erste Teil der IP-Adresse bezeichnet ein Netzwerk und der zweite Teil einen Knoten. Dadurch vereinfacht sich das Routing, da zunächst nur die Netzwerkadresse ausgewertet werden muss.

Netzwerke sind unterschiedlich groß. Beispielsweise haben Firmen verschieden große Netze. So unterscheidet sich der Bedarf eines weltweiten Großkonzerns sehr von dem einer kleinen Software-Firma. Deshalb wurde ein flexibles Schema mit mehreren Klassen eingeführt. Die Position der ersten Null in der Adresse legt die Klasse fest. Ist das erste Bit Null (das heißt in der Hälfte der Fälle), so handelt es sich um eine Adresse der Klasse A. In diesem Fall sind die nächsten sieben Bit die Netzwerkadresse, und die restlichen 24 Bit bezeichnen den Knoten. Berücksichtigt man noch zwei Sonderfälle, verbleiben 126 Adressen für Netze der Klasse A. Diese 126 Netze belegen bereits die Hälfte aller zur Verfügung stehenden Adressen. In Tabelle 1 ist die Zuordnung der Bits zu den Feldern für die verschiedenen Klassen zusammengestellt.

Tabelle 6.1: Aufbau der IP-Adressen in verschiedenen Klassen

Dn151201.C55770AF79D777DE1F51E5FA6176D36B(de-de,TechNet.10).png

Betrachten wir als Beispiel die Adresse 212.201.24.18. Das erste Byte hat den Dezimalwert 212. Die Umwandlung in die Darstellung als Binärzahl ergibt 1101 0100. Die erste Null ist an der dritten Stelle von links. Es handelt sich also um eine Adresse aus der Klasse C.

Die Grundidee bei der Festlegung der Klassen war, dass es nur wenige sehr große Netze mit vielen Knoten, aber sehr viele kleine Netze mit wenigen Knoten gibt. Die j eweilige Anzahl der Netze und darin enthaltenen Knoten finden Sie in Tabelle 6.2. Dabei ist berücksichtigt, dass einige Adressen besondere Bedeutung haben. Solche mit dem Wert 0 beziehen sich auf das eigene Netz oder den eigenen Knoten. Sind andererseits alle Bits im Knotennamen gesetzt, so handelt es sich um eine Broadcast-Nachricht. Die Adresse 127 in der Klasse A wird für Tests benutzt, bei denen ein Knoten sein gesendetes Paket zurückerhält (Loop-Back).

Dn151201.752B09E3F4F86EE88DECBB11A5D69E32(de-de,TechNet.10).png

Die Netznummern werden vom Network Information Center (NIC) beziehungsweise jetzt durch die Internet Assigned Numbers Authority (IANA, www.iana. org/) verwaltet. In der Praxis hat sich die Einteilung als nicht optimal erwiesen. Es gibt einerseits zu wenige Netze der Klasse B für große Firmen oder Institutionen. Andererseits ist die Klasse B für die meisten Firmen überdimensioniert, während die Klasse C zu klein ist oder zumindest zu wenig Reserven hat. Eine Lösung, die die starre Einteilung überwindet, ist Classless InterDomain Routing (CIDR). Wie der Name zeigt, ersetzt CIDR die feste Klasseneinteilung durch eine flexible Aufteilung der Bits zwischen Netzkennung und Knotennummer. Gleichzeitig wurden die Adressen den vier Weltzonen Europa, Nordamerika, Mittel-/Südamerika sowie Asien/Pazifik zugeordnet, um das Routing zu vereinfachen.

Eine andere Verfeinerung des Adressraums erreicht man durch Subnetzadressie-rung. Angenommen eine Firma betreibt mehrere LANs, die aber unter einer einheitlichen Netzadresse angesprochen werden sollen. Um die interne Weiterleitung zu vereinfachen, werden die einzelnen LANs als Subnetze behandelt. Dazu kommt ein Teil der Bits der Host-ID als Subnetz-ID zum Einsatz. Wie viele Bits für diese weitere Hierarchie zur Verfügung stehen, spezifiziert eine Subnetzmaske. Angeschlossene Knoten können dann an der Adresse erkennen, ob das Paket in ihrem eigenen LAN bleibt oder über einen Switch in ein anderes LAN soll.

Die Subnetzmaske hat die Form einer IP-Adresse. Gesetzte Bits kennzeichnen den Netzwerkteil inklusive Subnetzadresse. Beispielsweise bedeutet eine Subnetzmaske 255.255.255.0, dass nur die letzten acht Bit die Knotennummer beinhalten. Alle anderen Bits, bei denen die Subnetzmaske den Wert Eins hat, gehören zur Netzwerkadresse. Die genaue Interpretation - Netzadresse und Subnetzadresse - hängt von der Klasse der Adresse ab. Bei einer Adresse der Klasse B enthalten die ersten 16 Bit die Netzwerkadresse. Bei der Subnetzmaske 255.255.255.0 bilden dann die nächsten 8 Bit, die ursprünglich zur Host-Adresse gehörten, die Subnetzadresse.

Der Netzwerkteil einer Adresse lässt sich leicht durch bitweise UND-Verknüpfung mit der Subnetzmaske berechnen. Als Beispiel berechnen wir in Tabelle 6.2 für die Adresse 212.201.25.18 und die Subnetzmaske 255.255.252.0 die Adresse des Netzwerkteils.

Dn151201.25E7E8FFF261588E6F3745D188E186C4(de-de,TechNet.10).png

Um das prinzipielle Problem von zu wenigen Adressen zu lösen, wird in der Version IPv6 deren Größe auf 16 Byte erhöht. Damit stehen selbst bei schlechter Ausnutzung des Adressraums rechnerisch mehr als 1000 IP-Adressen pro Quadratmeter der Erdoberfläche zur Verfügung.

Die IP-Adressen der einzelnen Knoten können - beispielsweise vom Systemadministrator - fest vergeben werden. Eine Alternative sind dynamische Adressen. Damit können insbesondere für temporäre Verbindungen zeitlich befristete Adressen vergeben werden. Über das Protokoll DHCP (Dynamic Host Configuration Protocol) erhält ein Rechner von einem DHCP-Server eine IP-Adresse. Der DHCP-Server verwaltet die Nummern und sorgt für deren eindeutige Vergabe. Der Client erhält die Adresse nur für einen bestimmten Zeitraum (Lease). Vor dem Ablauf der Gültigkeitsdauer muss er sie dann wieder verlängern oder eine neue Lease beziehen. Beispiel:

ipconfig /all
Ethernet-Adapter „LAN-Verbindung„:
Verbindungsspezifisches DNS-Suffix: fh-friedberg.de
Beschreibung. . . . . . . . . . . : Accton EN2242 Series MiniPCI Fast
Ethernet Adapter
Physikalische Adresse . . . . . . : 00-D0-59-6A-88-63
DHCP-aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
IP-Adresse. . . . . . . . . . . . : 212.201.26.252
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 212.201.26.1
DHCP-Server . . . . . . . . . . . : 212.201.26.1
...
Lease erhalten. . . . . . . . . . : Dienstag, 22. Juni 2004 14:21:28
Lease läuft ab. . . . . . . . . . : Dienstag, 22. Juni 2004 14:31:28

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Paketformat

Tabelle 6.4 zeigt das Format der IP-Pakete (Datagramme) in der Version IPv4.

Dn151201.89D23B7A33610DEB454B11C7FEE7E1BB(de-de,TechNet.10).jpeg

Die Darstellung ist in Vielfachen von 32 Bit organisiert. Die Bedeutung der einzelnen Felder ist:

  • Version: IP Version (hier 4)
  • IHL: Internet Header Length. Die Länge des Headers in Vielfachen von 32 Bit.
  • TOS: Type of Service. In diesem Feld können Eigenschaften für die Übertragung spezifiziert werden.
  • Gesamtlänge: Datagramm-Länge (Header plus Daten) in Bytes. Die maximale Größe beträgt 65.535 Byte.
  • Ident: Identifikation des Datagramms. Notwendig, falls das Datagramm für die unteren
  • Übertragungsschichten in kleinere Pakete - so genannte Fragmente - (zum Beispiel bei Ethernet maximal 1500 Byte) zerlegt werden muss. Jedes Fragment enthält den vollständigen IP-Header zusammen mit einem Anteil der Daten.
  • Flags: Informationen über die Fragmentierung.
  • Offset: Die laufende Nummer des ersten Bytes im Datenteil relativ zum ersten Byte des gesamten Datagramms.
  • TTL: Time To Live. Zähler für die maximale Lebensdauer eines Datagramms. Der Sender setzt TTL auf einen Startwert (zurzeit 64). Jeder Router auf dem Weg dekrementiert TTL. Ist der Wert Null erreicht, wird das Datagramm vernichtet.
  • Protocol: Spezifikation für das höhere Protokoll (zum Beispiel 6 für TCP und 17fürUDP).
  • Checksum: Prüfsumme für den Header (Summe in Einerkomplement)
  • Quellenadresse und Zieladresse: Die vollständigen IP-Adressen von Sender und Empfänger.
  • Optionen + Pad: Mögliche zusätzliche Optionen und eventuelle Füllbits. Die Anzahl der Optionen berechnet sich aus der angegebenen Header-Länge.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Weiterleitung

Wenn ein Knoten - ein Rechner oder ein Router - ein Datagramm verschicken oder weiterleiten will, muss er die IP-Adresse analysieren. Zunächst prüft er die Netzwerkadresse. Stimmt die Netzwerkadresse mit seiner eigenen überein, erkennt der Knoten, dass der Zielknoten sich in seinem eigenen physikalischen Netzwerk befindet. Rechner sind normalerweise nur an einem physikalischen Netzwerk angeschlossen, während Router zwei oder mehr Netz Schnittstellen haben. Router überprüfen daher, ob die Netzwerkadresse zu einem ihrer Netzanschlüsse passt.

Befindet sich das Ziel im gleichen physikalischen Netzwerk, so kann der Knoten die zugehörige interne Adresse (zum Beispiel eine Ethernet-Adresse) ermitteln und das Datagramm direkt zustellen. Wie dies im Detail geschieht, sehen wir im nächsten Abschnitt.

Ist das Ziel außerhalb des eigenen Netzwerkes, wird das Datagramm an einen Router weitergeleitet. Dieser wirkt als Schnittstelle in die externen Netzwerke. Im Allgemeinen wird der Router selbst auch keine direkte Verbindung zu dem Ziel haben, sondern das Paket wieder an einen Router weiterreichen, bis irgendwann ein Router mit Zugang zu dem Zielnetz erreicht ist.

Die Weiterleitung basiert auf Tabellen. Ähnlich wie in Switches gibt es Weiterlei-tungstabellen für die IP-Adressen. Im einfachsten Fall enthält die Tabelle eine paarweise Zuordnung von Netzwerkadressen und nächsten Routern. Für die Weiterleitung des Datagramms schlägt der Knoten in seiner Weiterleitung stabelle nach, an welchen nächsten Knoten er Datagramme für die gegebene Netzwerkadresse schicken soll. Den ausgewählten Router nennt man Next-Hop-Router.

Die Weiterleitung stabelle ist in der Regel nicht vollständig. Daher gibt es noch einen Eintrag für einen Default-Router, an den alle nicht direkt zuzuordnenden Datagramme geschickt werden. Ein Rechner hat häufig nur Zugang zu einem Router. In diesem Fall ist die Weiterleitung stabelle leer beziehungsweise enthält nur den Eintrag für diesen Default-Router.

Insgesamt gesehen erfolgt die Zustellung in zwei Schritten. Zunächst wird das Datagramm in das richtige Netzwerk geschickt und anschließend dort an den Zielknoten zugestellt. Dadurch wird der Verwaltungsaufwand beträchtlich reduziert. Die Router müssen nicht für jeden Rechner in der Welt Einträge in ihre Weiterlei-tungstabellen aufnehmen, sondern nur noch für die Netze. Bleibt die Frage, wie die Router zu ihren Weiterleitungstabellen kommen? Dies ist Thema des übernächsten Abschnitts.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Zuordnung IP-Adresse zu Ethernet-Adresse

Wenn ein Knoten feststellt, dass der Zielknoten sich im gleichen Netzwerk befindet, so kann er das Datagramm direkt an dessen Adresse schicken. Sind etwa die beiden Knoten über Ethernet verbunden, so benötigt er dazu die Ethernet-Adresse des Zielknotens. Die Zuordnung von IP-Adressen zu Ethernet-Adressen erfolgt über das Adressauflösungsprotokoll (Address Resolution Protocol ARP).

Wieder ist die Information in einer Tabelle gespeichert. Jeder Knoten führt eine Zuordnungstabelle mit IP-Adressen und Ethernet-Adressen, die ARP-Tabelle oder auch ARP-Cache. Da die Adresszuordnung sich jederzeit ändern kann, wird die Tabelle dynamisch verwaltet.

Angenommen ein Knoten S möchte zum ersten Mal ein Datagramm an einen bestimmten Zielknoten Z schicken. Zu diesem Zeitpunkt gibt es noch keinen Eintrag für Z in der ARP-Tabelle. Daher schickt S eine Anfrage (Rundruf) an alle Knoten im eigenen Netz. Bei Ethernet wird diese Anfrage als Broadcast gleichzeitig an alle geschickt. Die Anfrage enthält die Zieladresse und die eigene Adresse von S. Jeder Knoten empfängt die ARP-Anfrage. Knoten Z erkennt seine eigene Adresse und reagiert, indem er eine Antwortnachricht mit seiner eigenen Ethernet-Adresse zurückschickt. Gleichzeitig fügt Z die Adresse von S in seine eigene ARP-Tabelle ein, in der Annahme, dass er bald Datagramme an S schickt. S erhält die Antwort, erweitert seine ARP-Tabelle und schickt das Datagramm. Bei weiteren Datagrammen nutzen S und Z die Einträge in ihren ARP-Tabellen.

Um die ARP-Tabelle aktuell zu halten, wird jeder Eintrag nach 15 Minuten automatisch entfernt. Findet in der Zwischenzeit eine weitere Kommunikation mit dem Knoten statt, verlängert sich die Lebensdauer des Eintrags entsprechend. Sie verlängert sich auch, wenn ein Knoten eine ARP-Abfrage von einem anderen Knoten sieht. Diese Aktualisierung nehmen alle Knoten vor, die einen Eintrag für den Sender haben. Nicht betroffene Knoten ignorieren die ARP-Abfrage und erzeugen keinen neuen Eintrag.

Mit dem Programm arp kann man die Übersetzungstabellen anschauen und manuell ändern. Es lassen sich Einträge löschen oder einfügen. Manuell eingefügte Einträge sind permanent und werden auch bei Zeitüberschreitung nicht aus dem Cache gelöscht. Ein Beispiel:

arp -a

Schnittstelle: 212.201.26.252 on Interface 0x1000003
Internetadresse Physikal. Adresse Typ
212.201.26.1 00-20-18-58-b8-1f dynamisch

Das Gegenstück zu ARP ist RARP (Reverse Address Resolution Protocol). Damit können Computer ohne eigenen Massenspeicher von einem RARP-Server ihre IP-Adresse erfragen.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Internet Control Message Protocol

Das Internet Protokoll wird ergänzt durch das Internet Control Message Protocol (ICMP). Über ICMP tauschen Hosts und Router Nachrichten aus. Dazu gehören unter anderem Fehlermeldungen, Informationen zur Steuerung der Übertragung sowie Echo-Anfragen und Antworten. Um welche Art von Nachricht es sich handelt, wird in einem Typfeld im Kopf des Pakets spezifiziert. Abhängig vom konkreten Typ folgen dann die dazu gehörenden Daten. Eine ICMP-Nachricht wird im Nutzdatenfeld eines IP-Pakets übertragen.

Eine einfache Anwendung auf der Basis von ICMP ist der Befehl Ping. Ping steht für Packet InterNet Groper (das Verb grope bedeutet greifen oder suchend nach etwas tasten). Gleichzeitig ist Ping auch die Bezeichnung für einen kurzen Impuls, wie er bei Echolot oder Radarsuchgeräten ausgesendet wird.

Die gleiche Funktion hat Ping im Netzwerk: Es schickt eine ICMP-Nachricht mit einer Echo-Anforderung an einen Host und wartet auf das Echo. Ein Beispiel:

Ping www.w3.org [128.30.52.25] mit 32 Bytes Daten:

Antwort von 128.30.52.25: Bytes=32 Zeit=160ms TTL=55
Antwort von 128.30.52.25: Bytes=32 Zeit=150ms TTL=55
Antwort von 128.30.52.25: Bytes=32 Zeit=150ms TTL=55
Antwort von 128.30.52.25: Bytes=32 Zeit=150ms TTL=55

Ping-Statistik für 128.30.52.25:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 150ms, Maximum = 160ms, Mittelwert = 152ms

In diesem Fall wurden vier Pakete geschickt und bei allen kam eine Antwort. Das Programm gibt die jeweils benötigte Zeit aus und berechnet aus den einzelnen Werten eine kleine Statistik. Eine solche erfolgreiche Ausführung zeigt, dass die Netzwerkverbindung zu dem angegebenen Rechner funktioniert. Damit ist Ping ein nützliches Prüfwerkzeug. Falls Fehler auftreten, kann man damit schnell prüfen, ob die Kommunikation bis zur Ebene von IP zu Stande kommt. So lassen sich elementare Fehler wie zum Beispiel ein ausgeschalteter Zielknoten oder ein falscher Knotenname aufdecken.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Routing - eine kurze Einleitung

In der bisherigen Diskussion hatten wir behandelt, wie ein Router Pakete weiterleitet. Grundlage sind Weiterleitungstabellen, die die benötigte Information beinhalten. Wir haben gesehen, wie damit das Problem der Weiterleitung effizient gelöst wird. Weit gehend ausgeblendet hatten wir bisher, wie die Weiterleitungsta-bellen gefüllt werden. Die zu Grunde liegende Frage ist: Wie wird die Verbindung zwischen zwei Knoten S und E festgelegt?

Wenn man das Netzwerk als Graphen sieht - eine Menge durch Kanten verbundener Knoten - ist die entsprechende Frage nach der kürzesten Verbindung zwischen zwei Knoten. In Bild 1 ist ein Netzwerk als Graph dargestellt. Er repräsentiert allerdings nur die Verbindungen zwischen den Routern. In der Realität gehört dann zu einem Router wiederum ein lokales Netz, in dem Pakete mit den beschriebenen Methoden weiter verteilt werden.

Der Einfachheit halber wird nur zwischen verbundenen und nicht verbundenen Knoten unterschieden. Im Allgemeinen sind die Kosten (Latenz, Bandbreite, Gebühren) für verschiedene Verbindungen (Kanten) unterschiedlich. Dies ist zu berücksichtigen, indem man entsprechende Maßzahlen an die Kanten anbringt. Die Suche nach der optimalen Verbindung muss dann die entstehenden Kosten berücksichtigen.

Dn151201.4781CE1695626D90D6242DEF3F2802F1(de-de,TechNet.10).png

Bild 1: Ein Netzwerk mit Knoten A bis G als Graph dargestellt.

Die Suche nach dem kürzesten Pfad in einem Graphen ist ein Standardproblem der Informatik. Eine klassische Anwendung ist die Bestimmung einer optimalen Route zum Beispiel für ein Auto-Navigationssystem. Die Kosten der Kanten sind in diesem Fall die entsprechenden Fahrzeiten, bestimmt durch Entfernung und Straßentyp. Zur effizienten Lösung des Problems existieren Standardlösungen. Grundvoraussetzung ist allerdings die Kenntnis des Graphen.

Die genaue Kenntnis des Graphen - das heißt das Wissen, welche Knoten aktiv sind, welche Kanten es gibt sowie die eventuellen Kosten einer Verbindungsstrecke - ist bei einem großen Netz mit ständigen Veränderungen kaum zentral verfügbar. Daher beruhen die erforderlichen Routing-Verfahren auf verteilten Algorithmen. Jeder Knoten teilt anderen Knoten sein Wissen über das Netz mit. Aus diesen Informationen erstellt jeder Knoten für sich eine Sicht des Netzes. Im Idealfall konvergieren die Algorithmen, so dass nach einer gewissen Zeit alle Knoten eine einheitliche Sicht haben.

Die Aufgabe des Routings hängt sehr von dem betrachteten Netzwerk ab. Solange es sich um ein weit gehend einheitliches Netz unter gemeinsamer Verwaltung handelt, ist die Information über den Graphen relativ leicht zu erhalten. Betrachtet man demgegenüber das weltweite Internet, so ist eine einheitliche Sicht nicht mehr möglich. Verschiedene Provider haben unterschiedliche Sichtweisen der Kosten für bestimmte Verbindungen. So wird zum Beispiel ein Provider bestrebt sein, möglichst häufig eigene Verbindungen zu benutzen, selbst wenn der resultierende Pfad nicht der kürzeste ist.

Im Folgenden wird daher zwischen Intradomain- und Interdomain-Routing unterschieden. Man betrachtet ein abgeschlossenes System mit einheitlicher Administration als autonomes System (AS). Beispiele für autonome Systeme sind das interne Netzwerk eines Großunternehmens oder das Netzwerk eines Service Providers. Dementsprechend unterscheidet man zwischen internem (intradomain) und externem (interdomain) Routing.

Die Vorgehensweise bei Intradomain-Routing behandeln wir im Folgenden hauptsächlich am Beispiel des Distanzvektor-Routings. Bei der Betrachtung des Interdomain-Routing s beschränkt sich die Darstellung auf einige allgemeine Eigenschaften des im Internet eingesetzten Protokolls.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Distanzvektor-Routing

Der Algorithmus des Distanzvektor-Routings basiert auf den Informationen der Knoten über ihre unmittelbaren Nachbarn. Betrachten wir lediglich die Anzahl der Kanten bis zu einem anderen Knoten (Hops): Ein Knoten erstellt zunächst eine Tabelle, in der alle direkten Nachbarn den Abstand 1 und sämtliche anderen Knoten den Abstand oo haben. In dem obigen Beispiel hat Knoten A die Entfernung stabelle 6.5.

Dn151201.4CDA983C40E4C81E319BC9571E77F515(de-de,TechNet.10).png

In gleicher Weise erstellen auch alle anderen Knoten ihre initiale Entfernungstabelle. Insgesamt erhält man die Tabelle 6.6.

Dn151201.6F7ADE76E0F81CB8822C1E65E773D756(de-de,TechNet.10).png

Die Tabelle existiert nur in verteilter Form. Jeder Knoten sieht nur seine eigene Zeile. Im nächsten Schritt schickt jeder Knoten seine Information an seine Nachbarn. Knoten A erfährt so von B, dass B mit einem Hop D erreichen kann. Jetzt weiß A, dass er D über B mit zwei Hops erreicht. Knoten A ergänzt seine Tabelle und trägt den nächsten Hop (Port) für jeden Knoten ein (Tabelle 6.7).

Dn151201.1A322DBC1A7357E7F0C307005145F259(de-de,TechNet.10).png

Wenn alle Knoten die Informationen von ihren Nachbarn eingetragen haben, ergeben sich die Werte in Tabelle 6.8. Nach der ersten Iteration kennt Knoten G die Entfernungen und die nächstgelegenen Knoten zu allen anderen Knoten im Netzwerk. Knoten E fehlen demgegenüber noch Informationen über A, B und C.

Dn151201.657896D95EE63B05710523D6D0AD4DB8(de-de,TechNet.10).png

Im nächsten Schritt verschicken die Knoten diese erweiterten Tabellen - genauer gesagt jeweils ihre eigene Zeile - an ihre Nachbarn. Die Knoten werten die Informationen aus und ergänzen ihre eigenen Tabellen. Dieses Verfahren - Versenden des aktuellen Kenntnisstandes und Aktualisieren der Tabellen - wird kontinuierlich fortgesetzt. Die Knoten prüfen dabei, ob sie zu einem Knoten eine kürzere Verbindung finden, als bisher in der Entfernungstabelle eingetragen. Für unser Beispielnetz ergibt sich Tabelle 6.9.

Dn151201.6ACFD4BDFE516F9DE2ED8D20D372857A(de-de,TechNet.10).png

Auf diese Weise bauen die Knoten die Information für ihre Weiterleitung stabellen auf. Zwar hat kein Knoten die vollständige Sicht über das komplette Netzwerk. Jeder der Knoten weiß nun aber genug, um die Pakete an den jeweils richtigen Folgeknoten zu schicken.

Die Knoten senden ihre Informationen periodisch oder wenn sie eine Änderung festgestellt haben. Zum Beispiel kann ein Knoten feststellen, dass einer seiner Nachbarn keine periodischen Aktualisierungen mehr sendet. Er wird dann davon ausgehen, dass die Verbindung zu diesem Knoten gestört ist und die Einträge in seiner Tabelle, die über diesen Knoten laufen, mit der Distanz unendlich belegen. Diese Information schickt er an seine anderen Nachbarn, die daraufhin ebenfalls ihre Tabellen aktualisieren.

Im Normalfall konvergiert der Algorithmus relativ schnell wieder zu einem stabilen Zustand. Allerdings kann es zu Problemen kommen, wenn im Netz Schleifen vorhanden sind. Es gibt Verfeinerungen des Verfahrens, die das Verhalten in solchen Fällen verbessern. Ein verbreitetes Protokoll, mit dem Router ihre Weiterleitungsinformationen austauschen, ist das Routing Information Protocol RIP RIP implementiert den beschriebenen Distanzvektor-Algorithmus. Die Informationen werden durch Pakete im RIP-Format verschickt. Die Aktualisierung erfolgt nach jeweils 30 Sekunden.

Ein alternatives Verfahren ist das Link-State-Routing. Im grundsätzlichen Unterschied zum Distanzvektor-Routing verschickt dabei ein Knoten nur die Informationen über seine Nachbarn, nicht sein gelerntes Wissen über weiter entfernte Knoten. Diese eingeschränkte Information sendet jeder Router allerdings an alle anderen. Er setzt dazu ein als zuverlässiges Fluten bezeichnetes Verfahren ein.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Interdomain-Routing

Das Internet besteht aus einer Anzahl von autonomen Systemen (AS). Dabei gibt es verschiedene Klassen:

  • AS mit nur einer Verbindung zu einem anderen AS: zum Beispiel eine kleine Firma mit einem internen Netz und nur einem Router (Border-Gateway) als Schnittstelle nach extern.
  • AS mit mehreren externen Verbindungen: zum Beispiel eine große Firma mit mehreren Standorten. Innerhalb des AS findet aber nur lokaler Verkehr statt.
  • AS mit mehreren externen Verbindungen und der Bereitschaft, Pakete für andere AS zu übermitteln: zum Beispiel ein Backbone-Provider.

Aufgabe des Interdomain-Routings ist es, die Erreichbarkeit zwischen den AS zu gewährleisten. Die Ansprüche sind dabei wesentlich geringer als beim Intrado-main-Routing. Wesentliches Ziel ist es, irgendeinen Weg ohne Schleifen zu finden. Die Festlegung eines optimalen Pfads ist kaum möglich, da dann beispielsweise alle AS die gleiche Kostenmetrik verwenden müssten. Außerdem sind Kriterien wie „möglichst lange im eigenen Netz" oder „nur durch vertrauenswürdige Netze" schwer zu formalisieren.

Im Internet wird das Border Gateway Protocol BGP eingesetzt. BGP ist ausgelegt, um das Routing in einem Verbund von AS zu ermöglichen. Jedes AS erhält eine eindeutige Nummer (16 Bit). Jedes AS benennt mindestens einen BGP-Sprecher. Die BGP-Sprecher tauschen untereinander die Routing-Information in Form von vollständigen Weglisten aus. Ein Sprecher könnte beispielsweise mitteilen, dass er das Netzwerk 178.53.66 auf dem Weg <AS15, AS356, AS27> erreichen kann. Mit entsprechenden Aktualisierungspaketen verschickt ein BGP-Sprecher die ihm bekannten Wege oder meldet sie auch wieder ab.

Durch die Kombination von Intradomain- und Interdomain-Routing wird der große, heterogene Verbund des Internets überschaubar. Ein Router innerhalb eines AS einer Firma braucht beispielsweise nur das Border-Gateway zu kennen. Er schickt dann alle nicht intern zustellbaren Pakete an diesen Router. Umgekehrt benötigt auch der Router eines Backbone-Providers nicht alle Detailkenntnisse. Es ist ausreichend, wenn er die Netze den einzelnen AS zuordnen kann.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Domain Name System DNS

Zur besseren Übersichtlichkeit verwendet man statt der nummerischen IP-Adres-sen aussagekräftige Namen für Knoten. Die Auflösung der Namen erfolgt durch das Domain Name System DNS. Die Namen sind dabei hierarchisch organisiert, wobei die einzelnen Namensteile durch Punkte getrennt sind. Die Reihenfolge ist nach zunehmender Größe geordnet.

Ein Beispiel ist premium.tecChannel.de. Der Knoten premium gehört zur Domäne tecChannel, die wiederum Teil von de ist. Die Top Level Domains sind entweder Länderkürzel oder Zuordnungen wie edu (Education) oder mil (Military).

Die gesamte Hierarchie ist in so genannte Zonen eingeteilt, wobei es für jede eine verantwortliche Instanz gibt. Jede Zone stellt mindestens zwei Name-Server bereit, die auf Anfrage Informationen über die Adressen erteilen.

Wenn eine Anwendung die IP-Adresse eines Knotens benötigt, schickt sie eine Anfrage mit dem Namen an einen lokalen Name-Server. Wenn dieser den Namen noch nicht kennt, leitet er eine Abfrage an den Name-Server in seiner Zone weiter. Von dort erhält er entweder die gewünschte Zieladresse oder die Adresse eines weiteren Name-Servers.

Im zweiten Fall fragt der lokale Name-Server bei dem weiteren Name-Server nach. Dieser Prozess wird fortgesetzt, bis ein Server gefunden ist, der die gewünschte Adresse angeben kann.

Zur Verringerung des Abfrageverkehrs merken sich die Name-Server in einem Cache für eine gewisse Zeit die erfragten Adressen. So kann eine neue Frage nach der Adresse direkt beantwortet werden.

Die Basis des Domain Name System ist eine einfache Datenbank mit Ressourcendatensätzen. Ein Datensatz enthält dabei ein Typfeld, mit dem verschiedene Arten von Informationen spezifiziert werden können. Das Domain Name System bietet dadurch Möglichkeiten wie die Definition von Alias-Namen oder die Festlegung des Mail-Servers.

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Internet-Standards

Das Internet ist ein loser Verbund vieler einzelner Rechner. Für den Endbenutzer ist in der Regel nur sein Internet-Provider relevant. Gegen Gebühren erhält er von ihm den Zugang und die Möglichkeit zur Datenübertragung. Die Infrastruktur des Internets kann er kostenfrei nutzen. Ob eine angefragte Adresse in der Nachbarschaft oder am anderen Ende der Welt liegt, spielt keine Rolle.

Gleichzeitig ist das Internet ein wesentlicher Teil der globalen Infrastruktur der Informationsgesellschaft. Die Ausgestaltung und die Weiterentwicklung des Internets wirft damit eine Vielzahl von technischen, wirtschaftlichen, politischen und kulturellen Fragen auf. Das Zusammenspiel verschiedenster Systeme setzt klare Standards voraus. Diese bedürfen einer ständigen Anpassung an die technische Weiterentwicklung. Gleichberechtigter Zugang zu neuen Standards ist eine wesentliche Voraussetzung für einen fairen Wettbewerb. Fragen nach erlaubten Inhalten und die Garantie eines freien und sicheren Flusses von Informationen berühren unmittelbar unsere Lebenssituation.

Im Vergleich zu anderen Bereichen ist die Entwicklung des Internets geprägt von einem Geist der Offenheit und Freiwilligkeit. Weder staatliche Einrichtungen noch Firmen mit marktbeherrschender Stellung bestimmen das Internet. Vielmehr entwickelte sich eine Reihe von Mechanismen zur selbstbestimmten Regulation und Weiterentwicklung. Die Dachorganisation für die verschiedenen Aktivitäten zur Koordination des Internets ist die Internet Society (ISOC, www.isoc.org/). Ihr Ziel ist zusammengefasst im Mission Statement „To assure the open develop-ment, evolution and use of the Internet for the benefit of all people throughout the world." Die Mitgliedschaft in der ISOC ist kostenfrei und steht jedem Interessenten offen. Neben der internationalen ISOC gibt es nationale Vereine. So wurde 1995 aus der 1992 gegründeten Deutsche Interessengemeinschaft Internet (DIGI e.V.) unter dem Namen ISOC.DE das „German Chapter" der Internet Society.

Technische Themen werden in speziellen Gruppen behandelt. Allgemeine grundlegende Fragen zur Architektur des Internets sind Thema des Internet Architecture Board (IAB). Spezielle Fragen wie Protokolle werden in den verschiedenen Wor-king Groups der Internet Engineering Task Force (IETF) behandelt. Es gibt keine formale Mitgliedschaft in der IETF. Wer in einer der zahlreichen Arbeitsgruppen mitwirken möchte, lässt sich einfach in den entsprechenden Email-Verteiler aufnehmen. Erste Versionen von technischen Dokumenten haben den Status von „Internet Drafts". Sie werden in den Arbeitsgruppen zur Diskussion gestellt. Hat ein Internet Draft einen stabilen Stand erreicht, so kann er als Request for Comments (RFC) publiziert werden. Die einzelnen RFC werden fortlaufend nummeriert. Der beispielsweise im Juni 2004 aktuellste ist RFC 3846 „Mobile IPv4 Extension for Carrying Network Access Identifiers".

Über die Seite www.ietf.org/rfc.html hat man Zugang zu allen RFCs. Wichtig ist auch dieser Stelle die Idee des freien Zugriffs auf die Dokumente sowie die Möglichkeit, die beschriebenen Protokolle lizenzfrei nutzen zu können.

Neben technischen Dokumenten wie Spezifikationen oder Ähnlichem sind auch mehr beschreibende Dokumente unter den RFC. Ein Beispiel ist RFC 1118 „Hitchhikers guide to the Internet" mit einer allgemeinen Einführung in die Internet-Technologie. RFC 2828 „Internet Security Glossary" ist ein umfangreiches Glossar von mehr als 200 Seiten.

Aus einigen RFC werden Internet-Standards. Der Ablauf der Standardisierung ist im Detail in RFC 2026 beschrieben. Durchgeführt wird dieser Prozess von der Internet Engineering Steering Group (IESG). Die IESG wirkt außerdem als Schnittstelle zu anderen Standardisierungsgremien wie ITU.

Einige Namen und Nummern im Internet müssen fest und eindeutig vergeben werden. Dazu zählen etwa die IP-Netzwerkadressen oder die Endungen für die Top Level Domains. Derartige Werte wurden ursprünglich von der Internet As-signed Numbers Authority (IANA) zentral vergeben und verwaltet. Mittlerweile hat Internet Corporation for Assigned Names and Numbers (ICANN) diese Aufgabe übernommen. Dabei wurde die Zuständigkeit auf vier Regional Internet Registries (RIRs) verteilt [2]. Das RIR für den europäischen Bereich ist das RIPE Network Coordination Centre (RIPE NCC, www.ripe.net).

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Literatur

© www.tecCHANNEL.de

[1] Barry M. Leiner, Vinton G. Cerf, David D. Clark, Robert E. Kahn, Leonard Kleinrock, Daniel C. Lynch, Jonathan B. Postel, Lawrence G. Roberts, and Stephen S. Wolff. The past and future history of the internet. Communications of the ACM, 40(2):102-108, 1997

Dn151201.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

| Home | Technische Artikel | Community