Pakete und Adressen in Datennetzen
Bei einem klassischen Telefonat erhalten die Teilnehmer eine Leitung zugeteilt. Dadurch wird sichergestellt, daß die Kapazität der Leitung während der gesamten Dauer des Gespräches für beide Teilnehmer zur Verfügung steht. Die Endstellen und die verwendete Leitung kann aber auch in Gesprächspausen nicht anderweitig verwendet werden.
Um eine Leitung möglichst gut ausnutzen zu können, kann man diese auch mehreren Adaptern zur Verfügung stellen, die dann ihre Daten in Form von Datengruppen, den sogenannten Paketen, über die Leitung schicken. So ist es möglich, daß eine Leitung fast gleichzeitig von mehreren Teilnehmern genutzt werden kann. Die Übertragung eines Pakets beansprucht eine Leitung nur während einer kurzen Zeit. In dieser Zeit wird die Leitung nur von diesem Paket und den dieses Paket austauschenden Adaptern genutzt, doch kurz danach steht sie wieder für andere Adapter zur Verfügung.
Damit die Pakete aber den richtigen Empfänger erreichen können müssen sie nun mit dessen Adresse beschriftet werden. Zur Erleichterung von Antworten und Rückmeldungen sollte auch der Absender angegeben sind.
- Datenpaket
--------------------
/ /|
----------------------/ |
| Von | |
| Adapter 199131432 | |
| An | /
| Adapter 354982224 |/
----------------------
Paketsequenzen
Größere Datenmengen werden in durchnumerierte Pakete verpackt und können so an Hand ihrer Kennzahl vom Empfänger wieder zusammengesetzt werden. Dies wird auch als Sequenzierung, die zugehörige Kennzahl als Sequenznummer, bezeichnet.
- Paketsequenz
.---------------------. .---------------------.
/ /| / /|
.----------------------/ | ----------------------/ |
| Von (0/2)| | | Von (1/2)| |
| Adapter 199131432 | | | Adapter 199131432 | |
| An | / | An | /
| Adapter 354982224 |/ | Adapter 354982224 |/
'----------------------' '----------------------'
Realisierung (IP )
Bei IP heißen die Pakete Fragmente. Sie enthalten keine Sequenznummer. Das folgende Bild zeigt den Aufbau eines IP -Fragmentkopfes. Darin ist “Source Address ” und “Destination Address ” die Adresse des Empfängers bzw. des Absenders. Für beide Bitmuster gibt es jeweils 2³² mögliche Kombinationen.
Auf den Kopf folgen dann die zu transportierenden Daten, und zwar so, daß das gesamte Fragment insgesamt soviel Oktette enthält, wie in “Total Length ” angegeben ist.
- IP fragment (Beispiel) nach RFC 791
Bit
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
| | |
|Ver= 4 |IHL= 5 |Type of Service| Total Length = 21 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| | |
| Identification = 111 |Flg=0| Fragment Offset = 0 |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| | |
| Time = 123 | Protocol = 1 | header checksum |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| |
| source address |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| |
| destination address |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
Data
IP -Adressen
Eine IP-Adresse wird oft im Format "〈Oktett3 〉.〈Oktett2 〉.〈Oktett1 〉.〈Oktett0 〉" durch Angabe ihrer vier, durch einen Punkt getrennten, Oktette angegeben.
Die 2³² möglichen Adressen werden zur besseren Organisation des Transports gemäß des RFC 1517
, RFC 1518
, RFC 1519
und RFC 1520
in Bereiche unterteilt. Ein Bereich wird zunächst durch die Anzahl der ihn kennzeichnenden Bits benannt. So meint man mit dem /8-Bereich "127.0.0.0/8" dasjenige Teilnetz, dessen erste 8 Bit gleich 127 sind. Das sogenannte Präfix "/8" legt die Subnetzmaske "255.0.0.0" fest. Eine »1« in der binären Darstellung der Subnetzmaske kennzeichnet den Teil der 32 Bit, der die Adresse des Subnetzes festlegt, eine »0« kennzeichnet den Teil, der die Adresse eines einzelnen Adapters festlegt.
Netze mit dem Präfix »/8«, »/16« und »/24« nennt man auch Netze der Klasse A, Klasse B bzw. Klasse C.
Eine IP-Adresse mit vier Zahlen kann auch durch eine einzige Zahl angegeben werden. Dazu werden die acht Bit jedes Oktett im Binärsystem ohne Vorzeichen interpretiert und die sich ergebenden vier Zahlen als Ziffern in einem 256er System ohne Vorzeichen. So wird aus der IP-Adresse 130.133.1.46 beispielsweise die Zahl 130 · 4294967296 + 133 · 16777216 + 1 · 256 + 46 = 2181038080 + 8716288 + 256 + 46 = 2189754670. Diese Zahlen können in den meisten Fällen auch an Stelle der Angabe mit Punkten verwendet werden, wie etwa in http://2189754670.
Lokale Schleifen
Die Adressen des als Beispiel gewählten Bereichs »127.0.0.0/8« sind übrigens für die „lokale Schleife“ reserviert, also bezeichnen in der Regel den Absender, der sich so selber adressieren kann. Insbesondere die Adresse »127.0.0.1« ist für diesen Zweck üblich. Pakete mit solchen Adressen als Empfänger werden nicht im Netz weitergeleitet.
- / IP-Kennzahlen verstehen
- Welcher Rechner wird mit der URI http://2130706433/ angesprochen?
Verbindungen
Ist es durch das Protokoll gesichert, daß Pakete auch empfangen werden, so spricht man von einer Verbindung oder einer verbindungsorientierten Kommunikation. Diese Sicherung kann beispielsweise dadurch erfolgen, daß der Empfänger den Erhalt eines Paketes durch Rücksendung eines weiteren Paketes bestätigt. Wird keine Empfangsbestätigung erhalten, so kann ein Paket erneut verschickt werden.
Werden Pakete ohne Verbindung übertragen, so spricht man auch von verbindungsfreier Kommunikation. Dann kann der Absender sich des Empfanges nicht sicher sein. Der Empfänger könnte aber unter Umständen vermißte Pakete erneut anfordern.
Verschachtelungen
Um Daten an ein bestimmtes Fach zu schicken, kann ein entsprechend beschriftetes Paket innerhalb eines größeren Pakets transportiert werden. Das umhüllende Paket enthält dann die Adresse der Zieladapters. Dort angekommen wird es geöffnet und dem enthaltene Pakete alsdann die Information über das Zielfach entnommen.
- Paketverschachtelung
.-------------------------------------.
/ /|
/ / |
/ / |
. ------------------------------------. |
| Von Adapter 199131432 /| | |
| An Adapter 354982224 ------' | | |
| | Von Fach 521 | | | |
| | An Fach 23 | | | |
| | | / | .
| | |/ | /
| ----------------------' | /
| |/
'-------------------------------------'
TCP
Die Paketverschachtelung wird bei TCP/IP dadurch realisiert, daß das zu transportieren TCP -Paket als zu transportierender Inhalt in einem IP -Paket übertragen wird.
Beim TCP/IP -Protokoll erfolgt die Numerierung der Pakete während der Adapter-zu-Adapter-Übertragung nicht durch das grundlegende IP -Protokoll, sondern erst bei der Fach-zu-Fach-Übertragung durch das darauf aufbauende TCP -Protokoll.
- TCP Header Format
Bit
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
| | |
| Source Port | Destination Port |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| |
| Sequence Number |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| |
| Acknowledgment Number |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
|-|-|-|-|-|-|-|-|-|-|G|K|H|T|N|N|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| | |
| Checksum | Urgent Pointer |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| Options | Padding |
| | |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
| |
| data |
|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
Man sieht gleich am Anfang die beiden wichtigen Angaben der Kennzahlen des Quell- und des Zielfaches. Die Sequenznummer erlaubt es, die erhaltenen Pakete wieder in der richtigen Reihenfolge zusammenzusetzen. Wenn der Empfänger innerhalb einer gewissen Zeitspanne nicht mit einer Anerkennung der erhaltenen Daten antwortet, kann das Paket erneut übertragen werden. Der Anwender von TCP erhält dadurch effektiv eine (virtuelle) sichere serielle Verbindung.
- aus RFC
793
- The TCP must recover from data that is damaged, lost, duplicated, or delivered out of order by the internet communication system. This is achieved by assigning a sequence number to each octet transmitted, and requiring a positive acknowledgment (ACK) from the receiving TCP. If the ACK is not received within a timeout interval, the data is retransmitted. At the receiver, the sequence numbers are used to correctly order segments that may be received out of order and to eliminate duplicates. Damage is handled by adding a checksum to each segment transmitted, checking it at the receiver, and discarding damaged segments.
UDP
Wenn es reicht, ohne Verbindung, ohne weitere Sicherung (außer einer Prüfsumme) und ohne Serialisierung einen kleinen Datenblock zu verschicken, kann ein Datagramm per UDP verschickt werden. Das dazugehörige RFC 768 ist vergleichsweise kurz und einfach.
TCP/IP und das Internetz
Die häufig anzutreffende Verschachtelung eines TCP -Pakets in einem IP -Paket wird auch zusammenfassend als TCP/IP bezeichnet und kennzeichnet die heutige Internetz-Technik. Rechner, die auf diese Weise kommunizieren kann man auch als ein Internetz (englisch "internet ") bezeichnen. Wenn LAN-Rechner mit TCP/IP untereinander kommunizieren, so spricht man auch von einem Intranetz (englisch "intranet ").
Den weltweiten Zusammenschluß von Netzen, deren Rechner mit IP untereinander Daten austauschen können, bezeichnet man auch als „das Internetz“. (Der Begriff “internet ” wird auch im RFC 1462
angesprochen.)
Relevante RFCs
- Address Allocation for Private Internets
1918