Überblick TCP/IP v4

Posted on Mai 11, 2010
Filed Under Prüfungstipps, Serien

TCP/IP

Die Geschichte von TCP/IP reicht bis in die Mitte der 70er Jahre des letzten Jahrhunderts zurück, als die erste Spezifikation der Version 4 (IPv4) veröffentlicht wurde. TCP/IP wurde anfangs nur vom amerikanischen Militär, von Behörden und Bildungseinrichtungen genutzt, mit Entstehung der ersten Internet Service Provider Mitte der 80er Jahre kam dann aber sehr schnell die kommerzielle und private Nutzung hinzu. Durch die dadurch entstandene explosionsartige Ausbreitung der Nutzung des Internets durch den Gedanken der eindeutigen Punkt-zu-Punkt-Verbindung von Computern im Internet zeichnete sich schnell ein Mangel an verfügbaren Adressen ab. Dieser Knappheit an verfügbaren eindeutigen IP-Adressen für die Kommunikation im Internet konnte man anfangs durch das Aufsplitten großer Netzwerke in kleinere Netzwerke und durch die Entwicklung von NAT (Network Address Translation) und der damit verbundenen Abtrennung von IP-Adressen für ausschließlich private Netzwerke entschärfen, dennoch war das Ende der Verfügbarkeit von öffentlich zugänglichen IPv4-Adressen abzusehen und man machte sich Gedanken über die Vergrößerung des Adressbereichs. Dies führte zur Entwicklung von IPv6.

Im folgenden werden die beiden Versionen vorgestellt.

IPv4.

Wenn zwei Netzwerkgeräte miteinander kommunizieren wollen, benötigen sie ein eindeutiges Kriterium für die Identifizierung.

Die IP-Adresse z.B. 192.168.0.1 ist dieses eindeutige Kriterium. Sie identifiziert den Host (Netzwerkgerät) eindeutig im Netzwerk (genaugenommen den Netzwerkadapter im Host – aber für unsere Zwecke tut’s auch die einfach Definition). Nun stecken aber zwei Informationen in dieser IP-Adresse: die Information über das Netzwerk und die Information über den Host in diesem Netzwerk. Welche Werte nun die Netzwerkinformation und welche die Hostinformationen darstellen, das gibt diese IP-Adresse leider nicht so ohne weiteres preis. Wir benötigen also eine weitere Information. Dabei handelt es sich um die Subnetzmaske.

Der Wert 255.255.255.0 stellt die Subnetzmaske dar. Die Subnetzmaske trennt innerhalb der IP-Adresse den Hostanteil vom Netzwerkanteil durch maskieren.

Die dezimal dargestellten Werte von IP-Adresse und Subnetzmaske sind natürlich für uns lesbarer als die Bitwerte, die der Computer für die Verarbeitung benötigt. IP-Adresse und Subnetzmaske bestehen aus jeweils 32 Bit, die in vier Blöcke zu jeweils 8 Bit (Oktette) unterteilt sind, die jeweils durch einen Punkt voneinander getrennt werden.

IP-Adresse

11000000 . 10101000 . 00011111 . 00000000

192 . 128 . 31 . 0

Subnetzmaske

11111111 . 11111111 . 111111111 . 00000000

255 . 255 . 255 . 0

In der Subnetzmaske von links nach rechts durchgehend gesetzte Bits (1) definieren an derselben Stelle in der IP-Adresse den Netzwerkteil (Netzwerk-ID), von rechts nach links durchgehend nicht gesetzte Bits (0) definieren an derselben Stelle in der IP-Adresse den Hostanteil im Netzwerks (Host-ID). Somit stellen die ersten 24 Bit in der IP-Adresse die Netzwerk-ID dar, die letzten 8 Bit die Host-ID.

Die Anzahl von Netzwerk- und Hostbits ergibt immer die Anzahl von 32 Bit; an welcher Stelle die Grenze zwischen den Netzwerkbits und Hostbits liegt, hängt davon ab, wie viele Hosts im Netzwerk unterstützt werden.

Nicht alle Hostbits sind jedoch für die Adressierung von Hosts im Netzwerk nutzbar. Es gelten folgende beide Ausnahmen: wenn alle Hostbits einer IP-Adresse den Wert 0 enthalten, dann handelt es sich um die Adresse des Netzwerks (z.B. 192.168.31.0); wenn alle Hostbits den Wert 1 enthalten, dann handelt es sich um die Broadcastadresse des Netzwerks (Broadcast ist eine spezielle Form der Kommunikation in einem Netzwerk).

Um von der Binärdarstellung zur Dezimaldarstellung zu kommen, muss jedes Oktett für sich alleine betrachtet werden. Dabei besitzt jede Stelle innerhalb des Oktetts eine bestimmte Wertigkeit:

_ _ _ _ _ _ _ _

128 64 32 16 8 4 2 1

27 26 25 24 23 22 21 20

Ist an der entsprechenden Stelle _ ein Bit gesetzt (1), so wird die darunter stehenden Wertigkeit aufaddiert, ist das Bit nicht gesetzt (0), so wird die darunter stehende Wertigkeit ignoriert.

Beispiel:

1 0 1 0 1 0 0 0

128 32 8

Die Wertigkeiten der gesetzten Bits werden aufaddiert (128+32+8 = 168); die Wertigkeiten der nicht gesetzten Bits werden ignoriert.

Um von einem Dezimalwert auf den entsprechenden Binärwert zu kommen, müssen wir wie folgt vorgehen: der Dezimalwert wird durch 2 dividiert. Ist ein Nachkommateil vorhanden, wird eine 1 notiert, ist kein Nachkommateil vorhanden, wird ein 0 notiert. Die Notation geht dabei von rechts nach links. Die jeweils nächste Division wird immer nur mit dem Vorkommateil (Integerzahl) durchgeführt. Ist die Division bei 0 angekommen, ist die Berechnung beendet.

Beispiel:

168 soll als Binärwert dargestellt werden. Wir dividieren 168 durch 2, das ergibt 84. Da kein Nachkommateil vorhanden ist, notieren wir 0. Nun wird die 84 durch 2 dividiert, das ergibt 42. Wieder kein Nachkommateil, wir fügen links eine weitere 0 an und notieren 00. 42 wird durch 2 dividiert, das ergibt 21. Kein Nachkommateil, wir fügen also links eine weitere 0 an, ergibt 000. 21 durch 2 ergibt 10,5. Nun haben wir einen Nachkommateil, wir fügen also linksbündig eine 1 an, ergibt 1000. Wir machen mit dem Vorkommateil weiter: 10 dividiert durch 2 ergibt 5; kein Nachkommateil, also wird linksbündig eine 0 angefügt, ergibt 01000. 5 dividiert durch 2 ergibt 2,5 und somit wieder einen Nachkommateil. Wir notieren linksbündig eine 1, das macht dann 101000. Mit dem Vorkommateil wird weitergemacht: 2 dividiert durch 2 macht 1, kein Nachkommateil, also fügen wir linksbündig eine 0 an: 0101000. 1 dividiert durch 2 ist 0,5. Hier ist wieder ein Nachkommateil vorhanden, also wird links eine 1 angefügt; das macht 10101000. Wir nehmen den Vorkommateil, der ist nun 0, und damit ist die Berechnung beendet. 168 als Binärwert lautet somit 10101000.

Wenn wir nun diese 8 Bit eines Oktetts betrachten, dann ist die größtmögliche Zahl, welche dezimal darstellbar ist, die Addition aller Wertigkeiten, wenn alle Bits gesetzt sind; das ergibt einen Wert 255. Wenn kein Bit gesetzt ist, ist der Wert 0. Von 0 bis 255 zählen wir also 256 Werte. Wir können somit sagen, dass mit 8 Bit insgesamt 256 Elemente dargestellt werden können.

Diese 8 Bit sind natürlich nicht das Maß aller Dinge. Haben wir nur 7 Bit, dann ist der größtmögliche Wert 128, bei 6 Bit 64, bei 5 Bit 32, bei 4 Bit 16, bei 3 Bit 8, bei 2 Bit 4 und bei 1 Bit 2. Natürlich hört das in der Folge nach links nicht auf, die Wertigkeiten verdoppeln sich von rechts nach links: beim 9. Bit von rechts liegt die Wertigkeit bei 256, beim 10. Bit bei 512, beim 11. Bit bei 1024, beim 12. Bit bei 2048 und so weiter. Wenn wir die größtmögliche Anzahl der Elemente für 9 Bit berechnen, so müssen wir die Wertigkeit dieses 9. Bits zu den restlichen 8 hinzufügen, das ergibt dann 512. Mit 9 Bit ergibt sich also ein Wert von 512, mit 10 Bit 1024 mit 11 Bit 2048, mit 12 Bit 4096 und so weiter.

Das war’s für heute zum Überblick. Im nächsten Teil schauen wir uns dann die Adressklassen an.

Rüdiger Vasa

Mario Carla

PS: Du willst keinen Teil der Serie verpassen? Dann abonniere den Feed….

Kommentare

Hinterlassen Sie eine Antwort




Bad Behavior has blocked 172 access attempts in the last 7 days.