Das OSI-Modell, IPv6, IPv4, TCP und UDP einfach erklärt

osi modellIm OSI-Modell fügt jede Schicht (Layer) seinen eigenen Header und Trailer an die Benutzerdaten. Jeder komplette Datensatz einer Schicht wird PDU genannt (Protocol Data Unit), sie enthält jegliche Information, darüber, was die Schicht implementiert.

 

 

 

 

 

Encapsulation

Beschreibt den Prozess, bei dem zusätzliche Protokoll Header-Informationen den Daten zugefügt werden, bevor sie übertragen werden. In den meisten Formen ist es üblich, dass die originalen Daten durch zusätzliche Protokolle im Kopf erweitert werden.

De-encapsulation

Dieser Prozess findet auf der Seite des Empfängers statt. In diesen Prozess werden die zuvor hinzugefügten Protokoll-Header wieder entfernt und verarbeitet. Dieser Vorgang beginnt an der äußersten Schicht des OSI-Modells, nämlich dem Physical Layer.

1. Physical Layer (Bitübertragungsschicht)

Die Bitübertragungsschicht ist die unterste Schicht im OSI-Modell. Sie stellt die physikalischen (mechanische und elektrische) Hilfsmittel zur Verfügung, diese können beispielsweise elektronische Signale, elektromagnetische oder optische Signale sein.

2. Data Link Layer (Sicherungsschicht)

Die Sicherungsschicht, wie der Name schon deuten lässt, stellt sie eine sichere und weitestgehend fehlerfreie Übertragung zur Verfügung. Sie teilt den Bitdatenstrom in sogenannte Frames („Rahmen“) und Prüfsummen auf. Der Empfänger kann somit fehlerhafte Frames erkennen und ggf. korrigieren.

Im Data Link Layer sprechen wir von „Frames“. Das IP-Paket wird in ein Data-Link-Frame gepackt, dieser Frame enthält Informationen über die physikalischen Adressen (MAC-Adresse) von Sender- und Empfängergeräten. Befindet sich der Zielhost nicht im lokalen Netzwerk, sondern in einem Remote Netzwerk (Beispielsweise ein Webserver), so wird die MAC-Adresse unseres Default Gateways genutzt (Router). Da jeder Host im lokalen Netzwerk die IP-Adresse seines Default Gateways kennt, kann der Sender Host mittels ARP die Mac Adresse des Default Gateways ermitteln.

Ethernet MAC Address

Ist eine 48-bit große Adresse, welche physikalisch auf der Netzwerkkarte (Network Interface Card) eingebettet ist.

ARP (Address Resolution Protocol)

Der Client nutzt dieses Protokoll, um die MAC Adressen eines jeden Gerätes im lokalen Netzwerk heraus zu finden. Dabei sendet der Client eine ARP-Anfrage ins gesamte LAN. Diese ARP Anfrage ist eine Broadcast Nachricht, welche die IP-Adresse des Zielgeräts enthält, jedes Gerät im Netzwerk wird daraufhin diese ARP- Anfrage begutachten, um heraus zu finden, ob sie die eigene IP-Adresse enthält. Hat ein Gerät seine eigene IP-Adresse gefunden, wird es auf diese Anfrage antworten und zwar mit einer ARP-Antwort. Diese Antwort enthält die zugehörige MAC-Adresse zur IP-Adresse in der ARP-Anfrage.

3. Network Layer (Vermittlungsschicht)

In dieser Schicht findet das sogenannte „routing“ statt. Dies bedeutet das Bereitstellen einer Routingtabelle, sowie die Fragmentierung von Datenpaketen. Hier treffen wir auf die Protokolle IP und ICMP.

Im Network Layer sprechen wir von so genannten „Paketen“, diese Pakete enthalten Informationen über „Source IP address“ und „Destination IP address“. Erstes beinhaltet die IP-Adresse der Senderseite, letzteres enthält die Informationen über die IP-Adresse der Empfängerseite, welche zusätzlich von Routern genutzt wird, um das Paket an sein Ziel zu bringen.

Routing

Als Routing bezeichnet man den Prozess, um den besten Weg eines Paketes zum Ziel zu finden.

Es gibt drei Möglichkeiten an wen ein Host ein Paket schicken kann:

  1. An sich selbst. Hierzu dient eine spezielle IPv4 Adresse (0.0.1 auch als localhost bekannt) als loop back Adresse.
  2. An einen Host im lokalen Netzwerk, der dieselbe Netzadresse teilen.
  3. An einen entfernten Host, welcher nicht im gleichen Netz ist und welcher nicht die gleiche Netzadresse teilt.

Default Gateway

Als Default Gateway bezeichnet man das Gerät, welches die Verbindung zwischen dem lokalen Netzwerk und dem entferntem Netzwerk herstellt. Das Default Gateway verwaltet eine Routingtabelle im Arbeitsspeicher, welche Informationen über direkt angeschlossene Verbindungen enthält.

Wie entscheidet ein Host, ob das Paket zum Default Gateway muss?

Jeder Host muss, um diese Frage zu beantworten, seine eigene lokale Routingtabelle verwalten.

Die Routingtabelle

Die lokale Routingtabelle eines jeden Hosts beinhaltet üblicherweise folgende Einträge:

  • Direct connections: Dies ist die Route zum „loop back interface“ (127.0.0.1)
  • Local network route: Alle Adressen, die keiner Adresse in der Routingtabelle zugeordnet werden können, gehen ans Default Gateway
  • Local default route: Beschreibt die Route für ein Paket um einen entfernten (remote) Host zu erreichen. Demnach beschreibt dieser Eintrag den Weg zum Default Gateway.

Beispiel:

Möchte man einmal selbst die Routingtabelle seines Computers anzeigen lassen, so muss man folgenden Befehl in die Konsole(cmd) eingeben: „netstat -r“ oder „route table“.

Auf dem Bild sehen wir nun die lokale Routingtabelle unseres Computers. Diese Tabelle teilt sich in 3 Sektionen auf:

  1. Interface List: Listet alle netzwerkfähigen Geräte samt MAC-Adressen auf
  2. IPv4 Route Table: Zeigt alle IPv4 Routen an.
  3. IPv6 Route Table: Zeigt alle IPv6 Routen an.

IPv4 Route Table

Diese Tabelle besitzt fünf Spalten:

  1. Network Destination: Beinhaltet alle erreichbaren Netze.
  2. Netmask: Zeigt Subnetzmaske des zu erreichenden Netzes.
  3. Gateway: Beinhaltet die Adresse, die ein Host benötigt, um einen Host in einem entfernten Netzwerk zu erreichen. Liegt der entfernte Host nicht in einem anderen Netzwerk, steht hier „On-Link“.
  4. Interface: Zeigt die physikalische Adresse des Interfaces, um das Paket zu verschicken.
  5. Metric: Beinhaltet einen Wert, der den Aufwand jeder Route widerspiegelt
Network Destination Adressen

Um diese Spalte euch näher zu erklären, gibt es von mir folgende Liste:

  • 0.0.0: Dies ist die „local default Route“. Alle Pakete, deren Ziel keinen Eintrag in der Routing Tabelle zu treffen werden somit an das Default Gateway geschickt.
  • 0.0.0 – 127.255.255.255: In diesem Bereich befinden sich direkte Verbindungen, spezifiziert für den „localhost“.
  • 224.0.0.0: Ist eine speziell registrierte IPv4 Adresse für Loop back Anfragen
  • 255.255.255: Speziell begrenzte Broadcastadresse

Merkmale des IP Protokolls

Verbindungslos:

Das IP Protokoll wurde entwickelt, um leicht Daten zwischen einem Sender und einem Empfänger auszutauschen, dabei wurden keine Funktionen implementiert, die eine Überwachung und Verwaltung der Pakete ermöglichen. Das IP Protokoll ist verbindungslos, dies bedeutet, dass keine direkte Verbindung zwischen Quell- und Zielhost vorherrschen muss. Dies ist vergleichbar mit dem Versenden eines Briefes, dabei sendet der Briefverfasser einen Brief an einen Empfänger ohne dessen Wissen.

Minimalistisch:

Des Weiteren gibt es im IP Protokoll keinen Mechanismus, für die garantierte Übermittlung von Paketen. Im Allgemeinen würde man sagen, dass IP Protokoll ist arm dran, was den Funktionsumfang angeht. Im Header eines IP Pakets sind keine Informationen enthalten, um das Verwalten von verlorenen Paketen zu gewährleisten.

Unabhängig:

Einem IP Paket ist es egal, auf welche Art und Weise (Glasfaser, Elektronisch, Elektromagnetisch) es übertragen wird.

IPv4 Paket

Die Grundlegenden Nachteile von IPv4 hinsichtlich IPv6 sind schlichtweg:

  • Adressmangel: Es stehen maximal 32 Bit zur Verfügung, um IP-Adressen zu vergeben, mit dem wachsenden Internet in Afrika und Asien ist es jedoch bald nicht mehr möglich IP-Adressen zu vergeben.
  • Routing Tabellen: Ein Router nutzt diese Tabelle um den idealsten Weg zum Ziel zu finden, doch diese Routing Tabellen verbrauchen massig Ressourcen.
  • Der Mangel an End-to-End Unterstützung: NAT (Network Address Translation) ist ein Verfahren, welches man üblicherweise in IPv4 Netzwerken vorfindet. Diese Technologie ermöglicht es, mehreren‚ Geräten eine einzige öffentliche IP-Adresse zu vergeben zu teilen. Dies kann problematisch werden, wenn man eine direkte End-to-End Verbindung nutzen möchte.
Header

Der IP Header jedes IPv4 Pakets ist 4 Byte groß und besteht aus diversen Feldern, diese Felder werden mit Binärzahlen gefüllt und später von Layer 3 (Network Layer) begutachtet. Mittels dieser Felder lassen sich gewisse Einstellungen an einem IP Paket vornehmen.

Einige wichtige Felder:

  • Version: Beinhaltet eine 4 bit großen Wert, der die Version dieses IPv4 Pakets angibt. Dieser Wert ist bei IPv4 0100.
  • Differentiated Services (DS): Klassifiziert das IP-Paket
  • Time-to-Live (TTL): Quasi selbsterklärend. Dieser 8-bit große Wert wird genutzt um die Lebenszeit eines jeden IPv4 Paket zu bestimmen. Dieser Wert kann jeweils in Sekunden, oder einem Zahlenwert für einen Zähler angegeben werden. Jeder „hop“ zählt dabei diesen numerischen Wert runter, solange dieser nicht null erreicht, wird das IPv4 Paket weiter verschickt. Benutzte man den Befehlt „traceroute“ kann man sich die Anzahl der „hops“ von Start bis Ziel ausgeben lassen.
  • Protocol: Dieser Wert gibt an, welches Protokoll für dieses IPv4 Paket zum Einsatz kommen soll/kam. Gängige Werte sind hier 1 (ICMP), 6 (TCP) oder 17 (UDP). Maximal stehen hier 8 Bit zur Verfügung.
  • Source IP Address: 32-bit große Binärzahl
  • Destination IP Address: 32-bit große Binärzahl
  • Internet Header Length
  • Total Length
  • Header Checksum: Wird genutzt um das empfangene Paket zu überprüfen
Subnetting

Subnetzmasken und Anzahl Hosts: 2^(32-Subnetzmaske) = Anzahl Hosts

Beispiele:

  • 2^(32-23) = 512
  • 2^(32-22) = 1024
  • 2^(32-21) = 2048
  • 2^(32-20) = 4096

Beispiel:

Wir möchten ein Subnetz bilden, welches 1023 Hosts (1022 Computer und ein Routerinterface) beinhalten kann. Gegeben ist folgende Netzadresse: 172.20.0.0

Dazu wählen wir eine 21er Subnetzmaske, da wir mit einer 22er Subnetzmaske lediglich 1022 Hosts bedienen könnten, müssen wir eine 21er Subnetzmaske anwenden.

Zu allererst wandeln wir unsere gegebene IP-Adresse in das Binärsystem um, dadurch erhalten wir folgende IP-Adresse:

Netzadresse: 10101100.00010100.00000000.00000000

Als nächstes müssen wir unsere Subnetzmaske in das Binärsystem umwandeln, dies funktioniert kinderleicht, da wir die Anzahl von Bits wissen und den Rest nur noch mit Nullen auffüllen müssen. Dadurch erhalten wir folgende Subnetzmaske.

Sub: 11111111.11111111.11111000.00000000

Jetzt kommt der Teil an dem wir den Host-min berechnen, hierzu schreiben wir die Netzadresse und die Subnetzmaske direkt übereinander. Überall da, wo die Subnetzmaske eine Eins enthält, dürft ihr den Bitwert der Netzadresse übernehmen. Die beiden Binärzahlen werden jeweils „Und“-Verknüpft, das bedeutet 1&1=1, 1&0=0 und 0&0=0. Zum Schluss erhaltet ihr folgenden Host-min, vergesst nicht, dass der Host-min sich aus folgender Formel ableiten lassen kann (Netzadresse+1=Host-Min).

Host-Min: 10101100.00010100.00000000.00000001 ⇒ 172.20.0.1

Um den Host-max zu bestimmen müsst ihr die Subnetzmaske invertieren, das heißt Nullen werden zu Einsen und Einsen werden zu Nullen. Die invertierte Subnetzmaske sieht nun folgendermaßen aus.

~Sub:               00000000.00000000.00000111.11111111

Nun macht ihr das gleiche Spiel wie bei Host-min, mit der Ausnahme, dass nun die Netzadresse und die invertierte Subnetzmaske „Oder“-Verknüpft werden, das heißt 1|1=1, 1|0=1, 0|0=0. Zum Schluss erhaltet ihr zunächst die Broadcast-Adresse, aus der ihr aber den Host-Max ableiten könnt, indem ihr ein Bit abzieht.

Host-Max (-1): 10101100.00010100.00000111.11111110 ⇒ 172.20.7.254

Broadcast:     10101100.00010100.00000111.11111111  172.20.7.255

IPv6 Paket

IPv6 Adressen werden in hexadezimal (Das 16er Zahlensystem) Schreibweise dargestellt. Eine IPv6 Adresse besteht somit aus 32 Hexadezimal-Zeichen, jedes einzelne stellt einen 4-Bit großen Wert dar, womit wir auf eine Gesamtlänge von 128 Bit kommen.

Header
  • Die ersten 64 Bit sind für den Subnet Präfix vorgesehen
  • Die verbleibenden 64 Bit für den Host-Teil
  • Version: Beinhaltet einen 4-bit großen Wert, um die Version eines IP Paketes zu ermitteln, dieser Wert ist bei IPv6 0110
  • Traffic Class: Ein 8-bit großer Wert, um das IP Paket zu klassifizieren
  • Flow Label: Ein 20-bit großer Wert, welches speziell von „Real-Time-Applications“ (Echtzeitanwendungen) genutzt wird. Dieses Feld kann genutzt werden, um Routern und Switches darüber zu informieren, immer denselben Weg zum Ziel zu nehmen.
  • Payload Length: Ein 16-bit großer Wert, welches die Größe des Paket(-fragments) angibt, dieses Feld ist gleichzusetzen mit dem IPv4 Total Length Feld.
  • Next Header: Ein 8-bit großer Wert, um welcher äquivalent zum IPv4 Protocol Feld ist.
  • Hop Limit: Ein 8-Bit großer Wert, welcher das IPv4 Time-To-Live Feld ersetzt. Jeder Router subtrahiert eins aus diesem Feld, bis dieser den Wert Null erreicht und eine ICMPv6 Nachricht an den Sender übermittelt wird, dass das Paket verloren ging.
  • Source and Destination Address: Sind nun 128-bit große Werte.
Global Unicast Adressen

Eine IPv6 Global Unicast Adresse ähnelt einer öffentlichen IPv4 Adresse. Diese Adressen sind global, einzigartig und routbare Internetadressen, welche statisch oder dynamisch vergeben werden können. Diese Adresse ist weltweit einmalig. Dazu zählen alle Adressen mit dem Präfix 2000 bis 3FFF.

Beispiel: 2000::/3

Link Local Unicast Adressen

Diese Adressen werden genutzt, um mit anderen Geräten derselben Local Link Adresse zu kommunizieren. Alle Adressen mit dem Präfix von FE80 bis FEBF zählen zu den Link Local Unicast Adressen.

Beispiel: FE80::/10

Loopback Adressen

Wird von einem Host genutzt, um Pakete an sich selbst zu schicken. Diese Adresse kann nicht mit einem physikalischen Gerät in Verbindung gebracht werden. Alle Adressen mit dem Präfix von 0000 bis 00FF zählen zu Loopback Adressen.

Beispiel: ::1/128 oder einfach nur ::1

Multicast Adressen

Sie adressieren eine Gruppe von Netzwerkknoten. Alle Adressen mit dem Präfix im Bereich von FF00 bis FFFF zählen zu den Multicast Adressen.

Beispiel: FF00::/8

Verkürzte Schreibweise
Erste Regel

Die erste Regel besagt, dass alle führenden Nullen („0“) in jeder 16-Bit Sektion (= jedem hextet) können entfallen.

Beispiel: 0AB4 wird zu AB4, 08A0 wird zu 8A0.

Die letzte Null im zweiten Beispiel darf nicht entfallen, wieso erkennt man an folgendem Beispiel: 1AB könnte demnach 01AB oder 1AB0 sein. Besteht ein Hextet nur aus Nullen, kann dieses zu einer Null zusammengefasst werden. Die Regel beschränkt sich deshalb nur auf führende Nullen.

Zweite Regel

Die zweite Regel beschreibt, dass alle doppelten Doppelpunkte „::“ mit Nullen eines Hextetes oder mehreren Hexteten aufgefüllt werden können. Folgende IPv6 Adresse sei gegeben:

2014:0AB7:0000:2222:0000:0000:0000:0300

nun wenden wir die erste Regel an und erhalten folgende Adresse:

2014:AB7:0:2222:0:0:0:300

nach dem wir die zweite Regel angewendet haben, sieht unsere IPv6 Adresse folgendermaßen aus:

2014:AB7:0:2222::300

Anhand dieses Beispiels kann man erkennen, dass diese Regel immer nur einmal pro Adresse angewendet werden darf, da sonst unterschiedliche Adressen beim Wiederauffüllen von Nullen entstehen.

Vorteile von IPv6 gegenüber von IPv4:

  • Größerer Adressraum: Maximal sind 10 hoch 36 IP-Adressen möglich, ausgeschrieben sieht die Zahl so aus: 1. 000. 000. 000. 000. 000. 000. 000. 000. 000. 000. 000. 000.
  • Verbesserte Verwaltung von Paketen: Der Header von IPv6 Paketen wurde verkleinert, indem nicht genutzt Felder entfielen.
  • NAT ist nun nicht mehr zwingend erforderlich.
  • Sicherheit: IPv6 unterstützt nun native Sicherheitsmechanismen, dagegen mussten bei IPv4 zusätzliche Mechanismen greifen.
Subnetierung

Das Subnetting von IPv6–Adressen geschieht wesentlich leichter, da man sich deutlich Schreibarbeit spart und man meisten mit 4-Bit großen Werten arbeitet.

Wie bereits erwähnt bestehen IPv6 Adressen aus acht Hexteten, jedes Hextet beinhaltet jeweils vier 4-bit große Werte. Angenommen wir haben folgende IPv6-Adresse: 2001:ACAD:AB|0|0::/40. Diese IP-Adresse besitzt momentan noch eine 40er Subnetzmaske, nun möchten wir dieses Netz jedoch in kleinere Subnetze unterteilen, auf die wir jeweils eine 43er Subnetzmaske anwenden möchten. Das 40. Bit in dieser Adresse ist das „B“, das heißt, wir variieren nur die 3 Bits ab dem 40. Bit, daraus ergeben sich 8 mögliche Varianten, für die „0“ nach dem „B“.

000|0 (Bit 40 bis 43) => Diese 3 (2^3 Möglichkeiten) Bits des Hextets können in folgende Werte variiert werden: 000|0, 001|0, 010|0, 011|0, 100|0, 101|0, 110|0, 111|0. Dabei bleibt die letzte Stelle immer „0“, da wir nur die ersten drei Bits variieren.

Daraus ergeben sich folgende 8 Sub Netzadressen:

  • 2001:ACAD:AB00::
  • 2001:ACAD:AB20::
  • 2001:ACAD:AB40::
  • 2001:ACAD:AB60::
  • 2001:ACAD:AB80::
  • 2001:ACAD:ABA0::
  • 2001:ACAD:ABC0::
  • 2001:ACAD:ABE0::

Ein anderes Beispiel:

Das Netz 2001:ACAD:AB00:0000/40 soll in Subnetze unterteilt werden und zwar mit einer 45er Subnetzmaske.

2^5 Möglichkeiten = 32 Sub-Netze

Die letzten 5 möglichen IP-Adressen:

  • 2001:ACAD:ABD8:: (1101|1000)
  • 2001:ACAD:ABE0:: (1110|0000)
  • 2001:ACAD:ABE8:: (110|1000)
  • 2001:ACAD:ABF0:: (1111|0000)
  • 2001:ACAD:ABF8:: (1111|1000)

In IPv6 haben wir nicht mehr das Problem mit dem Ermitteln von Netzadressen oder dem Broadcast, da es sie schlichtergreifend nicht mehr gibt.

ICMP („Internet Control Message Protocol“)

Dient zum Austausch von Fehlermeldungen. Das Transmission Control Protocol nutzt zum Beispiel diese Mechanik. ICMP ist jeweils in IPv4 und IPv6 erhältlich, wobei ICMP eigentlich ein Bestandteil von IPv4 ist und lediglich ein ähnliches Protokoll (ICMPv6) für IPv6 existiert.

Im IP-Header wird eine ICMP Nachricht mit der Protokollnummer 1 angegeben. Beispielsweise wird bei einem „Ping“ eine ICMP Nachricht gesendet, aber auch beim Befehl „traceroute“ wird mittels ICMP die Route ermittelt.

4. Transport Layer (Transportschicht)

Die Transport Schicht beinhaltet die Aufgabe der Segmentierung des Datenstroms, sie wird auch als „Ende-zu-Ende-Kontrolle“ genannt. Durch diese Segmentierung der Daten kann eine Reduzierung von Datenstau erreicht werden. Protokollbeispiele für diese Schicht sind TCP und UDP. Die Segmentierung von größeren Datenblöcken erfolgt durch die Zerlegung der Blöcke in kleinere Pakete, die zusammen eine Paketsequenz bilden. Die Transportschicht verwaltet verschiedene Datenströme, welche zusätzlich gleichzeitig stattfinden.

Beispielsweise ist ein Benutzer in der Lage eine Webseite aufzurufen, währenddessen er gleichzeitig mit einem Freund chattet, eine E-Mail schreibt, oder einen Audio/Video streamt. In diesem Beispiel wird ebenfalls sehr deutlich, welche Anforderungen an die Protokolle TCP und UDP herrschen, denn ein Aussetzer bei einem Stream ist zu verkraften, währenddessen man beim Aufruf einer Webseite auf kein Zeichen verzichten kann.

TCP („Transmission Control Protocol“)

TCP ist ein zuverlässiges und verbindungsorientiertes Transportprotokoll. Dieses Protokoll stellt eine Verbindung zwischen zwei Endpunkten her, welche man Socket-Verbindung nennt. Diese Verbindung erlaubt es in beide Richtung Daten zu übertragen, das Erkennen und automatische Beheben von Datenverlusten und das Verhindern von Netzüberlastung. TCP bricht Nachrichten in kleiner Teile auf, welche „segments“ genannt werden. Diese Segmente beinhalten eine Sequenznummer, durch diese Sequenznummer wird eine Fehlerfreie Übertragung gewährleistet.

TCP findet man bei http(s) oder smtp/pop (Email) Datenübertragungen wieder.

Three-Way-Handshake („Drei-Wege-Handschlag“)

Der „Three-Way-Handshake“ stellt ein Verfahren dar, bei dem eine Verbindung zwischen zwei Endpunkten aufgebaut wird. Dabei werden die Daten mittels Flusskontrolle überwacht und somit immer garantiert zugestellt.

  1. Syncronize sequence number (SYN)
  2. Syncronize sequence number (SYN) & Acknowledgement number (ACK)
  3. Acknowledgement number (ACK)
Erster Schritt

Der „Three-Way-Handshake“ beginnt mit einer Anfrage vom Sender. In diesem Segment befindet sich das SYN-Flag. SYN steht für Syncronize Sequence Number. Die Sequenznumber Dieses Flag beinhaltet den Wert der „Initial Sequence Number“, kurz ISN. Die ISN wird zufällig generiert und wird zur Flusskontroller der Daten genutzt. Der ISN wird für jedes gesendete Byte vom Client zum Server um eins hochgezählt.

Zweiter Schritt

Im zweiten Schritt sendet der Server ein Segment zurück, welches das ACK-Flag beinhaltet. Mittels dieses Flags macht der Server deutlich, „ja ich habe dein Segment mit dem SYN-Flag empfangen“. Dieses Flag nennt sich Acknowledge number und ist gleich dem Wert vom SYN-Flag plus eins.

Dritter Schritts

Auch in diesem dritten Schritt werden immer noch keine Benutzerdaten versendet, sondern der Client schickt eine erneute Anfrage an den Server und zwar dieses Mal mit dem ACK-Flag. Das ACK-Flag beinhaltet nun den Wert plus eins vom ACK-Flag (ISN), welcher vom Server kam, und sendet diesen an den Server zurück. Die sequence number sollte nun identisch mit der Acknowledge number sein. In diesem Schritt wird das SYN-Flag nicht weiter genutzt.

TCP Flow Control

Mittels dieses Mechanismus ist es TCP möglich, den Daten Fluss zu steuern. Es limitiert die maximale Größe der Daten, die während einer Session gesendet werden dürfen. Die Größenzuordnung erfolgt durch ein 16-Bit großes Feld im Header von TCP, der sogenannten „Window Size“. Ein großer Wert bedeutet, dass bei einem Verbindungsaufbau eine größere Datenmenge gesendet werden kann. Dies kann eine Performanceverbesserung herbeirufen, sofern man eine schnelle Leitung besitzt. Nachdem der Host das Paket gesendet hat, wartet er mit dem Senden von weiteren Daten so lange, bis der Server antwortet.

Große Window Size:

  • Reduzierung der Anzahl der Pakete
  • Mehr Daten mit einmal senden
  • Weniger Verzögerungen, da der Server jedes Paket erst einmal verarbeiten muss
  • Bei hoher Fehlerrate müssen immer wieder große Pakete gesendet werden

Kleine Window Size:

  • Größere Anzahl von Paketen
  • Weniger Daten mit einmal senden
  • Größere Verzögerungen, da mehr Pakete verarbeitet werden müssen
  • Gehen Pakete verloren, müssen nur kleine Pakete erneut gesendet werden.

UDP („User Datagram Protocol“)

Bei der Übertragung mittels TCP kann es zu Datenstau und Datenverzögerung kommen, welche auf den ersten Blick wohlmöglich nicht störhaft wirken („Dann kommen die Daten eben später an“). Sieht man sich nun folgendes Beispiel an, wird dieser Faktor schnell zu einem großen Nachteil von TCP.

Person A telefoniert über VoiP mit Person B. Würden Person A und B nun TCP benutzen und man stelle sich vor das oder die Paket(e) für ein bestimmtes Wort würden verloren gehen(TCP würde die verlorenen Pakete natürlich nachliefern), könnten Sätze wie „Guten Tag, mein Name ist Person A“ schnell zu „Guten, mein Name ist Tag Person A“ werden. UDP stellt demnach nur allgemeine Grundlagen zur Datenübertragung zur Verfügung, wodurch eine verbindungslose Übertragung gewährleistet wird, welche keine Gewährleistung für die erfolgreiche Datenübertragung bietet.

UDP wird deshalb bei folgenden Anwendungsbeispielen genutzt: IP-Telefonie, Audi- oder Videostreaming.

TCP versus UDP

UDP TCP
  • Verbindungslos- Weniger Overhead
  • Keine Erneute Sendung von Daten
  • DHCP, DNS…
  • Für Anwendungen, die Datenverlust akzeptieren, aber keine Verzögerungen erlauben (Video Streaming, IPTV, DNS, DHCP)- Für simple Anwendungen
  • Große Verzögerungen
  • Erneute Sendung bei Datenverlust- Mehr Overhead
  • Für Anwendungen, die Verzögerungen und schlechtere Performance vertragen (HTTP,FTP,SMTP, DNS)

Port Adressierung

In jedem Header eines Segments befinden sich „Source port“ und „Destination port“. Diese Port-Nummerierung wird verwendet, um jegliche Anfrage einem Service/Anwendung zuzuordnen. Um eine Auflistung der aktiven TCP Verbindungen anzuzeigen, kann man „netstat“ in der Windowskonsole eingeben. Dieser Befehl liefert eine Tabelle mit aktiven TCP-Verbindungen, in den Spalten Local Adress und Foreign Adress kann man nach dem Doppelpunkt den Lokalen (clientseitigen) oder Entfernten (serverseitigen) Port ablesen.

0 – 1023 Well-Known Ports

„Well-Known Ports“ sind für Dienste und Anwendungen registriert.

Einige der wichtigsten Well-Known-Ports:

  • 21 ftp
  • 22 ssh
  • 23 telnet
  • 25 SMTP
  • 80 http
  • 110 pop3
  • 143 Imap
  • 443 https
  • 465 smtps

1024 – 49151 Registered Ports

Werden von Fremdapplikationen genutzt.

49151 – 65535 Private/Dynamic Ports

Dynamische Ports werden beispielsweise bei Aufruf einer Webseite benutzt. Dabei wird eine TCP Verbindung aufgebaut, die aus Sicherheitsgründen einen dynamisch generierten Port nutzt.

5. Session Layer (Sitzungsschicht)

Organisiert und synchronisiert den Datenaustausch. Diese Schicht ist ebenfalls in der Lage eine abgebrochene Sitzung wiederaufzunehmen.

6. Presentation Layer (Darstellungsschicht)

Die Darstellungsschicht regelt die gemeinsame Darstellung der Daten, welche zwischen den Anwendungsschichten ausgetauscht werden.

7. Application Layer (Anwendungsschicht)

Auf dieser Schicht findet die Daten ein- und ausgabe von Anwendungen durch den Benutzer statt, außerdem stellt sie eine Verbindung zu den unteren Schichten her.

DoD-Schnittstellenmodell (TCP/IP Modell)

Ordnet man diese sieben Schichten dem DoD-Schichtenmodell zu, ergibt sich folgende Reihenfolge:

  • Process (Anwendungen) → Schichten 7,6 und 5
  • Host-to-Host (Transport) → Schicht 4
  • Internet (Vermittlung) → Schicht 3
  • Network Access (Netzzugriff) → Schichten 2 und 1

Protokolle

Diesen vier Schichten kann man nun beispielsweise folgende Protokolle zuordnen:

  • Process
    1. http
    2. DNS
    3. DHCP
    4. IMAP
    5. SMTP
    6. POP
    7. FTP
    8. BOOTP
  • Host-to-Host
    1. TCP
    2. UDP
  • Internet
    1. IP
    2. ICMP
    3. OSPF
    4. EIGRP
  • Network Access
    1. Ethernet
    2. Interface Treiber

Kommentare

Eingehende Suchbegriffe zum Artikel:

5 Gedanken zu „Das OSI-Modell, IPv6, IPv4, TCP und UDP einfach erklärt

  • 22. Januar 2017 um 14:17
    Permalink

    Vielen Dank.
    Für die Uni mussten wir uns über obrige Themen informieren.
    Dieser Artikel bringt alles auf den Punkt inkl verständlich erklärt.
    TOP.

    Antwort
    • 24. Januar 2017 um 09:24
      Permalink

      Vielen Dank für das positive Feedback, ich hoffe der Beitrag hat geholfen.

      Antwort
  • 14. Mai 2017 um 13:23
    Permalink

    hallo , ich habe eine frage… ich nicht verstehe das beispiel bei Subnetting , nach du sagst :

    Als nächstes müssen wir unsere Subnetzmaske in das Binärsystem umwandeln, dies funktioniert kinderleicht, da wir die Anzahl von Bits wissen und den Rest nur noch mit Nullen auffüllen müssen. Dadurch erhalten wir folgende Subnetzmaske.

    Sub: 11111111.11111111.11111000.00000000

    wo kommt diesen nummer?

    danke für deine antwort!

    Antwort
    • 14. Mai 2017 um 16:44
      Permalink

      Hallo Joseba,

      die “11111111.11111111.11111000.00000000” entsprechen einer 21er Subnetzmaske oder auch: 255.255.248.0

      11111111 = 255
      11111111 = 255
      11111000 = 248
      00000000 = 0

      Antwort
  • 27. November 2017 um 13:02
    Permalink

    Man kann sich die Bit-sSchreibweise auch sparen.
    Einfach die subnetzmaske dezimal invertieren:
    255.255.248.0 –> 0.0.7.255

    ergibt Hosts von 120.20.0.1 – 120.20.7.254

    🙂

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Pin It on Pinterest

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen