TCP/IP IP-Berechnung

IP Adresse: 192.168.100.10 Das braucht man als eindeutige Identifizierung eines Gerätes in einem TCP/IP basierten Netzwerk (z.b.

Internet)

Netzadresse: 192.168.100.0 Das markiert die Adresse des gesamten Netzes, also hier sagts das unser Netz bei .0 anfangt.

Broadcast: 192.168.100.255 Das sagt das Ende des Netzes aus, und hier sagts .255.

Subnetmask: 255.255.255.0 Das sagt wie groß dein Netz ist. Man geht immer davon aus was man nicht hat. Also hier haben wir die ersten 3 Segmente 255.255.255. nicht weil die alle schon gefüllt sind. aber das letzte segment .0 gehört uns, weil da ist noch nix drin.

Die Welt der Netzwerke teilt sich grundsätzlich in ein paar verschiedene Netzwerk-Klassen.

Class A: 192.0.0.0 (also hier gehören mir die letzten 3 segmente)

Class B: 192.168.0.0 (hier die letzten 2 segmente)

Class C: 192.168.100.0 (hier hab ich nur das letzte segment)

Um mal eine Vorstellung zu geben, wieviele Adressen die einzelnen Netze haben, hier mal ein kleiner Rechenweg.

Jedes Segment, geht von 0 bis 255. (0 wird mitgezählt, weil für computer 0 ja auch eine ganz normale zahl ist mit der man rechnen kann, liegt am binären system, erklär ich später)

Class A hätte also 255^255^255 ip adressen. (^ = potenz, x*x). Also kommen bei einem Class A 4228250625 IP-Adressen raus, die man benutzen kann :)

Class B sind immer noch 65025 stück und Class C hat nur 255 Adressen.

Soweit ist ja auch alles ganz cool und einfach. Aber da man ja nicht an jeden Internet Nutzer, Domain besitzer, oder sonstwen einfach so ein ganzes Class-C netz verteilen will (wer braucht das schon als normaler Mensch? kaum einer hat 255 Rechner zuhause stehen) muss man sich schon was einfallen lassen diese Adressräume feiner zu zerteilen. Und hier kommen die oben genannten begriffe zum einsatz.

Um das aber zu verstehen musst du erstmal in Bit rechnen lernen. Das ist ganz einfach denn:

binär sieht 1 nämlich so aus: 0000 0001

wenn du die stellen zählst kommst du auf genau 8. Und mit jedes Bit kann entweder 0 oder 1 darstellen. Und mit 8 bits kannst du maximal 255 erzeugen. Noch nicht verstanden? Dachte ich mir, ich habs auch nicht kapiert am Anfang :) Ist aber ganz leicht:

Computer sind dumm. Die können nur mit 1 und 0 rechnen. Also um einem Computer jetzt beizubringen das er z.b. auf dem Bildschirm die dezimale Zahl 1 anzeigen soll muss er wissen was dezimal 1 in seiner binären Logik ist.

Hier ist eine Tabelle die das schön veranschaulicht. Wenn Du also dezimal 1 sagst, dann ist das für den Computer 0000 0001, weil, wenn das letzte Bit gesetzt ist (also 1 ist) dann weiss er das diese dezimal 1 ist.

Ein paar Beispiele hier:

dezimalwert der stelle:
1286432168421
binäre darstellungsform:
00000000=0
10000000=128
11000000=192
11100000=224
01010000=80

Du musst im Prinzip einfach nur die Spalten wo eine 1 ist, miteinander addieren, dann hast du die dezimale Zahl.

Umgekehrt, wenn Du eine dezimale Zahl hast und die Binäre Form wissen willst, dann machst Du das so:

Beispiel dezimal 192 soll in Binär gewandelt werden, schaust du erstmal was reinpasst:

192 passt 128 rein? - Ja. Gut, also ziehst du von 192 die 128 ab, und sagst das bit für 128 ist 1.

128 64 32 16 8 4 2 1

———————

1

jetzt hast du einen Rest von dezimal 64, jetzt guckst du was passt da wieder rein: 128, nee das is zu groß, 64? Ja! Und geht genau auf! Also schnell das 64er Bit setzen.

128 64 32 16 8 4 2 1

———————

1 1

Und weil jetzt nix mehr übrig ist, füllst du die restlichen Bits einfach mit 0.

128 64 32 16 8 4 2 1

———————

1 1 0 0 0 0 0 0

und tattaa, 192 binär = 1100 0000 :)

So kannst Du jede Zahl umwandeln, ist halt nur bissl nervig, weil man so viel schreiben muss.

So, da Du jetzt weisst wie man dezimal in binär umwandelt kanns ja weitergehen :)

Du weisst ja das ein Segment einen Zahlenvorrat von 255 hat. Wenn jetzt ein Kunde nur ein Halbes Segment will, dann hat er ja 127 stück von. (0-255 = 256 zahlen 0-127 = 128 Zahlen, immer die 0 mitrechnen)

Um das zu bewerkstelligen muss man jetzt einen Mechanismus benutzen der Anfang und Ende sagt. Der Anfang ist wie oben erwähnt die Netzadresse und das Ende der Broadcast. Das dazwischen ist Nutzbar für Geräte. Und die Subnetmask sagt wie groß der Bereich ist, also in unserem Fall 0-127.

Also, wir haben:

Netzadresse: 192.168.100.0

Unsere gewünschte Größe: 192.168.100.0 - 192.168.100.127

Rest vom Class-C Netz: 192.168.100.128 - 192.168.100.255

Wir suchen:

Subnetmaske unserer zwei Teile

Netzadresse vom Rest

Broadcast der zwei Teile

Also jetzt ein wenig Digitale Logik um dieses Problem zu lösen. Es gibt da viele Sachen, aber wir brauchen:

Digital Invertieren (~)

Digital Ver-Unden (&)

Digital Ver-Odern (|)

Das Funktioniert so:

Invertieren:

ausgangsituation: 1111 0000

inveritiert: 0000 1111

Also einfach umdrehen, klar? Aus 0 wird 1 und aus 1 wird 0. Ganz einfach.

Ver-Unden:

ausgangssituation: 1111 0000

verunden mit: 0110 1010

——————————

verundetes ergebnis: 0110 0000

Auch ganz einfach: 1 UND 1 = 1, der rest bleibt 0, also nur wenn zwei einsen untereinander stehen hier, wirds 1 sonst bleibts 0.

Ver-Odern:

ausgangssituation: 1111 0100

verodern mit: 1001 0010

——————————

verodertes ergebnis: 1111 0110

Hier ist es auch ganz einfach: 1 ODER 0 = 1, also nur 0 und 0 = 0, rest wird immer 1.

Jetzt da Du die Grundzüge der digitalen Logik verstanden hast, machen wir einfach mal weiter mit ein paar simplen Formeln.

Netzadresse = IP-Adresse & Subnetmaske

Broadcast = ~Subnetmaske | Netzadresse

Größe = ~Subnetmaske

Daraus lässt sich logisch ja alles weitere ableiten.

Also nochmal unsere Aufgabe von oben:

Also, wir haben:

Netzadresse: 192.168.100.0

Unsere gewünschte Größe: 192.168.100.0 - 192.168.100.127

Rest vom Class-C Netz: 192.168.100.128 - 192.168.100.255

Wir suchen:

Subnetmaske unserer zwei Teile

Netzadresse vom Rest

Broadcast der zwei Teile

Rechnen wir mal Alles durch:

(zuerst müssen wir die dezimalen Zahlen in binäre wandeln, sonst können wir das net einfach so rechnen)

Subnetmaske: (~Größe)

Größe = 0.0.0.127 = 0000 0000 0000 0000 0000 0000 0111 1111

subnetmaske 1111 1111 1111 1111 1111 1111 1000 0000

  1. ————————————–
                  255      .255      .255       .128

also haben wir raus als subnetmaske 255.255.255.128

so, da wir nun die subnetmaske haben, können wir auch die netzadresse

berechnen:

ip verunden mit: 1100 0000 1010 1000 0110 0100 0000 0000

subnetmask: 1111 1111 1111 1111 1111 1111 1000 0000

——————————————————–

netzadresse: 1100 0000 1010 1000 0110 0100 0000 0000

               192      .168      .100      .0

jetzt haben wir netzadresse berechnet, nu können wir auch den broadcast

berechnen:

~subnetmask: 0000 0000 0000 0000 0000 0000 0111 1111

verodern mit netzadresse: 1100 0000 1010 1000 0110 0100 0000 0000

—————————————————————–

broadcast 1100 0000 1010 1000 0110 0100 0111 1111

                        192      .168      .100      .127

So, nun müssten wir das auch noch für den Rest des Netzes machen, damit hat sich das dann :)

Vereinfachte Formeln:

Net = IP & SUBNETMASK

Broadcast = ~Mask (&255) | Net

Size = ~Subnet + 1

 
 
         
         
   
(14841 views) tcp_ip_calc.txt · Zuletzt geändert: 2011/05/24 14:26 von terminar