5.1.1 TCP (Transport Control Protocol)
5.2.2 ICMP (Internet Control Message Protocol)
5.2.3 ARP (Address Resolution Protocol)
5.2.4 RARP (Reverse Address Resolution Protocol)
5.2.5 Die Adressierung auf Layer 3
Bei der Installation von TCP/IP wird eine ganze Familie von Protokollen mitinstalliert:

Abbildung 5.1.1.1a: TCP Header
Jedes empfangene Paket wird vom Empfänger bestätigt – kommt diese Bestätigung beim Sender nicht an, muß das Paket vom Sender erneut gesandt werden. Um doppelt empfangene Pakete zu erkennen, erhält jedes Paket eine Sequence Number.
„Huckepack“ Methode:
Wenn ein Paket erhalten wird, wird nicht extra ein Bestätigungspaket zurückgesandt, sondern die Sequence Number des empfangenen Pakets in das Feld Acknowledge Number eines anderen Pakets geschrieben. Sollten gerade keine Daten zum Senden da sein, wird ein leeres Paket erzeugt.
<<Abbildung>>
Weil der Sender immer auf die Bestätigtung des Empfängers warten muss, kann er den Empfänger nicht mit Paketen überschwemmen (Flusssteuerung). Bei langsamen Übertragungsleitungen (z.B. Satellitenverbindung) wird dabei aber viel Bandbreite verschwendet, weil der Sender immer warten muss bis die Bestätigung eintrifft.
Abhilfe: Nicht jedes Paket wird bestätigt, sondern erst nach einer gewissen Anzahl von Paketen (window-size) wird der Empfang bestätigt.
<<Abbildung>>
Beim Absenden eines Pakets wird ein Retransmission Timer gestartet. Wird vor dem Ablauf dieses Timers kein Bestätigungspaket für dieses Paket empfangen, wird das Paket erneut versandt. Die Zeitspanne wird dynamisch aus vergangenen Antwortzeiten berechnet.
Multiplexing erlaubt es mehreren Anwendungen, eine gemeinsame Leitung zu verwenden. Dazu wird die Adresse um ein Feld erweitert – die Portnummer. Um eine Applikation nun eindeutig zu identifizieren, gibt es nun 3 Merkmale: Die IP Adresse, Source Port, Target Port. Dieses Tripel wird auch als Socket bezeichnet.
Ports mit einer Nummer unter 1024 werden als „Well-known“ Ports definiert. Diese werden von der IANA vergeben.
Ports mit einer Nummer über 1024 können frei verwendet werden.
Portnummern der wichtigsten TCP Applikationen:
Portnummern der wichtigsten UDP Applikationen:
Wichtig ist auch DNS (Port 53), das sowohl TCP als auch UDP
verwendet.
Der Verbindungsaufbau verwendet eine Prozedur, die auch als „Three-Way-Handshake“ bekannt ist. Er dient dazu, die Existenz und Verfügbarkeit des Zielrechners festzustellen und die erste Sequence Number festzulegen.
|
|
2. Schritt: Der Empfänger bestätigt
den Erhalt und sendet seinerseits ein Paket mit Synchronisationsflag und der
eigenen Sequence Number Y. 3. Schritt: Der Sender bestätigt das Paket und sendet ein Paket mit Sequence Number X+1 und Acknowledge Number Y+1.
|
Auch beim Verbindungsabbau wird ein Handshake-Prozess durchlaufen, dieser setzt sich aber aus 4 Schritten zusammen:
|
|
2. Schritt: Der Empfänger
bestätigt den Erhalt und sendet ein Paket mit Acknowledge Flag, der eigenen
Sequence Number B und der Acknowledge Number A+1. 3. Schritt: Der Empfänger
sendet ein weiteres Paket mit dem Finished Flag.
|
UDP ist ein verbindungsloses Protokoll und wird dort verwendet, wo Fehlerkorrektur keine Rolle spielt (z.B. Videokonferenzen). Bei Videokonferenzen ist z.B. der Erhalt eines vorher verlorenen Paketes sinnlos (die Information ist bereits „outdated“).
Funktionen von UDP:

Abbildung 5.2.1a: Der IP Header
Das Priority Feld dient dazu, Daten zu prioritisieren. Dies ist besonders wichtig bei zeitkritischen Anwendungen, wie z.B. Voice-over-IP oder Terminalserver.
Auf Layer 4 findet eine Segmentierung in max. 1500 Byte große Pakete statt. Weil aber darunterliegende Schichten wie Ethernet oder FDDI verschieden große Pakete behandeln können, muss auf Layer 3 eine weitere Fragmentierung stattfinden.
ICMP dient zur Übertragung von Kontrollinformationen und Fehlermeldungen in einem Netzwerk.
5.2.2.1 Art der Fehlermeldungen:
Das Ziel ist nicht erreichbar. Wir versuchen aus dem Netzwerk 10.0.0.0 ein Paket ins Zielnetzwerk 200.0.0.0 zu senden.

Abbildung 5.2.2.2a: Mögliche „Destination
unreachable“ Fehler
Folgende Fehler können auftreten:
Wir haben eine Firma mit 2 Standorten. Als Gateway ist bei unserem Switch der Router 1 (vom Firmenstandort 2) eingetragen. Wollten wir nun ins Internet, laufen die Pakete zuerst von uns zu Router 1, von dort dann zu Router 2 und dann erst ins Internet – das ist ein Umweg. Der Router 1 erkennt dies, da der Router 2 im gleichen logischen Netz ist wie er und er sendet „Redirect“. Damit lernen wir für diese Übertragung, den Router 2 als Gateway direkt zu verwenden.

Abbildung 5.2.2.3a: Der Datentransfer vor dem
Redirect
Nun sendet Router 1 das Redirect Paket aus und wir versenden für diese Übertragung nun die Pakete wie folgt:

Abbildung 5.2.2.3 b: Der Datentransfer nach dem Redirect
5.2.2.4 Informationsmeldungen:
Beim Ping werden mehrere Pakete ausgesandt und die obenstehenden Informationen gesammelt und ausgegeben.
Mit ARP kann die einer bekannten IP Adresse zugehörige MAC Adresse herausgefunden werden. Wir benötigen die MAC Adresse, um das Paket auf Layer 2 weitersenden zu können.
Funktionsweise:
1. Wir
schicken einen Broadcast ins lokale Netzwerk aus:
<<ILLUSTRATION ARP Paket>>
2. Der
PC mit der angegebenen ARP antwortet mit einem normalen Unicast-Paket
<<ILLUSTRATION ARP Paket Antwort>>
Die so festgestellen MAC-IP Adressen Tupel werden in einer Tabelle gespeichert. Nur die MAC Adressen des eigenen logischen Netzwerks werden gespeichert, alle anderen Pakete werden an den Gateway gesandt.
Mit RARP wird der Vorgang von ARP umgekehrt – sprich wir können herausfinden, welche IP Adresse zu einer bekannten MAC Adresse gehört. RARP wird verwendet bei Stationen ohne Festplatten, die sich IP Adresse und Image vom Server holen.
Die IP Adresse ist 32 Bit lang, wobei abhängig von der Adressklasse der Netzanteil bzw. Hostanteil 8,16 oder 24 bit lang sind. Um welche Adressklasse es sich handelt, wird im ersten Byte entschieden.
|
Klasse |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Range (dezimal) |
Anzahl der Netze |
Anzahl der Hosts |
Ausnahmen |
|
Klasse A |
0XXXXXXX |
|
|
|
1.x.x.x – 126.x.x.x |
126 |
2^24 – 2 |
0.x.x.x Netzadresse |
|
Klasse B |
10XXXXXX |
|
|
|
128.1.x.x – 191.255.x.x |
2^14 - 2 |
2^16 - 2 |
|
|
Klasse C |
110XXXXX |
|
|
|
192.0.0.x – 223.255.255.x |
2^21 - 2 |
254 |
|
|
Klasse D |
1110XXXX |
|
|
|
224.x.x.x – 239.x.x.x |
|
|
|
|
Klasse E |
1111XXXX |
|
|
|
|
|
|
|
|
Netzteil |
Hostteil |
Klasse D ist Reserviert für Multicast, Klasse E für Testzwecke.
Durch die steigende Verwendung von privaten Adressen sind auch heute noch genügend IP Adressen vorhanden. Private Adressen sind Adressen für Heim- und Firmennetzwerke, die aber weltweit eindeutig sind. Damit die User weiterhin das Internet nutzen können, muss der Gateway die internen Adressen in offizielle IP Adressen umwandeln. Diese Umwandlung nennt man NAT (=Network Address Translation).
Heute werden nicht nur IP Adresse, sondern auch Port umgewandelt. Dadurch können mehrere User über eine IP das Internet verwenden.
Probleme: NAT wird nur auf Layer 3 und Layer 4 durchgeführt. Mehr Layer würden mehr unnötigen Overhead bedeuten – allerdings benötigen manche Anwendungen wie VideoStreaming IP Adressen auch in höheren Layern.
Private Adressräume:
Klasse A: 10.0.0.0 – 10.255.255.255
Klasse B: 172.16.0.0 – 172.31.255.255
Klasse C: 192.168.0.0 – 192.168.255.255
IPV6 ist eine Weiterentwicklung von IPv4. Eine IPv6 Adresse besteht aus 128Bit. 80Bit werden für Netzadressierung, 48Bit für Hostadressierung verwendet. Für die Netzadressierung wurde eine hierarchische Providerstruktur geschaffen, jeder Provider darf entsprechend Adressen verteilen. Für die 48Bit Hostadressierung wird die MAC-Adresse herangezogen – damit wird der Providerwechsel erleichtert.
Unter Subnetting versteht man das Unterteilen eines Netzes in mehrere Subnetze. Dadurch wird die Ausdehnung der Broadcast-Domains kleiner (Performancegewinn) und das Netz effizienter und übersichtlicher.
Beim Classfull Subnetting wird für das Subnetting ein ganzes Byte herangezogen.
Beispiel: IP Adresse: 129.1.0.0
Wir verwenden das 3. Byte der Adresse. Die neue Struktur der IP-Adresse:
2 Byte Netzteil – 1 Byte Subnet – 1 Byte Host
Anzahl der Hosts pro Subnetz: 254
Subnetmask: 255.255.255.0
Classfull Subnetting ist nur in Klasse A und B Netzwerken möglich, da in Klasse C ja bereits 3 Byte für den Netzteil verwendet werden und mindestens 1 Byte für den Hostteil übrig bleiben muss.
Beim Classless Subnetting werden einzelne Bits, nicht ganz Bytes, für das Subnetting herangezogen. Die Anzahl der verwendeten Bits ist abhängig von der Anzahl der notwendigen Subnetze.
Anzahl der Subnetze = ![]()
Beispiel 1:
IP Adresse: 201.4.5.0
Anzahl der Subnetze = 4, wir benötigen daher min. 3 Bit für das Subnetting
Subnetmask: 255.255.255.224 (binär: 11111111.11111111.11111111.11100000)
Netzadressen: 201.4.5.___0 0000 (die 3 Stellen, die mit ___ gekennzeichnet sind, werden für das Subnetting herangezogen).
Es gibt daher 6 Subnetze:
Der erste Host im Subnet 2 (201.4.5.64) wäre dann 201.4.5.65, die letzte 201.4.5.94 und die Broadcast-Adresse 201.4.5.95.
Beispiel 2:
Klasse B Netz
100 Subnetze
IP: 140.17.0.0
Gesucht:
Subnetmask
Die ersten 5 Netze
Die Hosts des 6. Netzes
-> 7 Bit Subnetting
Subnetmask: 255.255.254.0
Die erste 5 Netzadressen:
140.17.2.0 (= 140.17._ _ _ _ _ _ _ 0.0)
140.17.4.0
140.17.6.0
140.17.8.0
140.17.10.0
Die Hosts des 6.Netzes:
140.17.12.1 – 140.17.13.254
Broadcast: 140.17.13.255
PRRU Skriptum – Kapitel 5
Dies ist ein Teil des PRRU Skriptums von Markus Wilthaner und anderen Autoren. Bitte die Hinweise zum Copyright unter http://school.wilth.net/prru/ beachten.
E-Mail: contact@wilth.net