3. Das Internet

Unendliche Weiten....
oder:
ein Netzwerk umspannt die Welt!!

3.1 Entwicklung

In den 60er und 70er Jahren wurde von einer Abteilung (ARPA Advanced Research Projects Agency) des amerikanischen Verteidigungsministeriums DoD (Department of Defense) ein Netzwerk für militärische Zwecke und für die Forschung im Bereich der Computertechnologie entwickelt. Anfangs nur an den amerikanischen Universitäten und Forschungseinrichtungen verbreitet, wurde durch die Implementierung des Protokolls auf einem BSD-Unix-System Anfang der 80er Jahre, die Verbreitung dieses Netzwerk-Protokolls in Firmen und anderen Organisationen gefördert.

Inzwischen hat das Netzwerk eine weltweite Verbreitung gefunden. Die Entwicklung war außerst rasant, sodass Schwierigkeiten bei der Adressierung auftraten, da nach kurzer Zeit weit mehr als eine Million Einrichtungen ihre lokalen Netzwerke und Rechner über das Internet zu einem der größten Netzwerke zusammengeschlossen haben. Deswegen wurde heftig über mögliche Erweiterungen nachgedacht, und es wurde die nächsten Generation des Internet (Das Internet der Version 6 (kurz IPv6)) entwickelt, damit eine Milliarde Systeme an das Netzwerk angeschlossen werden können. Im sogenannten Backbone des Internet, dessen Domäne in der Hand der großen Internet-Anbieter (z.B. Deutsche Telekom, Telefonica oder Vodafon) liegt, wird meistens IPv6 verwendet. Obwohl IPv6 schon einige Zeit existiert, hat die Vorgänger-Version IPv4 immernoch eine sehr große Verbreitung. Insbesondere in den Zugangangsnetzen (z.B. DSL, LTE, Kabel-Internet) des Internet wird es vorwiegend verwenden. Aus diesem Grund konzentrieren wir uns auf IPv4. Immer wenn vom Internet die Rede ist, dann meinen wir IPv4 und nicht IPv6.

3.2 Adressierung

Das Internet wurde zur Vernetzung von (lokalen) Netzwerken zu einem großen Netzwerk entwickelt. Daher wurde die Internet-Adresse in einen Netzwerk-Teil und einen Host- Teil gegliedert. Die Netz-Adresse identifiziert das (lokale) Netzwerk, die Host-Adresse wird vom (lokalen) Netzwerk selbst verwaltet und dient der Identifizierung der einzelnen Rechner (Workstations) im lokalen Netz.

Eine Internet-Adresse besteht aus vier Bytes (Octetts), die jeweils dem Netz-Teil oder dem Host-Teil zugeordnet sind. Die Adresse wird im Allgemeinen durch vier Zahlen zwischen 0 und 255 dargestellt, die jeweils durch einen Punkt getrennt sind. Die Zahlen 0,127, und 255 haben dabei eine spezielle Bedeutung, auf die später noch eingegangen wird.


Schreibweise einer Internet-Adresse: a.b.c.d


Um die Zuordnung der einzelnen Bytes (Zahlen) zum Netz- oder Host-Teil eindeutig zu regeln, wurde die Einteilung der Adressen in Klassen definiert, wobei das erste Byte (Zahl) darüber Auskunft gibt, zu welcher Klasse eine Adresse gehört und dementsprechend welche Bytes den Netzwerk-Teil repräsentieren. (Class-AIBIC Netzwerk)


Abb. 5: Bit-Struktur der Internet-Adresse (Class A, B, C)


Class A(0 .. 127): N.H.H.H

Ein Klasse - A - Netzwerk wird durch die Werte 0 bis 127 der ersten Zahl (Byte) der Adresse definiert. In dieser Klasse repräsentiert die erste Zahl das Netzwerk und die drei anderen Zahlen den Rechner in diesem Netzwerk. Daraus ergibt sich, dass es weltweit nur 128 Netzwerke dieser Klasse geben kann und jedes dieser Netze aus 16777214 einzelnen Rechnern bestehen kann. Eine Netzwerkadresse dieser Klasse wird deshalb nur an internationale Organisationen oder Firmen vergeben, die auch eine entsprechend große Anzahl von Rechnern zu vernetzen haben.


Class B (128 .. 191): N.N.H.H

Ein Klasse - B - Netzwerk wird durch die Werte 128 bis 191 der ersten Zahl (Byte) der Adresse definiert. In dieser Klasse repräsentieren die ersten beiden Zahlen das Netzwerk und die anderen beiden den Rechner in diesem Netzwerk. Daraus ergibt sich, dass es weltweit nur 16384 Netzwerke dieser Klasse geben kann und jedes dieser Netze aus 65534 einzelnen Rechnern bestehen kann. Eine Netzwerkadresse dieser Klasse wird an große Organisationen oder Firmen sowie an Universitäten vergeben, z.B. hat die TU auch ein Klasse - B - Netzwerk (130.149.x.y).


Class C (192 .. 223): N.N.N.H

Ein Klasse - C - Netzwerk wird durch die Werte 192 bis 223 der ersten Zahl (Byte) der Adresse definiert. In dieser Klasse repräsentieren die ersten drei Zahlen das Netzwerk und die letzte den Rechner in diesem Netzwerk. Daraus ergibt sich, dass es weltweit 2097152 Netzwerke dieser Klasse geben kann und jedes dieser Netze aus nur 254 einzelnen Rechnern bestehen kann.


Class D/E (224.. 254):

Die Werte 224 bis 254 der ersten Zahl sind für Multicast-Adressen und Test-Netzwerke, bzw. Erweiterungen reserviert. und sollten daher nicht verwendet werden.

Besonderheit 0:

Mit dem Wert 0 an einer Stelle der Internet-Adresse gibt man an, dass es sich hierbei um ein Subnetz handelt. Die Adresse 130.149.49.0 steht z.B. für das Subnetz des Fachgebiets Telekommunikationsnetze an der TU-Berlin (xxxx.tkn.tu-berlin.de), hingegen steht 130.149.0.0 für das gesamte Class - B - Netz der TU Berlin.

Besonderheit 127:

Die Internet-Adresse 127.x.x.x repräsentiert den lokalen Rechner (localhost oder loopback), unabhängig davon, wie die reale Adresse des Rechners aussieht. Anwendungen wie z.B. das X- Window-System unter Unix kommunizieren untereinander über diese Adresse, und müssen daher nicht auf jedem System neu konfiguriert werden.

Besonderheit 255:

Der Wert 255 an einer (oder mehreren) Stellen repräsentiert eine Broadcast-Nachricht für das Netzwerk, und steht sozusagen für alle Adressen zwischen 1 und 254 gleichzeitig, d.h. alle Rechner in diesem Netzwerk empfangen diese Nachricht und werten diese aus.


Leider ist der Einsatz der Werte 0 und 255 in der Praxis nicht so eindeutig. In einigen Netzen hat der Wert $0$ die Bedeutung einer Broadcast-Nachricht, und auf den Wert 255 reagiert dann kein Rechner. Ihr könnt z.B. ping -5 130.149.49.0 bzw. ping -5 130.149.49.255 ausprobieren und sehen welche Rechner auf welche Adresse reagieren (auch mit anderen Subnetzen der TU möglich).

3.3 Subnetze und Netzmasken

Hat eine Organisation o.ä. einen Adressbereich z.B. ein Class-B-Netz erhalten, so kann es alle darin enthaltenen Adressen (bei einem Class-B-Netz immerhin 65.535) wahllos an die eingesetzten Rechner verteilen, unabhängig von der physikalischen Struktur. Dazu muss aber jeder interne Router bzw. Bridge von jedem Rechner wissen, wie er zu erreichen ist.

Besser ist es natürlich (was in der Praxis auch gemacht wird), den Adressbereich noch einmal intern aufzuteilen und die so erhaltenen Subnetze der physikalische Struktur entsprechend zu verteilen. (z.B. alle Rechner in einem bestimmten Gebäude, bzw. Stockwerk,...). So kann anhand der Adresse leichter erkannt werden, wohin die Daten geleitet werden müssen (siehe Abb. 6).


Abb. 6: Subnetze

So nennt die TU-Berlin zum Beispiel ein Class-B-Netzwerk mit der Adresse 130.149.0.0 ihr Eigen. Dieses Netzwerk ist in 254 Subnetze unterteilt, die die logische Struktur und weitestgehend auch die physikalische Ausbreitung widerspiegeln. So hat der Fachbereich Informatik die Subnetz-Adressen 130.149.16.0 bis 130.149.31.0, was das Routing stark vereinfacht.


Abb. 7: Anwendung von Netzwerkmasken Bitweise UND-Verknüpfung

Netzmasken werden bei Routern benötigt, um relativ schnell zu testen, ob eine Adresse zu einem bestimmten Sub-Netz gehört oder nicht (Bitweises verknüpfen geht wesentlich schneller, als Größer- / Kleiner-Relationen zu errechnen und Bereiche zu testen).

Dazu wird folgender maßen vorgegangen (siehe Abb. 7):

Die zu überprüfende Adresse 149.77.123.23 (siehe Abb. 7, oben) wird mit der Netz-Maske, die das Class-B-Netz in 256 Class-C-Netze unterteilt, bitweise UND-verknüpft. Der so erhaltene Wert 149.77.123.0 gibt das Sub-Netz einer bestimmten Abteilung an. Zu diesem Subnetz existiert (hoffentlich) ein Routing-Eintrag in der lokalen Tabelle, der angibt, zu welchem Gateway das Paket weitergeleitet werden soll.

Wird eine andere Adresse mit dieser Netz-Maske verknüpft (siehe Abb. 7, mitte), so ist das erhaltene Ergebnis die Adresse eines anderen Subnetzes.

Benötigt eine Abteilung mehrere Sub-Netze, so ist es günstig, dieser Abteilung aufeinanderfolgende Subnetz-Adressen zuzuteilen, z.B. 149.77.112.0 bis 149.77.115.0 (siehe Abb. 7, unten). So kann mittels einer anderen Netz-Maske, die nicht nur die letzten 8 Bit maskiert, sondern die letzten 10 Bit, der komplette Adressbereich dieser Abteilung mit einer Netzmaske überprüft werden.

Bei der Vergabe von solchen Adressbereichen ist darauf zu achten, dass sie sich nicht mit anderen Bereichen mit dieser Netzmaske überschneiden! Der Adressbereich 149.77.114.0 bis 149.77.117.0 würde z.B. die beiden Bereiche 149.77.112.0 bis 149.77.115.0 und 149.77.116.0 bis 149.77.119.0 überschneiden. Man sollte sich bei einer solchen Vergabe immer die Bit-Struktur der Adressen ansehen und so legen, dass sich im Bereich dieses Subnetzes bei allen Adressen nur die Bits unterscheiden, die von der Netzmaske unterdrückt werden (Netzmaske.Bit = 0).

3.4 Routing

Bei IP-Implementierung auf dem Betriebssystem UNIX wird statisches Routing verwendet.

Durch geeignete Programme, die die IP-Routing-Protokolle verarbeiten (z.B. routed, gated, quagga), werden jedoch diese Tabellen dynamisch verwaltet und innerhalb der lokalen Netzwerke automatisch an alle Router verteilt, auf denen diese Programme laufen.

Zusätzlich gibt es spezielle Routing-Protokolle, die Routing-Informationen zwischen (autonomen) Netzen austauschen, also nach außen weitergeben. Z.B. zwischen der TU und der HU, FU bzw. anderen Organisationen. So kann die TU der HU mitteilen, über welche Leitungen sie momentan noch zu erreichen ist, bzw. wie stark die Leitungen ausgelastet sind. Informationen wie Daten z.B. vom Informatik Netz an das Netz der Maschinenbauer übertragen werden, gelangen über diese Protokolle nicht in die Außenwelt.

Als Algorithmus wird normalerweise ''Shortest-Path`` verwendet, der die Anzahl der an der Übertragung beteiligten Knoten (Hop-Count) berücksichtigt, und meistens auch den zu einer Verbindung gespeicherten Wert der Übertragungsqualität (= Capacity).