zusammenfassung chapter 5

Werbung
Chapter 2: Data Link Layer – OSI Schicht 2
Ziel des Data Link Layers
- Auffinden und Korregieren von Fehlern
- Bereitstellen eines Broadcast channels
- Adressierung aufm Link Layer
- Verlässlichen Datenverkehr
Stichpunkte - unstrukturiert nach Buch
Es gibt link layer protocols (Ethernet, 802.11 WIFI, token ring, PPP) zum übertragen der frames.
Frames bezeichnen die Einheiten von Daten, die auf dem Link Layer ausgetauscht werden.
Ein Link layer protokoll kümmert sich um Fehlerfindung, retransmission, flow control, und random
access (463).
Framing:
Bevor das Paket übertragen wird, bekommt es einen Rahmen. Wieder kommt ein neuer Header
hinzu. Der Frame hängt davon ab, welches link-layer protocol verwendet wird
Link access
Ein medium access control (MAC) protocol beschreibt die Regeln für die Übertragung auf dem Link.
Wenn sich mehrere Nodes einen Link teilen, dann muss MAC ganze Arbeit leisten.
Reliable delivery
Hier wird garantiert, dass jedes Paket fehlerfrei übermittelt wird. Analog zu TCP warden auch hier
ACKs und retransmission eingesetzt, um dieses Ziel zu erreichen.
Flow control
Um einen Bufferoverflow zu vermeiden ist Flow control unbedingt notwendig. Die Frage ist nur,
welcher Layer Flow control anbietet/übernimmt.
Error detection
Im Frame Header kann das Error detection Bit auf 1 gesetzt werden. Dann werden nur Pakete
weitergeleitet, die fehlerfrei sind. Die auf Link Layer eingesetzten Mechanismen sind fest in der
Hardware kodiert und meistens leistungsfähiger als die auf anderen Schichten.
Verschiedene Methoden: Parity Checks, Checksums and CRC (cyclic redundancy checks)
Parity Checks:
Es gibt einen geraden und einen ungeraden Paritätscheck. Wenn der gerade angewendet wird, dann
wird das angehängte Bit so gesetzt, dass die Anzahl der vorkommenden 1 gerade/even ist.
Error correction
Wenn ein Fehler gefunden wurde, sollten es auch Mechanismen geben, diese wieder zu korregieren.
Half-duplex and full duplex
Bei Half-duplex kann nur ein Node ein Paket senden. Bei Full duplex können zwei gleichzeitig senden.
(Für einen Node gilt dann, dass er gleichzeitig Senden und Empfangen kann)
Implementierung des Link Layers
Gewöhnlich ist das ganze in einem Netzwerkadapter (network adapter) implementiert. Diesen
Adapter bezeichnet man auch als NIC (Network interface card). Ein Controller übernimmt die
implementierung der ganzen Services. D.h. die Funktinionalität des Link Layers ist in Hardware
implementiert.
Es gibt aber auch Software: Z.B. der Empfang von Paketen aus höhreren Layern wird über Software
gelöst.
 Kombination aus Soft – und Hardware.
Zusammenfassung der Folien
Die folgenden Begriffe sollten klar sein: Node, Link und Frame. In einem Frame wird ein datagram
transportiert.
Das Daten-Link-Layer hat zur Aufgabe, ein Datagram von einem Node zum nächsten über einen
Link zu transportieren.
Auf den verschiedenen Hops können verschiedene Protokolle verwendet werden, die wiederum
verschiedene Services anbieten.
Folgende Services werden unterschieden:
- Framing
o Verpackt ein Datagramm in einem Frame und fügt Header hinzu
o MAC Adresse wird verwendet, um das Ziel zu identifizieren
- Link access: MAC Protokoll regelt die Übertragung auf dem Link
- Verlässliche Übertragung zwischen zwei Knoten: Dazu braucht man ein stateful
Protokoll. Wird sehr wenig eingesetzt
- Flow Control: Um einen Bufferoverflow zu vermeiden
- Error detection: Fehler wird erkannt und eine Retransmission angefordert
- Error correction: Fehler wird nicht nur erkannt, sondern auch korregiert.
- Half-duplex, Flull duplex: Mit „half-duplex“ können zwar beide Seiten eines Links
übertragen, aber nicht zur selben Zeit.
Die Frage der Implementierung: Dabei stellt die Implementation eine Kombination aus Hard und
Software dar. NIC ist der Hardware Netzwerkadapter und die Weiterleitung in höhere
Protokollschichten wird mittels Software realisiert.
Es gibt zwei verschiedene Links: Point – to – Point Links und Broadcast Links (broadcast deshalb, weil
jeder Host der mit dem Link verbunden ist, eine Kopie des Pakets erhält). Bei den gemeinsam
benutzten Broadcast Links muss auf Kollisionen geachtet werden. Dazu braucht man das Multiple
Access Control Protocol. Dieses Protokoll findet heraus, wie die Nodes sich den Link teilen 
herausfinden, wann ein Node übertragen kann. Dazu muss es aber selber Nachrichten über den
gleichen Link schicken.
Das „ideale MAC Protokoll sieht wie folgt aus:
- Wenn nur einer sendet, bekommt er die volle Übertragungsgeschwindigkeit R
- Wenn M nodes senden dann bekommt jeder durchschnittlich R/M
- Das Protokoll ist nicht an einen zentralen Router gebunden
- Das Protokoll ist einfach
Es werden 3 Gruppen von MAC Protokolls unterschieden: channel partitioning protocols, random
access protocols und taking-turns protocols.
Channel partitioning protocols
Time-division multiplexing (TDM) und frequency division multiplexing (FDM) sind zwei Techniken, die
zum aufteilen von broadcast Kanälen verwendet warden kann. Bei TDM bekommt jeder Node ein
Zeitintervall zugewiesen, indem er dann seine Pakete senden kann. Bei FDM eine Frequenz unter der
er ständig mit R/N Geschwindigkeit senden kann. Als dritter Vertreter dieser Gruppe kommt CDMA
(Code division multiple access) hinzu. Jeder Node bekommt hier einen anderen Code. Wenn die
Codes richtig ausgewählt wurden und wenn der Empfänger den Code kennt, dann können alle
senden und die Empfänger können ihre Pakete entschlüsseln.
Bei Random access protocols sind Kollisionen erlaubt. Wird sie durch einen Sender festgestellt, wählt
dieser eine zufällige Wartezeit aus, bis er erneut sein Paket überträgt. Alle an der Kollision machen
das gleiche aber mit einer anderen Wartezeit. Es wird gehofft, dass irgendwann alle ohne Kollision
übertragen haben. Vertreter dieser Gattung ist zum Beispiel ALOHA oder CSMA (Wenn andere
sprechen störe nicht, Stoppe, wenn andere zur gleichen Zeit anfangen  Collision detection)
Taking – turn protocols versuchen nun die beiden Eigenschaften
1) wenn nur einer sendet, kann der mit R senden (wird auch von random access protocols
erfüllt)
2) wenn M nodes senden dann alle mit R/M
Umzusetzen. Das klappt aber nur bedingt. Es wird eine RoundRobin Table (vgl Datenbanken)
verwendet und in diesem Kreis geben die beteiligten Nodes einen Token weiter, der zum Senden
berechtigt. Hat jemand Daten zum Senden, kann er dies bis zu einem vereinbarten Maximum tun,
dann gibt er die Berechtigung an den nächsten weiter. Nachteil: Auch wenn ein Node nicht senden
will, verliert man durch die Weitergabe des Tokens Zeit.
Weiter gehts mit Link Layer Adressing:
Warum braucht man eigentlich zwei verschiedene Adressen? Das ist wie im reellen Leben. Jeder hat
eine Sozialversicherungsnummer, die nie wechselt (=MAC Adress) und jeder hat eine Anschrift die
immer wechseln kann, je nach dem wo man sich befindet (=IP Adress)
Warum sind sie sogar unvermeidbar?
Jeder Adapter eines Nodes hat eine LAN address, physical address oder MAC Address… (ist alles das
gleiche)
Um die Übersetzung von Netzwerk-Layer Adressen (IP) und Link-Layer Adressen (MAC) kümmert sich
das ARP (Adress Resolution Protocol). Ein Node führt dazu eine ARP Table. Wenn ein Paket an eine
IP gesendet werden soll, und die dazugehörige MAC unbekannt ist, sendet der Node eine Broadcast
Message (FF:FF:FF:FF:FF:FF) ins Netzwerk. Der Node mit der dazugehörigen IP Adresse Antwortet
direkt mit seiner MAC. Die Antwort wird in der ARP Table für ca. 20 min gespeichert, dann wieder
vergessen (= soft state).
Ethernet
Ethernet ist das am weitesten verbreitete Protokoll. Früher wurde eine Bus Topologie verwendet,
heute Star, mit Switch.
Wichtig ist der Ethernet Frame. Hier vor allem das Preamble Feld. Das besteht aus 8 Bytes: 7 mal
10101010 und einmal 10101011. Preamble wird verwendet und die Taktfrequenz der Übertragung zu
synchronisieren.
Darüber hinaus werden noch der Type des transportierten Protokolls angegeben, sowie die Ziel und
Absender Adresse, CRC
Eigenschaften von Ethernet
- Connectionless: Kein Handshake Protocol
- Unreliable: No ACKs
- Verwendet CSMA (carrier sense multiple access = Random Access Protocol)
Link Layer Switches
Hubs: Eingehende Pakete warden dupliziert und an alle Ausgänge weitergeleitet.
Switch: (intelligente Hubs) Ein Switch ist tranparent (d.h. er wird von den Nodes nicht beachtet) und
leitet Pakete nur an ausgewählte Empfänger weiter.
Filtering überprüft, ob das Paket weitergeleitet werden soll, oder ob es einfach gelöscht werden soll.
Forwarding sucht das richtige Interface zum Weiterleiten. Um diese beiden Funktionen zu realisieren werden
switch tables verwendet. Diese dürfen aber nicht mit den Tabellen von Routern zum Forwarding verwechselt
werden. Wenn ein Paket mit einer Ziel-MAC Adresse ankommt dann können folgende Fälle auftreten
Die Ziel Adresse ist nicht in der Switch Tabelle enthalten  Boradcast Paket
Die Ziel Adresse ist enthalten. Das dazugehörige Interface wird fürs forwarding verwendet
Die Ziel Adresse ist enthalten, aber das spezifizierte Interface ist das gleiche über das das Paket
gekommen ist  Forget about the paket.
Wie kommt ein Switch zu seiner Tabelle?
Die Tabelle baut sich in einem self learning prozess selbst auf.
1. Zuerst ist die Tabelle leer.
2. Wenn ein Paket kommt wird die MAC der Quelle und das Interface über das das Paket kam
gespeichert (und die Zeit)
3. Wenn über längere Zeit nichts von der gespeicherten Adresse kommt, wird der Eintrag entfernt
Durch die Switch Buffer sind gleichzeitige Übertragungen möglich, da jeder Node seine eigene Kollisionszone
hat (Star Topologie)
Der Unterschied zu Routern ist, dass Router network layer Geräte sind und switches sind link layer Geräte!
Für große Netzwerke sind Router besser für kleine Switches.
Herunterladen