26.12.2014 Aufrufe

IPv4 und IPv6 - Informatik 4

IPv4 und IPv6 - Informatik 4

IPv4 und IPv6 - Informatik 4

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Rheinisch-Westfälische Technische Hochschule Aachen<br />

Lehrstuhl für <strong>Informatik</strong> IV<br />

Prof. Dr. rer. nat. Otto Spaniol<br />

<strong>IPv4</strong> <strong>und</strong> <strong>IPv6</strong><br />

Proseminar: Internetprotokolle für die<br />

Multimediakommunikation<br />

Michael Schmitz<br />

Matrikelnummer: 234902<br />

Betreuung:<br />

Mesut Günes<br />

Lehrstuhl für <strong>Informatik</strong> IV, RWTH Aachen


2 INHALTSVERZEICHNIS<br />

Inhaltsverzeichnis<br />

1 Einleitung 6<br />

2 Gr<strong>und</strong>lagen 7<br />

2.1 Eine kurze Geschichte des Internets . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 Klärung wichtiger Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.3 Das ISO-OSI-Referenz <strong>und</strong> das TCP/IP-Schichtenmodell . . . . . . . . . . . . . . . 10<br />

2.3.1 Das ISO-OSI-Referenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.3.2 TCP/IP-Schichtenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

3 Das Internet Protokoll 16<br />

3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

3.1.1 Allgemeines über <strong>IPv4</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

3.1.2 <strong>IPv4</strong>-Protokollkopfformat . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

3.1.3 Optionen unter <strong>IPv4</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.1.4 Aufbau einer <strong>IPv4</strong>-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

3.1.5 Spezielle <strong>IPv4</strong>-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3.1.6 Teilnetze <strong>und</strong> Teilnetzwerkmasken . . . . . . . . . . . . . . . . . . . . . . . 26<br />

3.1.7 Klassenlose Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3.1.8 Fragmentierung von IP-Datagrammen . . . . . . . . . . . . . . . . . . . . . 29<br />

3.1.9 Probleme <strong>und</strong> Schwächen des <strong>IPv4</strong> . . . . . . . . . . . . . . . . . . . . . . 31<br />

3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

3.2.1 Allgemeines über <strong>IPv6</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

3.2.2 <strong>IPv6</strong>-Protokollkopfformat . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.2.3 <strong>IPv6</strong>-Erweiterungsprotokollköpfe . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.2.4 Aufbau einer <strong>IPv6</strong>-Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

3.2.5 Fragmentierung von <strong>IPv6</strong>-Datagrammen & Path MTU Discovery . . . . . . 42


INHALTSVERZEICHNIS 3<br />

3.3 Wesentliche Unterschiede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

3.4 Umstellung von <strong>IPv4</strong> auf <strong>IPv6</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

4 Zusammenfassung 47


4 ABBILDUNGSVERZEICHNIS<br />

Abbildungsverzeichnis<br />

1 APRANET-Wachstum : (a) Dezember 1969, (b) July 1970, (c) März 1971, (d) April<br />

1971, (e) September 1972. [TA02] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2 ISO-OSI-Referenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

3 Vergleich ISO-OSI-Referenzmodell <strong>und</strong> TCP/IP-Modell . . . . . . . . . . . . . . . 13<br />

4 TCP/IP-Schichtenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

5 Das <strong>IPv4</strong>-Paketformat:IP-Datagramm [RFC791] . . . . . . . . . . . . . . . . . . . 17<br />

6 <strong>IPv4</strong>-Protokollkopfformat [RFC791] . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

7 Type of Service - Aufbau nach [RFC791] . . . . . . . . . . . . . . . . . . . . . . . 19<br />

8 <strong>IPv4</strong>-Adressklassen [RFC791]: Klasse A, B, C, D, E . . . . . . . . . . . . . . . . . 23<br />

9 IP-Adresszuweisung: Jedes Interface hat eine eindeutige Adresse . . . . . . . . . . . 24<br />

10 Fragmentierung von <strong>IPv4</strong>-Datagrammen [RFC791] . . . . . . . . . . . . . . . . . . 29<br />

11 Mehrmalige Fragmentierung von <strong>IPv4</strong>-Datagrammen [RFC791] . . . . . . . . . . . 30<br />

12 Wachstum des Internets [isc.org]: Anzahl der Hosts von 1991 bis 2002 . . . . . . . . 31<br />

13 Allgemeine Form eines <strong>IPv6</strong>-Pakets [RFC2460] . . . . . . . . . . . . . . . . . . . . 33<br />

14 <strong>IPv6</strong> Protokollkopfformat [RFC2460] . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

15 Traffic Class - Aufbau nach RFC 2474 [RFC2474] . . . . . . . . . . . . . . . . . . . 34<br />

16 Hop-by-Hop Options Extension Header [RFC2460] . . . . . . . . . . . . . . . . . . 35<br />

17 Routing Extension Header [RFC2460] . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

18 Fragment Extension Header [RFC2460] . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

19 Authentication Header [RFC2402] . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

20 Encapsulating Security Payload Erweiterungsprotokollkopf [RFC2406] . . . . . . . 38<br />

21 Destination Options Extension Header [RFC2460] . . . . . . . . . . . . . . . . . . 39<br />

22 Fragmentierung von <strong>IPv6</strong>-Datagrammen [RFC1981] . . . . . . . . . . . . . . . . . 44<br />

23 Dual-Stacks: Mischbetrieb von <strong>IPv6</strong> <strong>und</strong> <strong>IPv4</strong> [ct1601] . . . . . . . . . . . . . . . . 46<br />

24 <strong>IPv6</strong> over <strong>IPv4</strong>: zwei <strong>IPv6</strong>-Hosts tauschen Daten über einen per Multicast aufgebauten<br />

Tunnel durch das <strong>IPv4</strong>-Netz aus [ct1601] . . . . . . . . . . . . . . . . . . . . . 46


TABELLENVERZEICHNIS 5<br />

Tabellenverzeichnis<br />

1 Eine <strong>IPv4</strong>-Adresse in Punkt-Dezimal-Notation, gepunkteter hexadezimaler <strong>und</strong> in<br />

binärer Schreibweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

2 Länge des Netzwerk- <strong>und</strong> Hostanteils <strong>und</strong> Maximale Anzahl der Netzwerke <strong>und</strong><br />

Hosts in der jeweiligen <strong>IPv4</strong>-Adressklasse . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3 Die <strong>IPv4</strong>-Standardnetzwerkmasken der Klasse A, B <strong>und</strong> C. . . . . . . . . . . . . . . 25<br />

4 Drei Blöcke des IP-Adressraums sind für private Netzwerke reserviert. . . . . . . . . 26<br />

5 Klassenlose Adressierung (CIDR): Aufteilung der verbliebenen Klasse C in vier Zonen 28<br />

6 Eine <strong>IPv6</strong>-Adresse in binärer Schreibweise, in Punkt-Dezimal- <strong>und</strong> in Doppelpunkt-<br />

Hexadezimal-Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

7 Aufteilung des <strong>IPv6</strong>-Adressraumes [RFC2373] . . . . . . . . . . . . . . . . . . . . 42


6 1 EINLEITUNG<br />

1 Einleitung<br />

Das Internet, eine Sammlung von Teilnetzen, die miteinander verb<strong>und</strong>en sind <strong>und</strong> die ”<br />

Welt zu einem<br />

Dorf“ machen. Es gibt keine wirkliche Netzstruktur – das Rückgrat des Internets sind mehrere<br />

größere Backbones. Diese Backbones werden aus schnellen Routern <strong>und</strong> Leitungen mit sehr hoher<br />

Bandbreite gebildet. Netzwerke von Universitäten, Behörden, Service-Providern <strong>und</strong> Unternehmen<br />

werden zu größeren regionalen Netzwerken zusammengeschlossen <strong>und</strong> sind an die Backbones angeschlossen.<br />

Und genau dort braucht man ein Protokoll, welches die verschiedensten Netze zu einem<br />

zusammenschließt. Das Internet Protokoll ist der Leim, der alles zusammenhält.<br />

Jeder der sich mit Computer beschäftigt kennt es, jeder der schon einmal eine Verbindung mit dem<br />

Internet hergestellt hat kommt nicht an ihm vorbei. Doch wer hat sich wirklich mit dem Internet Protokoll<br />

beschäftigt Jeder kennt seine äußere Erscheinungsform: Die Adresse, wie etwa 194.95.176.70<br />

oder gar schon 1234:5678:9ABC:DEF0:0123:4567:89AB:CDEF<br />

Jeder weiß auch sicherlich über die ”<br />

Adressenknappheit“ Bescheid <strong>und</strong> das ein neues Protokoll, das<br />

<strong>IPv6</strong> oder IPng, das alte <strong>IPv4</strong> ablösen soll.<br />

In dieser Ausarbeitung soll ein Einblick in diese zwei gr<strong>und</strong>legenden Protokolle des Internets ermöglicht<br />

werden.


7<br />

2 Gr<strong>und</strong>lagen<br />

2.1 Eine kurze Geschichte des Internets<br />

Der Krieg ist der Vater aller Dinge“ (Zit. Heraklit)<br />

”<br />

Der kalte Krieg“ erlangte Ende der 1960er Jahre seinen Höhepunkt. Das US-Verteidigungsministerium<br />

(Department of Defense - DoD) forderte eine Netzwerktechnologie, die in einem hohen Maß<br />

”<br />

gegenüber Ausfällen sicher ist. Das Netz sollte dazu in der Lage sein, auch im Falle eines Atomkrieges<br />

weiter zu operieren. Eine Datenübermittlung über Telefonleitungen war zu diesem Zweck nicht geeignet,<br />

da diese gegenüber Ausfällen zu verletzlich waren <strong>und</strong> auch heute noch sind. Aus diesem Gr<strong>und</strong><br />

beauftragte das US-Verteidigungsministerium die Advanced Research Projects Agency (ARPA) mit<br />

der Entwicklung einer zuverlässigen Netztechnologie. 1957 als Reaktion auf den Start des Sputniks<br />

durch die UdSSR gegründet <strong>und</strong> hatte die ARPA die Aufgabe Technologien zu entwickeln, die für das<br />

Militär von Nutzen sind. Zwischenzeitlich wurde die ARPA in Defense Advanced Research Projects<br />

Agency (DARPA) umbenannt, da ihre Interessen primär militärischen Zwecken dienten. Die ARPA<br />

war keine Organisation, die Wissenschaftler <strong>und</strong> Forscher beschäftigte, sondern verteilte Aufträge an<br />

Universitäten <strong>und</strong> Forschungsinstitute.<br />

Um die geforderte Zuverlässigkeit des Netzes zu erreichen, fiel die Wahl darauf, das Netz als ein<br />

paketvermitteltes Netz (packet-switched network) zu gestalten. Bei der Paketvermittlung werden zwei<br />

Partner während der Kommunikation nur virtuell miteinander verb<strong>und</strong>en. Die zu übertragenden Daten<br />

werden vom Absender in Stücke variabler oder fester Länge zerlegt <strong>und</strong> über die virtuelle Verbindung<br />

übertragen; vom Empfänger werden diese Stücke nach dem Eintreffen wieder zusammengesetzt.<br />

Schon im Dezember 1969 wurde von der University of California Los Angeles (UCLA), der University<br />

of California Santa Barbara (UCSB), dem Stanford Research Institute (SRI) <strong>und</strong> der University<br />

of Utah (UTAH) ein experimentelles Netz, das ARPANET, mit vier Knoten in Betrieb genommen.<br />

Diese vier Universitäten wurden von der ARPA gewählt, da sie bereits eine große Anzahl von ARPA-<br />

Verträgen hatten. Abbildung 1 zeigt das schnelle Wachstum des ARPA-Netzes. Es überspannte bald<br />

ein großes Gebiet der Vereinigten Staaten von Amerika. In der nächsten Zeit entstanden viele paketvermittelnde<br />

Netzwerke mit zum Teil unterschiedlichen Architekturen. Jedes dieser Netzwerke hatte<br />

sein eigenes Protokoll. Mit der Zeit <strong>und</strong> dem Wachstum des ARPANET wurde klar, dass die bis dahin<br />

gewählten Protokolle nicht mehr für den Betrieb eines größeren Netzes, das auch mehrere (heterogene)<br />

Teilnetze miteinander verband, geeignet war. Aus diesem Gr<strong>und</strong> wurden schließlich weitere<br />

Forschungsarbeiten initiiert.Die beiden Wissenschaftler Vinton Cerf <strong>und</strong> Robert Kahn erfanden ein<br />

netzübergreifendes Protokoll namens ”<br />

TCP/IP“ (Transmission Control Protocol / Internet Protocol).<br />

Das TCP/IP-Protokoll wurde von Cerf <strong>und</strong> Kahn anfangs als ein Protokoll betrachtet, doch es wurde<br />

später in seine heutigen zwei Teile zerlegt, dem ”<br />

TCP“- <strong>und</strong> dem ”<br />

IP“-Protokoll. Das IP-Protokoll<br />

wird in dieser Ausarbeitung behandelt. Im Mai 1974 hatten Cerf <strong>und</strong> Kahn ihre erste Arbeit über<br />

TCP/IP veröffentlicht. Zudem wurde auch das bekannte TCP/IP-Modell entwickelt, welches im Kapitel<br />

2.3.2 behandelt wird. TCP/IP wurde mit der Zielsetzung entwickelt, mehrere heterogene Netze


8 2 GRUNDLAGEN<br />

Abbildung 1: APRANET-Wachstum : (a) Dezember 1969, (b) July 1970, (c) März 1971, (d) April<br />

1971, (e) September 1972. [TA02]<br />

zur Datenübertragung miteinander zu verbinden. Vor allem sollte es eine breite Unterstützung für<br />

künftige Anwendungen ermöglichen. Um die Einbindung der TCP/IP-Protokolle in das ARPANET<br />

zu forcieren beauftragte die DARPA die Firma Bolt, Beranek & Newman (BBN) <strong>und</strong> die University<br />

of California at Berkeley zur Integration von TCP/IP in Berkeley UNIX. Dies bildete auch den<br />

Gr<strong>und</strong>stein des Erfolges von TCP/IP in der UNIX-Welt.<br />

Im Jahr 1983 wurde das ARPANET schließlich von der Defense Communications Agency (DCA),<br />

welche die Verwaltung des ARPANET von der ARPA übernahm, aufgeteilt. Der militärische Teil des<br />

ARPANET, wurde in ein separates Teilnetz, das MILNET abgetrennt, das durch streng kontrollierte<br />

Gateways vom Rest des ARPANET - dem Forschungsteil - separiert wurde.<br />

Nachdem TCP/IP das einzige offizielle Protokoll des ARPANET wurde, nahm die Zahl der angeschlossenen<br />

Netze <strong>und</strong> Hosts rapide zu. Viele bestehende Netze wurden an das APRANET angeschlossen.<br />

Das ARPANET wurde von Entwicklungen, die es selber hervorgebracht hatte, überrannt. Es existiert<br />

in seiner ursprünglichen Form heute nicht mehr, das MILNET ist aber noch in Betrieb.


2.2 Klärung wichtiger Begriffe 9<br />

Die Sammlung von Netzen, die das ARPANET darstellte, wurde zunehmend als Netzverb<strong>und</strong> betrachtet.<br />

Dieser Netzverb<strong>und</strong> wird heute allgemein als das Internet bezeichnet <strong>und</strong> basiert immer noch auf<br />

dem IP-Protokoll. Doch seitdem das Internet nicht mehr nur etwas für Wissenschaftler <strong>und</strong> Freaks<br />

ist, ist es Anfang der 1990er vor allem mit der Erfindung des WorldWideWeb geradezu explodiert.<br />

Jedes Jahr verdoppelte sich die Zahl der angeschlossenen Hosts. Jetzt ist man an einen Punkt angekommen,<br />

wo das ”<br />

gute, alte“ Internet Protokoll Version 4 langsam ausgedient hat <strong>und</strong> ein neues in<br />

seine Fußstapfen treten soll: <strong>IPv6</strong>.<br />

2.2 Klärung wichtiger Begriffe<br />

Im Folgenden wird eine Terminologie eingeführt, wie sie u.a. in [RFC2460] benutzt wird. Weiterhin<br />

werden noch gr<strong>und</strong>legende Begriffe definiert, die in dieser Ausarbeitung benutzt werden <strong>und</strong> die<br />

nicht immer eindeutig sind. Nicht alle Bücher <strong>und</strong> Dokumente, besonders die ” Älteren“ verwenden<br />

zwangsläufig diese Terminologie <strong>und</strong> entsprechend sind unter Umständen beim Lesen dieser Literatur<br />

”<br />

mentale Abbildungen“ notwendig. Zudem werden in dieser Ausarbeitung soweit möglich <strong>und</strong><br />

sinnvoll die deutschen Begriffe verwendet.<br />

Protokoll: Protokolle sind Regeln, die den Nachrichtenaustausch – oder allgemeiner das Verhalten<br />

– zwischen (Kommunikations)Partnern regeln ( ”<br />

Protocols are formal rules of behaviour“).<br />

Die Verletzung eines vereinbarten Protokolls erschwert die Kommunikation oder macht sie sogar<br />

gänzlich unmöglich. Ein Beispiel für ein Protokoll ”<br />

aus dem täglichen Leben“ ist z.B. der<br />

Funkverkehr: Die Kommunikationspartner bestätigen den Empfang einer Nachricht mit ”<br />

Roger“<br />

<strong>und</strong> leiten einen Wechsel der Sprechrichtung mit Over ein. Beendet wird die Verbindung<br />

schließlich mit ”<br />

Over and Out“.<br />

Knoten: Ein Gerät welches ein Internet Protokoll (<strong>IPv4</strong> <strong>und</strong>/oder <strong>IPv6</strong>) implementiert, heißt Knoten<br />

(Node).<br />

Router: Ein Knoten, der IP-Datagramme weiterleitet, die nicht explizit an ihn selbst adressiert sind,<br />

heißt Router. Er ”<br />

versucht“ Pakete in Richtung des Ziels weiterzuleiten, wobei man sich in der<br />

Regel innerhalb eines logischen Netzes befindet <strong>und</strong> die Weiterleitung aufgr<strong>und</strong> einer Auswertung<br />

der Adresse realisiert ist.<br />

Host: Jeder Knoten, der kein Router ist, heißt Host.<br />

Link: Ein Kommunikationskanal, über den Knoten miteinander kommunizieren können (z.B. das<br />

Ethernet, PPP links, X.25 usw.), heißt Link.<br />

Neighbors: Alle Knoten, die an demselben Link angeschlossen sind, heißen Neighbors (Nachbarn).<br />

Interface: Die Schnittstelle, über die ein Knoten an einen Link angeschlossen ist, heißt Interface.


10 2 GRUNDLAGEN<br />

IP-Adresse: Die IP-Adresse identifiziert ein Interface oder eine Menge von Interfaces.<br />

Paket: Eine Bitfolge bestehend aus einem Protokollkopf (Header) <strong>und</strong> den Nutzdaten, heißt Paket.<br />

IP-Datagramm: Ein Paketformat, das vom Internet Protokoll definiert ist, heißt IP-Datagramm. IP-<br />

Datagramme sind also nichts anderes als in einem ”<br />

TCP/IP-Netzwerk“ übertragene Pakete.<br />

IP-Paket <strong>und</strong> IP-Datagramm sind äquivalent.<br />

Link MTU: (link maximum transmission unit) Die maximale Paketgröße in Bytes (8 Bits) die auf<br />

einem Link befördert werden kann, heißt Link MTU.<br />

Path MTU: (path maximum transmission unit) Die minimale Link MTU aller Links zwischen einem<br />

Quellknoten <strong>und</strong> einem Zielknoten, heißt Path MTU.<br />

NAT: (Network Address Translation) NAT setzt IP-Adressen transparent in andere IP-Adressen um.<br />

Hier wird der private Adressbereich im LAN auf eine öffentliche IP-Adresse (z.B. vom Provider<br />

zugewiesen) umgesetzt <strong>und</strong> erlaubt so direkt auf Dienste außerhalb des LANs (z.B. des<br />

Internets) zuzugreifen.<br />

MAC-Adresse: (Media Access Control-Adresse) Die MAC-Adresse ist eine eindeutige <strong>und</strong> einmalig<br />

vergebene Hardware-Adresse einer Komponente im Netz, die Datenpakete selbst generieren<br />

kann (z.B. Netzwerkkarte).<br />

MAC-Adressformat: 6 Byte in Hex-Code, getrennt durch Doppelpunkt. z.B. 00:80:63:01:A2:B3<br />

DHCP: (Dynamic Host Configuration Protocol) Das DHCP dient dazu, Einstellungen in einem Netzwerk<br />

zentral von einem Server aus zu vergeben, statt diese dezentral an den einzelnen Arbeitsplatzrechnern<br />

zu konfigurieren. Ein mit DHCP konfigurierter Client verfügt selbst nicht über<br />

statische Adressen, sondern konfiguriert sich voll <strong>und</strong> ganz selbstständig nach den Vorgaben<br />

des DHCP-Servers.<br />

DNS: Domain Name System. Das Internet verwendet zur Adressierung IP-Adressen, die maschinell<br />

effizient verarbeitet werden können aber für Menschen nur schwer zu merken sind. Das Domain<br />

Name System (DNS) ist der Unterbau, die nutzerfre<strong>und</strong>liche Namen in entsprechende Adressen<br />

abbildet. So braucht man sich lediglich z.B. www.deutschland.de anstelle von 194.95.176.70 zu<br />

merken.<br />

2.3 Das ISO-OSI-Referenz <strong>und</strong> das TCP/IP-Schichtenmodell<br />

2.3.1 Das ISO-OSI-Referenzmodell<br />

1979 entwickelte die International Standards Organization (ISO) als Basis für eine internationale<br />

Standardisierung der verschiedenen Protokolle ein Schichtenmodell. Es teilt die komplexe Aufgabe


2.3 Das ISO-OSI-Referenz <strong>und</strong> das TCP/IP-Schichtenmodell 11<br />

der Kommunikation zwischen verschiedenen Rechnern in sieben Schichten auf. Dieses Modell wird<br />

als OSI-Modell (Open Systems Interconnection) bezeichnet. Offiziell heißt dieses Modell ISO-OSI-<br />

Referenzmodell. Abbildung 2 stellt dieses Modell dar.<br />

Schicht<br />

(Layer)<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

Anwendungssystem<br />

Transportsystem<br />

Host A<br />

Anwendungsschicht<br />

besteht aus den Anwendungen mit<br />

denen man das Netzwerk nutzen kann<br />

Darstellungsschicht<br />

standardisiert das Format der Daten<br />

auf dem Netzwerk<br />

Sitzungsschicht<br />

verwaltet die Verbindungen zwischen<br />

den Anwendungen<br />

Transportschicht<br />

garantiert die fehlerfreie<br />

Datenübertragung durch<br />

Netzwerkschicht<br />

verwaltet die Verbindungen zwischen<br />

den Rechnern im Netzwerk für die<br />

höheren Schichten<br />

Sicherungsschicht<br />

sorgt für die zuverlässige Übertragung<br />

der Daten über die physikalischen<br />

Verbindungen<br />

Bitübertragungsschicht<br />

definiert die physikalischen<br />

Eigenschaften der Übertragungswege<br />

(e)<br />

(f)<br />

(g)<br />

( Transportsprotokoll)<br />

Subnetz<br />

Router A Router B<br />

Bitübertragungsschicht<br />

(j)<br />

Netzwerkschicht<br />

Protokolle<br />

(Protocols)<br />

(Anwendungsprotokoll)<br />

( Darstellungsprotokoll)<br />

( Sitzungsprotokoll)<br />

(h)<br />

(i)<br />

Sicherungsschicht<br />

Network<br />

Layer<br />

Data Link<br />

Layer<br />

Physical<br />

Layer<br />

Host B<br />

Application Layer<br />

Presentation Layer<br />

Session Layer<br />

Transport Layer<br />

Network Layer<br />

Data Link Layer<br />

Physical Layer<br />

Application System<br />

Transport System<br />

phys. Medium<br />

Medium<br />

phys. Media<br />

(e)<br />

(f)<br />

(g)<br />

(h)<br />

(i)<br />

(j)<br />

Host/Router-Netzwerkschichtprotokoll<br />

Host/Router-Sicherungsschichtprotokoll<br />

Host/Router-Bitübertragungsschichtprotokoll<br />

Subnetzprotokoll<br />

Subnetzprotokoll<br />

Subnetzprotokoll<br />

Abbildung 2: ISO-OSI-Referenzmodell<br />

Jeder Schicht sind bestimmte, genau definierte Aufgaben zugeordnet. Die einzelnen Schichten werden<br />

im Folgenden kurz beschrieben, wobei die Abbildung 2 fast schon selbsterklärend ist. Das Hauptaugenmerk<br />

liegt aber auf der Netzwerkschicht (network layer), da dort das Internet Protokoll (IP)<br />

einzuordnen ist.<br />

Anwendungsschicht: (application layer) Die Anwendungsschicht enthält eine große Zahl häufig<br />

benötigter Protokolle, die einzelne Programme zur Erbringung ihrer Dienste definiert haben.


12 2 GRUNDLAGEN<br />

Darstellungsschicht: (presentation layer) Die Darstellungsschicht regelt die Darstellung der Übertragungsdaten<br />

in einer von der darüber liegenden Ebene unabhängigen Form, indem sie die<br />

Daten auf eine standardisierte <strong>und</strong> vereinbarte Weise kodiert.<br />

Sitzungsschicht: (session layer) Die Sitzungsschicht ermöglicht den Verbindungsauf- <strong>und</strong> abbau.<br />

Von der Sitzungsschicht wird der Austausch von Nachrichten auf der Transportverbindung geregelt.<br />

Sitzungen können z.B. ermöglichen, ob der Transfer gleichzeitig in zwei oder nur eine<br />

Richtung erfolgen kann. Kann der Transfer jeweils in nur eine Richtung stattfinden, regelt die<br />

Sitzungsschicht, welcher der Kommunikationspartner jeweils an die Reihe kommt.<br />

Transportschicht: (transport layer) Die Transportschicht übernimmt den Transport von Nachrichten<br />

zwischen den Kommunikationspartnern. Die Transportschicht hat die gr<strong>und</strong>legende Aufgaben,<br />

den Datenfluß zu steuern <strong>und</strong> die Unverfälschtheit der Daten sicherzustellen.<br />

Netzwerkschicht: (network layer) Die Netzwerkschicht hat die Hauptaufgabe eine Verbindung zwischen<br />

Knoten im Netzwerk herzustellen. Die Netzwerkschicht soll dabei die übergeordneten<br />

Schichten von den Details der Datenübertragung über das Netzwerk befreien. Eine der wichtigsten<br />

Aufgaben der Netzwerkschicht ist z.B. die Auswahl von Paketrouten bzw. das Routing<br />

von einem Quell- zu einem Zielhost. Die Routen können statisch sein, also sich nur selten<br />

ändern oder hochdynamisch sein <strong>und</strong> für jedes Paket neu für eine optimale Netzauslastung neu<br />

bestimmt werden. Die Streuung von Staus, die bei zu vielen Pakten in einem Teilnetz entstehen<br />

können, ist auch Aufgabe der Vermittlungsschicht. Ein Problem ist es auch das ein Paket<br />

unter Umständen mehrere Netze durchläuft welche die Paketgröße nicht annimmt. Dann muß<br />

die Vermittlungsschicht dafür sorgen, dass das Paket fragmentiert <strong>und</strong> wieder defragmentiert<br />

wird. Hingegen ist bei Broadcast-Netze das Routing-Problem einfach, <strong>und</strong> damit ist die ”<br />

Vermittlungsschicht“<br />

dort dünn oder gar nicht vorhanden.<br />

Sicherungsschicht: (data link layer) Die Aufgabe der Sicherungsschicht ist die gesicherte Übertragung<br />

von Daten. Vom Sender werden hierzu die Daten in Rahmen (frames) aufgeteilt <strong>und</strong><br />

sequentiell an den Empfänger gesendet. Vom Empfänger werden die empfangenen Daten durch<br />

Bestätigungsrahmen quittiert.<br />

Bitübertragungsschicht: (physical layer) Die Bitübertragungsschicht regelt die Übertragung 1 von<br />

Bits über das Übertragungsmedium. Die Festlegungen auf der Bitübertragungsschicht betreffen<br />

im wesentlichen die Eigenschaften des Übertragungsmedium.<br />

2.3.2 TCP/IP-Schichtenmodell<br />

Das TCP/IP-Schichtenmodell wird im Großvater aller Rechnernetze, dem APRANET <strong>und</strong> seinem<br />

Nachfolger, dem Internet, eingesetzt [TA02] <strong>und</strong> wurde schon Mitte der 1970er 2 Jahre entwickelt.<br />

1 Übertragungsgeschwindigkeit, Bit-Codierung, Anschluß, usw.<br />

2 TCP/IP-Modell wurde vor dem ISO-OSI-Modell entwickelt.


2.3 Das ISO-OSI-Referenz <strong>und</strong> das TCP/IP-Schichtenmodell 13<br />

Das Internet besteht ja bekanntlich aus vielen z.T. heterogenen Netzen. Es musste also eine neue Referenzarchitektur<br />

gef<strong>und</strong>en werden, die die Fähigkeit hat, mehrere heterogene Netze nahtlos zusammenzuschließen.<br />

Das bedeutet nichts anderes, als dass Daten eventuell zwischen unterschiedlichen<br />

Rechnern mit unterschiedlichen Betriebssystemen, die sich in unterschiedlichen Netzwerktopologien<br />

mit unterschiedlichen Protokollen befinden, ausgetauscht werden müssen. Das von Cerf <strong>und</strong> Kahn<br />

entwickelte TCP/IP-Protokoll kann die ”<br />

Verbindung“ zwischen heterogenen Netzwerke herstellen.<br />

Ein neues Referenzmodell war entstanden, welches im Gegensatz zu dem ISO-OSI-Referenzmodell<br />

eine Beschreibung der Protokolle ist.<br />

Die Ähnlichkeiten zwischen den beiden Modellen zeigt Abbildung 3. Die verschiedenen Anforderungen<br />

führten letztendlich zu der Wahl eines paketvermittelten Netzes auf der Gr<strong>und</strong>lage einer verbindungslosen<br />

Vernetzungsschicht. Die einzelnen Schichten werden im Folgenden kurz beschrieben.<br />

Application Layer<br />

Presentation Layer<br />

Application Layer<br />

Session Layer<br />

Host-to-Host Transport Layer<br />

Transport Layer<br />

Internet Layer<br />

Network Layer<br />

Network Access Layer<br />

Data Link Layer<br />

TCP/IP-Modell<br />

Physical Layer<br />

ISO/OSI-Referenzmodell<br />

Abbildung 3: Vergleich ISO-OSI-Referenzmodell <strong>und</strong> TCP/IP-Modell<br />

Abbildung 4 zeigt das vierschichtige TCP/IP-Modell. Das Hauptaugenmerk liegt wieder auf der Internetschicht<br />

(internet layer), da dort das Internet Protokoll definiert ist.<br />

Anwendungsschicht: (application layer) Die Anwendungsschicht umfaßt alle höherschichtigen Protokolle<br />

des TCP/IP-Modells. Zu den ersten Protokollen der Anwendungsschicht zählten FTP,<br />

TELNET <strong>und</strong> SMTP. Im Laufe der Zeit kamen zu den etablierten Protokollen viele weitere<br />

Protokolle wie z.B. DNS <strong>und</strong> HTTP hinzu.<br />

Transportschicht: (transport layer) Wie im OSI-Modell ermöglicht die Transportschicht die Kommunikation<br />

zwischen den Quell- <strong>und</strong> Zielhosts. Im TCP/IP-Referenzmodell wurden auf dieser<br />

Schicht zwei Ende-zu-Ende-Protokolle definiert: das Transmission Control Protocol (TCP) <strong>und</strong><br />

das User Datagram Protocol (UDP).


14 2 GRUNDLAGEN<br />

Schicht<br />

(Layer)<br />

4<br />

3<br />

2<br />

Host A<br />

Anwendungsschicht<br />

enthält Anwendungen <strong>und</strong> Prozesse,<br />

die auf das Netzwerk zugreifen<br />

Transportschicht<br />

stellt End-to-End-Datendienste zur<br />

Verfügung<br />

Internetschicht<br />

definiert den Aufbau von<br />

Datagrammen <strong>und</strong> routet Daten<br />

(c)<br />

Router A<br />

Internetschicht<br />

Protokolle<br />

(Protocols)<br />

(a)<br />

(b)<br />

Subnetz<br />

Router B<br />

Internet<br />

Layer<br />

Host B<br />

Application Layer<br />

Host-to-Host<br />

Transport Layer<br />

Internet Layer<br />

1<br />

Netzwerkzugriffsschicht<br />

enthält Routinen für den Zugriff auf<br />

physikalische Netze<br />

(d)<br />

Netzwerkschicht<br />

Network<br />

Layer<br />

Network Access<br />

Layer<br />

phys. Medium<br />

Medium<br />

phys. Media<br />

(a)<br />

(b)<br />

(c)<br />

(d)<br />

Anwendungsschichtprotokoll (FTP, TELNET,...)<br />

TCP (Transmission Transport Protocol)<br />

UDP (User Datagram Protocol)<br />

Internet Protocol<br />

Netzwerkzugriffsschichtprotokoll<br />

Abbildung 4: TCP/IP-Schichtenmodell<br />

Internetschicht: (internet layer) Die Internetschicht definiert nur ein Protokoll, das Internet Protokoll<br />

(IP - Internet Protocol) [RFC791, RFC2460], das alle am Netzwerk beteiligten Rechner<br />

verstehen können. Wie schon erwähnt ist sie eine verbindungslose Vernetzungsschicht“,<br />

”<br />

welche wie die Sicherheitsnadel, die die gesamte Architekur zusammenhält“[TA02] ist. Die<br />

”<br />

Internetschicht hat die Aufgabe IP-Datagramme richtig <strong>und</strong> unabhängig vom jeweiligen Netz<br />

zuzustellen.<br />

In [TA02] wird eine Analogie zur Internetschicht beschrieben:<br />

Eine Analogie dazu wäre die gelbe Post. Eine Person wirft eine Reihe von Auslandsbriefen in<br />

”<br />

einem Land in einen Briefkasten, <strong>und</strong> mit ein wenig Glück werden die meisten an die richtige<br />

Adresse im Zielland zugestellt. Die Briefe bereisen wahrscheinlich eine oder mehrere internationale<br />

Sammelstellen (Gateways) auf ihrem Weg, was für den Benutzer allerdings transparent<br />

ist. Dass jedes Land (d.h. Netz) seine eigenen Briefmarken, bevorzugte Umschlagsformate <strong>und</strong><br />

Zustellungsregeln hat, ist dem Benutzer auch egal.“<br />

Das Routing der Pakete spielt eine wichtige Rolle, ebenso das Vermeiden von Überlastungen.<br />

Das Internet Control Message Protocol (ICMP) [RFC792, RFC2463] ist fester Bestandteil jeder<br />

IP-Implementierung <strong>und</strong> dient zur Übertragung von Diagnose- <strong>und</strong> Fehlerinformationen für das<br />

Internet Protokoll.<br />

Netzwerkzugriffsschicht: (network access layer) Unterhalb der Internetschicht befindet sich im


2.3 Das ISO-OSI-Referenz <strong>und</strong> das TCP/IP-Schichtenmodell 15<br />

TCP/IP-Modell eine große Definitionslücke. Aber sie beinhaltet sehr hardwarenahe Dienste,<br />

z.B. Netzwerkkartentreiber. Das Referenzmodell sagt auf dieser Ebene nicht viel darüber aus,<br />

was hier passieren soll. Festgelegt ist lediglich, dass zur Übermittlung von IP-Paketen ein Host<br />

über ein bestimmtes Protokoll an ein Netz angeschlossen werden muß. Dieses Protokoll ist im<br />

TCP/IP-Modell nicht weiter definiert <strong>und</strong> weicht von Netz zu Netz <strong>und</strong> Host zu Host ab. Das<br />

TCP/IP-Modell macht an dieser Stelle vielmehr Gebrauch von bereits vorhandenen Protokollen,<br />

wie z.B. dem Ethernet (IEEE 802.3).


16 3 DAS INTERNET PROTOKOLL<br />

3 Das Internet Protokoll<br />

In der Einleitung wurde die Behauptung aufgestellt, dass das Internet Protokoll der Leim ist, der<br />

das Internet zusammenhält. Fakt ist, dass das aktuelle Internet Protokoll (<strong>IPv4</strong>) seit Jahrzehnten erfolgreich<br />

im Einsatz ist. Dem Internet Protokoll ist es zu verdanken, dass das Internet so erfolgreich<br />

wurde. Denn selbst einschneidende Änderungen von Hardwaretechnologien <strong>und</strong> der Internet-Boom<br />

in den 1990ern <strong>und</strong> vor allem die Fähigkeit heterogene Netzwerke zusammenzuschließen hat das Internet<br />

Protokoll souverän gemeistert. Die Heterogenität ist es auch, was das Internet heute ausmacht.<br />

Das Internet Protokoll wurde von Anfang an mit Blick auf Netzverb<strong>und</strong> ausgelegt. Es definiert ein<br />

einheitliches Paketformat <strong>und</strong> einen Pakettransfermechanismus um Daten über heterogene Netzwerke<br />

zu übertragen. Dabei benutzt es sogenannte IP-Adressen, welche unabhängig vom jeweiligen Netzwerk<br />

sind, <strong>und</strong> über denen es Anwendungen <strong>und</strong> Protokolle höheren Schichten des TCP/IP-Modells<br />

möglich ist, selbst über heterogene Netzwerke miteinander zu kommunizieren. In diesem Kapitel<br />

wird das Internet Protokoll Version 4 (<strong>IPv4</strong>) <strong>und</strong> sein Nachfolger das Internet Protokoll Version 6<br />

(<strong>IPv6</strong>) dargestellt <strong>und</strong> beschrieben. Das <strong>IPv4</strong> wird nicht durch IPv5 ersetzt, weil die Versionnummer<br />

5 schon an ein experimentelles Protokoll vergeben war. Das IPv5 war an ein Protokoll für Echtzeit-<br />

Ströme, das ST-2 (Internet Stream Protocol Version 2) hieß <strong>und</strong> von RSVP (ReSerVation Protocol<br />

zur Bandbreitenanforderung bei Routern) abgelöst wurde, vergeben. ST-2 sollte einst Audio- <strong>und</strong> Videosignale<br />

per Multicast übertragen können <strong>und</strong> die Bandbreiten-Reservierungsvorteile von ATM in<br />

IP-Netze bringen, gelang aber nie zur Serienreife.<br />

3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong><br />

3.1.1 Allgemeines über <strong>IPv4</strong><br />

Das Internet Protokoll Version 4 (<strong>IPv4</strong>) wurde in den 1970er spezifiziert <strong>und</strong> im Jahr 1981 in [RFC791]<br />

standardisiert <strong>und</strong> ist die Basis des heutigen Internets. Die Spezifikation wurde in vielen Punkten im<br />

Lauf der Zeit den Erfordernissen angepasst.<br />

Das Internet Protokoll empfängt von der Transportschicht im sendenden Host ein Segment, verkapselt<br />

jenes in ein bestimmtes Paketformat, dem IP-Datagramm, <strong>und</strong> sendet es an den ersten Router<br />

auf den Pfad zum Zielhost. Die Menge an Nutzdaten in einem IP-Datagramm ist nicht zwingend vorgeschrieben.<br />

Jedoch kann ein IP-Datagramm maximal 64 Kbyte groß sein. Der prinzipielle Aufbau<br />

eines IP-Datagramm respektive des IP-Paketes wird in Abbildung 5 gezeigt.<br />

Das Internet Protokoll ist ein verbindungsloses Protokoll, d.h. zur Datenübertragung wird keine<br />

Ende-zu-Ende Verbindung der Kommunikationspartner etabliert. Eine Ende-zu-Ende Verbindung bedeutet,<br />

dass es eine Verbindung direkt von einer Anwendung eines Quellhosts zu einer Anwendung<br />

eines Zielhosts gibt; w.z.B. bei TCP. Das heißt im Umkehrschluss, dass jeder Router, der das IP-<br />

Datagramm empfängt, den Protokollkopf auslesen muss, bevor er es weitersenden kann. Das Internet


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 17<br />

<strong>IPv4</strong> Protokollkopf<br />

ggf. mit Optionen<br />

20 - 60 Bytes<br />

Daten<br />

Abbildung 5: Das <strong>IPv4</strong>-Paketformat:IP-Datagramm [RFC791]<br />

Protokoll implementiert zwei Basisfunktionen: Adressierung <strong>und</strong> Fragmentierung. Die Adressierung<br />

geschieht mit Hilfe der IP-Adresse. Das Kapitel 3.1.4 behandelt ausführlich die <strong>IPv4</strong>-Adresse. Die<br />

IP-Adresse wird im IP-Protokollkopf geführt <strong>und</strong> dient der Übertragung eines IP-Datagrammes von<br />

einem Quellhost zu einem Zielhost. Die Auswahl des Pfades für die Übermittlung heißt routing. Das<br />

IP-Datagramm kann fragmentiert werden, wenn es für die Übermittlung nötig ist. Die Fragmentierung<br />

wird in Kapitel 3.1.8 behandelt. Die Aufgabe des Internet Protokolls ist also die Bereitstellung<br />

einer Möglichkeit IP-Datagramme von einem Quellhost zu einem Zielhost zu befördern. Dabei ist<br />

es unerheblich, ob sich der Quellhost <strong>und</strong> der Zielhost im gleichen Netz befinden oder ob andere<br />

(heterogene) Netze dazwischenliegen. Router übernehmen die Aufgabe der Auswahl des Pfades für<br />

die Übermittlung. Jeder Router leitet das IP-Datagramm weiter, indem er die ausgelesene Zieladresse<br />

mit einer Routing-Tabelle indiziert <strong>und</strong> das IP-Datagramm in Richtung des Zielhosts weiterleitet.<br />

Da diese Routing-Tabellen jederzeit modifiziert werden können, kann es vorkommen, dass die IP-<br />

Datagramme, die von einem Quellhost zu einem Zielhost gesendet werden, unterschiedliche Routen<br />

durch das Netzwerk nehmen <strong>und</strong> möglicherweise außer der Reihenfolge ankommen [KK02]. IP bietet<br />

zur Übertragung nur den sogenannten ”<br />

Best-Effort“-Dienst an, d.h. das Internet Protokoll garantiert<br />

nicht, dass die IP-Datagramme in einer bestimmten Zeit, in der richtigen Reihenfolge oder gar<br />

überhaupt am Zielhost ankommen. Es verfügt auch über keine Mechanismen zur Fehlererkennung<br />

<strong>und</strong> -behebung, außer einer Protokollkopf-Prüfsumme <strong>und</strong> dem ”<br />

Internet Control Message Protocol“<br />

(ICMP) [RFC792], welches fest mit dem Internet Protokoll verb<strong>und</strong>en ist. Aufgr<strong>und</strong> diesen Mangels<br />

nennt man das Internet Protokoll auch ein ”<br />

unzuverlässiges“ Protokoll.<br />

3.1.2 <strong>IPv4</strong>-Protokollkopfformat<br />

Abbildung 6 zeigt das Protokollkopfformat eines <strong>IPv4</strong>-Datengramms [RFC791].<br />

Version: 4 Bits<br />

Das Feld Version enthält die Versionsnummer des IP-Protokolls. Der Wert ist 4. Der eigentliche<br />

Sinn dieses Feldes ist, dass der Übergang zwischen den Versionen Monate oder Jahre dauern<br />

kann, wobei einige Maschinen mit der alten Version, andere mit der neuen Version laufen.


18 3 DAS INTERNET PROTOKOLL<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Version IHL Type of Service Total Length<br />

Identification Flags Fragment Offset<br />

Time To Live Protocol Header Checksum<br />

Source Address<br />

Destination Address<br />

Options<br />

Padding<br />

IHL - Internet Header Length<br />

Abbildung 6: <strong>IPv4</strong>-Protokollkopfformat [RFC791]<br />

Internet Header Length: 4 Bits<br />

Das Feld Internet Header Length - IHL enthält die Länge des gesamten IP-Protokollkopfes in<br />

32-Bit Wörtern, da diese nicht konstant ist. Der fixe Teil des Protokollkopfes ist 20 Bytes 3 . In<br />

diesem Fall sind im Protokollkopf keine Optionen gesetzt. Die maximale Länge des Protokollkopfes<br />

inklusive Optionen ist 60 Bytes 4 , also kann man 40 Bytes an Optionen setzen.<br />

Type of Service: 8 Bits<br />

Die Interpretation des Type of Service (TOS) Felds hat sich im Lauf der Zeit verändert. Nach<br />

der aktuellen Interpretation enthält das TOS-Byte einen Differentiated Services Code Point<br />

(DSCP) sowie Bits zur expliziten Benachrichtigung über Stausituationen (explicit congestion<br />

notification, ECN). Die Spezifikation der aktuellsten ”<br />

Version“ wird im Feld Traffic Class im<br />

<strong>IPv6</strong> [RFC2460] benutzt.<br />

Der Aufbau des Type of Service-Feldes nach [RFC791] :<br />

Das Feld Type of Service bestimmt die Art des Dienstes <strong>und</strong> ist in Abbildung 7 aufgeführt. Hier<br />

sind verschiedene Kombinationen aus Zuverlässigkeit, Verzögerung <strong>und</strong> Durchsatz möglich. In<br />

der Praxis wurde dieses Feld aber ignoriert.<br />

Precedence: (Priorität) (Bits 0 - 2) Mit Precedence wird dem IP-Datagramm eine Priorität von<br />

0 (normal) bis 7 (Netzsteuerungspaket) zugewiesen.<br />

Delay: (Verzögerung) (Bit 3)<br />

0 Normal Delay (Normale Verzögerung)<br />

1 Low Delay (Niedrige Verzögerung)<br />

3 Der kleinste zulässige Wert dieses Feldes ist also 5<br />

4 Der maximale Wert dieses Feldes ist somit 15


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 19<br />

0 1 2 3 4 5 6 7<br />

Precedence D T R Res<br />

D - Delay<br />

T - Throughput<br />

R - Relibility<br />

Abbildung 7: Type of Service - Aufbau nach [RFC791]<br />

Throughput: (Durchsatz) (Bit 4)<br />

0 Normal Throughput (Normaler Durchsatz)<br />

1 High Throughput (Hoher Durchsatz)<br />

Relibility: (Zuverlässigkeit) (Bit 5)<br />

0 Normal Relibility (Normale Zuverlässigkeit)<br />

1 High Relibility (Hohe Zuverlässigkeit)<br />

Res: Bits 6 - 7 müssen Null sein <strong>und</strong> sind für die Zukunft reserviert.<br />

Der Aufbau des Type of Service-Feldes nach [RFC2474]:<br />

Die aktuelle Spezifikation ging in die <strong>IPv6</strong>-Spezifikation ein <strong>und</strong> ist im Kapitel 3.2.2 auf Seite<br />

33 beschrieben.<br />

Total Length: 16 Bits<br />

Das Feld Total Length enthält die gesamte Länge eines IP-Datagramms, d.h. inklusive Protokollkopf<br />

<strong>und</strong> Nutzdaten. Die Maximallänge eines IP-Datagramms ist auf 65.535 Bytes begrenzt.<br />

Jeder Host muss in der Lage sein, IP-Datagramme bis zu einer Länge von 576 Bytes<br />

zu verarbeiten [RFC791]. In der Regel können vom Host aber IP-Datagramme größerer Länge<br />

verarbeitet werden.<br />

Identification: 16 Bits<br />

Das Feld Identification enthält einen Identifizierungswert, welcher vom Sender gesetzt wird,<br />

um zu helfen die Fragmente eines IP-Datagrammes wieder zusammenzusetzen. Alle Fragmente<br />

eines IP-Datagrammes enthalten somit die gleiche Identifikationsnummer.<br />

Flags: 3 Bits<br />

Das erste Bit des Feldes Flags ist ungenutzt <strong>und</strong> muss Null sein. Die beiden andern Bits DF <strong>und</strong><br />

MF steuern die Behandlung eines IP-Datagramms im Falle einer Fragmentierung. Mit dem DF-<br />

Bit wird angezeigt, daß das IP-Datagramm nicht fragmentiert werden darf. DF kann den Wert 0<br />

haben, d.h. ”<br />

May Fragment“ Kann fragmentiert werden oder den Wert 1, d.h. ”<br />

Don’t Fragment“<br />

Darf nicht fragmentiert werden. Mit dem MF-Bit wird angezeigt, ob einem IP-Datagramm


20 3 DAS INTERNET PROTOKOLL<br />

weitere Teil-IP-Datagramme nachfolgen. Dieses Bit ist nur bei dem letzten Fragment gesetzt.<br />

Die Fragmentierung wird MF kann den Wert 0, d.h. Last Fragment Letztes Fragment oder 1,<br />

d.h. More Fragments Mehr Fragmente haben.<br />

Die Fragmentierung wird in Kapitel 3.1.8 ausführlich beschrieben.<br />

Fragment Offset: 13 Bits<br />

Das Feld Fragment Offset zeigt an, an welcher Stelle relativ zum Beginn des gesamten IP-<br />

Datagramms ein Fragment gehört. Es können maximal 8192 Fragmente pro IP-Datagramm erstellt<br />

werden, da die Feldgröße nur 13 Bits lang ist. Alle Fragmente, außer dem letzten, müssen<br />

ein Vielfaches von 8 Byte (64 Bits) sein. (Kap. 3.1.8)<br />

Time to Live: 8 Bits<br />

Das Feld Time to Live - TTL zeigt die maximale Lebensdauer des IP-Datagramms an. Es ist eine<br />

Art Zähler, der bei jeder Verarbeitung des Protokollkopfes um mindestens 1 verringert wird. Die<br />

Einheit dieses Feldes ist die Sek<strong>und</strong>e. Der maximale Wert ist 255 (8 Bit). Sobald der Wert 0 ist,<br />

wird das IP-Datagramm verworfen, damit wird verhindert, dass ein IP-Datagramm endlos in<br />

einem Netz umherwandert. Der Absender wird in einem solchen Fall durch eine Warnmeldung<br />

in Form einer ICMP-Nachricht [RFC792] informiert. Bei einer längeren Zwischenspeicherung<br />

soll der Wert sogar mehrmals verringert werden.<br />

Protocol: 8 Bits<br />

Das Feld Protocol enthält die Nummer des Transportprotokolls, an welches das IP-Datagramm<br />

weitergeleitet werden muss. Die Numerierung von Protokollen ist im gesamten Internet einheitlich<br />

<strong>und</strong> in [RFC1700] definiert.<br />

Header Checksum 16 Bits<br />

Das Feld Header Checksum enthält die Prüfsumme der Felder im Protokollkopf. Die Nutzdaten<br />

des IP-Datagramm werden aus Effizienzgründen nicht mit geprüft. Die Prüfsumme muss<br />

bei jeder Verarbeitung des Protokollkopfes neu berechnet werden, da sich der Protokollkopf<br />

durch das Feld Time to Live verändert. Aus diesem Gr<strong>und</strong> ist auch eine sehr effiziente Bildung<br />

der Prüfsumme wichtig. Als Prüfsumme wird das 1er-Komplement der Summe aller 16-<br />

Bit-Halbwörter der zu überprüfenden Daten verwendet. Zum Zweck dieses Algorithmus wird<br />

angenommen, dass die Prüfsumme zu Beginn der Berechnung Null ist.<br />

Source Address: 32 Bits<br />

In dem Feld Source Address wird die 32 Bit lange Quelladresse eingetragen, von der das IP-<br />

Datagramm gesendet wird. Die 32 Bit-Adresse wird ausführlich im Kapitel 3.1.4 auf Seite 22<br />

behandelt.<br />

Destination Address: 32 Bits<br />

In dem Feld Destination Address wird die 32 Bit lange Zieladresse eingetragen, an die das IP-<br />

Datagramm gesendet wird. Die 32 bit-Adresse wird ausführlich im Kapitel 3.1.4 auf Seite 22<br />

behandelt.


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 21<br />

Options: variable Anzahl von Bits.<br />

Das Feld Options wurde im Protokollkopf aufgenommen, um die Möglichkeit zu bieten das IP-<br />

Protokoll um weitere Informationen zu ergänzen, die im ursprünglichen Design nicht berücksichtigt<br />

wurden. Die maximale Größe dieses Feldes ist 40 Bytes.<br />

3.1.3 Optionen unter <strong>IPv4</strong><br />

Praktisch sind die meisten Optionen von geringer Bedeutung, da der verfügbare Platz von 40 Byte<br />

für die meisten Optionen in der Regel zu klein ist. Jede Option beginnt mit einem Code von einem<br />

Byte, über den die Option identifiziert wird. Manchen Optionen folgt ein weiteres Optionsfeld von 1<br />

Byte <strong>und</strong> dann ein oder mehrere Datenbytes für die Option. Das Feld Options wird über das Padding<br />

auf ein Vielfaches von 4 Byte aufgefüllt. Im Folgenden werden kurz neun der bekanntesten Optionen<br />

angeschnitten, die genauen Spezifikationen sind in größtenteils in [RFC791] beschrieben:<br />

1. NOP (No Option): Keine Operation. Eine 1 Byte Option, die typischerweise zum Füllen eingesetzt<br />

wird, um eine spätere Option auf eine 4 Byte Begrenzung zu setzen.<br />

2. EOL (End of Option List): Ende der Liste. Eine 1 Byte Option, die die Optionsverarbeitung<br />

beendet.<br />

3. LSRR (Loose Source and Record Route): Lose Quell- <strong>und</strong> Record-Route. Diese Option enthält<br />

eine Liste von Internet-Adressen, die das IP-Datagramm durchlaufen soll. Auf diese Weise<br />

kann dem IP-Datagramm vorgeschrieben werden eine bestimmte Route durch das Internet zu<br />

nehmen. Die angegebenen Router dürfen nicht umgangen werden. Auf dem Weg können aber<br />

auch andere Router besucht werden.<br />

4. SSRR (Strict Source and Record Route): Strikte Quell- <strong>und</strong> Record-Route. Diese Option enthält<br />

eine Liste von Internet-Adressen, die das IP-Datagramm durchlaufen soll. Auf diese Weise kann<br />

dem IP-Datagramm vorgeschrieben werden eine bestimmte Route durch das Internet zu nehmen.<br />

Das IP-Datagramm muss diese Route genau einhalten. Des Weiteren wird die genommene<br />

Route aufgezeichnet.<br />

5. Record-Route: Routenaufzeichnung. Die Knoten, die dieses IP-Datagramm durchläuft, werden<br />

angewiesen ihre IP-Adresse an das Optionsfeld anzuhängen. Damit läßt sich ermitteln, welche<br />

Route ein IP-Datagrammenommen hat. Wie anfangs schon gesagt, ist die Größe für das Optionsfeld<br />

auf 40 Byte beschränkt. Deshalb kommt es heute auch oftmals zu Problemen mit dieser<br />

Option, da weit mehr Router durchlaufen werden, als dies zu Beginn des ARPANET der Fall<br />

war.


22 3 DAS INTERNET PROTOKOLL<br />

6. Time Stamp: Zeitstempel. Diese Option ist mit der Option ”<br />

Record Route“ vergleichbar. Zusätzlich<br />

zur IP-Adresse wird bei dieser Option die Uhrzeit des Durchlaufs durch den Knoten vermerkt.<br />

Auch diese Option dient hauptsächlich zur Fehlerbehandlung, wobei zusätzlich z.B.<br />

Verzögerungen auf den Netzstrecken erfasst werden können.<br />

7. Security: Sicherheit. Diese Option zeigt, wie geheim ein IP-Datagramm ist. In der Praxis wird<br />

diese Option jedoch von fast allen Routern ignoriert.<br />

8. Stream Identifier: Diese Option trägt die Stream-Identifizierung, ist aber schon sehr veraltet.<br />

9. Router-Alert: Router-Alarm. Diese Option ist nicht in [RFC791] sondern in [RFC2113] beschrieben.<br />

IP-Datagramme, die diese Option eingeb<strong>und</strong>en haben, sollen von allen Routern untersucht<br />

werden, die dieses IP-Datagramm weiterleiten.<br />

3.1.4 Aufbau einer <strong>IPv4</strong>-Adresse<br />

Die <strong>IPv4</strong>-Adresse hat eine Länge von 32-Bit 5 . Eine 32-Bit-Adressierung lässt 2 32 = 4.294.967.296<br />

mögliche Adressen zu. Sie wird normalerweise nicht als Binärzahl oder Hexadezimalzahl, sondern in<br />

gepunktenen Dezimalzahlen geschrieben. In dieser Punkt-Dezimal-Notation (Dotted Decimal Notation)<br />

werden alle 8 Bit dezimal geschrieben, <strong>und</strong> mit Punkten getrennt. Das <strong>IPv4</strong>-Adressenformat sieht<br />

dann folgendermaßen aus: ∗.∗.∗.∗ wobei ∗ eine dezimale Zahl zwischen 0 <strong>und</strong> 255 ist.<br />

Tabelle 1 zeigt ein Beispiel für verschiedene Schreibweisen ein <strong>und</strong> derselben Adresse. Aus dieser<br />

Schreibweise Adresse<br />

binäre Schreibweise 11000010 01011111 10110000 01000110<br />

gepunktete hexadezimale C2.5F.B0.46<br />

Punkt-Dezimal 194.95.176.70<br />

Tabelle 1: Eine <strong>IPv4</strong>-Adresse in Punkt-Dezimal-Notation, gepunkteter hexadezimaler <strong>und</strong> in binärer<br />

Schreibweise<br />

Tabelle ist ersichtlich, dass die Punkt-Dezimal-Notation eine 32-Bit-Binärzahl in ein für den Menschen<br />

verständlicheres Format abbildet. Der Computer benutzt normalerweise die duale Darstellung.<br />

Das ursprüngliche Schema, das als klassenbezogene Adressierung (Classful Addressing) bezeichnet<br />

wird, teilt den IP-Adressraum in drei primäre Klassen (Klasse A, B <strong>und</strong> C) ein. Insgesamt gibt es aber<br />

fünf Netzwerkklassen: Klasse A, B, C, D <strong>und</strong> E. Die klassenbezogenen IP-Adressen sind selbstidentifizierend,<br />

da sich die Netzwerkklasse aus der IP-Adresse selbst berechnen lässt. Die Unterscheidung<br />

der einzelnen Netzwerkklassen findet in den ersten vier Bit der Adresse statt. Eine IP-Adresse der<br />

5 4 Byte


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 23<br />

Klasse A, B <strong>und</strong> C wird in ein Netzwerk- <strong>und</strong> in ein Hostanteil gegliedert. In welchem Bit diese<br />

Gliederung stattfindet, legt die jeweilige Klasse fest.<br />

Der Netzwerkanteil identifiziert das physische Netzwerk, in dem sich ein Host befindet: alle Hosts<br />

eines Netzes haben die gleiche Netzwerkadresse. Der Hostanteil identifiziert einen bestimmten Host<br />

innerhalb eines Netzes.<br />

Abbildung 8 zeigt die fünf Adressklassen jeweils mit dem Hostbereich in Punkt-Dezimal-Notation.<br />

Die Netzwerkanteile der jeweiligen Adressklassen sind mit Netz <strong>und</strong> die Hostanteile mit Host gekennzeichnet.<br />

Klasse<br />

A 0<br />

Netz<br />

Host<br />

Host-Adressbereich<br />

1.0.0.0 bis<br />

127.255.255.255<br />

128.0.0.0 bis<br />

191.255.255.255<br />

192.0.0.0 bis<br />

223.255.255.255<br />

224.0.0.0 bis<br />

239.255.255.255<br />

240.0.0.0 bis<br />

255.255.255.255<br />

B 10<br />

Netz<br />

Host<br />

C 110<br />

Netz<br />

Host<br />

D 1110<br />

Multicast-Adresse<br />

E 1111<br />

Für künftige Nutzung reserviert<br />

Abbildung 8: <strong>IPv4</strong>-Adressklassen [RFC791]: Klasse A, B, C, D, E<br />

Einer Firma, die z.B. 200 Hosts adressieren will, wird ein Klasse C Netz zugeteilt. In der Form ∗.∗.∗.0<br />

bis ∗. ∗ . ∗ .255.<br />

Eine Universität mit 80.000 Hosts würde ein Netz der Klasse A, der Form ∗.0.0.0 bis ∗.255.255.255,<br />

für sich beanspruchen.<br />

Klasse D-Adressen sind sogenannte Multicast-Adressen. Sie werden dazu verwendet ein IP-Datagramm<br />

an mehrere Hostadressen gleichzeitig zu versenden. Sendet ein Prozeß eine Nachricht an eine Adresse<br />

der Klasse D, wird die Nachricht an alle Mitglieder der adressierten Gruppe versendet. Dies geschieht<br />

mit einem eigenen Protokoll, dem Internet Group Management Protocol (IGMP) <strong>und</strong> ist ausführlich<br />

in [RFC2236] beschrieben.<br />

In der Literatur wird der weitere Bereich der IP-Adressen Klasse E bezeichnet [CO02]. Dieser Bereich<br />

ist für zukünftige Nutzungen reserviert <strong>und</strong> z.Z. ungenutzt.<br />

Die Anzahl der Netze bzw. Hosts der jeweiligen Klasse in Tabelle 2 sind rein ”<br />

theoretische“ Werte,<br />

welche rein rechnerisch ermittelt wurden. Der Gr<strong>und</strong> liegt darin, dass einige Adressen spezielle<br />

Bedeutungen haben (Kapitel 3.1.5) <strong>und</strong> nicht zur Verfügung stehen. Aus der Tabelle folgt, dass die<br />

Adressklasse A eine sehr geringe Anzahl von Netzwerken mit einer sehr großen Anzahl von Hosts pro<br />

Netzwerk, die Adressklasse B eine ”<br />

mittlere“ Anzahl von Netzwerken mit einer ”<br />

mittleren“ Anzahl


24 3 DAS INTERNET PROTOKOLL<br />

Länge des<br />

Maximale Anzahl der<br />

Klasse Netzwerkanteils Hostanteils Netzwerke Host pro Netzwerk<br />

A 8 Bit 24 Bit 128 16.777.216<br />

B 16 Bit 16 Bit 16.384 65.536<br />

C 24 bit 8 Bit 2.097.152 256<br />

Tabelle 2: Länge des Netzwerk- <strong>und</strong> Hostanteils <strong>und</strong> Maximale Anzahl der Netzwerke <strong>und</strong> Hosts in<br />

der jeweiligen <strong>IPv4</strong>-Adressklasse<br />

von Hosts pro Netzwerk <strong>und</strong> die Adressklasse C eine sehr große Anzahl von Netzwerken mit einer<br />

sehr geringen Anzahl von Hosts pro Netzwerk besitzt.<br />

Die IP-Adresse identifiziert keinen bestimmten Knoten, sondern nur ein Interface. Einem Knoten mit<br />

mehreren Interfaces (z.B. ein Router) muss für jedes Interface eine IP-Adresse zugewiesen werden.<br />

Jedes Interface besitzt eine eindeutige IP-Adresse, d.h. dass keine verschiedenen Interfaces die identischen<br />

IP-Adressen besitzen. Dies veranschaulicht Abbildung 9.<br />

Ethernet 132.221.0.0/16<br />

132.221.99.5<br />

223.240.129.10<br />

223.240.129.11<br />

132.221.12.3<br />

132.221.25.1<br />

Router<br />

223.240.129.22<br />

Token-Ring<br />

223.240.129.0/24<br />

223.240.129.22<br />

WAN 79.0.0.0/8<br />

79.0.0.17<br />

Router<br />

Abbildung 9: IP-Adresszuweisung: Jedes Interface hat eine eindeutige Adresse<br />

3.1.5 Spezielle <strong>IPv4</strong>-Adressen<br />

Es sind spezielle Adressen reserviert, d.h. sie dürfen nicht als IP-Adresse an Interface vergeben werden.<br />

Im Folgenden werden diese speziellen Adressen bzw. Adressformate aufgelistet <strong>und</strong> erklärt.


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 25<br />

Die Adresse ”<br />

This Computer“ wird vom Knoten beim ”<br />

Booten“ benutzt, da dort die IP-Adresse noch<br />

nicht bekannt ist. Sie besteht nur aus Nullen: 0.0.0.0<br />

Die Netzwerkmaske (Netmask) stellt einen Filter dar, der entscheidet, ob sich ein Router in einen<br />

entfernten Netzwerk oder im gleichen logischen Netzwerk befindet. Netzwerkmasken haben große<br />

Bedeutung bei der Teilnetz- <strong>und</strong> der klassenlosen Adressierung, auf die in Kapitel 3.1.6 respektive<br />

Kapitel 3.1.7 eingegangen wird.<br />

Für jede der Netzwerkklassen (Klasse A, B <strong>und</strong> C) wurde jeweils eine Standardnetzwerkmaske festgelegt,<br />

bei der alle Bitstellen des Netzwerkanteils auf 1 <strong>und</strong> alle Bitstellen des Hostanteils auf 0<br />

gesetzt sind. Tabelle 3 zeigt für die Klassen A, B <strong>und</strong> C die jeweilige Standardnetzwerkmaske mit<br />

der ”<br />

neuen“ Präfix-Notation oder auch CIDR-Notation, auf die in Kapitel 3.1.7 noch eingegangen<br />

wird. Netzwerkadressen beziehen sich auf das Netzwerk selbst, <strong>und</strong> nicht auf die angeschlossenen<br />

Klasse 1. Byte 2. Byte 3. Byte 4. Byte Präfix-Notation<br />

A 255 0 0 0 /8<br />

B 255 255 0 0 /16<br />

C 255 255 255 0 /24<br />

Tabelle 3: Die <strong>IPv4</strong>-Standardnetzwerkmasken der Klasse A, B <strong>und</strong> C.<br />

Hosts. Man erhält die Netzwerkadresse bei gegebenen IP-Adresse, indem man die IP-Adresse bitweise<br />

mit dem boolschen UND verknüpft. Die Netzwerkadresse setzt sich also aus der Netzwerknummer<br />

<strong>und</strong> als Hostanteil nur Nullen zusammen. Nur Hosts, die eine identische Netzwerkadresse besitzen,<br />

befinden sich im gleichen logischen Netz. Somit hat z.B. das Netzwerk mit der Netzwerknummer<br />

130.216 die Netzwerkadresse 130.216.0.0 <strong>und</strong> die Netzwerkmaske 255.255.0.0. Die Netzwerkadressen<br />

wurden vom Network Information Center (NIC) vergeben, um Adresskonflikte zu vermeiden.<br />

Diese Aufgabe hat nun die Internet Assigned Numbers Authority (IANA) bzw. ihre Vertreter in den<br />

verschiedenen Gebieten (Asia Pacific Network Information Center (APNIC), American Registry for<br />

Internet Numbers (ARIN), Reseau IP Europeens (RIPE)) übernommen. Die Adressen werden nicht<br />

einzeln zugeordnet, sondern nach den Adressklassen vergeben.<br />

Für den Fall, dass man an alle Hosts eines physischen Netzwerks, ein IP-Datagramm senden will,<br />

existiert die sogenannte gerichtete Broadcast-Adresse (Directed Broadcast Address) für jedes physische<br />

Netzwerk. Der Netzwerkanteil besteht wiederum aus der Netzwerkadresse <strong>und</strong> im Hostanteil<br />

sind nur 1-Bit gesetzt. Die Broadcast-Adresse wird ermittelt, indem man die Netzwerkadresse mit der<br />

bitweise invertierten Netzwerkmaske bitweise mit dem boolschen ODER verknüpft.<br />

Zudem existiert aber noch begrenzte Broadcast-Adresse (Limited Broadcast), die sich nur auf ein<br />

lokales Netz beziehen. Diese Art von Adressen werden meist beim Systemstart verwendet, da dort<br />

die Netzwerkkennung noch nicht bekannt ist, oder um einen Broadcast im lokalen Netzwerk durchzuführen.<br />

Netzwerk- <strong>und</strong> Hostanteil bestehen nur aus 1-Bits, somit ist 255.255.255.255 die begrenzte<br />

Broadcast-Adresse.


26 3 DAS INTERNET PROTOKOLL<br />

Für Testzwecke wurde eine Schleifenadresse (Loopback Address) definiert. Sie wird z.B. von Programmieren<br />

von Netzwerkanwendungen zur Fehlerdiagnose <strong>und</strong> Fehlerkorrektur verwendet. Während<br />

der Ausführung eines Schleifentest verlässt kein IP-Datagramm den Knoten, sondern nur zwischen<br />

zwei Anwendungen werden die IP-Datagramme befördert. Für die Schleifenadresse ist der Netzwerkanteil<br />

127.0.0.0 bis 127.255.255.255 reserviert. Der Hostanteil kann beliebig gewählt werden,<br />

die Konvention sieht die Verwendung der Hostnummer 1 vor, so dass 127.0.0.1 die übliche Schleifenadresse<br />

ist.<br />

Zudem hat die Internet Assigned Numbers Authority (IANA) drei Blöcke des IP Adressraums für<br />

private Netzwerke reserviert [RFC1918]. Diese bedürfen keiner Koordination der IANA <strong>und</strong> können<br />

frei gewählt werden. Tabelle 4 listet die drei Blöcke auf.<br />

Klasse Adressbereich Präfix-Notation<br />

A 10.0.0.0 - 10.255.255.255 10/8<br />

B 172.16.0.0 - 172.31.255.255 172.16/12<br />

C 192.168.0.0 - 192.168.255.255 192.168/16<br />

Tabelle 4: Drei Blöcke des IP-Adressraums sind für private Netzwerke reserviert.<br />

3.1.6 Teilnetze <strong>und</strong> Teilnetzwerkmasken<br />

Die Teilnetz-Adressierung (Subnet Addressing) teilt ein ”<br />

großes“ Netzwerk in eine entsprechende Anzahl<br />

”<br />

kleinerer“ Teilnetzwerke (Subnets). Die Gründe für eine Teilnetzbildung (Subnetting) können<br />

verschiedener Natur sein:<br />

• Beschränkungen der physikalischen Medien 6<br />

• Überlastungen aufgr<strong>und</strong> zu hohen Traffic-Aufkommens<br />

• große geographische Abstände<br />

• Trennung von Netzwerken nach Abteilungen bzw. Bereichen<br />

• Trennung von Netzwerken nach Standorten, Zweigstellen<br />

• Trennung nach unterschiedlichen Technologien<br />

• Bildung von logischen Arbeitsgruppen<br />

• Abkopplung von Bereichen mit sicherheitsrelevanten Daten<br />

6 10BASE-T-Ethernet: max. 1.024 Hosts pro Netzwerk


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 27<br />

• einfachere Verwaltung<br />

Teilnetzbildung bedeutet nichts anderes, als dass dem Netzwerkanteil einzelne Bitstellen des Hostanteils<br />

hinzugeschlagen werden <strong>und</strong> somit der Netzwerkanteil vergrößert wird. Also wird eigentlich<br />

nur die Standardnetzmaske geändert <strong>und</strong> somit der ”<br />

Filter“ verändert, der entscheidet, welche Rechner<br />

sich im gleichen logischen Netzwerk befinden. Anzahl der Teilnetze wird über die Anzahl der<br />

Bitstellen gesteuert, die dem Netzwerkanteil hinzugeschlagen wird. Die Ermittlung der gerichteten<br />

Broadcast Adresse geschieht weiterhin wie in Kap. 3.1.5 auf Seite 25 beschrieben.<br />

Als die Teilnetzbildung eingeführt wurde, entfernte man sich gleichzeitig von der klassenbezogenen<br />

Adressierung. Jetzt musste immer die Netzwerkmaske mit angegeben werden. Und zwar geschieht das<br />

nach wie vor wie oben beschrieben. In neuerer Literatur wird meist nicht immer die Netzwerkmaske<br />

in der Punkt-Dezimal-Notation angegeben, sondern es wird nur noch die Anzahl der Bitstellen, die<br />

dem Netzwerkanteil entspricht, angegeben. Diese Darstellung nennt man Präfix-Notation oder CIDR-<br />

Notation <strong>und</strong> wird im Folgenden Kapitel auf Seite 28 beschrieben.<br />

3.1.7 Klassenlose Adressen<br />

Die Anforderung, dass der Netzwerkanteil einer IP-Adresse genau ein, zwei oder drei Byte umfassen<br />

muss, hat sich hinsichtlich der zunehmender Größe des Internets als problematisch erwiesen. Dem<br />

<strong>IPv4</strong> gehen langsam die Adressen aus. Zwar gibt es Millionen von Adressen, aber viele bleiben einfach<br />

ungenutzt, weil für jedes Netzwerk eine der drei Größen gewählt werden musste. Die größten<br />

Probleme lösten dabei die Klassen B <strong>und</strong> C aus. Mit der Klasse C kann man nur maximal 254 Host<br />

adressieren. Viele Firmen beantragten deshalb statt einer Klasse C eine Klasse B mit denen sie maximal<br />

65.536 Hosts eine Adresse zuweisen können, da sie die Befürchtung hatten, ein Klasse C Netz<br />

würde nicht ausreichen. Tatsächlich ist aber oft auch ein Klasse B Netz zu groß. Für viele Firmen<br />

würde ein Netz der Klasse C ausreichen.<br />

Als Beispiel nehmen wir eine Firma ”<br />

Müller GmbH“ die 2.000 Hosts adressieren will. Im Rahmen<br />

der klassenbezogenen Adressierung wurde dieser Firma eine Klasse B Netzwerkadresse zugewiesen,<br />

der Form ∗. ∗ .0.0 bis ∗. ∗ .255.255. Damit liegen aber mehr als 63.000 unbenutzte Adressen brach.<br />

Wie man leicht erkennen kann ist die Klasse C ist einfach zu klein, denn ab 255 Host benötigt man<br />

ein Klasse B Netz <strong>und</strong> das Klasse B Netz ist einfach zu groß. Zudem wurde in den Anfängen des<br />

Internets allzu sorglos mit der Adressenvergabe umgegangen. Eine Lösung um die starre Klassenaufteilung<br />

der Adressen flexibel an die Gegebenheiten anzupassen, war lokal gesehen die im vorherigen<br />

Kapitel beschriebene Teilnetzbildung, aber 1993 tauchte mit dem Classless InterDomain Routing<br />

(CIDR) [RFC1519] eine globale Möglichkeit auf.<br />

Dazu sollen die restlichen 7 Klasse C Netze in Blöcken mit variabler Länge vergeben werden. So<br />

braucht man kein Klasse B Netz mehr, um 300 Adressen zu adressieren, sondern einfach 2 aufeinan-<br />

7 es sind immernoch über 1,5 Millionen


28 3 DAS INTERNET PROTOKOLL<br />

derfolgende Klasse C Netze. Zusätzlich wurde die Welt in vier Zonen, von denen jede einen Teil 8 des<br />

verbliebenen Klasse C-Adressraums erhält, aufgeteilt [RFC1519]. Tabelle 5 zeigt die vier verschiedenen<br />

Zonen. Anhand dieser Tabelle ”<br />

weiß“ z.B. ein Router außerhalb Europas, dass er ein Paket mit<br />

Adressbereich Zonen<br />

194.0.0.0 - 195.255.255.255 Europa<br />

198.0.0.0 - 199.255.255.255 Nordamerika<br />

200.0.0.0 - 201.255.255.255 Mittel- <strong>und</strong> Südamerika<br />

202.0.0.0 - 203.255.255.255 Asien <strong>und</strong> pazifischer Raum<br />

204.0.0.0 - 223.255.255.255 Reserviert für zukünftige Nutzung<br />

Tabelle 5: Klassenlose Adressierung (CIDR): Aufteilung der verbliebenen Klasse C in vier Zonen<br />

einer Adresse zwischen 194.∗.∗.∗ <strong>und</strong> 195.∗.∗.∗, einfach zu seinem europäischen Standard-Gateway<br />

senden kann. So sind praktisch die jeweils 32 Millionen Adresse zu einem Routing-Tabelleneintrag<br />

komprimiert. Um nun die aufeinanderfolgenden Netze als ein Netz zu beschreiben, ist wiederum die<br />

Netzwerkmaske wichtig. Sie wird mit den Netzen vergeben. Bei jeder Vergabe von aufeinanderfolgenen<br />

Klasse C Netzen wird in der jeweiligen Zone (z.B. Europa) alle Routingtabellen um die Einträge<br />

ergänzt, somit wurde man auch der ”<br />

Explosion der Routingeinträge“ herr.<br />

Um nun nicht immer die Netzwerkmaske in der Punkt-Dezimal-Notation schreiben zu müssen, wurde<br />

die Präfix- oder CIDR-Notation eingeführt [RFC1878]. Das Format der Präfix-Notation ist ∗.∗.∗.∗/x,<br />

wobei x die Anzahl der Bits des Netzwerkanteils ist. In [RFC1878] werden alle 32 möglichen Präfixe<br />

aufgelistet.<br />

Da mit CIDR die klassische klassenbezogenen Adressenaufteilung aufgehoben wurde, braucht man<br />

nicht mehr in Klassen zu denken, sondern benutzt einfach die Präfix-Notation, um die Grenze zwischen<br />

Netzwerk- <strong>und</strong> Hostanteil festzulegen. Zum Beispiel schreibt man die Standardnetzmaske der<br />

Klasse B in der Präfix-Notation nur noch mit /16. Es werden also die Bits des Netzwerkanteils mit 16<br />

Bits angegeben. Somit kann die IP-Adresse 128.10.0.1 mit Netzmaske 255.255.0.0 als 128.10.0.1/16<br />

geschrieben werden. Zudem braucht man nichts mehr über Klassen zu wissen, da man sofort sieht,<br />

dass die Adresse 10.104.0.19/8 8 Bit für den Netzwerkanteil <strong>und</strong> 24 Bit für den Hostanteil besitzt.<br />

Aber in den Hosttabellen wird immer noch die Punkt-Dezimal-Notation für die Netzmaske verwendet.<br />

Anhand der Tabelle in [RFC1878], in der alle 32 möglichen Präfixe aufgelistet werden, kann man<br />

die Netzmaske feststellen.<br />

Um nun herauszufinden in welches Netz ein IP-Datagramm geroutet werden muss, wird auf die<br />

Zieladresse <strong>und</strong> einer Netzmaske aus der Routing-Tabellen das boolesche UND angewendet. Sobald<br />

das Ergebnis die identische Netzmaske ergibt, wird das IP-Datagramm an den jeweiligen Router<br />

geschickt. Das ist jetzt sehr kurz erklärt, wird aber in [RFC1519] ausführlich beschrieben.<br />

Mit CIDR wird der Firma ”<br />

Müller GmbH“ aus dem obigen Beispiel statt eine Klasse B Netzadresse<br />

8 etwa 32 Millionen Adressen


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 29<br />

ein Block mit 2.048 Hostadressen, also acht aufeinanderfolgende Klasse C Netze, der Form ∗. ∗<br />

. ∗ .∗/21, zugewiesen. Diese Adresse hat also einen 21-Bit langen Netzwerkanteil, daraus folgt die<br />

Netzmaske 255.255.248.0.<br />

3.1.8 Fragmentierung von IP-Datagrammen<br />

Jeder Link spezifiziert eine Link MTU. Das IP-Protokoll sendet seine IP-Datagramme mit der Link<br />

MTU über dessen Link sein IP-Datagramm gesendet wird. In [RFC791] ist definiert, dass jeder Router<br />

mindestens ein IP-Datagramm von 68 Byte weitersenden können muss. Dieser Wert (68 Byte) ist<br />

die kleinste Link MTU die das IP-Protokoll unterstützt. Hingegen muss jeder Zielhost in der Lage sein,<br />

ein IP-Datagramm der Größe 576 Bytes, empfangen zu können. Nun kann es jedoch möglicherweise<br />

vorkommen, dass das IP-Datagramm von einem Router auf der Strecke über ein Netzwerk mit geringerer<br />

Link MTU 9 verschickt wird. Dazu muss nun der Router an dem Interface die IP-Datagramme<br />

umverpacken“, sprich aus einem IP-Datagramm mehrere machen. Dies nennt man dann Fragmentierung.<br />

Jeder Router muss der Lage ist, empfangene IP-Datagramme gegebenenfalls zu zerteilen,<br />

”<br />

um sie weiter über ein Teilnetz bis zum Zielhost zu übertragen. Fragmentierte IP-Datagramme heißen<br />

Fragmente. In Abbildung 10 ist die Fragmentierung anhand eines Beispiels gezeigt. Jedes Frag-<br />

Netz mit 4000 Byte MTU<br />

Netz mit 1500 Byte MTU<br />

Original Paket<br />

Gesamtlänge: 4000 Byte<br />

Nutzdaten: 2980 Byte<br />

Identifikation: 1783<br />

Fragment Offset: 0<br />

DF=0 MF=0<br />

Router<br />

1. Fragment<br />

2. Fragment 3. Fragment<br />

Ges.länge: 1500 Byte Ges.länge: 1500 Byte Ges.länge: 1040 Byte<br />

Nutzdaten: 1480 Byte Nutzdaten: 1480 Byte Nutzdaten: 1020 Byte<br />

Ident.: 1783 Ident.: 1783 Ident.: 1783<br />

Frag. Offset: 0 Frag. Offse: 1480 Frag. Offset: 2960<br />

DF=0 MF=1 DF=0 MF=1 DF=0 MF=0<br />

Abbildung 10: Fragmentierung von <strong>IPv4</strong>-Datagrammen [RFC791]<br />

ment erhält einen eigenen, vollständigen IP-Protokollkopf. Damit jedes Fragment beim Empfänger<br />

eindeutig dem richtigen IP-Datagramm zugeordnet werden kann, hat es schon beim Quellhost eine<br />

eindeutige Kennung erhalten. Zudem kann der Quellhost über das ”<br />

DF“-Flag eine Fragmentierung<br />

untersagen. Allerdings wird dann, wenn das IP-Datagramm zum Weitertransport fragmentiert werden<br />

müsste einfach verworfen <strong>und</strong> eine Fehlermeldung via ICMP an den Host geschickt.<br />

Mit dem ”<br />

MF“-Flag kennzeichnet der Knoten nun alle Fragmente - mit Ausnahme des letzten. Der<br />

Zielhost weiß dann, dass keine weiteren Fragmente mehr kommen <strong>und</strong> er mit dem Zusammenetzenbeginnen<br />

kann. Der Fragment Offset gibt für jedes Fragment an, ab welcher Stelle des originalen<br />

IP-Datagrammes die Nutzdaten einzufügen sind.<br />

Jeder Host muss in der Lage sein, diese Fragmente wieder zum ursprünglichen IP-Datagramm zu-<br />

9 aber mindestens 68 Byte


30 3 DAS INTERNET PROTOKOLL<br />

sammenzusetzen. Das Zusammensetzen von fragmentierten IP-Datagramme (Fragmente) heißt Defragmentierung.<br />

Die Defragmentierung geschieht nur beim Zielhost. Muss ein Fragment nochmals<br />

fragmentiert werden um weitergesendet zu werden, geschieht dies, ohne die Fragmente in das ursprüngliche<br />

IP-Datagramm zu defragmentieren, um es dann wieder zu fragmentieren. Das Internet<br />

Protokoll unterscheidet also nicht zwischen Fragmente <strong>und</strong> IP-Datagramme.<br />

In Abbildung 11 sendet Host A ein IP-Datagramm (I) der Länge 4000 Byte an Host B. Zuerst muss<br />

dieses IP-Datagramm vom Router A fragmentiert werden, da die Link MTU kleiner ist. Es entstehen<br />

drei IP-Datagramme, Fragmente, die an Router B gesendet werden. Router B kann aufgr<strong>und</strong> der<br />

der Link MUT von 1280 die zwei größeren Fragmente nicht weitersenden <strong>und</strong> muss diese nochmals<br />

fragmentieren, bevor er sie weitersenden kann. Nun kann er alle Fragmente an Router C senden. Router<br />

C kann alle Fragmente sofort an Host B zustellen. Host B defragmentiert nun alle empfangenen<br />

Fragmente zu dem ursprünglichen IP-Datagramm (II). Die Fragmentierung von IP-Datagrammen ist<br />

Host A<br />

(I)<br />

MTU 4000 MTU 1500 MTU 1280 MTU 1500<br />

Router A Router B Router C<br />

Host B<br />

(II)<br />

Abbildung 11: Mehrmalige Fragmentierung von <strong>IPv4</strong>-Datagrammen [RFC791]<br />

problematisch <strong>und</strong> zudem noch rechenintensiv für die Router, die fragmentieren müssen. Eine Lösung<br />

ist die Path MTU Discovery (PMTUD). Diese Methode wird in [RFC1191] beschrieben, ist aber kein<br />

Standard für <strong>IPv4</strong>, sondern wird lediglich empfohlen. Der Zweck dieser PMTUD ist einzig <strong>und</strong> allein<br />

dem Quellhost die Fragmentierung der IP-Datagramme zu überlassen, so dass auf dem gesamten Pfad<br />

vom Quell- zum Zielhost nicht mehr fragmentiert werden muss. Hierzu müssen aber alle Router auf<br />

dem Pfad PMTUD unterstützen. Der Quellhost erlernt die Path MTU, indem er ein IP-Datagramm<br />

mit gesetzter DF“-Flag an den Zielhost sendet. Ein Router, der dieses IP-Datagramm fragmentieren<br />

”<br />

müsste, schickt eine ICMP-Fehlermeldung mit der Link MTU an den Quellhost zurück. Der Quellhost<br />

passt sich nach dieser Link MTU an <strong>und</strong> schickt wieder ein IP-Datagramm mit gesetzter DF“- ”<br />

Flag. Dies wird solange gemacht, bis ein IP-Datagramm am Zielhost angekommen ist. Dabei treten<br />

viele Probleme auf. Die Path MTU kann sich dynamisch verändern, d.h. der Host sollte die einmal<br />

gelernte“ Path MTU periodisch überprüfen <strong>und</strong> dann ggf. auch ändern. Zudem schicken nicht alle<br />


3.1 Das Internet Protokoll Version 4 - <strong>IPv4</strong> 31<br />

<strong>IPv4</strong>-Router die lokale maximale Link MTU. Einige Host blocken zudem auch ICMP-Meldungen<br />

ab, d.h. der Host sendet dann die IP-Datagramme mit der kleinsten Link MTU, eben den 86 Bytes<br />

[RFC2923].<br />

Im neuen IP-Protokoll, <strong>IPv6</strong>, wird die Path MTU Discovery implementiert <strong>und</strong> in [RFC1981] beschrieben.<br />

In Kapitel 3.2.5 wird auf die Path MTU Discovery für <strong>IPv6</strong> eingegangen.<br />

3.1.9 Probleme <strong>und</strong> Schwächen des <strong>IPv4</strong><br />

Wie schon zu Beginn erwähnt, wurde die Spezifikation von <strong>IPv4</strong> im Lauf der Zeit den Erfordernissen<br />

angepasst. Als großes Problem stellt sich die zu kleine Adressenlänge von 32-Bit heraus <strong>und</strong> die<br />

daraus resultierende Adressenknappheit. Dem wurde versucht mit NAT <strong>und</strong> mit CIDR entgegenzuwirken.<br />

Nur das kann auf die Dauer nicht gelingen. Das Internet wächst jedes Jahr um Millionen<br />

Hosts wie Abbildung 12 zeigt. Mit der heutigen Wachstumsrate sind die verfügbaren Netzwerkanteile<br />

Abbildung 12: Wachstum des Internets [isc.org]: Anzahl der Hosts von 1991 bis 2002<br />

bald erschöpft <strong>und</strong> ein weiteres Wachstum nicht möglich. Das zweite Problem ist die Änderung die<br />

sich durch neue Internetanwendungen ergab. Audio- <strong>und</strong> Videowiedergabe in Echtzeit gehören zum<br />

Beispiel dazu. Damit solche Daten ”<br />

ruckelfrei“ im Internet übertragen werden können, müssen der<br />

häufige Wechsel von Routen vermieden werden. Router werden von <strong>IPv4</strong> damit beschäftigt, Checksummen<br />

zu prüfen <strong>und</strong> zu errechnen <strong>und</strong> IP-Datagramme zu fragmentieren. Beides ist heutzutage


32 3 DAS INTERNET PROTOKOLL<br />

völlig unnötig <strong>und</strong> kostet bei dem heutigen Traffic summa summarum doch viel Rechenzeit. Ein weiteres<br />

Problem sind die Optionen in <strong>IPv4</strong>. Sie sind nicht flexibel genug <strong>und</strong> können auch nicht wirklich<br />

erweitert werden, was den Nutzungsgrad von <strong>IPv4</strong> schon sehr einengt. Auch der relativ große Protokollkopf<br />

mit den vielen, oft ungenutzten Feldern 10 , stellt ein Problem dar. Auch Sicherheit spielte bei<br />

<strong>IPv4</strong> lange keine große Rolle, aber mit der Entwicklung von IPsec, welches eigentlich für das neue<br />

Protokoll erdacht war, kam vorerst Linderung. Durch DHCP wurde auch der Administratoraufwand<br />

erheblich vermindert.<br />

Viele Schwächen, die <strong>IPv4</strong> hat, wurden im Laufe der Zeit vermindert <strong>und</strong> im alten Design wurde<br />

soweit dies möglich war, Verbesserungen gemacht. Das Verfahren, Path MTU Discovery, wurde für<br />

<strong>IPv6</strong> entwickelt <strong>und</strong> existiert jetzt schon in leicht abgewandelter Form in <strong>IPv4</strong>. Aber damit entstand<br />

ein neues Problem. Denn um die IP-Datagramme direkt in der richtigen Größe schicken zu können<br />

bekommt der Quellhost eine ICMP-Fehlermeldung. Doch wenn die nicht, z.B. durch falsches konfigurieren,<br />

ankommt, so dass die Path MTU Discovery fehlschlägt, benutzt <strong>IPv4</strong> die kleinste MTU,<br />

68 Byte, um die IP-Datagramme zuzustellen. Das viel höhere Paketaufkommen belastet unnötig den<br />

Router.<br />

3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong><br />

3.2.1 Allgemeines über <strong>IPv6</strong><br />

Das Internet Protokoll Version 6 (<strong>IPv6</strong> oder IPng 11 ) wurde aus einer Not heraus geboren. Das Computermagazin<br />

c’t beschreibt in [ct1601] das Problem 2001 folgendermaßen: ”<br />

Die Spatzen brüllen es<br />

von den Dächern: Der Adressraum im Internet wird knapp. Zwar hat die Network Address Translation<br />

(NAT) bei Providern für den Wählzugang ins Internet vorerst Linderung gebracht, doch kann<br />

dies nur eine vorübergehende Lösung sein. Eine durchgreifende Abhilfe existiert in Form des Internet<br />

Protocol Version 6 (<strong>IPv6</strong>) zwar schon seit 1995, allein in der Praxis zeigt es sich herzlich selten.“<br />

Das <strong>IPv6</strong> Paketformat ist gemessen am <strong>IPv4</strong> Paketformat wesentlich einfacher. Erreicht wird dies<br />

durch die Verlagerung von Funktionen in sogenannte Erweiterungsprotokollköpfe, die zwischen dem<br />

<strong>IPv6</strong> Protokollkopf <strong>und</strong> der eigentlichen Nutzlast, den Daten, enthalten sein können. Die Abbildung<br />

13 zeigt den Aufbau eines solchen <strong>IPv6</strong>-Pakets. Unbekannte Erweiterungsprotokollköpfe können<br />

nicht von einer Implementation ignoriert werden sondern führen zum Verwerfen des Pakets. Zusätzliche<br />

Parameter, die von Implementationen ignoriert werden können, werden als Optionen bezeichnet<br />

<strong>und</strong> in speziellen Erweiterungsprotokollköpfen für Optionen übertragen.


3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> 33<br />

optional<br />

<strong>IPv6</strong> Basis 1-ter<br />

Protokollkopf Erweiterungs- ...<br />

Protokollkopf<br />

(40 Byte)<br />

n-ter<br />

Erweiterungs-<br />

Protokollkopf<br />

Daten<br />

Abbildung 13: Allgemeine Form eines <strong>IPv6</strong>-Pakets [RFC2460]<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Version Traffic Class Flow Label<br />

Payload Length Next Header Hop Limit<br />

Source Address<br />

Destination Address<br />

Abbildung 14: <strong>IPv6</strong> Protokollkopfformat [RFC2460]<br />

3.2.2 <strong>IPv6</strong>-Protokollkopfformat<br />

Version: 4 Bits<br />

Das Feld Version enthält die Versionsnummer des IP-Protokolls. Der Wert ist 6.<br />

Traffic Class: 8 Bits<br />

Das Feld Traffic Class wird zum Unterscheiden der verschiedenen Übermittlungsanforderungen<br />

von Paketen benutzt. Zum Bsp. benötigt man für die Übertragung von digitaler Sprache<br />

mehr Schnelligkeit <strong>und</strong> weniger Genauigkeit, im Gegensatz zur Übertragung von Dateien, wo<br />

10 Fragmentierung muss nicht immer sein<br />

11 Internet Protocol The Next Generation


34 3 DAS INTERNET PROTOKOLL<br />

die Genauigkeit wichtiger ist als die Geschwindigkeit. Die Abbildung 15 zeigt den Aufbau des<br />

Feldes.<br />

0 1 2 3 4 5 6 7<br />

DSCP<br />

CU<br />

DSCP - differentiated services codepoint<br />

CU - currently unused<br />

Abbildung 15: Traffic Class - Aufbau nach RFC 2474 [RFC2474]<br />

Flow Label: 20 Bits<br />

Das Feld Flow Label ist noch in der Experimentierphase, soll aber benutzt werden, um es einer<br />

Quelle <strong>und</strong> einem Ziel zu ermöglichen, eine Pseudoverbindung mit bestimmten Merkmalen<br />

<strong>und</strong> Anforderungen aufzubauen. Das Feld kann dann benutzt werden, um ein IP-Datagramm<br />

mit einem bestimmten Netzwerkpfad zu assoziieren. Router sollen dann das Feld benutzen, um<br />

die IP-Datagramm auf diesen vorab ”<br />

geplanten“ Pfad zu befördern.<br />

Payload Length: 16 Bits<br />

Das Feld Payload Length gibt an, wie viele Bytes dem 40 Byte langen Protokollkopf folgen.<br />

Next Header: 8 Bits<br />

Das Feld Next Header gibt an, welcher der Erweiterungsprotokollköpfe (Kap. 3.2.3) diesem<br />

folgt oder falls er der letzte IP-Protokollkopf ist, welches Transportprotokoll folgt.<br />

Hop Limit: 8 Bits<br />

Das Feld Hop Limit entspricht dem ”<br />

Time to Live“-Feld in <strong>IPv4</strong> nur mit dem Unterschied, dass<br />

die Einheit nicht mehr Sek<strong>und</strong>en ist, <strong>und</strong> dass das Feld nach jeder Teilstrecke um den Wert 1<br />

verringert wird. Sobald der Wert des Feldes 0 ist, wird das Paket verworfen.<br />

Source Address: 128 Bits<br />

In diesem Feld wird die 128 Bit-Quelladresse eingetragen. Die 128 Bit Adresse wird ausführlich<br />

im Kapitel 3.2.4 auf Seite 39 behandelt.<br />

Destination Address: 128 Bits<br />

In diesem Feld wird die 128 Bit-Zieladresse eingetragen. Die 128 Bit Adresse wird ausführlich<br />

im Kapitel 3.2.4 auf Seite 39 behandelt.


3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> 35<br />

3.2.3 <strong>IPv6</strong>-Erweiterungsprotokollköpfe<br />

Es sind die folgenden sechs Erweiterungsprotokollköpfe (Extension Headers) definiert [RFC2460,<br />

RFC2402, RFC2406]:<br />

Optionen für Teilstrecken“ Erweiterungsprotokollkopf<br />

”<br />

Abbildung. 16 zeigt den Hop-by-Hop Options Extension Header (HO). Er enthält eine Liste von Optionen,<br />

die von jedem Knoten auf dem Weg untersucht werden müssen [RFC2460].<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Next Header<br />

Hdr Ext Len<br />

Options<br />

Abbildung 16: Hop-by-Hop Options Extension Header [RFC2460]<br />

Next Header: Das Feld Next Header identifiziert den Typ der in der Nutzlast hinter dem HO enthaltenen<br />

Nachricht.<br />

Hdr Ext Len: Das Feld Header Extension Length spezifiziert die Länge des HO gemessen in der<br />

Anzahl von 64 Bit Worten minus 1.<br />

Options: Das Feld Options enthält die einzelnen Optionen.<br />

Routing Erweiterungsprotokollkopf<br />

Der Routing Extension Header (RH) wird in Abbildung 17 gezeigt. Er erlaubt es, den Weg eines<br />

Datagramms im voraus zu planen [RFC2460].<br />

Next Header: Das Feld Next Header identifiziert den Typ der in der Nutzlast hinter dem RH enthaltenen<br />

Nachricht.<br />

Hdr Ext Len: Das Feld Header Extension Length spezifiziert die Länge des RH gemessen in der<br />

Anzahl von 64 Bit minus 1.


36 3 DAS INTERNET PROTOKOLL<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Next Header Hdr Ext Len Routing Type Segments Left<br />

Type-Specific Data<br />

Abbildung 17: Routing Extension Header [RFC2460]<br />

Routing Type: Das Feld Routing Type identifiziert eine bestimmte Variante des RH <strong>und</strong> die Bedeutung<br />

des Felds Type-Specific Data.<br />

Segments Left: Das Feld Segments Left identifiziert die Anzahl der verbleibender Routing-Segmente.<br />

Fragmentierungs Erweiterungsprotokollkopf<br />

<strong>IPv6</strong> setzt voraus, daß jeder Link eine MTU von mindestens 1280 Byte besitzt. Entsprechend müssen<br />

Links, die eine kleinere Link MTU besitzen, Fragmentierung <strong>und</strong> Reassemblierung unterhalb von<br />

<strong>IPv6</strong> realisieren. Einfache Implementationen, die kein Path MTU Discovery (Kap. 3.2.5) unterstützen,<br />

müssen sich auf IP-Datagramme mit einer maximalen Länge von 1280 Byte beschränken. Mit Hilfe<br />

des Fragment Extension Header (FH), der in Abbildung 18 gezeigt wird, können IP-Datagramme<br />

die größer als die Path MTU sind, fragmentiert <strong>und</strong> versendet werden. Fragmentierung erfolgt ausschließlich<br />

beim Quellhost eines IP-Datagramms <strong>und</strong> niemals innerhalb eines Routers [RFC2460].<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

M<br />

Next Header Reserved Fragment Offset Res<br />

Identification<br />

Abbildung 18: Fragment Extension Header [RFC2460]<br />

Next Header: Das Feld Next Header identifiziert den Typ der in der Nutzlast hinter dem FH enthaltenen<br />

Nachricht.<br />

Fragment Offset: Das Feld Fragment Offset definiert die relative Position eines Fragments (gemessen<br />

in 64 Bit Worten) des original IP-Datagramms.


3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> 37<br />

M: Die Flag M ist gesetzt, wenn weitere Fragmente folgen. Die Bits Res sind nicht benutzt.<br />

Identification: Das Feld Identification enthält für alle Fragmente eines IP-Datagramms denselben<br />

Wert.<br />

Authentifikation Erweiterungsprotokollkopf<br />

Der Authentication Header (AH), in Abbildung 19 gezeigt, realisiert für IP-Datagramme die gr<strong>und</strong>legenden<br />

Sicherheitsdienste Authentifikation <strong>und</strong> Datenintegrität [RFC2402].<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Next Header Payload Len Reserved<br />

Security Parameters Index (SPI)<br />

Authentication Data (variable)<br />

Abbildung 19: Authentication Header [RFC2402]<br />

Next Header: Das Feld Next Header identifiziert den Typ der in der Nutzlast hinter dem AH enthaltenen<br />

Nachricht.<br />

Payload Len: Das Feld Payload Length spezifiziert die Länge des AH gemessen in der Anzahl von<br />

32 Bit Worten minus 2.<br />

Security Parameters Index: Das Feld Security Parameters Index enthält einen Wert, der zusammen<br />

mit der Zieladresse eindeutig eine Security Association (SA) identifiziert.<br />

Sequence Number: Das Feld Sequence Number enthält eine streng monoton wachsende Sequenznummer.<br />

Das erste Paket, das nach der Einrichtung einer SA gesendet wird, hat den Sequenznummernwert<br />

1. Erreicht die Sequenznummer den Wert 232, so muss in der Regel eine neue<br />

SA eingerichtet werden.<br />

Authentication: Das Feld Authentication Data enthält eine Integritätsprüfsumme (integrity check<br />

value, ICV). Die Länge dieses Felds hängt von der verwendeten Authentifizierungsfunktion ab.


38 3 DAS INTERNET PROTOKOLL<br />

Verschlüsselte Sicherheitsdaten“ Erweiterungsprotokollkopf<br />

”<br />

Abbildung 20 zeigt den Encapsulating Security Payload Erweiterungsprotokollkopf (ESP). Er realisiert<br />

Sicherheitsdienste wie Vertraulichkeit, Authentifikation, Datenintegrität, Schutz vor Wiederholungen<br />

<strong>und</strong> eingeschränkte Sicherung gegen Verkehrsflußanalysen [RFC2406]. Eine Fragmentierung<br />

kann nur nach einer Verschlüsselung erfolgen, d.h. ESP wird nie auf ein Fragment angewendet.<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Security Parameters Index (SPI)<br />

Sequence Number<br />

Payload Data (varibale)<br />

Padding (0-255 bytes)<br />

Pad Length<br />

Next Header<br />

Authentication Data (variable)<br />

Abbildung 20: Encapsulating Security Payload Erweiterungsprotokollkopf [RFC2406]<br />

Security Parameters Index: Das Feld Security Parameters Index enthält einen Wert, der zusammen<br />

mit der Zieladresse eindeutig eine Security Association (SA) identifiziert.<br />

Sequence Number: Das Feld Sequence Number enthält eine streng monoton wachsende Sequenznummer.<br />

Das erste Paket, das nach der Einrichtung einer SA gesendet wird, hat den Sequenznummernwert<br />

1. Erreicht die Sequenznummer den Wert 232, so muss in der Regel eine neue<br />

SA eingerichtet werden.<br />

Payload Data: Die verschlüsselte Nutzlast (inklusive etwaiger Initialisierungsvektoren) ist im Feld<br />

Payload Data untergebracht.<br />

Padding: Das Feld Padding kann benutzt werden, um durch Füllbytes eine Ausrichtung der verschlüsselten<br />

Daten zu erreichen oder um eine passende Eingabelänge für ein gegebenes Verschlüsselungsverfahren<br />

bereitzustellen. Durch das Anfügen von Füllbytes kann auch die ursprüngliche<br />

Länge der Nutzlast verschleiert werden.<br />

Pad Length: Das Feld Pad Length enthält die Anzahl der Füllbytes.<br />

Next Header: Das Feld Next Header identifiziert den Typ der in der Nutzlast enthaltenen Nachricht.


3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> 39<br />

Authentication Data: Das Feld Authentication Data enthält eine Integritätsprüfsumme (integrity<br />

check value, ICV). Die Länge dieses Felds hängt von der verwendeten Authentifizierungsfunktion<br />

ab.<br />

Optionen für Ziele“ Erweiterungsprotokollkopf<br />

”<br />

Der Destination Options Extension Header (DO) enthält eine Liste von Optionen, die nur von den<br />

Zielknoten untersucht werden müssen [RFC2460]. Er wird in Abbildung 21 gezeigt.<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

Next Header<br />

Hdr Ext Len<br />

Options<br />

Abbildung 21: Destination Options Extension Header [RFC2460]<br />

• Die Felder Next Header, Hdr Ext Len <strong>und</strong> Options sind analog zum HO Erweiterungsprotokollkopf<br />

definiert.<br />

3.2.4 Aufbau einer <strong>IPv6</strong>-Adresse<br />

Die <strong>IPv6</strong>-Adresse hat eine Länge von 128 Bit 12 . Mit einer 128-Bit-Adressierung kann man nun 2 128 =<br />

340.282.366.920.938.463.463.374.607.431.768.211.456 mögliche Adressen vergeben. Wie man sieht,<br />

ist das eine unvorstellbar große Zahl <strong>und</strong> man kann nun jedem Quadratmeter Erdoberfläche ca. 7×10 23<br />

Adressen zuweisen. Die Entscheidung eine IP-Adresse mit 128 Bit für das neue IP-Protokoll zu benutzten,<br />

lag nicht darin, jeden Quadratmeter mit Quadrillionen von Adressen zu ”<br />

bepflastern“, sondern<br />

eine Aufteilung des Internets nach topographischen <strong>und</strong> hierarchischen Gesichtspunkten zu erreichen.<br />

Eine 128-Bit-Adresse wird nicht als Binärzahl, im Gegensatz zur <strong>IPv4</strong>-Adresse aber auch<br />

nicht als Punkt-Dezimal-Notation geschrieben, sondern in doppelgepunkteten Hexadezimalzahlen. In<br />

dieser Doppelpunkt-Hexadezimal-Notation (Colon Hexadecimal Notation) werden jeweils 16 Bit zu<br />

einer Gruppe zusammengefügt <strong>und</strong> die insgesamt 8 Gruppen mit einem Doppelpunkt ”<br />

:“ getrennt.<br />

Somit sieht das <strong>IPv6</strong>-Adressenformat folgendermaßen aus: ∗ : ∗ : ∗ : ∗ : ∗ : ∗ : ∗ : ∗ wobei ∗ eine<br />

hexadezimale Zahl zwischen 0 <strong>und</strong> F F F F ist.<br />

12 16 Byte


40 3 DAS INTERNET PROTOKOLL<br />

Tabelle 6 zeigt eine 128-Bit-<strong>IPv6</strong>-Adresse in jeweils dualer Schreibweise, Punkt-Dezimal-Notation<br />

<strong>und</strong> die Doppelpunkt-Hexadezimal-Notation. An dieser Tabelle ist für jeden ersichtlich, dass eigent-<br />

Schreibweise Adresse<br />

Binär 0010000111011010 1010111111111110<br />

0000000000000000 1011101011111111<br />

0010111100111011 0000000011111111<br />

0000001010101011 0101101010011100<br />

Punkt-Dezimal (8 Bit) 33.218.175.254.0.0.186.255.47.59.0.255.2.171.90.156<br />

Punkt-Dezimal (16 Bit) 7180.37124.0.39599.9956.244.627.19272<br />

Doppelpunkt-Hexadezimal 21DA:AF F E:0000:BAF F :2F 3B:00F F :02BC:5A9C<br />

Tabelle 6: Eine <strong>IPv6</strong>-Adresse in binärer Schreibweise, in Punkt-Dezimal- <strong>und</strong> in Doppelpunkt-<br />

Hexadezimal-Notation<br />

lich alle Schreibweisen sehr umständlich sind, im Gegensatz zur <strong>IPv4</strong>-Adresse, doch hat man sich<br />

für die Doppelpunkt-Hexadezimal-Notation entschieden. Dadurch kommt auch dem DNS eine höhere<br />

Bedeutung zu. Da viele <strong>IPv6</strong>-Adressen erwartungsgemäß zahlreiche Nullen enthalten, entschied<br />

man sich für eine sogenannte Nullenkompression (Zero Compression). Somit können eine Folge von<br />

Nullen einmalig durch zwei Doppelpunkte ”<br />

::“ ersetzt <strong>und</strong> führende Nullen der Hexadezimalzahlen<br />

weggelassen werden. Somit kann die Adresse F F 02:0000:0000:0000:0000:0000:0000:0002 zu<br />

F F 02::2 komprimiert werden.<br />

Weiterhin wird der Adresspräfix (Address Prefixe) durch die CIDR-Notation [RFC1519] dargestellt.<br />

Das Format der Präfix-Notation ist ∗:∗:∗:∗:∗:∗:∗:∗/x, wobei x die Anzahl der Bits von links an angibt,<br />

welche zum Präfix gehören.<br />

Die Knotenadresse 12AB::CD30:123:4567:89AB:CDEF <strong>und</strong> ihre Teilnetznummer<br />

12AB:0:0:CD30::/60 kann mit 12AB::CD30:123:4567:89AB:CDEF /60 abgekürzt werden.<br />

Es sind drei verschiedene Arten von <strong>IPv6</strong>-Adressen definiert [RFC2373]: Unicast-, Anycast- <strong>und</strong><br />

Mulitcast-Adressen. Im Folgenden werden die drei Adresstypen beschrieben.<br />

Unicast<br />

Eine Unicast-Adresse identifiziert ein einzelnes Interface. Ein an diese Art von Adressen gesendetes<br />

IP-Datagramm wird auf den kürzesten Pfad an den Zielhost gesendet. Eine Unicast-Adresse<br />

hat prinzipiell einen Teilnetzpräfix <strong>und</strong> eine Interface-ID <strong>und</strong> ist mit <strong>IPv4</strong>-Adressen unter CIDR vergleichbar.<br />

Alle Unicast-Adressen, außer jene die mit dem binären Wert 000 beginnen, haben 64 Bit<br />

lange Interface IDs, welche aus dem Modified EUI-64-Format 13 konstruiert werden. Es sind Globale<br />

Unicast-Adressen (Global Unicast Addresses), <strong>IPv6</strong>-Adressen mit eingebetteten <strong>IPv4</strong>-Adressen<br />

<strong>und</strong> lokale Unicast-Adressen (Local Unicast Addresses) definiert [RFC2373]. Die lokalen Unicast-<br />

13 Es leitet die Interface ID direkt aus der MAC-Adresse ab.


3.2 Das Internet Protokoll Version 6 - <strong>IPv6</strong> 41<br />

Adressen teilen sich in Verbindungsspezifische lokale Adressen (Link-local Unicast) <strong>und</strong> Standortspezifische<br />

lokale Adressen (Site-Local Unicast) auf. Die verbindungsspezifischen lokalen Adressen<br />

haben nur lokale Bedeutung auf einem Link. Sie werden automatisch per Neighbor Discovery oder<br />

wenn kein Router existiert vergeben. IP-Datagramme von dieser oder an diese Adresse werden von<br />

keinem Router weitergesendet <strong>und</strong> gelten z.B. nur innerhalb eines Unternehmens. Sie besteht aus einem<br />

10 Bit langen Präfix, weitere 54 Bit langen, die Null sind <strong>und</strong> der 64 Bit langen Interface ID.<br />

Die standortspezifischen lokalen Adressen werden zu Adressierung innerhalb eines Standortes verwendet,<br />

ohne eine direkte Verbindung an das Internet. IP-Datagramme von dieser oder zu dieser<br />

Adresse werden auch nicht von einem Router weitergesendet. Sie besteht aus einem 10 Bit langen<br />

Präfix, einer 54 Bit langen Subnet ID <strong>und</strong> der 64 Bit langen Interface ID.<br />

Es gibt zwei verschiedene <strong>IPv6</strong>-Adressen mit eingebeteten <strong>IPv4</strong>-Adressen: <strong>IPv4</strong>-compatible <strong>IPv6</strong><br />

Adresse <strong>und</strong> <strong>IPv4</strong>-mapped <strong>IPv6</strong> Adresse. Bei beiden sind die ersten 80 Bits Null <strong>und</strong> die letzten 32 Bits<br />

sind die alte <strong>IPv4</strong>-Adresse, die in Punkt-Dezimal-Notation geschrieben werden kann. Nur in den mittleren<br />

16 Bits unterscheiden sie sich.<br />

Die mittleren 16 Bits der <strong>IPv4</strong>-compatible <strong>IPv6</strong> Adresse sind Null. Somit hat die Adresse folgende<br />

Form ::∗.∗.∗.∗. Bei der <strong>IPv4</strong>-compatible <strong>IPv6</strong> Adresse kann man einem <strong>IPv6</strong>-Knoten eine <strong>IPv4</strong>-<br />

kompatible Adresse zuweisen. Diese <strong>IPv6</strong> Adresse kann über ein <strong>IPv4</strong>-Netz übertragen werden. Beim<br />

Übergang von <strong>IPv6</strong>-Netz in <strong>IPv4</strong>-Netz <strong>und</strong> umgekehrt werden nur die ersten 96 Nullen entfernt bzw.<br />

hinzugefügt. Zu beachten ist, dass diese <strong>IPv4</strong>-Adresse eindeutig sein muss. Die <strong>IPv4</strong>-mapped <strong>IPv6</strong><br />

Adresse setzt die mittleren 16 Bits auf 1, damit hat sie die folgende Form ::F F F F :∗.∗.∗.∗. Dieser<br />

Adressentyp wird benutzt um die Adressen von <strong>IPv4</strong> Knoten als <strong>IPv6</strong> Adressen darzustellen.<br />

Anycast<br />

Eine Anycast-Adresse identifiziert eine Menge von Interfaces, welche typischerweise zu verschiedenen<br />

Knoten gehören. Ein an diese Adresse gesendetes IP-Datagramm wird auf dem kürzesten Pfad<br />

befördert <strong>und</strong> dem nächsten Interface mit dieser Adresse zugestellt. Anycast-Adressen basieren auf<br />

den üblichen Unicast-Adressen.<br />

Multicast<br />

Eine Multicast-Adresse identifiziert eine Menge von Interfaces, welche typischerweise zu verschiedenen<br />

Knoten gehören. Ein an diese Adresse gesendetes IP-Datagramm wird an alle Interfaces,<br />

die zu dieser Adresse gehören, gesendet. Die Zugehörigkeit zu dieser ”<br />

Gruppe“ kann sich jederzeit<br />

ändern. Die Multicast-Adresse übernehmen u.a. die Aufgabe der <strong>IPv4</strong>-Broadcast-Adressen. Vier Bit<br />

der Adresse sind für das Umgangsfeld (Scope) reserviert. Durch 16 verschiedene Werte kann man ein<br />

Multicast auf eine Verbindung, einen Standort, eine Unternehmen <strong>und</strong> weltweit begrenzen.<br />

Der <strong>IPv6</strong>-Adressraum teilt sich auf, wie in der Tabelle 7 aufgeführt.<br />

Hinzukommmen noch einige spezielle Adressen, die nicht verwendet werden dürfen:<br />

Die Adresse 0:0:0:0:0:0:0:0 heißt die unspezifizierte Adresse (Unspecified Address). Sie soll beim<br />

Booten“ benutzt werden, noch bevor der Host eine eigene Adresse erhält.<br />

”<br />

Die Unicast-Adresse 0:0:0:0:0:0:0:1 14 ist die Schleifenadresse (Loopback Address). Unter <strong>IPv4</strong> hatte


42 3 DAS INTERNET PROTOKOLL<br />

Präfix (binär) Verwendung Adress Raum<br />

0000 0000 Reserviert, u.a. für <strong>IPv4</strong>-Adressen 1/256<br />

0000 0001 Nicht zugewiesen 1/256<br />

0000 001 OSI-NSAP-Adresse 1/128<br />

0000 010 Novel-NetWare-IPX-Adressen 1/128<br />

0000 011 Nicht zugewiesen 1/128<br />

0000 1 Nicht zugewiesen 1/32<br />

0001 Nicht zugewiesen 1/16<br />

001 Nicht zugewiesen 1/8<br />

010 Adressen für ISP (Internet Service Provider) 1/8<br />

011 Nicht zugewiesen 1/8<br />

100 Adressen für geographische Bereiche 1/8<br />

101 Nicht zugewiesen 1/8<br />

110 Nicht zugewiesen 1/8<br />

1110 Nicht zugewiesen 1/16<br />

1111 0 Nicht zugewiesen 1/32<br />

1111 10 Nicht zugewiesen 1/64<br />

1111 110 Nicht zugewiesen 1/128<br />

1111 1110 0 Nicht zugewiesen 1/512<br />

1111 1110 10 Link-local unicast 1/1024<br />

1111 1110 11 Site-Local unicast 1/1024<br />

1111 1111 Multicast-Adressen 1/256<br />

Tabelle 7: Aufteilung des <strong>IPv6</strong>-Adressraumes [RFC2373]<br />

sie die folgende Form: 127.0.0.0.1.<br />

Anycast-Adressen der Form Teilnetzpräfix:0· · · 0 sind vordefiniert <strong>und</strong> heißen Subnet-Router Anycast<br />

Adresses. IP-Datagramme mit dieser Art von Adressen als Ziel, werden zu irgendeinem Router 15 in<br />

dem Teilnetz gesendet.<br />

Die Multicast-Adressen von FF00:: bis FF0F:: sind reserviert [RFC2373].<br />

3.2.5 Fragmentierung von <strong>IPv6</strong>-Datagrammen & Path MTU Discovery<br />

In Kapitel 3.1.8 wurde die Fragmentierung von <strong>IPv4</strong>-Datagrammen beschrieben. Im Gegensatz zu<br />

<strong>IPv4</strong> 16 führt ein <strong>IPv6</strong>-Router keine Fragmentierung mehr durch. Empfängt ein Router ein zu großes<br />

IP-Datagramm, sendet er eine ICMP-Nachricht an den Quellhost des IP-Datagramm [RFC1981], wel-<br />

14 kurz: ::1<br />

15 den nächsten<br />

16 Ohne ”<br />

Path MTU Discovery“


3.3 Wesentliche Unterschiede 43<br />

chen diesen anweist, alle weiteren IP-Datagramme zu diesem Ziel aufzuteilen. Das bedeutet, dass von<br />

den Quellhosts ”<br />

erwartet“ wird, dass sie von vornherein eine Datengrammgröße wählen, die keine<br />

Fragmentierung voraussetzt. Das ”<br />

erwartet“ wird durch das Verfahren der Path MTU Discovery (PM-<br />

TUD) erreicht, welche in <strong>IPv4</strong> lediglich empfohlen war. Mit Hilfe der PMTUD weiß der Quellhost<br />

nun, mit welcher IP-Datagramm-Größe er senden muss, damit seine IP-Datagramm auf dem gesamten<br />

Pfad, zwischen ihm <strong>und</strong> dem Zielhost nicht mehr fragmentiert werden muss. In Abbildung 22 wird<br />

ein Beispiel zur Path MTU Discovery gegeben. Um die Path MTU eines Pfades zu bestimmen sendet<br />

Host A ein genügend langes IP-Datagramm (I) an Host B. Der Router A kann aufgr<strong>und</strong> der geringeren<br />

Link MTU von 1500 dieses IP-Datagramm nicht unfragmentiert weitersenden. Deshalb sendet<br />

er eine ICMP-Meldung an Host A (Abb. 22(1)). Dieser wählt aufgr<strong>und</strong> der Link MTU, die in der<br />

ICMP-Meldung gesendet wurde, diese Größe für sein IP-Datagramm. Router A kann nun dieses IP-<br />

Datagramm Router B weitersenden. Aber auch Router B kann aufgr<strong>und</strong> der geringeren Link MTU von<br />

1280 das IP-Datagramm nicht weitersenden. Auch er sendet eine ICMP mit der Link MTU an Host A<br />

zurück (Abb. 22(2)). Host A sendet nun wiederrum ein IP-Datagramm mit der Länge der neuen Link<br />

MTU von 1280 an Router A. Das IP-Datagramm erreicht nun über Router A, Router B <strong>und</strong> Router C<br />

den Host B (Abb. 22(3)). Nun ”<br />

kennt“ Host A die Path MTU zum Host B. In Abbildung 22(4) sendet<br />

Host A das IP-Datagramm (I) direkt in der Länge, so dass kein Router die IP-Datagramme fragmentieren<br />

müsste. Der Host B wiederum defragmentiert diese IP-Datagramme zu einem IP-Datagramm<br />

(II).<br />

3.3 Wesentliche Unterschiede<br />

Der größte sichtbare Unterschied ist die Länge der Adressen. Waren es bei <strong>IPv4</strong> noch 32 Bit lange<br />

Adressen, die in Punkt-Dezimal-Notation notiert wurden, sind es bei <strong>IPv6</strong> 128 Bit lange Adressen, die<br />

in einer Doppelpunkt-Hexadezimal-Notation dargestellt werden. Die Adressen unter <strong>IPv4</strong> <strong>und</strong> <strong>IPv6</strong><br />

unterscheiden sich nicht nur in der Länge <strong>und</strong> der Schreibweise, sondern auch in der Adressenaufteilung.<br />

Die <strong>IPv4</strong>-Adressen wurden zuerst in Klassen aufgeteilt, dann aufgr<strong>und</strong> der Adressenknappheit<br />

<strong>und</strong> der Unflexibilität der Adressklassen als klassenlose Adressen benutzt. <strong>IPv6</strong>-Adressen sind<br />

nicht in Klassen aufgeteilt, sondern in Adresstypen <strong>und</strong> nach dem Präfix. Somit erreichen die <strong>IPv6</strong>-<br />

Adressen Flexibilität <strong>und</strong> eine Aufteilung des Internets nach topographischen <strong>und</strong> hierarchischen Gesichtspunkten.<br />

Ein <strong>IPv6</strong>-Datagramm aus einem Basisprotokollkopf fester Länge, einem oder mehreren<br />

Erweiterungsprotokollköpfen <strong>und</strong> den Nutzdaten. Ein <strong>IPv4</strong>-Datagramm besteht hingegen nur<br />

aus einem Protokollkopf variabler Länge <strong>und</strong> den Nutzdaten. Somit braucht der <strong>IPv6</strong>-Protokollkopf<br />

auch kein Total Length-Feld mehr. Durch die feste Länge des <strong>IPv6</strong>-Basis-Protokollkopfes können<br />

sich die Optionen nicht mehr innerhalb des Protokollkopfes befinden. Während unter <strong>IPv4</strong> noch jede<br />

Funktion ein oder mehrere Felder im Protokollkopf umfasste, existiert unter <strong>IPv6</strong> für jede Funktion<br />

einen eigenen Erweiterungsprotokollkopf. Dadurch hat <strong>IPv6</strong> auch ein neues Feld bekommen, das<br />

Next Header. Dadurch wird Feld Protocol in <strong>IPv4</strong> nicht mehr benötigt, da das Feld Next Header auch<br />

angibt, welches Transportprotokoll nach dem letzten IP-Header folgt. Die Fragmentierung wird in


44 3 DAS INTERNET PROTOKOLL<br />

(1)<br />

Host A<br />

MTU 4000 MTU 1500 MTU 1280 MTU 1500<br />

ICMP<br />

Router A Router B Router C<br />

Host B<br />

(2)<br />

Host A<br />

MTU 4000 MTU 1500 MTU 1280 MTU 1500<br />

Router A Router B Router C<br />

ICMP<br />

Host B<br />

(3)<br />

Host A<br />

MTU 4000 MTU 1500 MTU 1280 MTU 1500<br />

Router A Router B Router C<br />

Host B<br />

(4)<br />

Host A<br />

(I)<br />

MTU 4000 MTU 1500 MTU 1280 MTU 1500<br />

Router A Router B Router C<br />

Host B<br />

(II)<br />

Abbildung 22: Fragmentierung von <strong>IPv6</strong>-Datagrammen [RFC1981]<br />

<strong>IPv6</strong> gegenüber <strong>IPv4</strong> ein wenig anders gehandhabt. Alle Felder im <strong>IPv4</strong>-Protokollkopf, die bisher zur<br />

Fragmentierung eines IP-Datagramms benötigt wurden (Identification, Flags, Fragment Offset), sind<br />

im <strong>IPv6</strong>-Basis-Protokollkopf nicht mehr vorhanden. Das liegt vorallem an der Tatsache, dass es unter<br />

<strong>IPv6</strong> einen Erweiterungsheader Fragmentierung gibt. Zudem geschieht die Fragmentierung bei <strong>IPv4</strong><br />

standardmäßig bei Host <strong>und</strong> Router gleichermaßen. Wogegen bei <strong>IPv6</strong> durch Path MTU Discovery


3.4 Umstellung von <strong>IPv4</strong> auf <strong>IPv6</strong> 45<br />

die Fragmentierung nur noch beim Host stattfindet. Da sich die Berechnung der Prüfsumme bei <strong>IPv4</strong><br />

nachteilig auf die Leistung der Datenübertragung ausgewirkt hat, wurde das Feld Checksum ist nicht<br />

mehr in <strong>IPv6</strong> implementiert. Eine Prüfsumme existiert bereits auf der Transportschicht, weshalb innerhalb<br />

der Vermittlungsschicht keine weitere Prüfsumme notwendig sei.<br />

Die Sicherheit ist ein große Thema, welches auch vor dem Internet Protokoll nicht Halt macht. IPsec<br />

(Internet Protokoll Security) heißt dort die Lösung. Unter <strong>IPv4</strong> ist die Unterstützung von IPsec optional,<br />

in <strong>IPv6</strong> aber Pflicht.<br />

<strong>IPv4</strong> sendet über die Broadcast Adressen an alle Knoten eines Teilnetzes ein IP-Datagramm. Unter<br />

<strong>IPv6</strong> gibt es keine Broadcast Adressen sondern nur noch Multicast.<br />

Auch musste man unter <strong>IPv4</strong> jedem Knoten manuell oder durch Konfiguration von DHCP eine IP-<br />

Adresse zuweisen. Das geschieht unter <strong>IPv6</strong> nun vollautomatisch anhand der MAC-Adresse <strong>und</strong><br />

Neighbor Solocitation.<br />

Die minimale Link MTU des Internet Protokolls wurde von 86 Bytes bei <strong>IPv4</strong> auf 1280 Bytes bei <strong>IPv6</strong><br />

angehoben. Somit kann selbst bei Fehlern während der Path MTU Discovery der <strong>IPv6</strong>-Quellhost IP-<br />

Datagramme mit 1280 Bytes senden, anstatt sich auf 86 Bytes beschränken zu müssen.<br />

Die maximale IP-Datengrammgröße wurde allerdings wie bei <strong>IPv4</strong> bei 64 Kbyte belassen, allerdings<br />

existiert ein Erweiterungsheader bei <strong>IPv6</strong> mit dem Jumbogramme gesendet werden können.<br />

3.4 Umstellung von <strong>IPv4</strong> auf <strong>IPv6</strong><br />

Eine Umstellung von <strong>IPv4</strong> auf <strong>IPv6</strong> ist sehr problematisch. Zwar ist <strong>IPv6</strong> abwärtskompatibel, aber installierte<br />

<strong>IPv4</strong>-System, wie Router, können keine <strong>IPv6</strong>-Datagramme handhaben. Es ist enorm schwierig,<br />

Protokolle der Vermittlungsschicht zu ändern. In [KK02] wird folgendes festgestellt:<br />

Die Einführung neuer Protokolle auf der Vermittlungsschicht kommt ungefähr dem Austausch des<br />

”<br />

F<strong>und</strong>aments eines Hauses gleich – das Ganze lässt sich kaum bewältigen, ohne das ganze Haus abzureißen<br />

oder zumindestens alle Bewohner vorrübergehend zu evakuieren.“<br />

Es gibt drei mögliche Szenarien wie eine Umstellung vonstatten gehen kann. In [RFC2893] werden<br />

<strong>IPv6</strong> Übergangsmethoden ausführlich beschrieben. Eine erste aber eher unwahrscheinliche Umstellungsart<br />

wäre die des Stichtages. An einem Tag sollen alle <strong>IPv4</strong>-Knoten runtergefahren werden <strong>und</strong><br />

dann als <strong>IPv6</strong>-Knoten wieder gebootet werden.<br />

Eine zweite, weichere Umstellungsart ist die des Dual-Stack“. Dual-Stacks erlauben den Mischbetrieb<br />

von <strong>IPv6</strong> <strong>und</strong> <strong>IPv4</strong>, d.h. jeder Knoten sollte <strong>IPv4</strong>- <strong>und</strong> <strong>IPv6</strong>-Datagramme senden <strong>und</strong> empfan-<br />

”<br />

gen können. Abbildung 23 zeigt schematisch zwei Dual-Stacks. Eine dritte Umstellungsart tunnelt<br />

die gesendeten Daten zwischen zwei <strong>IPv6</strong>-Host durch eine <strong>IPv4</strong>-Infrastruktur. Dies erfordert auf der<br />

<strong>IPv4</strong>-Ebene eine Multicast-Fähigkeit. Aktuell ist so ein <strong>IPv6</strong>-Tunnelnetz schon im Einsatz. Es heißt<br />

6Bone, in Anlehnung an den Multicast-Backbone MBONE von <strong>IPv4</strong>. In diesem Tunnelnetz sind sogenannte<br />

<strong>IPv6</strong>-Inseln durch statische Tunnel miteinander verb<strong>und</strong>en. Abbildung 24 zeigt schematisch<br />

einen aufgebauten Tunnel. Inzwischen ist es auch möglich dynamische Tunnel automatisch öffnen zu


46 3 DAS INTERNET PROTOKOLL<br />

Abbildung 23: Dual-Stacks: Mischbetrieb von <strong>IPv6</strong> <strong>und</strong> <strong>IPv4</strong> [ct1601]<br />

Abbildung 24: <strong>IPv6</strong> over <strong>IPv4</strong>: zwei <strong>IPv6</strong>-Hosts tauschen Daten über einen per Multicast aufgebauten<br />

Tunnel durch das <strong>IPv4</strong>-Netz aus [ct1601]<br />

lassen.<br />

Eines ist aber gewiess; die Umstellung geschieht in Hosts, ebenso wie in Routern <strong>und</strong> auch einige<br />

Programme müssen soweit dies überhaupt möglich ist umprogrammiert werden. Die Umstellung<br />

in LANs kann schon heute geschehen. Bei Hubs <strong>und</strong> Switches, welche im LAN zum Einsatz kommen<br />

sind heutzutage keine Änderungen für <strong>IPv6</strong> vorzunehmen. Fast alle gängigen Betriebssysteme<br />

wie Linux, Windows XP & Co., Solaris <strong>und</strong> selbst MAC OS X unterstützen <strong>IPv6</strong>. Somit sind einer<br />

Umstellung im LAN von <strong>IPv4</strong> auf <strong>IPv6</strong> keine Steine in den Weg gelegt. Router-Firmen wie CISCO<br />

unterstützen auch schon <strong>IPv6</strong>, zumindestens in Beta-Versionen. Es wird erst die Zeit zeigen, ob sich<br />

<strong>IPv6</strong> auf breiter Ebene durchsetzen wird. Asien <strong>und</strong> auch Europa sind die Vorreiter. Die USA holt<br />

langsam auf. Manche Adminstratoren, Firmen u.a. sehen nicht die Notwendigkeit einer zeitaufwenigen<br />

<strong>und</strong> arbeitsintensiven Umstellung, da viele Vorteile von <strong>IPv6</strong> auf <strong>IPv4</strong> zurückportiert wurden.


47<br />

4 Zusammenfassung<br />

Das Internet Protokoll ist das F<strong>und</strong>ament des Internets. Zu den Stärken des Internet Protokolls zählt<br />

die Übertragung von Daten auch über heterogene Netze hinweg. Dazu benutzt es ein IP-Datagramm<br />

als Basiseinheit für den Transfer in einem TCP/IP-Internet. Um Daten von einem Quellhost zu einem<br />

Zielhost senden zu können, bedient sich das Internet Protokoll seiner IP-Adressen, die ein Interface<br />

im Internet eindeutig identifiziert. Um nun auch über heterogenen Netze mit unterschiedlichen MTUs<br />

Daten zum Zielhost senden zu können, beherrscht das Internet Protokoll die Fragmentierung von<br />

IP-Datagrammen. Die Adressierung <strong>und</strong> die Fragmentierung sind die Basisfunktionen welche das Internet<br />

Protokoll implementiert.<br />

Das Internet Protokoll Version 4 leistet schon seit über 20 Jahren gute Dienste, aber die Adressen<br />

werden knapp. Seit über 10 Jahren wird deshalb immer wieder an neuen Methoden gearbeitet, um<br />

dieses <strong>und</strong> andere Mankos auszugleichen. Doch seit 1995 gibt es neues Internet Protokoll, welches<br />

das Alte ablösen soll. Das Internet Protokoll Version 6 bietet statt der alten 32-Bit-Adressierung eine<br />

128-Bit-Adressierung. <strong>IPv6</strong> weist noch viele Merkmale von <strong>IPv4</strong> auf, aber beide Protokolle unterscheiden<br />

sich in Details.<br />

Bei allen Problemen des <strong>IPv4</strong>, darf man eines nicht außer Acht lassen: Das Internet Protokoll Version<br />

4 wurde entwickelt, bevor es überhaupt PCs oder Workstations, das Ethernet oder andere LAN-<br />

Technologien gab. Es existierte schon, da hatte man an Millionen von Nutzern, Chat <strong>und</strong> Videostreaming<br />

noch nicht mal gedacht, da waren 100.000 Hosts noch Utopie. Zudem wurden viele Vorteile<br />

von <strong>IPv6</strong> mit mehr oder weniger Erfolg auf <strong>IPv4</strong> zurückportiert, das ist gut für <strong>IPv4</strong> aber schlecht<br />

für die Durchsetzung von <strong>IPv6</strong>. Ob <strong>und</strong> wann sich <strong>IPv6</strong> durchsetzen wird, werden die nächsten Jahre<br />

zeigen.


48 LITERATUR<br />

Literatur<br />

[KK02]<br />

Kurose J.F., Keith W.R.: Computernetze - Ein Top-Down-Ansatz mit Schwerpunkt Internet.<br />

Addison-Wesley, 2002<br />

[TA02] Tanenbaum A.S.: Computer Networks. Pretice Hall, 4. Edition, 2002<br />

[CO02] Comer D.E.: Computernetzwerke <strong>und</strong> Internets. Prentice Hall, 3. Auflage, 2002<br />

[RFC791] Postel J.: RFC 791 - Internet Protocol. September 1981<br />

[RFC792] Postel J.: RFC 792 - Internet Control Message Protocol. September 1981<br />

[RFC950] Mogul J., Postel J.: RFC 950 - Internet Standard Subnetting Procedure. August 1985<br />

[RFC1191] Mogul J. and Deering S.: RFC 1191 - Path MTU Discovery. November 1990<br />

[RFC1519]<br />

[RFC1878]<br />

Fuller V., Li T., Yu J., Varadhan K.: RFC 1519 - Classless Inter-DomainRouting (CI-<br />

DR): an Address Assignment and Aggregation Strategy. September 1993<br />

Pummill T., Manning B.: RFC 1878 - Variable Length Subnet Table For <strong>IPv4</strong>. December<br />

1995<br />

[RFC1191] Mogul J.C., Deering S.E.: RFC 1191 - Path MTU discovery. November 1990<br />

[RFC1918]<br />

Rekhter Y., Moskowitz B., Karrenberg D. , de Groot G.: RFC 1918 - Address Allocation<br />

for Private Internets. February 1996<br />

[RFC1700] Reynolds J., Postel J.: RFC 1700 - Assigned Numbers. October 1994<br />

[RFC2113] Katz D.: RFC 2113 - IP Router Alert Option. February 1997<br />

[RFC2236]<br />

Fenner W.: RFC 2236 - Internet Group Management Protocol, Version 2. November<br />

1997<br />

[RFC2460] Hinden R., Deering S.: RFC 2460 - Internet Protocol Version 6. December 1998<br />

[RFC2463]<br />

Conta A., Deering S.: RFC 2463 - Internet Control Message Protocol for the Internet<br />

Protocol Version 6. December 1998<br />

[RFC2402] Kent S.,Atkinson R.: RFC 2402 - IP Authentication Header. November 1998<br />

[RFC2406]<br />

[RFC2474]<br />

Kent S.,Atkinson R.: RFC 2406 - IP Encapsulating Security Payload (ESP). November<br />

1998<br />

Nichols K., Blake S., Baker F., Black D.: RFC 2474 - Definition of the Differentiated<br />

Services Field (DS Field) in the <strong>IPv4</strong> and <strong>IPv6</strong> Headers. December 1998


LITERATUR 49<br />

[RFC2373] Hinden R., Deering S.: RFC 2373 - IP Version 6 Addressing Architecture. July 1998<br />

[RFC1981] McCann J., Deering S., Mogul J.: RFC 1981 - Path MTU Discovery for IP version 6.<br />

August 1996<br />

[RFC2893]<br />

Gilligan R., Nordmark E.: RFC 2893 - Transition Mechanisms for <strong>IPv6</strong> Hosts and Routers.<br />

August 2000<br />

[HU97] Hunt C.: TCP/IP Network Administration. O’Reilly, December 1997<br />

[ct1601] Felix von Leitner: Das nächste Netz. c’t 16/2001<br />

[RFC2461]<br />

Narten T., Nordmark E., Simpson W.: RFC 2461 - Neighbor Discovery for IP Version<br />

6 (<strong>IPv6</strong>). December 1998<br />

[RFC2923] Lahey K.: RFC 2923 - TCP Problems with Path MTU Discovery . September 2000<br />

[isc.org]<br />

[ipv6.org]<br />

http://www.isc.org/<br />

http://www.ipv6.org/

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!