Netzwerkcodierung (Network Coding)
Als Netzwerkcodierung oder Network Coding wird eine Methode bezeichnet, bei der der Fluss von digitalen Daten in einem Netzwerk optimiert wird. Dafür wird ein sogenannter digitaler Nachweis für die Nachrichten übertragen. Der digitale Nachweis selbst ist aus zwei oder mehr Nachrichten zusammengesetzt.
Das Konzept von Network Coding wurde erstmals von R. W. Yeung und Z. Zhang im Jahre 1999 als eine Alternative für Routing vorgestellt. In einem herkömmlichen paketvermittelten Netzwerk fließen die Daten definierten, einzelnen Stücken von der Quelle zum Ziel. Sie können das mit Blutkörperchen in einem Blutstrom vergleichen.
Beim Sender wird die abgehende Nachricht in Pakete unterteilt. Jedes davon enthält einige Daten der gesamten Nachricht. Die Pakete laufen nicht unbedingt alle über dieselbe Strecke, kommen aber irgendwann alle beim Ziel an. Bei dieser Methode gibt es ein generelles Problem. Sollte der Netzwerk-Traffic sehr hoch sein, dann kommt es zu Datenstaus oder Flaschenhälsen. Das Resultat sind lange Verzögerungen. An bestimmten Knoten stauen sich Pakete und werden möglicherweise gar nicht verarbeitet. Andere Knoten und Routen sind vielleicht zu gering ausgelastet.
Bei der Netzwerkcodierung werden Router und Switches durch Geräte ersetzt, die sich Coders nennen. Anstatt die Pakete an ihr Ziel wie Blutzellen durch ein Arteriensystem zu senden, übertragen die Coders simultan Metadaten der Nachricht über mehrere Pfade in Form von digitalen Nachweisen. Kommen Metadaten von zwei oder mehr Quellen an, werden sie zu einem einzelnen Paket vereint. Diese Methode der Aufteilung kann die effektive Kapazität eines Netzwerks erhöhen, weil die Anzahl der Flaschenhälse und somit deren Auswirkungen minimiert werden. Diese Verbesserung macht sich dann am deutlichsten bemerkbar, wenn der Netzwerk-Traffic beim herkömmlichen Routing an seine oberen Grenzen stößt. Sobald ein Empfänger genug digitale Nachweise hat, kann er die entsprechende Nachricht oder das jeweilige Paket verarbeiten. Selbst wenn einige Pakete auf diversen Routen verloren gegangen sind oder zerstört wurden, kommt die ursprüngliche Nachricht an, sofern die digitalen Nachweise ausreichend sind.
Bei der Netzwerkcodierung sind die Daten nicht nur von der übertragenen Nachricht abhängig, sondern auch von den Inhalten anderer Nachrichten, die während der Übertragungszeit auf der gleichen Route unterwegs sind. Aus diesem Grund ist die Netzwerkcodierung besser gegen Hacking gewappnet als herkömmliche Datenübertragungen. Das gilt auch für Lauschattacken und andere Angriffsformen. Wie sehr sich die Verbesserungen der Netzwerkcodierung beim Durchsatz bemerkbar machen, hängt von der Topologie des Netzwerks, der Frequenz und den Flaschenhälsen ab. In keinem Fall verringert die Netzwerkkodierung den Durchsatz im Vergleich zur Routing-Methode. Netzwerkkodierung kann sich speziell bei Multicast-Netzwerken sehr positiv auswirken. Das gilt auch für drahtlose Sensornetzwerke, digitale Dateiverteilung und P2P (Peer-to-Peer) File Sharing.