From 2b239ade25ad5780fbf3ed93a470d69f9939d8b8 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Thu, 15 Mar 2018 09:38:55 +0100 Subject: [PATCH] Add Switching document. --- 04-Lehrer_Switch.md | 52 +++++++++++++++++++++++++ img/04-switch/.gitignore | 3 ++ img/04-switch/switch_ethernetframe.odg | Bin 0 -> 15403 bytes 3 files changed, 55 insertions(+) create mode 100644 04-Lehrer_Switch.md create mode 100644 img/04-switch/.gitignore create mode 100644 img/04-switch/switch_ethernetframe.odg diff --git a/04-Lehrer_Switch.md b/04-Lehrer_Switch.md new file mode 100644 index 0000000..d387f01 --- /dev/null +++ b/04-Lehrer_Switch.md @@ -0,0 +1,52 @@ +--- +title: Switching +author: Carl Kittelberger + +papersize: a4 +classoption: oneside +mainfont: Arial +sansfont: Arial + +header-includes: + - \usepackage{longtable} +--- + +# Aufbau einer Ethernetnachricht + +![](img/04-switch/switch_ethernetframe.png) + +# Switching-Typen + +## Cut-Through-Switch + +Schaltet sofort nach Erhalt der Ziel-MAC durch. + +### Vorteile + +- super schnell, geringe Verzögerungszeit ("Latenz") +- geringer Speicherbedarf (6 Bytes für Ziel-MAC) + +## Nachteile + +- defekte und abgebrochene Frames werden weitergeleitet + +## Store-and-Forward-Switch + +### Vorteile + +- schickt nur komplette und geprüfte Frames + +### Nachteile + +- großer Speicherbedarf (gesamter Frame muss gepuffert werden, ~1500 Bytes) +- große Latenzzeit + +## Fragment-Free-Switch + +Empfängt 64 Bytes und schaltet dann weiter. + +### Vorteile + +- ziemlich schnell, geringe Latenz +- geringer Speicherbedarf +- Großteil von defekten/abgebrochenen Frames wird **nicht** weitergeleitet diff --git a/img/04-switch/.gitignore b/img/04-switch/.gitignore new file mode 100644 index 0000000..1a1b06f --- /dev/null +++ b/img/04-switch/.gitignore @@ -0,0 +1,3 @@ +# Images generated by LibreOffice Draw +*.png +*.svg diff --git a/img/04-switch/switch_ethernetframe.odg b/img/04-switch/switch_ethernetframe.odg new file mode 100644 index 0000000000000000000000000000000000000000..1a0581ba80d1d8e169c5b176e9be633c2e8ab051 GIT binary patch literal 15403 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 y+&_hen2LPbF|A6mZP%iuL)c*rl`m{U% literal 0 HcmV?d00001