Das TCP/IP-Protokoll
Der Datenaustausch im Netzwerk (z.B. Internet) baut meistens auf dem
TCP/IP-Protokoll auf. Aber was ist eigentlich TCP/IP ??
Den folgenden Text habe ich aus verschiedenen Büchern und aus diversen
Internet-Texten zusammengestellt.
Ich kann natürlich nicht für die 100%-ige Richtigkeit des Textes garantieren.
Für Hinweise auf eventuelle Fehler (auch Rächtschraibfäler) bin ich dankbar.
Inhaltsverzeichnis
Transportadressen (Adressierung in der Transportschicht)
'well known services' - 'die bekannten Dienste'
Ethernet-Adressen (Adressierung der untersten Ebene)
Adress Resolution Protocol (ARP)
Reverse Resolution Protocol (RARP)
Routing Information Protocol (RIP)
TCP/IP-Adressierung
TCP/IP - Transport Control Protocol / Internet Protocol
Jeder Rechner, der über TCP/IP arbeiten soll, bekommt eine eindeutige 32-Bit-Internet-Adresse (IP) zugewiesen.
Diese Adresse besteht aus dem Netzwerk-
und dem Rechnerfeld.
Das Netzwerkfeld identifiziert das Netzwerk, an dem der Rechner angeschlossen
ist.
Das Rechnerfeld identifiziert den Rechner in diesem Netzwerk.
Alle Rechner in einem Netzwerk haben das gleiche Netzwerkfeld in ihrer
IP-Adresse.
Der Netzwerkteil einer IP-Adresse wird von einer zentralen Organisation ('Network
Information Center [NIC]') vergeben.
Die lokale Administration ordnet lediglich den Rechnerteil der Adresse seinen
Rechnern zu.
Es gibt drei verschiedene Klassen von IP-Adressen, die sich in der Aufteilung
der Adresse zwischen Rechner- und Netzwerkfeld unterscheiden:
Klasse A ('Class A'):
große Organisationen
1 Klassenidentifikationsbit
7 Netzwerkbits
24 Rechnerbits
Klasse B ('Class B'):
mittlere Organisationen (z.B. Hochschulen, große Unternehmen)
2 Klassenidentifikationsbits
14 Netzwerkbits
16 Rechnerbits
Klasse C ('Class C'):
kleine Netzwerke (.z.B. ein einzelnes Ethernet)
3 Klassenidentifikationsbits
21 Netzwerkbits
8 Rechnerbits
Klasse |
w-Werte (1,2) |
Netzwerk-ID |
Host-ID |
Netzwerke |
Hosts pro Netzwerk |
A |
|
w |
x, y, z |
|
|
B |
|
w, x |
y, z |
|
|
C |
|
w, x, y |
z |
|
|
(1) |
Bereich für das erste Oktett der IP-Adresse |
|
Die Netzwerkadresse 127 ist für Loopback-Tests und die Kommunikation zwischen Prozessen auf dem lokalen Computer reserviert und kann nicht als Netzwerkadresse verwendet werden. Adressen ab 224 sind für Sonderprotokolle reserviert (z.B. IGMP Multicast) und können daher nicht als Host-Adressen verwendet werden |
IP-Adressen werden im 'dotted
decimal notation'-Format dargestellt, z.B.
Das IP-Adressierungsschema ist nur für einige hundert Netzwerke konzipiert.
Durch die steigende Anzahl der Netzwerke treten jedoch gravierende Probleme
auf.
Die zentrale Administration stieg enorm (Viele Netzwerke = viele IP-Adressen)
Die Routing-Tabellen im System nehmen unhaltbare Dimensionen an (für jedes
Netzwerk und jeden Rechner ein separater Eintrag).
Zur Lösung wird das IP-Adressenschema um das Subnetkonzept erweitert:
Pro Organisation wird nur noch eine IP-Adresse vergeben (egal, wieviel
Netzwerke in dieser Organisation vorhanden sind).
Die Klasse dieser Adresse richtet sich nach Anzahl der Netzwerke und Rechner
der Organisation.
Innerhalb der Organisation wird das Rechnerfeld der IP-Adresse (Rechnerfeld =
'lokales Feld') weiter unterteilt:
in ein Netzwerkfeld ('Subnetzfeld') und ein Rechnerfeld
Da diese interne Aufteilung außerhalb der Organisation nicht sichtbar ist,
brauchen externe Gateways lediglich einen Routing-Eintrag für ein solches
Netzwerk.
|
Bitmuster der Subnet Mask |
Subnet Mask |
A |
|
|
B |
|
|
C |
|
|
Damit ist TCP/IP in der Lage, für den lokalen Computer die IDs von Host und
Netzwerk zu bestimmen.
Einer IP-Adresse 102.54.94.97 und einer Subnet Mask 255.255.0.0
entsprechen beispielsweise einer Netzwerk-ID 102.54 und einer Host-ID 94.97.
Subnet Masks dienen auch zur weiteren Unterteilung einer zugewiesenen
Netzwerk-ID auf verschiedene lokale Netzwerke.
Beispiel für eine Subnet Mask:
Ein Netzwerk mit einer Netzwerk-Adresse 144.100 der Klasse B:
Diese Adresse stellt eine von über 16.000 Adressen der Klasse B dar, welche
mehr als 65.000 Knoten unterstützt.
Das weltweite Unternhemensnetzwerk hinter dieser ID könnte jedoch aus 12
internationalen LANs mit jeweils 75 bis 100 Knoten bestehen.
Über Subnet Masks läßt sich die zugewiesene ID 144.100 effizienter nutzen als
durch das Anfordern 11 weiterer Netzwerk-IDs:
Das dritte Oktett der IP-Adresse kann als Teilnetz-ID verwendet werden, um die
Subnet Mask 255.255.255.0 zu definieren. Dadurch wird die Adresse der
Klasse B in 254 Teilnetze mit jeweils max. 254 Knoten aufgeteilt: 144.100.1,
144.100.2, , 144.100.254.
Hinweis: Einer Arbeitsstation sollten die Host-IDs 0 und 255 nicht zugewiesen
werden, da diese als Adressen für Rundsendungen dienen, die normalerweise von
allen Arbeitsstationen erkannt werden.
Die 12 Netzwerkadressen in diesem Beispiel könnten den internationalen LANs
zugewiesen werden. Innerhalb der einzelnen LANs erhält jeder Computer eine
eindeutige HOST-ID, und alle Computer besitzen die Subnet Mask 255.255.255.0.
ordnet einer Internet-Adresse einen 'sprechenden' Namen zu.
Ein Domainname besteht aus einzelnen Namen (Labeln), die durch Punkte
voneinander getrennt werden. Beispiel: meinname.de
de -- Top-Level-Domain
jedes weitere Label definiert eine Subdomain
Das 'Network-Information-Center (NIC)' verwaltet diese
Top-Level-Domains und vergibt Subdomains an Organisationen.
Die Organisation darf dann die Label unterhalb ihrer Subdomain selbständig
verwalten.
Entweder ist das nächste Label ein Rechnername oder die Organisation unterteilt
ihre Domain in weiter Subdomains, z.B. abteilung1.meinefirma.de. Diese
Subdomains werden dann von dem im Label genannten Institut verwaltet.
Top-Level-Domain, Beispiele:
de |
'deutsch' |
us |
'usa' |
Com |
'commercial' - kommerzielle Organisation |
edu |
'education' - Bildung/Forschung |
gov |
'government' - Regierungsbehörden |
mil |
'military' - militärische Organisation |
org |
'organization' - Organisationen, die zu keinem anderen Top-Level-Domain passen |
Organisationen mit eigener Domain müssen einen Domain-Name-Server
unterhalten, der die Domain-Names in Internet-Adressen umsetzt.
Dies ist notwendig, damit alle Rechner des Internet die symbolischen
Rechnernamen einer Organisation in Internet-Adressen umsetzen lassen können,
ohne die eine Kommunikation nicht möglich ist.
Rechner, die am Domain-Name-System teilnehmen sollen, müssen eine Domain-Name-Resolver-Software
benutzen.
Diese Software stellt Anfragen an den lokalen Domain-Name-Server um
Domain-Names in Internet-Adressen zu übersetzen.
Diese Informationen sind entweder auf dem lokalen Domain-Name-Server vorhanden
oder müssen von diesem auf anderen Domain-Name-Servern 'gesucht'
werden, um die gewünschte Umsetzung zu leisten.
Transportadressen (Adressierung in der Transportschicht)
- Erweiterung der Internet-Adressierung
- Transportprotokolle:
TCP - 'Transmission Control Protocol'
UDP - 'User Datagram Protocol'
Die Transportprotokolle ermöglichen eine Kommunikation zwischen Prozessen.
Das TCP/UDP-Adressierungsschema unterstützt die rechnerinterne Verteilung von
Paketen.
Die Kommunikationsendpunkte heißen 'Ports'
Ein Port bezeichnet die Verbindung zwischen dem Benutzerprozeß und der
TCP/IP-Software
Ein Port wird durch eine 16-Bit lange Nummer referenziert
Zur eindeutigen Beschreibung einer Internet-Adresse reicht ein 5-Tupel
('5-Zeilen') aus. Dieses besteht aus dem Transportprotokoll und je
einem Paar aus Internet-Adresse und Port-Nummer für jede Seite der Verbindung.
Die Kommunikation zwischen Prozessen über TCP/IP basiert auf dem 'Client/Server-Konzept':
Zum Verbindungsaufbau zwischen Client und Server muß der Client die
Internet-Adresse und die Portnummer des Servers wissen. Der Server (= Prozeß)
wartet passiv auf den Client (= Prozeß).
Da dem Client die Internet-Adresse des Servers bekannt ist, ist nur noch die
Port-Nummer ein Problem.
Die Portnummern werden der Reihe nach für jede Verbindung vergeben, bis ein
Überlauf stattfindet. Dann beginnt die Vergabe wieder von vorne.
Es gibt aber auch den Fall, in dem ein Prozeß die Portnummer vorgibt, die dann,
sofern sie noch unbelegt ist, verwendet wird.
Ein Server kann also beim Verbindungsaufbau seine Portnummer bestimmen. Kennt
ein Client diesen Port, ist eine Kommunikation möglich.
'well known services' - 'die bekannten Dienste'
Beispiel für einen well known service: FTP (File Transfer Protocol)
Diese Dienste werden über einen festen Port angesteuert, der immer gleich
bleibt.
Im System gibt es zu diesem Zweck eine Liste, in der die Zuordnung von
Dienstnamen zu Port/Protokollpaaren verzeichnet ist.
Möchte man nun z.B. einen FTP-Server ansprechen, so kann man in der Liste nach
FTP suchen und erhält dann das Paar 21/tcp.
Die Ports werden in priviligierte und unpriviligierte Ports unterteilt. Die
ersten Portnummern 0 bis 123 werden nur an Prozesse mit 'root-Berechtigung'
vergeben. Sie bieten eine besondere Sicherheit gegen Mißbrauch.
Ethernet-Adressen (Adressierung der untersten Ebene)
Die IP-Datagramme in einem Ethernet-LAN werden in sogenannte 'Ethernet-Frames'
eingepackt. In diesem Ethernet-Frame ist neben dem Datenteil auch noch die
Quell- und Zieladresse in Form von Ethernet-Adressen enthalten.
Die Adressen werden vom 'Ethernet Control Board (ECB)'
benötigt, da es sich beim Ethernet um ein Broadcast-Netzwerk handelt;
Alle angeschlossenen System können somit alle übertragenen Frames empfangen.
Es werden also Adressen benötigt, um den Absender und den Empfänger eines
Frames zu erkennen.
Eine Ethernet-Adresse ist 48 Bit lang und weltweit eindeutig. Sie besteht aus
sechs Gruppen à 8 Bit. Jedem Hersteller von Ethernet-Hardware ist ein
bestimmter Adreßbereich zugeordnet, über den er frei verfügen kann. Die ersten
drei Gruppen einer Ethernet-Adresse identifizieren den Hersteller, während die
Bedeutung der letzten 3 Gruppen nicht definiert ist.
Beispiel für eine Ethernet-Adresse: 0:0:94:7:b1:6 (Die Doppelpunkte dienen als
Trennzeichen).
Im RFC1060 (Assigned numbers) befinden sich die Herstellercodes der
Ethernet-Adressen.
Adress Resolution Protocol (ARP)
Mit dem Adress Resolution Protocol werden Internet-Adressen in Adressen
des physikalischen Netzwerkes umgesetzt.
Beispiel:
Rechner A will Daten an Rechner B senden, der im gleichen Netzwerk installiert
ist.
Da Rechner A von Rechner B zunächst nur die Internet-Adresse kennt, sendet er
einen ARP-Broadcast mit der Internet-Adresse von B.
Alle Rechner in diesem Netzwerk empfangen nun diese Nachricht und vergleichen
die Internet-Adresse mit ihrer eigenen.
Rechner B erkennt seine Internet-Adresse und sendet nun eine Antwort mit seiner
physikalischen Adresse an die Quelle des ARP-Request.
Rechner A empfängt diese Antwort und trägt das Paar aus Internet- und
physikalischer Adresse in einen sogenannten ARP-Cache ein. Diese Information benutzt
er dann für die weitere Kommunikation.
Reverse Resolution Protocol (RARP)
Das Reverse Resolution Protocol ist das Gegenstück zum ARP. Es leistet
die Umsetzung von physikalischen Adressen in Internet-Adressen:
Ein Rechner hat somit die Möglichkeit seine Internet-Adresse von einem Server
zu holen. Dazu sendet der Rechner ein Broadcast-RARP-Paket.
Diese Nachricht wird wiederum von allen Rechnern im Netzwerk empfangen, kann
aber nur von einem speziellen RARP-Server weiterverarbeitet werden.
Dieser Server besitzt eine Tabelle mit Paaren aus physikalischer und
Internet-Adresse. Enthält die Tabelle die empfangene physikalische Adresse,
wird die Internet-Adresse an die Quelle des Boradcast zurückgesendet.
Dieses Verfahren eignet sich z.B. für plattenlose Rechner, die Ihre
Internet-Adresse nicht lokal in einer Konfigurationsdatei speichern können. Das
RARP-Verfahren ist auch eine Möglichkeit, um bei Rechnern das Ändern
der Internet-Adresse zu verhindern, da diese ja nirgendwo auf dem Rechner hinterlegt
ist.
Wird ein Datenpaket von einem Netzwerk in ein anderes gesendet, muß es
mindestens einen Gateway passieren.
Routing ('Wegewahl') ist das Verfahren, bei der die Route
bestimmt wird, die das Paket von der Quelle zum Ziel nehmen muß.
Ein Gateway ('Transitsystem') ist ein spezieller Rechner, der
an zwei oder mehr Netzwerke angeschlossen ist und Pakete von einem Netzwerk in
ein anderes überträgt.
In den Routing-Tabellen sind Informationen gespeichert, mit denen das
Gateway die Daten richtig weiterleiten kann.
Eine Routing-Tabelle enthält paarweise Einträge aus Netzwerkadressen und
zugehörigem Gateway.
Zur Paketweiterleitung wird in der Routing-Tabelle der Netzwerkteil der
Zieladresse nachgeschlagen und das Paket dann dem zugehörigem Gateway
zugesandt.
Routing-Tabellen können relativ kurz gehalten werden, da sich die
Leitwegbestimmung nicht auf der Rechneradresse sondern auf der Netzwerkadresse
basiert.
Routing-Protokolle dienen der Kommunikation zwischen Gateways.
Sie sorgen dafür, daß sich die Gateways finden und aktualisieren die
Routing-Tabellen auf den Gateways.
Routing Information Protocol (RIP)
Das Routing Information Protocol wird verwendet, um
routing-Informationen auszutauschen.
Jedes Gateway sendet in regelmäßigen Abständen seine Routing-Tabelle als
Broadcast. Diese Nachrichten werden von allen Gateways im lokalen Netzwerk
mitgehört und die Routing-Tabellen dementsprechend auf den neuesten Stand
gebracht.
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen