Gratis Newsletter !
Der Schultreff-Newsletter informiert Dich stets über neue Arbeiten und mehr rund um Schultreff.
Du kannst Dich jederzeit wieder abmelden.
 

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.

Inhaltsverzeichnis


TCP/IP-Adressierung
[zurück]

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

IP-Adressierungsklassen
[zurück]



Klasse

w-Werte (1,2) Netzwerk-ID Host-ID Netzwerke Hosts pro Netzwerk

A

1-1262

w

x, y, z

126

16.777.214

B

128-191

w, x

y, z

16.384

65.534

C

192-223

w, x, y

z

2.097.151

254

(1)

Bereich für das erste Oktett der IP-Adresse

(2)

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. 139.28.32.31


Die Subnet-Adressierung
[zurück]


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.

Subnetzmasken
[zurück]


Wenn innerhalb der Organisation Subnetze verwendet werden, muß eine sogenannte "Subnetzmaske" ausgewählt werden.
Diese Maske unterteilt das lokale Adressfeld in den Subnetz- und den Rechnerteil.
Eine Subnetzmaske besteht wie eine IP-Adresse aus 32-Bit.
Die Netzwerk- und Subnetzfelder werden in der Maske durch gesetzte Bits repräsentiert. Der Rechnerteil weist Null-Bits auf:

Adress-
klasse

Bitmuster der Subnet Mask Subnet Mask

A

11111111 00000000 00000000 00000000

255.0.0.0

B

11111111 11111111 00000000 00000000

255.255.0.0

C

11111111 11111111 11111111 00000000

255.255.255.0


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.

Das Domain-Name-System (DNS)
[zurück]


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)
[zurück]


- 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"
[zurück]


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)
[zurück]


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)
[zurück]


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)
[zurück]


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.

Routing im Internetwork
[zurück]


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ß.

Gateways
[zurück]


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.

Routing-Tabellen
[zurück]


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
[zurück]


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)
[zurück]


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.