Das OSI-Modell [Open Systems Interconnection Model] stellt ein Referenzmodell für Netzwerkprotokolle dar und ist folgendermaßen aufgebaut:
2. Physical Layer
2.1 Einführung
Der Physical Layer ist die erste Schicht des OSI-Schichtenmodells und wird auch Bitübertragungsschicht genannt.
Hier findet die Erzeugung der Signale in den entsprechenden Frequenzen durch elektromagnetische Wellen statt.
2.2 Nachrichten und Informationen
Nachrichten bestehen aus Zeichen bzw. Zeichenketten, denen eine Semantik zugewiesen ist
Zeichen bzw. Symbole sind atomare Elemente (z.B. Buchstaben des Alphabets)
Wörter bzw. Zeichenketten entstehen durch die Verkettung mithilfe der transitiv-reflexiven Hülle
Der Rechner kennt jedoch nur das Alphabet Σ={0,1}
Informationstheorie nach Shannon
Ansatz zur statistischen Erfassung von Informationen
Informationsgehalt pro Zeichen
Je seltener ein Zeichen, desto größer der Informationsgehalt
Ein vorhersagbares Zeichen hat keinen Informationsgehalt
I=Informationsgehalt in bit P(a)=Wahrscheinlichkeit eines Zeichens zum Zeitpunkt t
I(P(a))=−log2(P(a))
Beispiel (es wird konstant “a” gesendet): Ia(1)=−log2(1)=0bit
Entropie
der mittlere Informationsgehalt wird als Entropie H bezeichnet
berechnet sich durch: H=a∈Σ∑P(a)∗I(a)=−a∈Σ∑P(a)∗log2(P(a))
Informationen, die über einen gedächtnislosen Kanal übermittelt werden
gibt die Stärke des Zusammenhangs zweier Zufallsgrößen an
Transinformationen eines Kanals stellt den mittleren Informationsgehalt dar, der vom Sender zum Empfänger gelangt
Gedächtnisloser Kanal:
verbindet zwei Quellen miteinander
die Transinformation fließt vom Sender zum Empfänger
je mehr Quellen voneinander abhängen, desto mehr Transinformationen gibt es
der Einfluss von Fehlinformationen wird durch H(Y∣X) abgebildet, da Y die Sendequelle X teilweise überlagert und es somit zum Informationsverlust kommt
2.3 Signale
Ein Signal x ist
eine zeitabhängige, physikalische Größe
messbar
Symbole können einer definierten Signaländerung Δx zugewiesen werden.
Signale lassen sich in folgende Kategorien unterteilen:
Wertkontinuierlich
Wertdiskret
Zeitkontinuierlich
x=x(t),x∈R,t∈R
x=x(t),x∈N,t∈R
Zeitdiskret
x=x(t),x∈R,t∈N
x=x(t),x∈N,t∈N
Größen, wie die Spannung U und der Strom I sind Wert- und Zeitkontinuierlich
Probleme:
Speicher ist begrenzt
Rechenleistung ist begrenzt → Rechnerseitig müssen diese also Wert- und Zeitdiskret sein
Lösung:
Konvertierung des
Zeitbereichs durch Abtastung
Wertebereichs durch Quantisierung
Analogsignale werden durch den ÀDC = Analog Digital Converter in eine zeit- und wertdiskrete Repräsentation überführt (x=x(t),x∈N,t∈N).
Analoge Signale
stetig (nicht abzählbar)
Beispiele
Schallplatte
analoges Telefon
VHS Magnetband
reden
Digitale Signale
diskret (abzählbar)
Beispiele:
Ampel
mechanische Uhr
Handy-Foto
Aspekte der Übertragung von Nachrichten
Periode T in ms
Frequenz f=T1 in Hz
Spektrum und Bandbreite B
Phasenwinkel ϕ
Phasenverschiebung Δϕ
Dirac-Distribution
(uneigentliche Funktion)
ein Peek mit unbestimmter Höhe
Anwendungsbeispiel: Faltungsoperationen
Faltung
liefert für zwei Funktionen eine dritte, neue Funktion
Heaviside-Funktion
Einheitssprung
Eingangssignal für die Ermittlung der Systemantwort
Rechteckfunktion
hergeleitet aus der Heaviside-Funktion
begrenzt auf ein festes Intervall
Rampenfunktion
Integral der Heaviside-Funktion
Taktsignal
zur Synchronisation in Schaltwerken
im Netzwerk dient es zur Synchronisation zwischen Sender und Empfänger
idealerweise eine Folge von Rechtecksignalen
relevante Kriterien
Frequenz bzw. Periode
Flanke
Amplitude
SPI und UART:
SPI = Serial Peripheral Interface
Bussystem
synchroner serieller Datenbus
dient zur Verbindung zweier digitaler Schaltungen nach dem Master-Slave-Prinzip
Konnektivität: Mit der Entfernung wie vieler Knoten würde das Netzwerk nicht mehr funktionieren?
Aufgaben der Sicherungsschicht:
Steuerung des Medienzugriffs
Prüfung übertragener Nachrichten auf Fehler
Adressierung innerhalb des Direktverbindungsnetzwerks
verschiedene Aufbaustrukturen:
1. Punkt zu Punkt:
zwei direkt verbundene Knoten
z.B. über crossover Kabel
2. Stern:
viele Knoten sind zu einem zentralen Knoten verbunden
z.B. über einen Hub oder Switch
3. Vermaschung:
vernetzte Knoten (auch untereinander)
keine redundanten Vernetzungen
4. Vollvermascht:
Vermaschung mit zusätzlich redundanten Vernetzungen (transitive Hülle)
5. Baum:
Binärbaum-Struktur
6. Bus (Binary Unit System):
alle Knoten sind über eine Bus-Leitung physikalisch verbunden
Verbindungscharakteristik
Übertragungsrate rij in sbit
Serialisierungszeit ts für die Nachricht der Länge L in Bit ist definiert durch ts=rijL
Ausbreitungsverzögerung tp über die Distanz d ist definiert durch tp=v∗cd
Nachrichtenflussdiagramm
Knoten i mit der Distanz zu Knoten j überträgt in der Serialisierungszeit ts die Nachricht, die mit einer Ausbreitungsverzögerung tp bei j ankommt. Die Gesamtzeit für das Senden und Empfangen der Nachricht beträgt also td=ts+tp
Verbindungsarten
abhängig von
Fähigkeiten des Übertragungskanals
Medienzugriffsverfahren
Fähigkeiten des Kommunikationspartners
simplex, halbduplex und vollduplex:
3.2 Medienzugriff
Aufteilung des Kanals in verschiedene Frequenzbänder für die Kommunikationspartner
oder
zeitliche Aufteilung des Zugriffs auf den Kanal
Probleme:
Kanal wird statisch aufgeteilt
Bandbreite steht während Ruhepausen anderer Teilnehmer nicht zur Verfügung
asynchrone-Verfahren:
ALOHA
Jede Station sendet an eine zentrale Station
Bei gleichzeitigen Nachrichten tritt eine Kollision auf
erfolgreiche Nachrichten werden quittiert
nicht optimal im Hinblick auf Effizienz
Slotted ALOHA
Funktionsweise wie bei ALOHA (siehe asynchrone Verfahren)
Zuweisung von Time Slots für das Senden von Nachrichten zur Kollisionsminimierung
deutlich höhere Effizienz als ALOHA, aber nicht optimal
CSMA (Carrier Sense Multiple Access)
simple Verbesserung des Slotted ALOHA
Es wird geprüft, ob das Medium frei ist bevor die Nachricht gesendet wird
Die Stationen warten nach einer Kollision eine zufällige Zeit, um die Kollisionswahrscheinlichkeit zu reduzieren
Bei Kollisionen wird ein sog. “Jam-Signal” gesendet
Problem: funktioniert nicht in Funknetzen
Lösung:
CSMA/CD (Collision Detection)
Übertragung wird von der Basisstation (Bsp. Router) gesteuert
Knoten senden vor der Nachricht ein RTS - Request to send
Router antwortet idealerweise mit CTS - Clear to send
Kollisionen werden verringert (die Datenrate allerdings auch)
Bsp. Ethernet
synchrone-Verfahren:
Im Gegensatz zu den asynchronen Verfahren kommuniziert bei den synchronen Verfahren nur ein Knoten zur Zeit.
Token passing
Kollisionsvermeidung durch Weitergabe eines Tokens
Bildung eines Token-Rings
nur die Station mit dem Token darf senden und gibt diesen danach weiter
Problem: fehlerhafte Knoten stören das gesamte Netz
3.3 Rahmenbildung
Auseinanderhalten von Nachrichten in einer Sequenz von Bits
Nachrichtenlänge angeben durch
Steuerzeichen: Symbole, die nicht in der Nachricht vorkommen und Start bzw. Ende der Nachricht kodieren. (Bsp. Beispiel: 11000 10001 10111 01011 01110 01101 00111)
Bitstuffing: Anfang und Ende einer Nachricht werden mit einer bestimmten Bitfolge, die nicht Teil der Nachricht ist und zwischen Sender und Empfänger vereinbart wurde, markiert. (Bsp. 01111110 101110101101110 01111110)
Coderegelverletzung: Markierung einer Nachricht durch Auslassen definierter Signalwechsel bei gleichanteilsfreien Codierungen (Bsp. Manchestercodierung) vor- und hinter der Nachricht.
Adressierung
Bedingung:
Eindeutige Identifikation im Direktverbindungsnetz
Eine Broadcast-Adresse, die alle Knoten im Netz adressiert werden kann.
MAC-Adressen (Media Access Control)
MAC-Adresse ist im ROM (read only memory) hinterlegt
bestehen aus einer Herstellerkennung (Bsp. Intel 00-07-E9) und einer eindeutigen Gerätenummer
Beispielhafte MAC-Adresse 00-07-E9-01-37-A2
Aufbau der Adressierung innerhalb eines Direktverbindungsnetzes:
Ziel MAC-Adresse
Ursprungs MAC-Adresse
(Control)
L3-PDU (Daten)
Prüfsumme
Empfänger
Sender
optional - für die Unterstützung virtueller LANs über Ethernet
PDU = Protocol Data Unit
zur Fehlererkennung
Übertragungsfehler erkennen und korrigieren
Prüfsummenbildung mit Hilfe von CRC (cyclic redundancy check)
berechnet zu einem Datenblock eine Prüfsumme fester Länge
Fehlererkennung von allen 1-Bit Fehlern und zusammenhängenden 2-Bit Fehlern
Die Nachricht m erfüllt die Bedingung ∣m∣>k, wobei k der Grad des Generatorpolynoms g ist
Die Nachricht m erhält am Ende k Nullen (w∘0k)
Die Nachricht mit den zusätzlichen Nullen wird mit dem Generatorpolynom gXOR verknüpft 0⊕0=00⊕1=11⊕0=11⊕1=0
Der Rest r mit ∣r∣≤k wird an die ursprüngliche Nachricht angehängt
Der Empfänger der Nachricht mit Prüfsumme teilt diese durch das Generatorpolynom und sollte nach der fehlerfreien Übertragung keinen Rest erhalten.
Beispiel
Generatorpolynom g=100111⟹k=5 (da g=x5+x2+x1+x0)
Nachricht: m=100101110011101⟹∣m∣=15
∣m∣>k=15>5=true
m∘05=10010111001110100000
Polynomdivision:
10010111001110100000100111------0000101100100111------00101111100111------00100010100111------000101100100111------00101100100111------0010110= r
Ein Hub verbindet die Knoten physikalisch zu einer Kollisionsdomäne
Alle Knoten konkurrieren um den Zugriff auf ein Übertragungsmedium (geteilte Ressource)
Bridges unterteilen Netzte in kleinere Kollisionsdomänen
Nachrichten aus einer Kollisionsdomäne in eine andere werden im Switch kurz zwischengespeichert und schließlich an das Ziel weitergeleitet.
Jeder Knoten kann in eine einzelne Kollisionsdomäne aufgeteilt werden, damit es keine Kollisionen mehr gibt. Hierbei handelt es sich dann um einen Switch
Einerkomplement (Hex in Binär, Bits flippen und in Hex zurück umwandeln): 90BC16=10010000101111002
Bits flippen: 01101111010000112=6F4316
ARP - Address Resolution Protocol
wird von IPv4 verwendet
wird zur Ermittlung der MAC-Adressen zu gegebenen IP Adressen verwendet
hinterlegt die Zuordnung in ARP-Tabellen auf dem Rechner
ARP Spoofing
softwareseitige Manipulation der MAC-Adresse
kann zum Abfangen von Inhalten genutzt werden (Man in the middle)
Beispiel-Szenario:
Angenommen Host A möchte Host D eine Nachricht schicken und es sind zwei Netze (A, B) und (C, D)
HostA erkennt, dass HostD nicht in dem Direktnetz liegt
HostA löst die MAC-Adresse zu der Adresse des Gateways auf und schickt die Nachricht mit der IP Adresse von HostD los
Das Gateway kennt die IP Adresse des Ziels und löst diese dann im anderen Netz auf die MAC-Adresse auf und leitet die Nachricht an das Ziel HostD weiter
ℹ️ Beim Routing werden die Ziel-MAC-Adressen zwischendurch verändert, aber die IP-Adresse bleibt gleich.
4.3 ICMP - Internet Control Message Protocol
benachrichtigt den Sender über auftretende Probleme beim Senden von Nachrichten
dient zur Paketumleitung
überprüft die Erreichbarkeit des Hosts (Ping)
Es wird ein Echo Request an den Zielhost geschickt
Der Zielhost antwortet nach erhalt des Echo Request mit einem Echo Reply
Sollte der Zielhost nichts erhalten, wird eine ICMP-Nachricht mit dem Fehlercode an den Absender zurück geschickt
Dies kann durch Ablaufen der TTL (Time to live) passieren
Traceroute: Die Pakete werden mit einer TTL von 1 losgeschickt und somit beim nächsten Knoten verworfen und es wird eine Time Exceeded Nachricht an den Sender geschickt. Dieser erhöht die TTL um 1 und sendet erneut. Somit kann der Pfad zum Ziel herausgefunden werden.
4.4 DHCP - Dynamic Host Configuration Protocol
Die Zuteilung von IP-Adressen kann auf zwei Wegen erfolgen:
Statisch
manuelle Konfiguration
Dynamisch
zugewiesene Adresse eines DHCP-Servers
Clients erneuern ihre vom DHCP-Server zugewiesene Adresse regelmäßig
Der Host sendet ein DCHP-Discover und erhält vom DHCP-Server ein DHCP-Offer mit der angebotenen IP-Adresse.
Danach fordert der Host die angebotene IP-Adresse an (DHCP-Request) und der DHCP-Server antwortet mit einem DHCP-ACK, wenn er die IP-Adresse freigibt oder einem DHCP-NACK, wenn er die Nutzung untersagt.
4.5 IPv6
IPv4 Adressraum ist knapp und die IPv4 Header sind unnötig komplex, also wurde IPv6 entwickelt
IPv6 Header haben eine feste länge für schnellere Verarbeitung
es bietet einen größeren Adressraum
außerdem werden neue Features zur automatischen Konfiguration, Adressvergabe und zur Auffindung lokaler Gateways geboten
IPv4 und IPv6 sind nicht kompatibel
Die beiden Technologien können jedoch nebeneinander existieren (Knoten verwenden häufig eine IPv4 Adresse und eine IPv6 Adresse)
4.6 Statisches Routing
Routen verändern sich nur langsam / selten
Algorithmus wird nur einmal durchgeführt
Subetting
Unterteilung von IP Netzen in Subnetze mit Hilfe einer 32-Bit Subnetzmaske
Subnetzmaske unterteilt die IP-Adresse in einen Netz- und einen Hostanteil
Die Netzadresse ergibt sich durch die logische UND-Verknüpfung der IP-Adresse und der Subnetzmaske
ℹ️ In diesem Fall sind die ersten drei Blöcke (24-Bit) der Netzanteil und der letzte Block der Hostanteil (8-Bit), woraus sich 256 Adressen [0000 0000 bis 1111 1111] ergeben. Der Hostanteil wird durch die Anzahl der Nullen der Subnetzmaske bestimmt bzw. der Netzanteil durch die Anzahl der Einsen.
Berechnung der Netzadresse durch die UND-Verknüpfung:
Die Broadcastadresse kann ebenfalls ermittelt werden, da sie reserviert die letzte Adresse des Hostanteils ist. In diesem Fall lautet die Broadcastadresse 192.168.178.255
Routing Tabellen
Tabelle mit Einträgen, die den (besten) Weg in einem Netzwerk zu einem bestimmten Ziel beschreiben
Netzwerke, die direkt mit dem Router verbunden sind werden fort eingetragen
Longest Prefix Matching
Router versucht möglichst effizient eine maximale Übereinstimmung der Zieladresse mit einer gespeicherten IP-Adresse aus der Routingtabelle herzustellen
es wird der Eintrag mit der längsten Übereinstimmung gewählt
das Verfahren wird sowohl für IPv4, als auch für IPv6 genutzt
4.7 Dynamisches Routing
Routen ändern sich (schnell)
Algorithmus zur Routenoptimierung muss zyklisch ausgeführt werden
Auf Änderungen muss eingegangen werden können
Kruskal Algorithmus
für ungerichtete Graphen
dient zur Bestimmung des minimal spannenden Baum (MST)
Sortierung der Kanten nach Kantengewicht
Zwei Mengen initialisieren (Menge der Kanten und Menge der Knoten des MST)
Kante mit dem geringsten Gewicht wählen und zur Menge der Kanten des MST hinzufügen, solange sich dadurch kein Kreis bildet.
Die Knoten der ausgewählten Kante werden zur Menge der Knoten des MST hinzugefügt
Beispiel:
Prim Algorithmus
funktioniert wie der Kruskal-Algorithmus mit dem Unterschied, dass ein beliebiger Knoten als Startpunkt festgelegt wird, von dem aus die Kanten mit den geringsten Gewichten betrachtet werden
Beispiel:
Suchstrategien
Tiefensuche
Pfade im Graphen werden zunächst vollständig in die Tiefe durchsucht und danach werden abzweigende Pfade aufgebaut.
Breitensuche
Im Gegensatz zur Tiefensuche werden erst alle direkt erreichbaren Knoten durchsucht und erst nachdem kein unbekannter Knoten in direkter Verbindung steht wird der nächste Knoten betrachtet.
Dijkstra-Algorithmus
Jeder Knoten erhält die Eigenschaften “Vorgänger” und “Distanz”
Alle Knoten mit unbekannter Entfernung (alle Knoten, die keine direkten Nachbarn des Startknotens sind) erhalten die Entfernung “∞”
Initialisierung einer Prioritätswarteschlange der Nachbarknoten nach Entfernung
Prioritätswarteschlange abbauen und Distanzen eintragen
Beispiel:
Ermittlung der Distanzen nach Dijkstra von Knoten A nach E:
Knoten
A
B
C
D
E
Queue
∅
0
∞
∞
∞
∞
{A}
A
0
100
∞
50
∞
{D, B}
D
0
150 > 100 ⟹ 100
∞
50
300
{B, C, E}
B
0
100
200
50
350 > 300 ⟹ 300
{C, E}
C
0
100
200
50
250 < 300 ⟹ 250
{E}
E
0
100
200
50
250
{}
A*-Algorithmus
dient zur Berechnung des kürzesten Pfades zwischen zwei Knoten in einem Graph mit positiven Kantengewichten
Verallgemeinerung und Erweiterung des Dijkstra Algorithmus
Hierbei wird zusätzlich betrachtet ob die grobe Richtung stimmt und man sich dem Zielknoten nähert
die geschätzten Kosten eines Knotens ergeben sich dabei durch die bekannten Kosten des nächsten Knotens und die geschätzten Kosten des nächsten Knotens zum Ziel
Der obige Graph wurde mit zusätzlichen Distanzschätzungen vom Start (A) zum Ziel (E) versehen:
Ermittlung der Distanzen nach Dijkstra von Knoten A nach E:
Knoten
A
B
C
D
E
Queue
∅
0 + 300 = 300
∞
∞
∞
∞
{A}
A
300
100 + 200 = 300
∞
50 + 300 = 350
∞
{B, D}
B
300
300
100 + 100 + 30 = 230
350
100 + 250 = 350
{C, D, E}
C
300
300
230
350
100 + 100 + 50 = 250 < 350 ⟹ 250
{D, E}
D
300
50 + 100 + 200 = 350 > 300 ⟹ 300
230
350
50 + 250 = 300 > 250 ⟹ 250
{E}
E
300
300
230
350
250
{}
Bellman-Ford Algorithmus
kann im Gegensatz zu dem Dijkstra Algorithmus auch mit negativen Kanten gewichtet werden
Distanz vom Startknoten zu jedem anderen Knoten auf unendlich setzen
Alle Kanten müssen nach dem kürzesten Weg überprüft werden
Der Algorithmus ist beendet, wenn in einer Iteration keine Änderungen mehr zur vorherigen Iteration auftreten. Sollte dies der Fall sein, enthält der Graph einen negativen Zyklus
Iteration
Kante
A
B
C
1
A, B
0
∞
∞
1
B, C
0
3 [A]
∞
1
A, C
0
3 [A]
11 [A]
2
A, B
0
3 [A]
11 [A]
2
B, C
0
11 + (-9) = 2 [C] < 3 [A] ⟹ 2 [C]
11 [A]
2
A, C
0
3 [A]
11 [A]
3
A, B
0
3 [A]
11 [A]
3
B, C
0
2 [C]
11 [A]
3
A, C
0
3 [A]
11 [A]
Distanzvektor Routing
basiert intern auf den Bellman-Ford Algorithmus
Prinzip: Den Nachbarn mitteilen, wie man selber die Welt sieht
Kostenmatrix erzeugen (Enthält die Kosten der direkten Nachbarn)
Schicke die Informationen, welche Router am besten erreicht werden können zu den Nachbarn
Die Informationen anderer Router, welche Knoten sie am besten erreichen können wird nun in die eigene Informationsbasis einberechnet
Bei minimierten Kosten für den Zugriff auf direkte Nachbarn wird eine aktualisierte Form der Information-Zusammenstellung erneut an die Nachbarn gesendet
Sobald ein Netzwerkknoten initialisiert wird, sendet er seinen Distanzvektor an die Nachbarknoten
Aktualisierte Distanzvektoren der Nachbarn werden intern mit Hilfe der Bellman-Ford Gleichung geprüft
4.8 Routing Protokolle
AS = Autonomes System ist eine Menge von Routern, die mehrere Netzwerke verwalten und Pakete innerhalb des autonomen Systems vermitteln. Das Internet besteht aus einem Verbund vieler autonomer Systeme.
Intra-AS-Routing (innerhalb des autonomen Systems)
Verwendung des IGP = Interieur Gateway Protocol
mit Hilfe des Intra-AS-Routing-Protokoll kann der kostengünstigste Pfad zum Gateway ermittelt werden
Interieur Gateway Protokolle:
RIP - Routing Information Protocol
basiert auf dem Distanzvektor-Algorithmus
ist ein altes Verfahren
wird über UDP verschickt
OSPF - Open Shortest Path First
verwendet Link-State-Routing-Algorithmus (Basis ist der Dijkstra-Algorithmus)
das Gesamtnetzwerk muss bekannt sein
ist besser skalierbar als RIP
wird im Backbone Router durchgeführt
ℹ️
Grenzrouter stellen die Verbindung zu anderen autonomen Systemen her
Backbone (Router) ist Kern des Netzes mit sehr hohen Datenübertragungsraten
Inter-AS-Routing (über mehrere autonome Systeme hinweg)
erfordert die Informationen, welche Ziele in den anderen autonomen Systemen erreichbar sind und worüber
Sobald durch das Inter-AS-Routing-Protokoll klar ist, wie und über welches Gateway das andere autonome Netz erreichbar ist, wird diese Information mit den Routern innerhalb des autonomen Systems geteilt
Mit dem Inter-AS-Routing kann eine Organisation kontrollieren, ob und wie der Verkehr anderer Netze durch das eigene geleitet wird
EGP = Exterieur Gateway Protocol
BGP = Border Gateway Protocol
liefert Informationen zur Erreichbarkeit von benachbarten autonomen Netzen und teilt die Erreichbarkeit des eigenen Netzes mit
ermöglicht die Weiterleitung solcher Informationen an die Router innerhalb des eigenen autonomen Systems
bestimmt gute Routen zu dem Zielnetzwerk
5. Transportschicht
5.1 Verbindungslose Übertragung
verbindungslose Transportdienste
Segmente werden unabhängig voneinander übertragen (ohne Sequenznummern)
daher existiert keine Garantie für die richtige Zusammensetzung der Segmente
verloren gegangene Segmente werden nicht wiederholt
UDP = User Datagram Protocol
verbindungsloses Netzwerkprotokoll
Vorteile:
keine Verzögerung durch Verbindungsaufbau
sehr einfacher Header und daher wenig Overhead
gut geeignet für Echtzeitanwendungen
Nachteile
kann Paketverlust aufweisen
keine Flusskontrolle (Sender kann den Empfänger überfordern)
keine Staukontrolle (bei hoher Belastung des Netzes kommt es zu hohen Verlustraten)
5.2 Verbindungsorientierte Übertragung
Drei-Wege-Handschlag
große Datenpakete wurden in Segmente aufgeteilt und die einzelnen Segmente werden durchnummeriert verschickt
das Eintreffen der einzelnen Pakete sollte bestätigt werden
die einzelnen Pakete sollten korrekt zusammengesetzt werden
falls Segmente verloren gehen, müssen diese Identifiziert und neu angefordert werden
Der Drei-Wege-Handschlag besteht aus 3 Phasen:
Verbindungsaufbau
Datenübertragung
Verbindungsabbau
i j
|----------------SYN,SequenceNumber = x----------------->||<----SYN,SequenceNumber = y, AcknowledgeNumber = x+1----||---------------AcknowledgeNumber = y+1---------------->|
Nachteile
- es kann nur ein Segment übertragen und bestätigt werden
Verbesserung des Drei-Wege-Handschlag
mehrere Segmente auf einmal Senden
Sendefenster bestimmt der Empfänger (Flusskontrolle)
Fenstergröße kann durch algorithmische Anpassung an die Datenrate angepasst werden (Staukontrolle)
Sliding Window Verfahren
gleiches Prinzip, wie der Drei-Wege-Handschlag
mehrere Segmente werden ohne Acknowledgement gesendet und erst das letzte wird bestätigt
gesicherte Übertragung von Daten mit Fluss- und Staukontrolle
Header beinhaltet mehr Informationen
TCP - Flusskontrolle
Ziel: Überlastung des Empfängers vermeiden
Empfänger bestimmt maximale das Datenfenster
TCP - Staukontrolle
Ziel: Überlastung des Netzes vermeiden
Netzwerkengpässe müssen erkannt werden und das Datenfenster danach angepasst werden
Fenster wird erhöht, solange keine Probleme auftreten und bei Verlusten wieder verkleinert
5.4 NAT - Network Address Translation
Netzwerkadressübersetzung übernimmt meist der Router
Der Request des Hosts an einen anderen Server erfolgt über den Router. Dieser tauscht im Rahmen der Netzwerkadressübersetzung die Absenderadresse (private IP-Adresse z.B. 192.168.1.1) durch seine eigene (öffentliche IP-Adresse z.B. 131.159.20.1) aus
Dieser Prozess wird in der NAT-Tabelle im Router dokumentiert
Zusätzlich zur IP-Adresse kann auch der Port in der Tabelle gespeichert werden
Die Antwort des angefragten Servers wird nun vom Router wieder zurück übersetzt und an den anfragenden Host zurück gesendet.
Aufbau einer Verbindung, die während des Datentransfers erhalten bleibt
unterteilt in 3 Phasen:
Verbindungsaufbau
Datentransfer
Verbindungsabbau
Connectionless Mode
nur einfache Dienste werden für den Datentransfer bereitgestellt
ℹ️ Verbindungen auf der Sitzungsschicht differenziert sich von Verbindungen auf der Transportschicht. Eine Session kann z.B. mehrere TCP- oder UDP-Verbindungen beinhalten.
7. Datendarstellungsschicht
ermöglicht den Kommunikationspartnern eine einheitliche Interpretation der Daten
Datendarstellung (Syntax)
Kodierung der Darstellungstypen im System entspricht der lokalen Syntax
Bereitstellung von Datenstrukturen
Datentransformation (Umkodierung)
Überführung von einer Repräsentation in eine andere
Kompression von Nachrichten
Entfernung von Redundanz in Nachrichten um diese meist zu verkürzen
verlustfreie Kompression
verlustbehaftete Kompression
Originaldatei nicht mehr aus der kompressierten Datei rekonstruierbar
vor allem bei Analogen Daten
8. Anwendungsschicht
Wichtige Dienste:
DNS - Domain Name Service
Datentransfer (HTTP, FTP)
Nachrichtentransfer (SMTP, POP, IMAP)
Entfernte Anmeldung (Telnet, SSH)
Netzmanagement (SNMP)
8.1 WWW - World Wide Web
Rahmenwerk für Dokumentenzugriff im Internet
basiert auf der Client-Server Architektur
Webseiten werden dem Client über den Browser angezeigt
Ablauf einer Abfrage im WWW:
Browser verarbeitet die eingegebene URL (Uniform Resource Locator)
Mit Hilfe des DNS (Domain Name System) wird die IP-Adresse der URL ermittelt
DNS-Name ist aufgeteilt in einen Hostanteil und einem Suffix
Ist dem Router die URL unbekannt, schickt er einen DNS-Request an den root-Server (z.B. com.). Dieser löst die URL auf und leitet die IP-Adresse an den Router zurück.
Es wird eine TCP-Verbindung über Port 80 (HTTP) zur IP-Adresse aufgebaut
Die Datei des Pfads wird vom Server angefordert
8.2 HTTP
Standardprotokoll für Client Anfragen und Server Antworten
Standardmäßig auf Port 80
HTTP Request besitzt folgende Aktionen:
GET - Abfrage einer bestimmten Ressource
HEAD - Abfrage des Headers einer bestimmten Ressource
PUT - Anfordern des Schreibens einer Ressource
POST - Anhängen neuer Daten an die bekannte Ressource
DELETE - Anforderung der Löschung einer bestimmten Ressource
HTTP Response liefert folgenden Status:
1xx - Information
2xx - Erfolg (Bsp. 200 - OK)
3xx - Umleitung
4xx - Client-Fehler (Bsp. 400 - Bad Request)
5xx - Server-Fehler (Bsp. 502 - Bad Gateway)
Proxy
ist zwischen dem Client und dem Server positioniert
optimiert das Laden von Ressourcen durch caching
prüft, ob die Anfrage an den Server überhaupt gesendet werden muss
8.3 e-Mail
zwei bedeutende Teilsysteme:
User-Agent (e-Mails lesen oder verwalten)
Message-Transfer-Agents (Übermittlung von Nachrichten)
wichtige Protokolle für e-Mail
SMTP - Simple Mail Transfer Protocol für den Versand von Mails (Standardport: 25)
POP - Post Office Protocol oder IMAP - Internet Message Access Protocol zum Abruf der Mail
9. Zusammenfassung der Schichten
Physical Layer
stellt mechanische, elektrische und funktionale Hilfsmittel zur physischen (De-)Aktivierung und Bitübertragung physikalisch messbarer Signale zur Verfügung
elektromagnetische Wellen als Trägermedium
Hardware: Repeater, Hubs, Leitung, Stecket etc.
Data Link Layer
Abstraktion eines physischen Kanals auf eine logische Direkverbindung
Erkennung und Korrektur von Übertragungsfehlern
Rahmenbildung
Regelung des Medienzugriffs
Hardware: Bridge, Switch
Network Layer
Verbindung der Direktverbindungsnetze zu Systemen
Kommunikation über Direktverbindungen und Subnetze
Bereitstellung einer eindeutigen, logischen Adresse des Hosts
Routing: Bestimmung optimaler Pfade zwischen Hosts
Hardware: Router, Layer-3-Switch
Transport Layer
Ende-zu-Ende Kommunikation zwischen Prozessen auf unterschiedlichen Hosts
Flusskontrolle zur Verhinderung der Überlastung des Empfängers
Staukontrolle zur Verhinderung der Überlastung des Netzes
Bereitstellung verbindungsloser und -orientierter Transportmechanismen
Port als Schicht-4-Adresse zur Adressierung
Protokolle: TCP, UDP
Session Layer
Prozesskommunikation zwischen zwei Systemen
gemeinsamer Kommunikationszustand mit u.a. mehreren Verbindungen auf der Transportschicht
stellt Synchronisationspunkte für die Kommunikation zur Verfügung, damit die Sitzung nicht zusammenbricht (Check Points zur Wiederherstellung)
Presentation Layer
liefert eine systemunabhängige Darstellung der übertragenen Daten zu, syntaktisch korrekten Datenaustausch
Ver- und Entschlüsselung von Kommunikationsdaten
Umkodierung der Kommunikationsdaten
Datenkompression
Application Layer
beinhaltet alle Protokolle, die direkt mit Anwendungen agieren
stellt eine Verbindung zu den unteren Schichten her