The K Desktop Environment

Next Previous Contents

4. Netzwerkgrundlagen

Internet

In den späten 60er Jahren wurde von der DARPA (Defence Advanced Research Projects Agency) des DoD (Department of Defense(USA)) die Entwicklung eines experimentellen Forschungsnetzes, genannt ARPANET, gefördert. Ziel dieses Paketvermittlungsnetzes war es, Techniken für eine sichere, zuverlässige und herstellerunabhängige Datenkommunikation zu entwickeln. Durch die fortschreitende Entwicklung und den weltweiten Zusammenschluß von verschiedenen verbundenen Kommunikationsnetzen entstand das heutige Internet.

Als Grundlage für dieses Kommunikationnetz wurde die Protokollfamilie TCP/IP entwickelt. Die Spezifikation von TCP/IP basiert heute auf RFCs (Request for Comments), einem flexiblen und schnellen Standardisierungsprozeß, bei dem hauptsächlich E-Mail verwendet wird, um zu publizieren, Kommentare und Ideen auszutauschen und neuere Versionen zu verbreiten.

Erst bedeutend später begann die International Standards Organisation (ISO) mit der Normierung von Netzwerkkomponenten und -protokollen, bei der auch das OSI-Referenzmodell entworfen wurde.

 

OSI- und TCP/IP-Protokolle

Um die Struktur und Funktionsweise von Protokollen für die Datenkommunikation zu beschreiben, ist es sinnvoll, das Open Systems Interconnection (OSI) Basisreferenzmodell, das von der International Standards Organisation (ISO) entwickelt wurde und den Status einer Deutschen Norm hat, heranzuziehen.

 figure14
Abbildung: OSI-Schichtenmodell nach EN ISO/IEC 7498-1

Im Basisreferenzmodell des OSI-Schichtenmodells werden sieben Schichten (layers) definiert, für die jeweils ein Anteil an der Kommunikationsdienstleistung festgelegt ist. Jede Schicht bietet ihrer übergeordneten Schicht Dienste an und kann die Dienste der unter ihr liegenden Schicht in Anspruch nehmen, ohne deren innere Funktionsweise zu kennen. Schichten gleicher Ebene kommunizieren über Protokolle miteinander. Die Protokolle regeln den Ablauf der Kommunikation. Das OSI-Modell ist keine Netzarchitektur, da die Protokolle und Dienste der einzelnen Schichten vom Modell nicht definiert werden. Das Modell beschreibt lediglich die Aufgaben der Schichten. Eine Kommunikation zwischen zwei Rechnern erfolgt nur auf gleichen Schichten. Wenn beide Kommunikationspartner nicht direkt miteinander verbunden sind, wird die Information mit Hilfe von Vermittlungsrechnern ausgetauscht. Der tatsächliche, physikalische Datenaustausch erfolgt nur auf der untersten Schicht. Die Aufgabenverteilung der Schichten im ISO-OSI-Modell ist wie folgt:

  1.Schicht = Bitübertragungsschicht (Physical Layer)
Die unterste Schicht hat die Aufgabe, physikalische Signale in den verschiedenen Kommunikationskanälen zu koordinieren. Die elektrischen, funktionalen und prozeduralen Parameter zur Steuerung des physikalischen Übertragungsmediums innerhalb des Kommunikationssystems werden hier festgelegt. Daten werden ohne Rücksicht darauf, ob sie ankommen oder nicht, gesendet. Die Protokolle V.24, FDDI-PHY und Busprotokolle wie z.B. IEC-Bus werden dieser Schicht zugeordnet.

  2.Schicht = Sicherungsschicht (Data Link Layer)
Diese Schicht ermöglicht einen sicheren Transport von Daten zwischen zwei benachbarten Stationen. Sie unterstützt die Erkennung und Behebung von Übertragungsfehlern sowie die Flußkontrolle zwischen Sender und Empfänger. Das Protokoll HDLC kann hier als Beispiel der Sicherungsschicht genannt werden.

  3.Schicht = Vermittlungsschicht (Network Layer)
Die dritte Schicht stellt eine Art Leitzentrale für den Datenverkehr dar. Sie ist dafür zuständig, die geographische Entfernung zwischen den Endsystemen mit Hilfe von Vermittlungseinrichtungen zu überwinden. Gleichzeitig wird den Endsystemen die Möglichkeit eröffnet, mit verschiedenen anderen Endsystemen zeitlich bzw. logisch getrennt zu kommunizieren. Das Internet Protokoll (IP) wird zur Schicht 3 zugeordnet.

  4.Schicht = Transportschicht (Transport Layer)
Innerhalb der vierten Schicht werden die Verbindungen zwischen Sender und Empfänger aufgebaut. Es findet eine fehlerfreie Punkt-zu-Punkt-Verbindung statt. Hierbei spielt es keine Rolle, wieviele physikalische Vermittlungsknoten zwischen den Parteien sind und in welcher Weise sie zusammenarbeiten. Die Schicht 4 ist die erste Schicht, die unabhängig von der Hardware arbeitet. Zwischen Schicht 3 und 4 befindet sich eine Abstraktionsgrenze. Während Schicht 3 noch lokale Gegebenheiten beachten muß, wird in Schicht 4 allein das abstrakte Datenmodell benutzt. Als Beispiel dieser Schicht sei das Transmission Control und das User Datagram Protocol zu erwähnen.

  5.Schicht = Kommunikationssteuerungsschicht (Session Layer)
Aufgabe dieser Schicht ist es, den abstrakten Datentransport in Dialogen, die vom Anwender initiiert werden können, zu behandeln. Die Art der Kommunikation (wechselseitig oder gleichzeitig in zwei Richtungen), die Ausfallsicherheit durch Checkpoints im Datenstrom und die Dialogkontrolle werden hier festgelegt. Die Protokolle HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol) und Telnet können dieser Schicht zugeordnet werden.

  6.Schicht = Darstellungsschicht (Presentation Layer)
Diese Schicht stellt Mittel zum darstellungsunabhängigen Austausch von Daten sowie zur Datenkompression und Verschlüsselung zur Verfügung, wie z.B. MIME (Multipurpose Internet Mail Extensions) oder HTML (Hypertext Markup Language).

  7.Schicht = Anwendungsschicht (Application Layer)
Die oberste Schicht ist für die Steuerung der untergeordneten Schichten und die Anpassung an die Anwendung verantwortlich. Die Anwendungsschicht bildet für die eigentliche Anwendung ein Fenster zum korrespondierenden System und dient dem Anwendungsprogramm als Verbindung zur Außenwelt. Bekannte Anwendungen dieser Schicht sind der Browser und FTP-Client.

Bei der Entwicklung des OSI-Modells gingen die allgemeinen Erfahrungen des ARPANET's zwar mit in die Normierung ein, TCP/IP wurde allerdings kein ISO-Standard. Es gibt keine generelle Übereinstimmung darüber, wie die Protokollfamilie TCP/IP mit dem OSI-Referenz-Modell zu beschreiben ist. Eine sinnvolle Beschreibung ist mit dem Übergang zu einem 4-Schichten-Modell möglich. Hierbei werden die oberen drei Schichten des OSI-Modells, Kommunikations-, Darstellungs- und Verarbeitungsschicht, zu einer Schicht zusammengefaßt und als Prozeßschicht (process layer) oder Anwendungsschicht (application layer) bezeichnet. Ebenso werden die unteren zwei Schichten, Bitübertragungs- und Sicherungsschicht, zu einer sogenannten Netzwerkschicht (network layer) zusammengefaßt.

Die folgende Graphik aus RFC 791 stellt anhand von diesen vier Schichten die Einbindung von TCP/IP ins Schichtenmodell dar.

  figure59
Abbildung 1.2: Vier-Schichtenmodell

Genau wie im OSI-Modell werden die Daten im Protokollstapel nach unten gereicht, bis sie über das Netz gesendet werden. Beim Empfangen von Daten aus dem Netz führt der Weg durch den Stack nach oben. Jede Schicht fügt eigene Kontrollinformationen hinzu, um eine korrekte Datenübertragung sicherzustellen. Diese Information wird Protokollkopf (header) oder Protokollanhang (trailer) genannt, da sie den eigentlichen Daten vorangestellt bzw. angehängt wird. Die entstehende Datenkapselung durch die verschiedenen Schichten wird encapsulation genannt. Beim Paketempfang wird der entsprechende Protokollkopf wieder entfernt und die Daten an die darüberliegende Schicht weitergereicht. Die Abbildung 1.3 soll dies näher verdeutlichen.

  figure70
Abbildung 1.3: Datenkapselung verschiedener Schichten

Anwendungsschicht
Die Applikationsschicht umfaßt alle höherschichtigen Protokolle des TCP/IP-Modells. Hierzu zählten zunächst Anwendungen wie TELNET (für virtuelle Terminals), FTP (Dateitransfer) und SMTP (zur Übertragung von E-Mail). Im Laufe der Zeit kamen zu den etablierten Protokollen viele weitere Protokolle wie z.B. DNS (Domain Name Service) und HTTP (Hypertext Transfer Protocol) und andere hinzu.

Transportschicht
Wie im OSI-Modell ermöglicht die Transportschicht im TCP/IP-Modell die Kommunikation zwischen den Quell- und Zielrechnern. Auf dieser Schicht werden zwei grundlegende Ende-zu-Ende-Protokolle definiert: das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP).

Vermittlungsschicht
Auf der Ebene der Vermittlungsschicht im TCP/IP-Modell ist das Protokoll namens IP definiert. Es übernimmt die gleichen Aufgaben, die auch im OSI-Referenzmodell definiert sind. Daneben gibt es noch das Control Message Protocol (ICMP) und das Group Management Protocol (IGMP). Sie sind fester Bestandteil jeder IP-Implementierung und dienen der Übertragung von Diagnose- und Fehlerinformationen für das Internet Protokoll sowie dem Management von sogenannten Multicastadressen.

Netzwerkschicht
Unterhalb der Vermittlungsschicht klafft eine große Definitionslücke im TCP/IP-Modell. Das Referenzmodell definiert auf dieser Ebene nicht genau, was hier geregelt werden soll. Festgelegt ist lediglich, daß zur Übermittlung von IP-Paketen ein Rechner über ein bestimmtes Protokoll an ein Netz angeschlossen werden muß. Dieses Protokoll ist im TCP/IP-Modell nicht weiter spezifiziert und variiert von Netz zu Netz. Das TCP/IP-Modell macht an dieser Stelle vielmehr Gebrauch von bereits vorhandenen Protokollen, wie z.B. Ethernet (IEEE 802.3 und RFC 894), Serial Line IP (SLIP), Point-to-Point (PPP), etc.

 

Ethernet

Ethernet, im Jahr 1973 von DEC, Intel und Xerox (kurz DIX) entwickelt, war das erste weit verbreitete Local Area Network (LAN). Die physikalische Übertragung führt generell über ein Ethernetkabel, einer Koaxleitung mit einem sogenannten BNC Anschluß, über eine unshielded twistet pair (UTP) Verkabelung mit RJ-45 Anschluß oder einer Lichtwellenleiter (LWL) Verkabelung. Die anfängliche Bandbreite von 3 MBit/s wurde auf die heute übliche Bandbreite von 10 Mbit/s bzw. 100 Mbit/s gesteigert. In den 80er Jahren wurde der Ethernet-Standard (RFC894) von der IEEE in modifizierter Form unter der Bezeichnung IEEE-802.3 übernommen. Durch den bereits weit verbreiteten Ethernet-Standard kommt es nun zu einer Koexistenz beider Standards. Die Unterscheidung beider Rahmentypen läßt sich am Typ-Feld des Ethernet-Rahmens bzw. des Längen-Feldes des 802.3-Rahmens ausmachen. Ist dieser 2 Byte lange Wert größer als 1.518 (maximale Rahmenlänge), so kann es sich nur um einen Ethernet-Rahmen handeln.

 





8 Bytes
6 Bytes
6 Bytes
2 B.
46-1500 Bytes
4 Bytes
Präambel
Empfängeradresse Senderadresse
Typ
Daten
CRC
Tabelle 1.1: Ethernet-Rahmen

 





8 Bytes
6 Bytes
6 Bytes
2 B.
8 Bytes
38-1500 Bytes
4 Bytes
Präambel
Empfängeradresse Senderadresse
Länge
Logical Link Ctrl
Daten
CRC
Tabelle 1.2: IEEE-802.3-Rahmen

  Präambel und SFD
Die Präambel und der Source Frame Delimiter (SFD) dienen der Synchronisation des eingeheneden Rahmens mit der Systemuhr des Empfängers. Die Länge beider Felder beträgt insgesamt 8 Bytes.

  Empfängeradresse (48 Bits)
Die Empfängeradresse wird über eine sogenannte Medium Access Control (MAC) Adresse angesprochen. Unter dieser Adresse ist jede Ethernetschnittstelle eindeutig ansprechbar. Um diesen Anspruch gewährleisten zu können, bekommt jeder Schnittstellenhersteller einen bestimmten Adressbereich zugewiesen, um jede einzelne Schnittstelle unterschiedlich zu codieren. Diese Eigenschaft des Ethernets macht es unproblematisch Interfacekarten verschiedener Hersteller einzusetzen, da theoretisch keine Adresse mehrmals vorhanden ist.

  Senderadresse (48 Bits)
Dieses Feld enthält die 6 Byte lange Ethernetadresse des Senders.

  Typ (16 Bits)
Dieses Feld gibt den Protokolltyp wieder, der in diesem Ethernetrahmen eingekapselt wurde. In der RFC 1700 sind alle bekannten Ethernettypen aufgelistet. Der Protokolltyp 0x0800 deklariert beispielsweise ein IP-Paket.

  Länge (16 Bits)
Dieses Feld gibt die genaue Länge des Datensegmentes in Byte im Ethernetpaket an. Die Länge kann zwischen 0 und 1500 Bytes betragen.

  Datenfeld und Pad (46-1500 Bytes bzw. 38-1492 Bytes bei IEEE-Rahmen)
Der Bereich im Ethernetpaket, welcher die Daten der höheren Protokolle, wie z.B. IP beinhaltet. Das Datensegment kann eine Größe zwischen 0 und 1500 Bytes besitzen. Ist der Anteil der Daten der höheren Protokolle unter 46 Byte lang, so wird der Rest durch das sog. Pad aufgefüllt. Dadurch wird gewährleistet, daß der Ethernetrahmen immer eine Mindestlänge von 64 Byte besitzt. Diese Eigenschaft des Pakets ist essentiell für die Kollisionsdetektion.

  Checksum (32 Bits)
Ein Ethernetrahmen wird immer durch eine zyklische Redundanzprüfsumme, auch CRC-Prüfsumme (Cyclic Redundancy Check) genannt, abgeschlossen. Die Prüfsumme wird hardwaretechnisch aus den Bits des Ethernet-Rahmens und seines Inhalts, ausschließlich der Präambel und der Prüfsumme selbst, berechnet. Bei einer Fehlererkennung seitens der Empfängerhardware wird das Datensegment verworfen, ohne es an die Vermittlungsschicht weiterzuleiten.

  Logical-Link-Controll und Sub-Network-Access-Protokol (8 Bytes)
Die logische Sicherungsschicht, auch Logical Link Control (LLC) genannt, sowie das Sub-Network-Access-Protocol (SNAP), sind in der IEEE 802.2 spezifiziert und bieten höheren Protokollen, unabhängig von der jeweiligen Medienzugriffssteuerungschicht eine einheitliche Schnittstelle. Für diese Schnittstelle ist es daher unerheblich, welches Kabelsystem verwendet wird. Die eingehenden Datenpakete werden durch die logische Sicherungsschicht an das entsprechende Protokoll der Vermittlungsschicht weitergereicht. Das Weiterreichen der Daten wird über sogenannte Service Access Points (SAP) erreicht. Diese werden im Datenfeld der LLC jeweils für Empfänger und Sender eingetragen. Um den Adressbereich dieser SAP's zu erweitern, wurde das SubNet Access Protocol (SNAP definiert. Es beinhaltet das, wie im Ethernet-Rahmen vorhandene, Typen-Feld, welches den eingekapselten Ethernettyp angibt sowie den Protokollbezeichner.

 

IP

Das Internet Protocol (IP) ist für die Kommunikation in Computernetzsystemen entworfen worden. Es stellt die Grundlage zur Übermittlung von Daten zwischen Geräteeinheiten, die in beliebiger Kombination in verschiedenen Übertragungsnetzen angesiedelt sein können.

Seine Funktionen umfassen u.a.:

IP bietet als verbindungsloses Protokoll keine Mechanismen, die die Ende-zu-Ende Daten-Sicherheit, Flußkontrolle, Fehlererkennung erhöhen. Falls diese Dienste erwünscht sind, müssen zusätzlich höhere Schichten zu Hilfe genommen werden.

IP stellt Datenpakete bereit, in denen Quell- und -Zielrechner durch Adressen fester Länge identifiziert werden. Falls es notwendig ist für die Übertragung über Netze, dessen größtmögliche Übertragungspaketgröße (maximum transmission unit, MTU) kleiner ist, als die aktuelle Paketgröße des Datenpakets notwendig ist, kann in einem Gateway Datenpakete fragmentiert und wiederzusammengesetzt werden.

 

IP-Datenpaket

Die ersten 5 bis maximal 16 (siehe Feld-IHL) 32-Bit-Wörter eines Datenpakets enthalten Kontrollinformationen und werden als Protokollkopf header bezeichnet. Die folgenden (Total Length minus IHL) Bits enthalten die mit der IP-Schicht zu übertragenden Daten.

 





0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Header Checksum
Source Address
Destination Address
Options Padding
Data
Tabelle 1.3: IP-Datenpaket

  Version (4 Bit)
Das Feld Version identifiziert die Version von IP und kann im Augenblick IPv4 oder IPv6 bzw. 0100 oder 1010 sein.

  IHL (4 Bit)
Internet Header Length zeigt die Länge des Protokollkopfes an. Die Länge wird in 32-Bit-Worten angegeben und ist abhängig von der Größe des Options-Feldes. Der kleinstmögliche Wert ist 532 Bit≡20 Byte Bytes bei einem leeren Options-Feld.

  Type of Service (ToS) (8 Bit)
Das Type of Service Feld gibt über die Qualität des gewünschten Dienstes Aufschluß. Mit ToS können mehrere Service-Qualitäten (QoS) festlegt werden: low-delay, high-reliability, and high-throughput. Durch diese Qualitäten werden bestimmten Diensten unterschiedliche Prioritäten zugeordnet.

  Total Length (16 Bit)
Total Length ist die gesamte Länge des Datenpakets in Bytes, einschließlich des Protokollkopfes und der Daten. Dieses Feld kann entsprechend bis zu 216=65,535 Bytes spezifizieren.

  Identification (16 Bit)
Ein identifizierender Wert, der vom Sender festgelegt wird und beim Zusammensetzen der Fragmente des Datenpakets hilft.

  Flags (3 Bit)
Diese Flags geben Informationen zur Ablaufsteuerung des Fragmentierungprozesses wieder.

 Bit 0: Reserviert, muß 0 sein.

Bit 1: 0 = darf fragmentiert werden,

1 = darf nicht fragmentiert werden.

Bit 2: 0 = letztes Fragment,

1 = weitere Fragmente folgen.

  Fragment Offset (13 Bit)
Dieses Feld beschreibt die Position des Fragmentes im Datenpaket. Der Fragment Offset wird in Einheiten von 8 Bytes (64 Bit) gemessen. Das erste Fragment hat den Offset 0.

  Time to Live (TTL) (8 Bit)
Dieses Feld zeigt die maximale Zeit an, die ein Datenpaket im Internet-System existieren darf. Wenn diese Feld den Wert 0 enthält, muß das Datenpaket verworfen werden. Die Zeit wird in Einheiten von Sekunden gemessen. Jedes Modul, das ein Datenpaket bearbeitet, muß TTL um mindestens eins erniedrigen, selbst wenn dieser Prozeß weniger als eine Sekunde dauert. Dies geschieht, um unzustellbare Datenpakete zu verwerfen und die maximale Lebensdauer der Datenpakete zu verkürzen.

  Protocol (8 Bit)
Das Feld Protocol identifiziert das Protokoll des eingekapselten Datenpakets. Die Werte für die verschiedenen Protokolle sind in RFC 1700 spezifiziert.

  Header Checksum (16 Bit)
Header Checksum ist eine Prüfsumme ausschließlich über den Protokollkopf. Da sich einige Protokollkopf-Felder ändern (z.B. TTL), wird dieses Feld an jedem Punkt neu berechnet und verifiziert, an dem es bearbeitet wird.

  Source Address (32 Bit)
Die IP-Adresse der Quelle.

  Destination Address (32 Bit)
Die IP-Adresse des Ziels.

  Options (Bitzahl variabel)
In dieses optionale Feld können zusätzliche Optionen, z.B. für das source routing, eingefügt werden.

IP-Adressen

Internet-Adressen haben eine feste Länge von vier Bytes. Eine Adresse beginnt mit einer Netzwerknummer, gefolgt von einer lokalen Rechnernummer. Es gibt drei gebräuchliche Klassen von Internet-Adressen, in denen die höchsten drei Bits festlegen, um welche Art von Netz es sich handelt.

 

High Order Bit Format Klasse
0 7 Bit für Netze, 24 Bit für Rechner A
10 14 Bit für Netze, 16 Bit für Rechner B
110 21 Bit für Netze, 8 Bit für Rechner C
111 Erweiterter Adressmodus (D&E)
(reserviert für Multicasting)
Tabelle 1.4: Adress-Formate

Es stehen nicht alle Netz- und Rechneradressen zur freien Verfügung:

IP-Adressen werden einzelnen Netzschnittstellen und nicht den Rechnern, in die diese Schnittstellen eingebaut sind, zugeordnet. Daraus folgt, daß ein Rechner verschiedene physikalische Netzwerkschnittstellen haben kann (multi-homing).

Routing

Router sorgen dafür, daß Datenpakete auf dem Weg durch das Internet bestimmte Wege wählen. Wenn die Zieladresse eines IP-Pakets zu einem Rechner im lokalen Netz gehört, wird das Paket auf direktem Wege zugestellt. Falls die Zieladresse nicht im lokalen Netzwerk liegt, wird das Paket an einen Gateway übergeben. Die Informationen, wohin ein Rechner ein IP-Paket weiterzugeben hat, werden in Routing-Tabellen festgehalten. Gateways besitzen über Netzwerkschnittstellen Zugang zu verschiedenen Netzen. Man unterscheidet zwischen source- und nonsource routing, wobei beim nonsource routing die Wege des Datenpakets im Options-Feld des IP-Protokollkopfes eingetragen sind.

 

TCP

Das Transmission Control Protocol (TCP), zu deutsch Übertragungs-Kontroll-Protokoll, unterstützt eine zuverlässige, verbindungsorientierte Datenübertragung. Das hohe Maß an Zuverlässigkeit wird durch Bestätigungs-, Flußkontroll-, Zeitüberwachungs- und Verbindungssteuerungsmechanismen erreicht.

Die Zuverlässigkeit der Datenübertragung stellt TCP mit einem Mechanismus, der als Positive Acknowledgement with Re-Transmission (PAR) bezeichnet wird, bereit. Dieser Mechanismus sorgt dafür, daß das System, welches Daten sendet, die Übertragung der Daten solange wiederholt, bis vom Empfänger der Erhalt der Daten quittiert bzw. positiv bestätigt wird. Die transferierten Dateneinheiten, auch Segmente genannt, bestehen aus einem mindestens 20 Byte großen Protokollkopf (siehe Tabelle 1.2.3 und den zu übertragenden Daten. In jedem dieser Segmente ist eine Prüfsumme zur Fehlerkontrolle der Daten enthalten. Im Falle einer fehlerfreien Übertragung sendet der Empfänger eine Empfangsbestätigung an den Sender, andernfalls wird das Datenpaket verworfen und keine Empfangsbestätigung verschickt. Wird nach einer bestimmten Zeitperiode (timeout period) beim Sender keine Empfangsbestätigung empfangen, verschickt der Sender das betreffende Segment erneut.

Die festen TCP-Verbindungen werden über ein Dreiwege-Handshake (three way handshake) aufgebaut. Über das Dreiwege-Handshake werden Steuerinformationen ausgetauscht, die die logische Ende-zu-Ende-Verbindung regeln. Hierbei sendet ein Rechner (Rechner A) einem anderen Rechner (Rechner B), mit dem er eine Verbindung aufbauen will, ein Segment, in dem das SYN-Flag (s.u. TCP-Protokollkopf) gesetzt ist. Mit diesem Segment teilt Rechner A Rechner B mit, daß der Aufbau einer Verbindung gewünscht wird. Die Sequenznummer des von Rechner A gesendeten Segments gibt Rechner B außerdem an, welche Sequenznummer Rechner A zur Datenübertragung verwendet. Die Sequenz- und Bestätigungsnummern werden benötigt, um die Datenströme vom Sender in der richtigen Reihenfolge beim Empfänger einzureihen. Der empfangende Rechner B kann die Verbindung nun annehmen oder ablehnen. Nimmt er die Verbindung an, wird ein Bestätigungssegment gesendet. In diesem Segment sind das SYN-Bit und das ACK-Bit (s.u. TCP-Protokollkopf) gesetzt. Im Feld für die Quittungsnummer bestätigt Rechner B die Sequenznummer von Rechner A dadurch, daß die um Eins erhöhte Sequenznummer von Rechner A gesendet wird. Die Sequenznummer des Bestätigungssegments von Rechner B an Rechner A informiert Rechner A darüber, mit welcher Sequenznummer beginnend Rechner B die Daten empfängt.

Zum Schluß bestätigt Rechner A den Empfang des Bestätigungssegments von Rechner B mit einem Segment, in dem das ACK-Flag gesetzt ist und die um Eins erhöhte Sequenznummer von Rechner B im Quittungsnummernfeld eingetragen ist. Mit diesem Segment können auch gleichzeitig die ersten Daten an Rechner B über die neu initiierte Datenverbindung übertragen werden. Die Datenübertragung kann nun zwischen den beiden Stationen stattfinden. Zum Beenden der Verbindung tauschen die beiden Rechners wiederum einen Dreiwege-Handshake aus, bei dem das FIN-Bit (s.u. TCP-Protokollkopf) zum Beenden der Verbindung benutzt wird.

Die Protokolle der Transportschicht (TCP und UDP) sind außerdem dafür verantwortlich, die empfangenen Daten an die korrekte Applikation weiterzuleiten. Die zugehörige Anwendung wird aufgrund einer sog. Port Number identifiziert. (Dieselbe Anwendung hat in TCP und UDP unter Umständen eine unterschiedliche Port-Nummer!)

Es gibt zwei Arten von Port-Nummern:

die feste Port-Nummer, die Port-Nummer des Servers zur Identifizierung eines Dienstes. Für wichtige Dienste (wie Telnet, Ftp, etc.)gibt es Standard Port-Nummern.

die dynamisch zugeteilte Port-Nummer, die Port-Nummer des Clients. Damit jede Verbindung eindeutig identifizierbar ist, ordnet der Client jeder Verbindung eine jeweils einmalige Port-Nummer zu. Diese PortNummer identifiziert den Client der betreffenden Verbindung eindeutig.

Die Verbindung einer IP-Adresse mit einer Port-Nummer nennt man Socket. Ein Socket identifiziert einen Anwendungsprozeß eindeutig. Der Anwender erhält vom Client für die Dauer der Anwendung eine einmalige Port-Nummer (dynamically allocated port number) zugeordnet. So definiert ein Paar von Sockets eine Verbindung eindeutig durch:

  1. IP-Adresse des Servers + feste Portnummer
  2. IP-Adresse des Clients + zugeteilte dynamische Portnummer

 

TCP Protokollkopf

 





0 10 20 30
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Source Port Destination Port
Sequence Number
Acknowledgment Number
Header U A P R S F
Lenght Reserved R C S S Y I Window
G K H T N M
Checksum Urgent Pointer
Options Padding
Data
Tabelle 1.5: TCP-Datenpaket

  Source Port (16 Bit)
Das Feld Source Port zeigt den Port der sendenden Applikation an.

  Destination Port (16 Bit)
Das Feld Destination Port zeigt den Port der empfangenden Applikation an.

  Sequenz Number (32 Bit)
Das Feld Sequenz Number gibt an, an welcher Position sich das erste Byte dieses Segments im Datenstrom befindet.

  Acknowledgment Number (32 Bit)
Das Feld Acknowledgment Number dient der Bestätigung empfangener Pakete, indem es jeweils dem Sender die als nächste erwartete Sequenznummer mitteilt.

  Header Length (4 Bit)
Das Feld Header Length gibt die Länge des TCP-Protokollkopfes in 32-bit Worten an. Dies ist auf Grund der variablen Länge des Options Feldes erforderlich.

  reserved (6 Bit)
Dieses Feld ist bislang noch unbenutzt.

  Flags (6 Bit)
Flags dienen zur Anzeige der Gültigkeit anderer Feldwerte und zur Kommunikationssteuerung. Folgende sechs Flags sind definiert:

  Window Size (16 Bit)
Das Feld Window Size gibt die Größe des Puffers an, der von einem Endknoten für diese Verbindung reserviert wurde. Der andere Knoten darf keinesfalls mehr Daten als die angegebene Puffergröße senden, ohne auf den Eingang einer Bestätigung zu warten.

  Checksum (16 Bit)
Das Feld Checksum dient zur Überprüfung des Protokollkopfes, der Daten, sowie verschiedenen Feldeinträgen im IP-Protokollkopf. Hierzu gehört die Ziel- und Quelladresse sowie das Protokollfeld und die Protokollänge.

  Urgent Pointer (16 Bit)
Das Feld Urgent Pointer beinhaltet einen Zeiger auf das Ende des Datenfeldes, das als dringlich gilt und sofort bearbeitet werden soll. Der Zeiger ist nur gültig, wenn das URG-Flag gesetzt ist.

  Options (variabel)
In diesem Feld können optionale Parameter hinzugefügt werden.

  Padding (variabel)
Um eine Optionfeldgröße von einem Vielfachen von 32 Bit zu erreichen, werden die restlichen Felder des Options-Feldes mit Nullen aufgefüllt.

Beispiel einer TCP-Verbindung

Die folgende Abbildung 1.4 zeigt eine beispielhafte TCP-Verbindung. Dabei wurde vom RechnerA mit dem Befehl Telnet RechnerB 80 eine TCP-Verbindung zum WWW-Dienst (Port 80) des Rechners B hergestellt. Anschließend wurde der Befehl GET (hole Seite) aufgerufen. Der WWW-Dienst des Rechners B antwortet erwartungsgemäß mit einer HTML-Seite und beendet die Verbindung.

 figure423
Abbildung 1.4:  TCP-Verbindung

 

UDP

Das User Datagramm Protocol (UDP) erweitert die grundlegenden IP-Datenpaket-Dienste nur insofern, als daß es die Weiterleitung von Daten an die entsprechenden Dienste der Anwendungsschicht sowie die Fehlererkennung des Datenpakets steuert.

UDP ist ein verbindungsloses Protokoll, d.h. Datenpakete werden ohne Rücksprache zum Empfänger verschickt. Es wird vor allem für kurze Anfragen und Antworten, die in ein einziges IP-Paket passen, verwendet. Das Eintreffen der Antwort dient dann gleichzeitig als Bestätigung der erfolgreichen Übertragung. Der UDP-Protokollkopf ist prinzipiell eine Kurzform des TCP-Protokollkopfes. Die Einfachheit des Protokolls führt zu einem Gewinn an effizienter Geschwindigkeit, die mit Einschränkungen in der Übertragungssicherheit bezahlt werden muß.

 

 





0 10 20 30
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Source Port Destination Port
Length Checksum
Data
Tabelle 1.6: UDP-Datenpaket

 

ICMP

Das in RFC 792 definierte Internet Control Message Protocol benutzt die Datenpaket-Dienste des IPs, um Fehler- und Diagnoseinformationen zu transportieren. Jeder ICMP-Nachrichtentyp wird hierbei in einem IP-Datenpaket eingekapselt. Folgende Nachrichtentypen werden von ICMP unterstützt:

 

ICMP-Datenpaket

 





0 10 20 30
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Type Code Checksum
contents depends on type and code
Tabelle 1.7: ICMP-Datenpaket

  Type (8 Bit)
Das Typenfeld bezeichnet den Meldungstyp des ICMP-Datenpakets.

  Code (8 Bit)
Das Feld Code spezifiziert die Fehlermeldung, innerhalb des ICMP-Typs.

  Checksum (16 Bit)
Der Checksum-Wert dient als Prüfsumme für das gegebene Datenpaket.

(R)ARP

Jede Netzschnittstelle hat eine vom Hersteller festkodierte 48 bit lange sogenannte Medium Access Control (MAC) Adresse. Mittels dieser MAC-Adresse wird jeder Netzschnittstelle eine IP Adresse (bzw. über den Namensdienst (DNS) ein Rechnername) zugewiesen. Um ein IP-Paket von einem Rechner zu einem anderen zu senden, muß das Paket, genauer gesagt der Ethernetprotokollkopf, mit der Ethernetadresse des Zielrechners kodiert werden. Die dabei entstehende Adressauflösung von IP-Adresse zu Ethernetadresse wird vom Address Resolution Protocol (ARP) durchgeführt.

Zur Adressauflösung verschickt der anfragende Rechner eine Anfrage request an alle Rechner im lokalen Netz, wem die entsprechende IP-Adresse zugeordnet ist. Als Antwort sollte dieser nun vom entsprechenden Rechner oder dem Domain Name Server eine Adressauflösung als Antwort reply bekommen. Zur Beschleunigung der Anfrage verwaltet jeder Netzknoten einen lokalen ARP-Cache.

Das Reverse Address Resolution Protocol ist das entgegengesetzte Protokoll zu ARP. Es ist für festplattenlose Stationen ausgelegt, die über dieses Protokoll Ihre eigene IP Nummer für Ihre MAC-Adresse abfragen können.

ARP-Datenpaket

 





0 10 20 30
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Hardware-Typ Protokol-Typ
HA-Length PA-Length Operation
adress-space
Tabelle 1.8: ARP-Protokollkopf

  Hardware-Typ (16 Bit)
Dieses Feld gibt an, von welchem Typ von Netz-Hardware das Datenpaket generiert wurde.

  Protokol-Typ (16 Bit)
Dieses Feld gibt an, von welchem Protokoll die Operation angefordert wurde. Hier werden dieselben Werte wie im Ethernet-Typenfeld eines Ethernet-Rahmens verwendet.

  HA-Lenght (HLEN) (8 Bit)
Dieses Feld gibt die Länge der Hardware-Adresse in Bytes an. Gewöhnlich hat eine MAC-Adresse den HLEN-Wert von 6.

  PA-Length (PLEN) (8 Bit)
Dieses Feld gibt die Länge der Vermittlungsschicht-Adresse in Bytes an. IP hat gewöhnlich den PLEN-Wert 4.

  Operation (8 Bit)
Dieses Feld gibt die möglichen ARP-Operationen an.

 

1 == ARP Anfrage (request)
2 == ARP Antwort (reply)
3 == RARP Anfrage (request)
4 == RARP Antwort (reply)
Tabelle 1.9: ARP-Operationen

  Adressen (Länge entsprechend HLEN und PLEN)
Die Adressfelder enthalten die Hardware-Adresse des Absenders (Absender-MAC-Adresse), die Absender-IP-Adresse, die Hardware-Adresse des Empfängers (Empfänger-MAC-Adresse) und die Empfänger-IP-Adresse.

Next Previous Contents