\subsection{Topologien} \begin{itemize} \item Graph-Theorie als Grundlage:\begin{itemize} \item Graph $G = (V, E)$ mit Knotenmenge $V$ und Kantenmenge $E$ \item Grad eines Knoten: Anzahl seiner direkten Nachbarknoten \item Grad eines Netzes: höchster Grad eines seiner Knoten \item Distanz eines Knotenpaares: Länge des kürzesten Pfad zwischen beiden Knoten \item Durchmesser des Netzes: größte Distanz eines Knotenpaares im Netz \item Kantenkonnektivität: minimale Anzahl an zu entfernenden Kanten, um das Netz in zwei disjunkte Teilnetze aufzuteilen \item Bisektionsbreite: minimale Anzahl an zu entfernenden Kanten, um das Netz in zwei disjunkte, gleich große Teilnetze aufzuteilen \end{itemize} \item technische Eigenschaften eines Netzes:\begin{itemize} \item Latenzzeit $L$: Zeit bis erstes Bit einer Nachricht beim Empfänger ankommt \item Datenrate $B$: Maximale Datenmenge, die pro Zeiteinheit übertragen werden kann \item Verzögerung $V(G)$: Übertragungsdauer einer Nachricht der Größe $G$ \begin{equation*} V(G) = L + \frac{G - G_\text{min}}{B} \end{equation*} \item Durchsatz $D(G)$: Übertragungsrate bei Nachrichten der Größe $G$, charakterisiert \enquote{half-power point} als Paketgröße $G_\text{half}$, für die gilt: \begin{equation*} D(G_\text{half}) = \frac{B}{2} \end{equation*} \end{itemize} \item Einteilung von Verbindungsnetzwerken:\begin{itemize} \item statisch:\begin{itemize} \item feste Verbindungen zwischen Knoten $k_i$ \item \begriff{Perfect Shuffle}: zyklischer Left-Shift \item \begriff{Unshuffle}: zyklischer Right-Shift \item \begriff{Butterfly}: $k_i \leftrightarrow k_{i,\text{reversed}}$ \item \begriff{Bus}: Grad 1, Durchmesser 1, Kantenkonnektivität 1, Bisektionsbreite 1 \item \begriff{voll-vermaschtes} Netz: Grad $n-1$, Durchmesser 1, Kantenkonnektivität $n-1$, Bisektionsbreite $\leq \frac{n^2}{4}$ \item \begriff{Ring}: Grad 2, Durchmesser $\lfloor\frac{n}{2}\rfloor$, Kantenkonnektivität 2, Bisektionsbreite 2 \item $d$-dimensionales \begriff{Gitter}: Grad $2d$, Durchmesser $d \cdot \left(\sqrt[d]{n}-1\right)$, Kantenkonnektivität $d$, Bisektionsbreite $\left(\sqrt[d]{n}\right)^{d-1}$ \end{itemize} \item dynamisch (\begriff{Schaltnetzwerk}):\begin{itemize} \item zusätzlich Schalter und dedizierte Schaltstufen \item verschiedene Festlegung der Wegewahl: selbst-konfigurierend und nicht selbst-konfigurierend \item \begriff{Kreuzschienenverteiler} (einstufig): $n$ Eingänge, $n$ Ausgänge, $n^2$ Schalter notwendig, Grad 2, Durchmesser 2, Kantenkonnektivität 2, Bisektionsbreite $\frac{n}{2}$ \item $d$-dimensionaler \begriff{Hyperwürfel}:\begin{itemize} \item rekursive Konstruktion durch Spiegelung (Knoten als Binärzahlen nummeriert) \item Routing: Ursprung $\oplus$ Ziel $\rightarrow$ Umschaltung wenn 1 an entsprechender Position \item $n = 2^d$ Knoten, Grad $d$, Durchmesser $d$, Kantenkonnektivität $d$, Bisektionsbreite $\frac{n}{2}$ \end{itemize} \item \begriff{Omega}-Netzwerk (mehrstufig, selbstkonfigurierend):\begin{itemize} \item $\log_2$ Schichten an $2\times2$-Shuffles \item Routing: Schicht $i$ vergleicht Bit $i$ von Ziel- und Quelladresse, bei Übereinstimmung unverändert, sonst schalten \item Blockierung möglich \item Grad 2 (für Knoten), Grad 4 (für Schalter), Durchmesser $\log_2 n$, Kantenkonnektivität 2, Bisektionsbreite $\frac{n}{2}$ \end{itemize} \item \begriff{Baum}: Durchmesser $2 \log_2 n$, Bisektionsbreite 1 \item \begriff{Fat-Tree} ($n$ Knoten haben jeweils $k$ Eltern-Knoten):\begin{itemize} \item $\log_k n$ Schichten, Schalter mit Grad $2k$, pro Schicht $\frac{n}{k}$ Schalter \item Routing: direkter Weg über niedrigsten gemeinsamen Vorfahren, bei mehreren Alternativen zufällige Wahl \item Durchmesser $2 \log_2 n$, Bisektionsbreite $\frac{n}{2}$ \end{itemize} \item Benes-Netzwerk \item Banyan-Netzwerk \end{itemize} \end{itemize} \item \begriff{Leitungsvermittlung}:\begin{itemize} \item Senden der Adressdaten führt zum Aufbau eines festen Route \item Senden der Nutzdaten folgt anschließend \end{itemize} \item \begriff{Paketvermittlung}: \begin{itemize} \item Aufteilung der Nutzdaten in Pakete (mit jeweils einem Paketkopf für die Adressierung) \item Paketverlust und Änderung der Reihenfolge möglich \end{itemize} \item \begriff{Routing}: \begin{itemize} \item tabellenbasiert: statische Zuordnung von Zieladressen zu Ausgängen \item quellenbestimmt: Paket führt Weiterleitungsinformationen mit sich \end{itemize} \item \begriff{Switching}: \begin{itemize} \item \begriff{store/forward} puffert Pakete in Switch \item \begriff{cut/through} dekodiert Paketkopf und leitet Nutzdaten direkt weiter, Blockierungsgefahr bei belegtem Ausgang (bei virtual cut/through durch Pufferung gelöst) \end{itemize} \end{itemize}