Network Coding Stefan Dziwok (xell@upb.de) Institut für Informatik FG Rechnernetze Universität Paderborn
Gliederung Einführung Maximaler Durchsatz Network Coding Fazit und weitere Forschung
Einführung Einführung Max-Durchsatz Network Coding Fazit
Ziele des Kapitels Umgebung des Themas festlegen Definitionen kennen lernen und verstehen Beschreibung des Problems Lösungsansätze besprechen Einführung Max-Durchsatz Network Coding Fazit
Die Umgebung Netz von Computern Verbunden über Leitungen Funktion: Daten senden von grünem PC zu den gelben PCs Einführung Max-Durchsatz Network Coding Fazit
Abstrahierung der Umgebung Netz von Knoten Verbunden über Kanten Funktion: Daten senden von Quelle S nach mehreren Senken T Der Butterfly Einführung Max-Durchsatz Network Coding Fazit
Multicasting Bit_1 Gleichzeitiges Senden eines Bits von der Quelle S zu n Senken T Redundanz Hier: Spezialfall n = alle Senken Bit_1 Bit_1 Einführung Max-Durchsatz Network Coding Fazit
Kapazität K Maximale Anzahl der versendbaren Bits je Kante je Zeiteinheit (z.B.: Bit/s) Hier: Spezialfall Alle Kanten haben K = 1 Bit / Zeiteinheit Einführung Max-Durchsatz Network Coding Fazit
Durchsatz D Anzahl der gesendeten Bits je Zeiteinheit (z.B.: Bits/s) D bestimmt wieviele unterschiedliche Bits von S gesendet werden können, die auch alle bei jedem T ankommen Bit_1 Bit_1 Bit_2 Bit_2 Einführung Max-Durchsatz Network Coding Fazit
Informationsfluss (Flow) Teilmenge aller Kanten: von Quelle zur Senke azyklisch Annahme: K=1 Für S und T1, T2: # eingehende Kanten von T = # ausgehende Kanten von S Für die anderen Knoten: # eingehende Kanten = # ausgehende Kanten Einführung Max-Durchsatz Network Coding Fazit
Informationsfluss F (Flow) Die Anzahl gleichzeitig versendbarer Bits B ist abhängig von der genutzten Kantenkapazitäten F=B Max-Flow: Maximiere die Anzahl der genutzten Kantenkapazitäten! Einführung Max-Durchsatz Network Coding Fazit
D Senderaten Pro Kante: Pro Netz: Annahme: Kapazität K Durchsatz D (Informationsfluss F) Annahme: Keine Verzögerungen D K1 K2 K3 K4 K5 K6 K7 K8 K9 Einführung Max-Durchsatz Network Coding Fazit
D Problembeschreibung Problem: Ziel: Senden kostet Zeit, weil Netz durch K beschränkt Ziel: Möglichst viele Dateneinheiten (Bits) pro Zeiteinheit empfangen ( D maximieren) K1 K2 K3 K4 K5 K6 K7 K8 K9 Einführung Max-Durchsatz Network Coding Fazit
Lösungsansätze Trivial: Idee von Network Coding (NC): Fragen: Mehr Kanten Schnellere Kanten (Kapazitäten erhöhen) Idee von Network Coding (NC): Kombinierung und Trennung von redundanten Bits in den Knoten Codierung der zu kombinierenden Bits abhängig von Netzstruktur Fragen: Was ist der maximale Durchsatz ohne NC? Wie werden Bits kombiniert und getrennt und welche Rolle spielt dabei die Redundanz? Gibt es ein Standardvorgehen? Einführung Max-Durchsatz Network Coding Fazit
Den maximalen Durchsatz bestimmen Einführung Max-Durchsatz Network Coding Fazit
Beispielnetzwerk des Kapitels Notation für Kantenbeschriftung: Zahl K K=Kapazität Zahlen F|K F=Kapazitätsnutzung des Flow K=Kapazität Einführung Max-Durchsatz Network Coding Fazit
Eigenschaften unserer Knoten a) mehrere ausgehende Kanten In jede Kante kann ein anderes Bit geschickt werden b) mehrere eingehende Kanten von jeder Kante kann ein anderes Bit hereinkommen Einführung Max-Durchsatz Network Coding Fazit
Max-Flow des Netzwerkes Maximaler Durchsatz Max-Flow F = 1 Max-Flow F = 1 Max-Flow des Netzwerkes Max. D = 1 Einführung Max-Durchsatz Network Coding Fazit
Bit-Darstellung beide Max-Flows: F = 1 Multicasting von 1 Bit an jede Senke möglich (D=1) Einführung Max-Durchsatz Network Coding Fazit
Informationserhalt (1) Für alle Knoten außer S,T gilt für genutzte Kanten: ankommender Kanten-Kapazitäten = ausgehender Kanten-Kapazitäten Einführung Max-Durchsatz Network Coding Fazit
Informationserhalt (2) Für S,T gilt für genutzten Kanten: ausgehender Kanten-Kapazitäten von S = ankommender Kante-Kapazitäten von T Einführung Max-Durchsatz Network Coding Fazit
Überlegungen Vorhandenes Netz um rote Elemente erweitert Intuition: zusätzliche Kanten Max-Flows steigen Durchsatz steigt Jedoch keine Veränderung erreichbar aufgrund des Engpasses Intuition stimmt dennoch! … aber nur durch neue Fähigkeiten der Knoten. Einführung Max-Durchsatz Network Coding Fazit
Zusammenfassung Flow: Max-Flow: Max. Durchsatz: azyklische Verbindung über Kanten von einer Quelle zu einer Senke Max-Flow: Flow mit der maximalen Kantenzahl Anzahl Max-Flows = Anzahl Senken Max. Durchsatz: Der kleinste Max-Flow im Netzwerk bestimmt den max. Durchsatz Einführung Max-Durchsatz Network Coding Fazit
Network Coding Einführung Max-Durchsatz Network Coding Fazit
Ziele des Kapitels Konflikte und Probleme am Beispiel des Butterfly erkennen Network Coding als Lösung kennen lernen Informationsfluss und Durchsatz betrachten Präsentation eines Algorithmus zur Nutzung von NC Einführung Max-Durchsatz Network Coding Fazit
Hausaufgabe Wie groß ist Durchsatz ohne NC? Wie könnte NC funktionieren, damit der Durchsatz erhöht wird? Einführung Max-Durchsatz Network Coding Fazit
Butterfly ohne NC (1) Betrachtung von nur einem Durchlauf: beide Flows sind Max-Flows mit F=1 D=1 Einführung Max-Durchsatz Network Coding Fazit
Wie können wir den Durchsatz D weiter steigern? Butterfly ohne NC (2) 2 Durchläufe: max. D=1.5 durch abwechselnde Nutzung des Engpasses Wie können wir den Durchsatz D weiter steigern? Einführung Max-Durchsatz Network Coding Fazit
Network Coding Ansatz: Funktionalität von Knoten erhöhen Bisher: Nur Weiterleiten und Duplizieren von Bits möglich Neu: Bits mathematisch durch Operationen wie z.B. „xor“ kombinieren als zusätzliche Möglichkeit Codierung im Netzwerk Aufteilung der Knotenmenge: Teilmenge mit Standardfunktionen Teilmenge mit Std.funktionen und Codierfähigkeiten Einführung Max-Durchsatz Network Coding Fazit
Durchsatz D steigt um ein Drittel ! Butterfly mit NC C,T1 und T2 haben die Fähigkeit zum Codieren beide Flows sind Max-Flows mit F=2 D=2 Durchsatz D steigt um ein Drittel ! Einführung Max-Durchsatz Network Coding Fazit
Zwischenstand Beispielnetzwerk kennen gelernt, dessen Kantenkapazitäten nicht maximal genutzt werden können mit normalen Mitteln Problem: Engpässe NC geschieht durch Verknüpfung von Bits mit einfachen math. Operatoren Dadurch: Steigerung von Informationsfluss und Durchsatz Einführung Max-Durchsatz Network Coding Fazit
Vorbesprechung zum Algorithmus (1) Zweck: Finde geeignete Codiervorschriften für jeden Kante im Netzwerk Bitdarstellung Vektordarstellung d.h. welche Bits durch eine Kante verschickt werden wird in einem Vektor festgehalten Jede Dimension des Vektors steht für ein unterschiedliches Bit Jede Dimension des Vektors ist modulo 2 nur 0 oder 1 mehrere Bits schicken Codierung nötig Bsp.: (1,1,0) Bit 1 und Bit 2 worden durch ein xor verbunden, Bit 3 nicht Einführung Max-Durchsatz Network Coding Fazit
Vorbesprechung zum Algorithmus (2) Unterschiedliche Vektoren für einzelne Bits nötig Basisvektoren: Menge von Vektoren aus deren Linearkombination (LK) alle anderen darstellbar sind minimale Anzahl gesucht spezifizieren kanonische Einheitsbasis: Im endlich dimensionalen Vektorraum der natürlichen Zahlen Norm bzw. „Länge“ dieser ist 1 Bit bi hat Einheitsbasis mit Wert 1 an Stelle i z.B.: im 3-dimensionalen Raum (0,0,1) (0,1,0) und (1,0,0) Endlicher d-dimensionalen Raum (d = angenommener Durchsatz) Einführung Max-Durchsatz Network Coding Fazit
Notationen zum Algorithmus X: der Knoten X XY: die Kante von X nach Y V(XY): der Vektor der Kante XY VR(X): der Vektorraum des Knoten X Einführung Max-Durchsatz Network Coding Fazit
Der Algorithmus (1) XY X XjY V(XY) = Nullvektor Xj ist aktueller Knoten XjY ist aktuelle ausgehende Kante Wähle einen Vektor V aus VR(Xj):Fallunterscheidung (wird noch detailliert) X XjY V(XjY) = V; VR(Xj+1) := Raum aller Vektoren deren ausgehende Kanten in Xj+1 münden Einführung Max-Durchsatz Network Coding Fazit
Der Algorithmus (2) Fall 1: Xj ist Quelle möglichst alle kanonischen Einheitsbasen verteilen und ggf. LK aus ihnen Fall 2: Xj ist Senke Senke muss alle Einheitsbasen bekommen bzw. sie herleiten können aus codierten Vektoren Testen mit Vektoren aus VR(Xj) Einführung Max-Durchsatz Network Coding Fazit
Der Algorithmus (3) Fall 3: nur eine eingehende Kante WXj nach Xj simples weiterleiten Fall 4: mehrere eingehende Kanten nach Xj und eine oder mehrere ausgehende Kanten neue LK bilden alle vorhandene Vektoren verknüpfen, z.B.: (1,1,1) Telmengen der vorhandenen Vektoren verknüpfen, z.B.: (1,1,0) Simples weiterleiten der ankommenden Vektoren Einführung Max-Durchsatz Network Coding Fazit
Fazit Einführung Max-Durchsatz Network Coding Fazit
Fortführende komplexere Themen Mehrere Quellen Jede Quelle schickt Informationen, die unabhängig von den anderen Informationen ist Unterschiede im Multicasting Alle Quellen multicasten an alle Senken (Broadcasting) Quellen multicasten nur an Teilmengen von Senken Zyklische Netzwerke Fehlerhafte Datenübertragung & Verzögerungen z.B.: Funkübertragung Einführung Max-Durchsatz Network Coding Fazit
Fazit Problem: Ziel: Lösung: Senden von Informationen kostet Zeit. Durchsatz erhöhen Lösung: Ausnutzen der Redundanz in einem Multicast-Netz durch Network Coding Einführung Max-Durchsatz Network Coding Fazit
Interesse geweckt? Modul ESS: (Eingebettete Systeme und Systemsoftware) Vorlesung: Rechnernetze bei Prof. Dr. Karl http://wwwcs.upb.de/cs/ag-karl/
Vielen Dank für eure Aufmerksamkeit. Gibt es Fragen ?
Der Algorithmus am Beispiel (1)
Der Algorithmus am Beispiel (2)
Der Algorithmus Für alle Kanäle XY V(XY) = Nullvektor; // Initialisierung Für j = 0 <= n , n++ //n: Knotenanzahl { Anordnung aller ausgehenden Kanäle XjY von Xj in beliebiger Folge; Nehme nacheinander einen Kanal XjY von Xj { Wähle einen Vektor V im Raum VR(Xj): Fallunterscheidung (wird noch detailliert) V(XjY) = v; } VM(Xj+1) := Menge aller Vektoren deren Kanäle in Xj+1 münden