IPvx, Überlegungen für ein neues Internet Protokoll
Folgende Spezifikationen wurden von Thomas Kamps entworfen und sollen einige Anhaltspunkte und Problemlösungen zu bestehenden Protokollen, wie zum Beispiel IPv4 oder IPv6 bieten. Es handelt sich nur um einen Entwurft und es sind noch zahlreiche Ergänzungen nötig. Bitte helft mit, denn sobald es mehr als 3,8*10^38 Rechner auf der Erde gibt, wird auch der Adressraum von IPv6 eng.
IPvX mögliche Spezifikation
Paket Header:
- 4Bit: Version (=0)
- 8*xBit: Metrik (siehe unten)
- 8*xBit: Länge des Rest-Headers in Byte (siehe unten)
- 8*xBit: Länge der Daten in Byte (siehe unten)
- 8Bit: Verhalten bei mehreren Routing-Möglichkeiten in Switch
- 8*xByte: Quell-Adresse
- 8*xByte: Ziel-Adresse
Zu Matrik, Länge des Rest-Headers und Länge der Daten: Hier wird angegeben, wieviele Bytes benötigt werden, oder bei der Metric, die maximale Anzahl der Router. Wenn diese Angabe maximal 1Byte benötigt darauf folgt das Byte 0. Wenn für die Angabe mehr als ein Byte nötig ist: Die Zahl wird in Bytes zerlegt: Nach jedem Byte (Die kleinsten werde zuerst angegebnen) folgt eine 1Byte angabe, wie viele Bytes noch nötig sind. Die darauf folgenden Bytes haben keine angaben mehr. Sollten noch mehr als 254 Bytes folgen, wird 255 als aolgende Bytes angegeben und nach dem nächten Byte wird genauso verfahren.
Adressen:
Anders als bei v4 oder v6 kennt vX keine feste Länge der Adresse. Eine Adresse wird immer mit dem Byte 'ff' beendet, und ist kein Teil der sichtbaren Adresse. Auch gibt es keine Blöcke, eine VX adresse ist eine einfache hexdezimale zahl. Folgende Zeichen sind besonders:
- 'ff' Ende der adresse, darf kein teil einer vX adresse sein
- 'fe' Wenn eien Adresse damit endet, wird auf einer multicast-adresse hingewiesen. Dazu später mehr
- 'fd' Deutet auf eine Netzwerkadrese hin.
- 'fc' Wenn eine adresse damit endet, deutet es auch einen Host hin
- 'fe' und 'fc' sind immer das Ende einer Adresse.
- 'fd' inherhalb einer adresse zeigt die router an, die es passiert.
Beispiele einer vX adresse:
Einen Host, der im Netzwerk 0102fd sitzt: 0102fd0102fc Alle rechner im netzwerk 02effd erreichen: 02effdfe Mögliche externe Adresse eines Routers: 030405fd Global Wildcast: (Leere Adresse)
Mögliche Schreibverkürzungen:
Statt 010101010101010101fd01fc ließe sich auch folgendes schreiben: :01:9:fd01fc oder allgemeiner: :zahlenfolge:wiederholungen: Dabei wird die zahlenfolge auf der anwenderschicht wiederholungen mal wiederholt aus :123:1:1fc wird 1231fc aus :123:2:fc wird 123123fc aus 30:123:0:fc wird 30fc Die wiederholungen werden in hexdezimaler form angegeben.
Jede Adresse die nicht auf 'fe' oder 'fc' endet, ist ein local wildast für die Adresse. (später mehr zum thema routing) Wie bei v6 kann jede Schnittstelle, die eine adresse haben kann, auch mehrere Besitzen.
Subnetze:
Anders als bei v4 und v6 gibt es keine explizite Maske oder prefix-Länge Ein Host, der im Netzwerk 01fd sitzt beginnt mit 01fd. Darauf folgt dann die genaue indentifikation. Diese kann entwerde ein Netzwerk, doer ein Host sein. in 01fd kann also ein Host mit 01fd01fc sitzen oder ein Netzwerk mit 01fd02fd. Es ist so möglich Netzwerke beliebig zu verschachteln.
Routing:
Die Idee von vX ist autorouting: Ein Paket muss nicht explizit von router A zu router B schickt werden. Dazu folgendes Szenario:
Rechner |
A |
Switch |
routerR1 |
Switch |
routerR2 |
Switch |
B |
Adresse |
01fd01fd02fc |
<-> |
01fd01fd01fc <> 01fd01fd |
<-> |
01fd02fd <> 01fd02fd01fc |
<-> |
01fd02fd02fc |
Adresse |
|
|
(ff) <> 01fd01fc |
| |
01fd02fc <> (ff) |
|
|
|
|
|
- - - - - |
| |
|
|
|
Rechner |
|
|
\/ |
inetRouter |
|
|
|
Adresse |
|
|
(ff); 01fd03fc |
<> |
01fd; 01fc <-> WWW |
|
|
(ff) deutet auch einen global-wildcast adresee hin
Rechner A will ein Paket nach rechner B schicken: Ziel-Adresse: 01fd02fd02fc Rechner A schickt es erstmal raus. Der Switch an A sieht: router R1 hat eine global-wildcast-adresse. Da die Ziel-Adresse mit dem Gloabl-wildcast beginnt. sieht switch: aha: routerR1 kann das weiterleiten. Ein Hub schickt es einfach an alle angeschlossenen schnitstellen. routerR1 empfängt das Paket und schaut: hab ich an der schnitstelle eine Adresse die passt? Global-wildcast passt. also ja. routerR1 mekrt, dass er das paket weiterleiten kann. Wenn nciht wird es einfach verworfen. routerR1 schickt es rasu zum Switch. Der swistch siehgt, dass inetRouter mit dem global-wildcast und routerR2 01fd02fd passen könnte Jetzt schaut der switch der switch imn header nach dem angeordneten verhalten: 0: schicke an alles was passt 1: schicke an den mit der längsten adresse (hier routerR2) 2: schicke an den globalsten 255: verwerfe paket
Wir nehmen an, das Paket hat die anweisung 1. Also schickt edr switch es nach router R2 routerR2 sieht: aha passt also weiter damit der Switch sieht: 01fd02fd02fc kann ich direkt erreichen.
Jedes mal wenn ein Paket einen Router passiert wird die Metrik um 1 redutziert, wenn ein paket mit metrik 0 ankommt, wird es nicht weitergeleitet und der router versucht das Paket zu verarbeiten.
Multicast:
selbes szenario: Es kommt an 01fd (am inet-router) ein paket mit dem Ziel 01fdfe an. inetRouter schaut nach direkt erreichbaren adressen, die mit 01fd beginnen. Diese wären dann: 01fd01fd; 01fd01fc; 01fd02fd; 01fd02fc; 01fd03fc der router hängt an alle Adressen ein 'fe' an und versetzt diese Der Switch ignoriert das 'fe' in der Adresse und versendet es passend.
