Kodowanie sieciowe to technika programowania wykorzystywana do maksymalizacji potencjalnej wydajności sieci komputerowej. W kodowaniu sieci węzły sieci odgrywają aktywną rolę, pracując nad łączeniem i kompresowaniem pakietów informacji przed wysłaniem ich przez sieć. Umożliwia to bardziej efektywne wykorzystanie zasobów sieciowych, kosztem dodatkowego obciążenia ze strony komputerów klienckich, które muszą pracować znacznie ciężej, aby „rozwiązać” spakowane dane.
Węzły sieciowe są trochę jak policja drogowa: kierują przepływem danych w sieci komputerowej. W przypadku braku kodowania sieciowego węzły przenoszą informacje — pakiety danych — przez sieć bez możliwości zmiany lub manipulowania tymi danymi w jakikolwiek istotny sposób. Mogą wzmocnić sygnał, aby zapewnić, że dane nie zostaną utracone podczas przesyłania, ale rzeczywiste pakiety pozostaną nienaruszone.
W kodowaniu sieciowym zadaniem węzłów jest łączenie pakietów w celu zwiększenia wydajności sieci. Na przykład, jeśli sieć jest w stanie przesyłać pojedyncze pakiety 100-bajtowe i jednocześnie odbiera dwa 50-bajtowe pakiety, system działający z nie-sieciowym kodowaniem przetworzy jeden 50-bajtowy pakiet, a następnie następny, przenosząc je sekwencyjnie. . Z drugiej strony sieć kodowania sieci zarejestruje fakt, że 50 bajtów potencjalnego obciążenia sieciowego jest „marnowane” z każdym pakietem i połączy dwa 50-bajtowe pakiety w jeden 100-bajtowy pakiet, maksymalizując transmisję danych w sieci. Pojemność.
Powoduje to wzrost wydajności sieci. Kodowanie sieciowe regularnie wykorzystuje więcej dostępnej przepustowości sieci. Innymi słowy, realizowany jest większy potencjał sieci. Jednak kodowanie sieciowe ma również wadę: połączone pakiety zapewniają dodatkową „pracę” dla komputerów odbierających.
Kiedy komputer otrzymuje pakiet informacji z niekodowanej sieci, komputer uzyskuje dostęp do tej informacji indywidualnie i natychmiast. W tym przypadku pakiety są w całości poświęcone jednemu procesowi. Jednak odebranie pakietu informacji w sieci kodowanej sieciowo wymaga od systemu rozpakowania i dystrybucji informacji związanych z różnymi procesami do odpowiednich obszarów. Stwarza to dodatkowe obowiązki przetwarzania dla procesora komputera odbierającego dane, zwiększając jego stres. W systemach o niskim poborze mocy lub systemach z wieloma innymi jednocześnie aktywnymi zadaniami dodatkowa praca może spowodować spowolnienie lub opóźnienie komputera.