Mrežno kodiranje je tehnika programiranja koja se koristi za maksimiziranje potencijalnog izlaza računalne mreže. U mrežnom kodiranju čvorovi mreže preuzimaju aktivnu ulogu, radeći na kombiniranju i komprimiranju paketa informacija prije nego što ih pošalju preko mreže. To omogućuje učinkovitije korištenje mrežnih resursa, uz cijenu dodatnih troškova na strani klijentskih računala, koja moraju toliko više raditi da bi “odvezali” zapakirane podatke.
Mrežni čvorovi su pomalo poput prometne policije: usmjeravaju protok podataka na računalnoj mreži. U nedostatku mrežnog kodiranja, čvorovi premještaju informacije – pakete podataka – kroz mrežu ne dajući si slobode mijenjati ili manipulirati tim podacima na bilo koji značajan način. Oni mogu pojačati signal kako bi osigurali da se podaci ne izgube tijekom tranzita, ali stvarni paketi ostaju nepromijenjeni.
U mrežnom kodiranju, čvorovi imaju zadatak kombiniranja paketa prema potrebi za povećanje učinkovitosti u mreži. Na primjer, ako je mreža sposobna odašiljati pojedinačne pakete od 100 bajtova i istovremeno prima dva paketa od 50 bajta, sustav koji radi s nemrežnim kodiranjem će obraditi jedan paket od 50 bajta, a zatim sljedeći, pomičući ih uzastopno. . Mrežna kodirajuća mreža će, s druge strane, registrirati činjenicu da se 50 bajtova potencijalnih mrežnih nadmetanja “protraći” sa svakim paketom i kombinirati dva paketa od 50 bajta u jedan paket od 100 bajta, maksimizirajući prijenos podataka mreže kapacitet.
To rezultira povećanjem učinkovitosti mreže. Mrežno kodiranje redovito koristi više dostupne propusnosti mreže. Drugim riječima, ostvaruje se veći dio potencijala mreže. Međutim, mrežno kodiranje ima i lošu stranu: kombinirani paketi pružaju dodatni “rad” za računala primateljice.
Kada računalo primi paket informacija na nemrežno kodiranoj mreži, računalo pristupa toj informaciji pojedinačno i odmah. Paketi su, u ovom slučaju, svaki u potpunosti posvećen jednom procesu. Međutim, primanje paketa informacija na mreži kodiranoj mreži zahtijeva od sustava da raspakira i distribuira informacije koje se odnose na različite procese u odgovarajuća područja. To stvara dodatne obveze obrade za računalni CPU koji prima podatke, povećavajući njegov stres. Na sustavima male snage ili sustavima s nizom drugih istovremeno aktivnih zadataka, dodatni rad može rezultirati usporavanjem ili zaostajanjem na računalu.