Skip to content

Commit

Permalink
IN0010_GRNVS: Sicherungsschicht
Browse files Browse the repository at this point in the history
  • Loading branch information
hmelder committed Jul 22, 2024
1 parent 6f23ef4 commit b733471
Show file tree
Hide file tree
Showing 4 changed files with 218 additions and 0 deletions.
Binary file added IN0010_GRNVS/Resources/4b5b_rahmengrenzen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added IN0010_GRNVS/Resources/hub_diagramm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added IN0010_GRNVS/Resources/mac_diagramm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
218 changes: 218 additions & 0 deletions IN0010_GRNVS/sicherungsschicht.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -460,3 +460,221 @@ cards:
back: |-
- CSMA/CA mit RTS/CTS
- Token Passing
- type: markdown
front: Wie kann der Empfänger Rahmengrenzen erkennen?
back: |
- Längenangabe der Nutzdaten
- Steuerzeichen (Start / Ende)
- Begrenzungsfelder und "Bit-Stopfen"
- Coderegelverletzung
- type: markdown
front: Wie kann der **4B5B-Code** genutzt werden, um Rahmengrenzen zu kodieren?
back: |
- Einem Rahmen werden die Startsymbole J/K vorangestellt
- Nach einem Rahmen werden die Endsymbole T/R eingefügt
[[image: 4b5b_rahmengrenzen.png]]
- type: markdown
front: |
Der folgende Rahmen soll `1011 0101 0110` mit Steuerzeichen versehen werden.
Wir verwenden **4B5B-Code**, wobei:
- Einem Rahmen werden die Startsymbole J/K vorangestellt
- Nach einem Rahmen werden die Endsymbole T/R eingefügt
Verwende die folgende Code-Tabelle:
[[image: 4b5b_rahmengrenzen.png]]
back: |
`11000 (J) 10001 (K) 10111 01011 01110 01101 (T) 00111 (R)`
- type: markdown
front: Was ist, wenn Steuerzeichen zufällig in den Nutzdaten vorkommen?
back: |
Kann nur passieren, wenn Steuerzeichen und Nutzdaten sich Datenworte teilen.
Wenn das der Fall ist, kann der Payload mittels **Character Stuffing**
abgeändert werden, um eine Kollision zu vermeiden.
- type: markdown
front: |
Führe "Bit-Stopfen" aus.
- Start- / Endmarkierung sei `01111110`.
- Um das Auftreten der Markierung in Nutzdaten zu verhindern, füge in
Nutzdaten nach fünf aufeinanderfolgenden 1-en eine 0 ein
- Payload: `11001011_11110111_111`
back: |
`01111110 11001011_11101011_11101 01111110`
- type: markdown
front: Was ist die Idee hinter **Coderegelverletzung**?
back: |
- Lasse bestimmte Signalwechsel aus.
- Auf diese Art wird ein ungültiges (im Code nicht existierendes) Symbol erzeugt.
- Dieses kann verwendet werden, um Start und Ende von Rahmen zu markieren.
# Adressierung und Fehlererkennung 2-57
- type: markdown
front: Findet in Direktverbindungsnetzen eine Vermittlung (**Routing**) statt?
back: |
Nein. Alle angeschlossenen Knoten sind direkt erreichbar.
- type: markdown
front: Was sind Anforderungen an Adressen auf Schicht 2?
back: |
**Eindeutige Identifizierung** der Knoten innerhalb des Direktverbindungsnetzes.
- type: markdown
front: Was macht die **Broadcast-Adresse** auf Schicht 2?
back: |
Spricht alle Knoten im Direktverbindungsnetz an.
- type: markdown
front: Wozu wird eine **Multicast-Adresse** auf Schicht 2 verwendet?
back: |
Ansprechen von bestimmten Gruppen (z.B. Router).
- type: markdown
front: Wie bezeichnet man Adressen auf Schicht 2?
back: Als **MAC-Adressen** (**M**dia **A**ccess **C**ontrol)
- type: markdown
front: Was ist die **OUI** in MAC-Adressen?
back: |
**O**rganizationally **U**nique **I**dentifier ermöglichen es den Hersteller
einer Netzwerkkarte zu identifizeren.
- type: markdown
front: Wo befindet sich die **OUI** in der MAC-Adresse?
back: |
Ersten drei Bytes.
z.B: `7c:6d:62:00:00:01` -> OUI: `7c:6d:62 = Apple` Device ID: `00:00:01`
- type: markdown
front: |
Wie kann man herausfinden, ob es sich bei einer MAC-Adresse um eine
**Unicast-** oder **Multicast-Adresse** handelt?
back: |
Erstes Bit des ersten Oktetts (Bytes):
[[image: mac_diagramm.png]]
- type: markdown
front: |
Wie kann man herausfinden, ob es sich bei einer MAC-Adresse um eine
**lokal-administrierte** oder **globale** Adresse handelt?
back: |
Zweites Bit des ersten Oktetts (Bytes):
[[image: mac_diagramm.png]]
- type: markdown
front: Nenne die MAC Broadcast Adresse.
back: |
`ff:ff:ff:ff:ff:ff` ("all ones")
- type: markdown
front: Was ist das Ziel von CRC?
back: |
- Eine grosse Anzahl von Fehlern (Einbit-, Mehrbit-, Burstfehler) sollen erkannt werden.
- Die zugefügte Redundanz soll gering sein.
- Fehler sollen lediglich erkannt aber nicht korrigiert werden können.
- type: markdown
front: Welche Art von Code ist CRC?
back: Ein **fehlererkennender** Code.
- type: markdown
front: Wie lässt sich ein Datenwort der Länge *n* bit als Polynom darstellen?
back: |
[$$]a(x) = \sum_{i = 0}^{n - 1}a_ix^i \\ \text{mit } a_i \in \mathbb{F}_2 \\ \text{mit } \mathbb{F}_2 = \\{ 0, 1 \\}[/$$]
- type: markdown
front: Wie haben wir den **endlichen Körper** [$]F_q[x][/$] definiert?
back: |
[$$]F_q[x] = \left \\{ a \\ | \\ a(x) = \sum_{i = 0}^{n - 1} a_ix^i, \ a_i \in \mathbb{F}_2 \right \\}[/$$]
- type: markdown
front: Welche Elemente befinden sich in [$]F_4[x][/$]?
back: |
Zunächt gilt: [$]\log2(4) = 2[/$].
Somit sind alle Datenworte der Länge n bit enthalten (`00 -> 0`, `01 -> 1`, `10 -> x`, `11 -> x + 1`)
[$$]F_4[x] = \\{ 0, 1, x, x + 1\\}[/$$]
- type: markdown
front: Sei n die Länge der CRC Prüfsumme [$]n = \deg(r(x))[/$]. Welche Fehler werden dann erkannt?
back: |
- Alle 1-bit Fehler
- Isolierte 2-bit Fehler
- Einige Burst-Fehler, die länger sind als n
# FIXME: Polynomdivision and Reducibilty CRC Missing
- type: markdown
front: Welche Fehler erkennt CRC **nicht** zuverlässig, oder gar nicht?
back: |
- Fehler die **länger** sind **als n**
- Fehler, die aus **mehreren Bursts** bestehen
- Alle Fehler, die ein **Vielfaches des Reduktionspolynoms** sind
- type: markdown
front: |
Bei **Bluetooth** wird CRC als fehler*korrigierender* Blockcode eingesetzt.
Dabei werden Datenblöcke der Länge 10 bit mit einer 5 bit langen Checksumme versehen.
Welche **Coderate** hat also Bluetooth?
back: |
[$$]\frac{2}{3}[/$$]
- type: markdown
front: Wie wird die Coderate berechnet?
back: |
[$$]\frac{k}{n}[/$$]
Wobei [$]k[/$] die Länge der Nutzdaten (Bits) und [$]n[/$] die Länge des
Error Codes + die Länge der Nutzdaten (Bits).
# FIXME: Missing FastEthernet and Wifi Examples
# Hubs, Bridges und Switches 2-71
- type: markdown
front: Wie funktioniert ein Hub?
back: |
- Der Hub verbindet die einzelnen Links zu einem **gemeinsamen Bus**
- Der Rahmen erreicht **alle** Knoten
- Es darf folglich **zu jedem Zeitpunkt nur ein Knoten senden**, andernfalls treten Kollisionen auf
[[image: hub_diagramm.png]]
- type: markdown
front: Warum arbeitet Schicht 2 bis auf wenige Ausnahmen **verbindungslos**?
back: |
Weil **keine logische Verbindung** zwischen den Kommunikationspartnern aufgebaut wird.
- type: markdown
front: Was ist eine **Kollisions-Domäne**?
back: |
Teil eines Direktverbindungsnetzes, innerhalb dem eine Kollision bei
gleichzeitiger Übertragung mehrerer Knoten auftreten kann.
- type: markdown
front: Was ist ein **Abschnitt** (engl. Segment) auf Schicht 2?
back: |
Eine Verbindung zu ein oder mehreren Knoten, oder ein Link zwischen Hubs.
- type: markdown
front: Kann man Hubs kaskadieren?
back: |
Ja, aber mit Einschränkung bei Ethernet (802.3a/i).
## 5-4-3 Regel:
- Nicht mehr als 5 Abschnitte,
- verbunden durch 4 Repeater (Aktive Hubs die zusätzlich das Signal verstärken),
- wobei nur in 3 Abschnitten aktive Endgeräte enthalten sein dürfen.
- type: markdown
front: Wie funktioniert ein Switch?
back: |
## Learning-Phase
Zunächst arbeitet der Switch wie ein Hub, **vermerkt** aber
**(physischen) Port und MAC Adresse** in der **Switching-Table** bei Empfang eines neuen Rahmens.
Weitere Rahmen werden direkt an den Ziel-Port weitergeleitet. Sonst an alle Ports.
**Einträge** werden **nach Zeitintervall invalidiert**.
- type: markdown
front: Was ist eine **Bridge**?
back: |
- type: markdown
front: Was ist der Hauptunterschied zwischen **Hub** und **Switch** (oder **Bridge**)
back: |
Eine Switch **unterbricht Kollisionsdomänen**.
- type: markdown
front: Wissen Hosts i.A., dass sie mit Switches verbunden sind?
back: |
Nein. Switches sind für Hosts **transparent**.
- type: markdown
front: Richtig oder Falsch? Switches ändern Sender- und Empfänger-Adressen.
back: |
Falsch.
- type: markdown
front: Haben Switches für den grundlegenden Betrieb eigene MAC Adressen?
back: |
Nein.
- type: markdown
front: Welche Auswirkungen haben *Schleifen* auf Schicht 2?
back: |
Mehrere Kopien eines Rahmens werden erzeugt und zirkulieren anschließend im Netzwerk.
- type: markdown
front: Wie werden Schleifen vermieden??
back: |
Switches kommunizieren miteinander, um redundante Pfade zu deaktivieren.
# FIXME: WLAN Access Points

0 comments on commit b733471

Please sign in to comment.