Verkkokoodaus on ohjelmointitekniikka, jota käytetään maksimoimaan tietokoneverkon mahdollinen ulostulo. Verkkokoodauksessa verkon solmut ottavat aktiivisen roolin ja pyrkivät yhdistämään ja pakkaamaan tietopaketteja ennen niiden lähettämistä verkon yli. Tämä mahdollistaa verkkoresurssien tehokkaamman hyödyntämisen asiakastietokoneiden lisäkustannusten kustannuksella, joiden on työskenneltävä paljon vaikeammin pakatun datan “irrottamiseksi”.
Verkkosolmut ovat vähän kuin liikennepoliisi: ne ohjaavat tietovirtaa tietokoneverkossa. Verkkokoodauksen puuttuessa solmut siirtävät tietoja – datapaketteja – verkon läpi ottamatta vapauksia muuttaa tai manipuloida tietoja merkittävällä tavalla. Ne voivat vahvistaa signaalia varmistaakseen, että tietoja ei menetetä kuljetuksen aikana, mutta todelliset paketit eivät muutu.
Verkkokoodauksessa solmujen tehtävänä on yhdistää paketteja tarpeen mukaan verkon tehokkuuden lisäämiseksi. Jos esimerkiksi verkko pystyy lähettämään yksittäisiä 100 tavun paketteja ja se vastaanottaa kaksi 50 tavun pakettia samanaikaisesti, ei-verkkokoodauksella toimiva järjestelmä käsittelee yhden 50 tavun paketin ja sitten seuraavan, siirtäen ne peräkkäin . Verkkokoodausverkko puolestaan rekisteröi tosiasian, että 50 tavua mahdollisia verkon yleiskustannuksia “tuhlataan” jokaisen paketin kanssa, ja yhdistää nämä 50 tavun paketit yhdeksi 100 tavun paketiksi maksimoiden verkon tiedonsiirron kapasiteettia.
Tämä lisää verkon tehokkuutta. Verkkokoodaus käyttää enemmän verkon käytettävissä olevaa kaistanleveyttä säännöllisesti. Toisin sanoen verkon potentiaalia hyödynnetään enemmän. Verkkokoodauksella on kuitenkin myös haittapuoli: yhdistetyt paketit tarjoavat ylimääräistä “työtä” vastaanottaville tietokoneille.
Kun tietokone vastaanottaa tietopaketin muussa kuin verkkokoodatussa verkossa, tietokone käyttää kyseistä tietoa yksitellen ja välittömästi. Tässä tapauksessa paketit on omistettu kokonaan yhdelle prosessille. Tietopaketin vastaanottaminen verkkokoodatussa verkossa edellyttää kuitenkin, että järjestelmä purkaa ja jakaa eri prosesseihin liittyvät tiedot oikeille alueille. Tämä luo lisää käsittelyvastuita tietoja vastaanottavalle tietokoneen suorittimelle ja lisää sen stressiä. Pienitehoisissa järjestelmissä tai järjestelmissä, joissa on useita muita samanaikaisesti aktiivisia tehtäviä, ylimääräinen työ voi johtaa tietokoneen hidastumiseen tai viiveeseen.