IPv4 und IPv6 - Informatik 4
IPv4 und IPv6 - Informatik 4
IPv4 und IPv6 - Informatik 4
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/