Kodowanie sieciowe - początek rewolucji?

Wiele wskazuje na to, że czołowi przedstawiciele przemysłu IT tacy, jak na przykład Microsoft, HP czy Intel, dostrzegli możliwości wynikające z zastosowania kodowania sieciowego (network coding). Ich zdaniem może ono znacząco wpłynąć na różne aspekty transmisji danych, istniejący routing, dystrybucję treści i sieci bezprzewodowe.

Temat nie jest nowy. W środowiskach naukowych pierwsze wzmianki o kodowaniu sieciowym pojawiły się około siedem lat temu. Z przedstawionych wówczas prac i badań wynikało, że zastosowanie specjalnego algorytmu umożliwia podwojenie przepływności transmisji. Zaprezentowana metoda poprawiła także niezawodność i odporność transmisji na ataki.

Kodowanie sieciowe, zdaniem zagorzałych zwolenników, może zapoczątkować prawdziwą rewolucję i zmienić sposób w jaki dziś transmitujemy informacje. Bardziej sceptyczni twierdzą, że najprawdopodobniej po cichu przeniknie ono do istniejących sieci i będzie stanowić jedynie uzupełnienie ich obecnej architektury i zasad routingu.

Wielkie nadzieje

Zasada działania kodowania sieciowego opiera się na podzieleniu wiadomości na mniejsze części. Umożliwiają one urządzeniu końcowemu odtworzenie nadanej informacji bez konieczności transmisji lub retransmisji całej wiadomości. Pojedyncza część może być nadawana i odbierana przez wiele węzłów pośrednich, które w końcu wyślą ją do stacji końcowej. Transmisja nie wymaga dodatkowej przepustowości. W dużej mierze przekaz może wykorzystywać już istniejącą infrastrukturę sieciową.

Kodowanie sieciowe - początek rewolucji?

Kodowanie sieciowe w pigułce

Kodowanie sieciowe może znaleźć zastosowanie w urządzeniach takich jak routery lub elementy sieci bezprzewodowych. Istnieje też możliwość, że powstaną dedykowane maszyny - kodery sieciowe. Intel widzi potencjalne zastosowanie nowej techniki w stacjach bazowych. Microsoft prowadzi badania mające na celu usprawnienie systemu dystrybucji treści. Inni wielcy gracze utrzymują swoje plany w tajemnicy. Przedstawiciel Cisco powiedział, że badania trwają, gdyż teoretycznie kodowanie sieciowe pozwala na rozróżnienie ruchu, nadawanie priorytetów oraz zwiększenie pojemności sieci. Obecnie nikt jednak nie oferuje dedykowanych urządzeń - koderów.

Dekodowanie

Kodowanie sieciowe wykorzystuje operację różnicy symetrycznej (XOR, exclusive or), by połączyć dwa pakiety informacji. Bit po bicie pakiety poddawane są wspomnianemu działaniu logicznemu, które daje wynik równy 1 jeśli dane wejściowe były różne. Rezultat wynosi zero, jeśli obydwa bity były tej samej wartości.

Te jedynki i zera tworzą kod, na podstawie którego stacja końcowa wyposażona w odpowiednią "inteligencję" może odtworzyć wiadomość otrzymaną od nadawcy. W ten sposób kodowanie sieciowe pozwala przesłać i odebrać wiele wiadomości jednocześnie, bez wzrostu ilości przesłanych pakietów.

Muriel Medard, naukowiec z uniwersytetu MIT, zajmująca się zagadnieniem kodowania sieciowego powiedziała, że wykorzystuje ono po prostu algebraiczną naturę przysyłanych danych. Rezultatem tego rozwiązania jest lepsze wykorzystanie sieci. Najlepiej będzie to widoczne w przypadku routerów, systemów dystrybucji treści, peer-to-peer czy złożonych sieci bezprzewodowych. Zdaniem Medard zalety kodowania sieciowego są ogromne.

Profesor przyznaje jednak, że implementacja mechanizmu w sieci zależy od tego, co operator chce osiągnąć. W odróżnieniu od MPLS, który dodaje do przesyłanych pakietów dodatkowe informacje, kodowanie sieciowe wykonuje operacje wprost na transmitowanym pakiecie. Obie metody pozwalają na efektywniejszą transmisję. Jednakże istniejące routery i przełączniki nie modyfikują transmitowanych danych. Ich rola ogranicza się do czytania pól odpowiedzialnych za określenie urządzenia źródłowego i docelowego. Następnie, zgodnie ze swoją funkcją, zestawiają drogę pomiędzy wejściem i wyjściem w obrębie danego węzła sieciowego.

Według Medard kodery sieciowe być może nie wyprą samych routerów, lecz będą funkcjonować jako dodatek do obecnych urządzeń sieciowych. Z biegiem czasu, kodowanie sieciowe z pewnością się upowszechni, gdyż jego zalety są niezaprzeczalne.

HP nie pozostaje w tyle

Hewlett-Packard sponsoruje wiele prac badawczych związanych z kodowaniem sieciowym. HP, podobnie jak Microsoft, upatruje w nim możliwość efektywniejszej komunikacji peer-to-peer. "To nowa obiecująca technika", twierdzi Mitchell Trott - naukowiec z laboratorium HP. "Niesie ze sobą ogromne możliwości, lecz nie wiadomo do końca, kto będzie mógł z nich skorzystać."

W opinii Trotta zastosowanie kodowania w infrastrukturze sieci jest na pewno trudniejszym zagadnieniem, niż jedynie użycie go do ulepszenia systemu dystrybucji treści. Dostawcy rozwiązań sieciowych zanim zaimplementują nową technikę, wymagają niezbitych dowodów, że "network coding" spowoduje realny wzrost wydajności. Najwięcej możliwych korzyści może przynieść zastosowanie kodowania sieciowego do transmisji typu "multicast".

Routery i przełączniki często pozostają niezmienione przez kilka ładnych lat. Według Trotta jest to kolejny czynnik poddający w wątpliwość szybkie wprowadzenie kodowania sieciowego do infrastruktury.

"Wprowadzenie nowej techiki zawsze wymaga czasu" - podkreśla Trott. "Dodatkowo należałoby stworzyć nowe mechanizmy kontroli i zarządzania, aby weryfikować poprawną pracę kodujących urządzeń. Kwestia wymiany informacji pomiędzy sąsiadującymi węzłami również pozostaje do rozwiązania."

Pracownik HP przyznaje, że jak do tej pory HP nie znalazło praktycznego zastosowania network coding w produktach komercyjnych. Dodaje jednak, że może to ulec zmianie w przyszłości.

Badania Intela

Prace Intela nad kodowaniem sieciowym rozpoczęły się w roku 2006. Skoncentrowane są na zastosowaniu tego rozwiązania w sieciach WiMAX.

Zdaniem specjalistów z zespołu badawczego Intela, przykładem zastosowania kodowania sieciowego może być transmisja z wieloma stacjami pośrednimi. W wyniku użycia kodowania zasięg stacji bazowej powinien ulec rozszerzeniu. Stacje przekaźnikowe pełnią role sieci szkieletowej dla stacji bazowych. Kodowanie sieciowe może usprawnić transmisję pomiędzy stacjami końcowymi dzięki zminimalizowaniu nadmiarowości pakietów. Zamiast czterech szczelin czasowych można zapewnić obustronną łączność end-to-end wykorzystując tylko trzy szczeliny. Jedna z nich właściwie przesyła dwa pakiety odpowiednio przetworzone przy pomocy XOR. Pracując z WiMAX nie można zbyt wiele zmodyfikować, gdyż wiele aspektów jest już zdefiniowanych w standardzie. Dlatego Intel ostrożnie wypowiada się na temat praktycznego zastosowania kodowania sieciowego. Firma sprawdza, czy nowa technika kodowania może zostać użyta na poziomie warstwy fizycznej, jak współgra ona z MIMO i innymi już wdrożonymi innowacjami.

Przedstawiciele Intela nie potwierdzają oficjalnie prac nad produktem związanym z kodowaniem sieciowym.

Microsoft i jego plan

Firma z Redmond testuje kodowanie sieciowe w przypadku systemu dystrybucji treści. Pierwsze prace Microsoft zaczął w 2004 roku. Microsoft posiada działający prototyp wykorzystujący kodowanie sieciowe. Może zdziwi to wielu, ale mowa o Microsoft Secure Content Distribution (MSCD), który ostatnio został użyty do dystrybucji Visual Studio 2008 Beta-2. Po raz pierwszy MS zdecydował się dostarczać oprogramowanie przy pomocy systemu dystrybucji treści peer-to-peer.

Rezultat próby MSCD okazał się niezwykle zadowalający. Informacja zwrotna od ludzi pobierających Visual Studio w większości była pozytywna. Minusów należy upatrywać przede wszystkim w tym, że MSCD jest blokowany przez firmowe zapory ogniowe, wiec połączenie z nim wymagało kilku dodatkowych zabiegów.

Pomimo obiecujących wyników Microsoft nie oferuje komercyjnego produktu wykorzystującego MSCD. Firma nadal prowadzi badania nad kodowaniem sieciowym i jego potencjalnym użyciem. Microsoft przewiduje, że "network coding" znajdzie także zastosowanie w przypadku dystrybucji wideo i współdzielenia zasobów sieciowych (udostępnianie folderów). Być może za kilka lat będzie to technika powszechnie stosowana.

Bezpieczeństwo, bezpieczeństwo

Kwestie związane z bezpieczeństwem pojawiają się zawsze, gdy mowa o czymś nowym. Zdaniem profesor Medard z MIT kodowanie sieciowe może zasadniczo wzmocnić bezpieczeństwo informacji, gdyż zakłada wymieszanie dwóch strumieni danych przy użyciu funkcji logicznej XOR. Jeśli mamy dwa bity, A i B, i zastosujemy różnicę symetryczną, wówczas na postawie samej wartości XOR nie jesteśmy w stanie jednoznacznie określić początkowej wartości poszczególnych bitów. Oczywiście, można zdefiniować jaka kombinacja par daje w efekcie otrzymany wynik, jednak jedynie w przypadku, gdy znana jest wartość bitu B można z całą pewnością powiedzieć, jaka była wartość bitu A.

Nadal jednak pozostaje wiele do zrobienia w celu jednoznacznego określenia wpływu kodowania sieciowego na kwestie bezpieczeństwa transmisji danych. Użytkownicy muszą wiedzieć, jak i kiedy wdrożyć kodowanie sieciowe. Muszą oni wziąć pod uwagę subtelne różnice pomiędzy kodowaniem sieciowym w sieciach stałych i bezprzewodowych. Należy także mieć na uwadze fakt, iż operator będzie musiał znaleźć sposób na ustalanie opłat za usługi telekomunikacyjne w sytuacji, gdy dzięki kodowaniu sieciowemu w trakcie przesyłania dane od jednego abonenta zostaną połączone z danymi innego.

***

Opracował: Marcin Suszkiewicz (na podstawie materiałów zamieszczonych w NetworkWorld, USA)

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200