En una red de comunicaciones tradicional, un nodo intermedio transmite la información recibida sin modificarla. Sin embargo, si los nodos pueden procesar la información recibida y enviar una versión modificada de ésta, la capacidad de transmisión puede incrementarse. En particular, es posible alcanzar la capacidad máxima de la red si los nodos intermedios realizan combinaciones lineales sobre un cuerpo finito. Este proceso se denomina códigos de red (network coding). De hecho, si se permite a los nodos actuar por su cuenta, y procesar los datos de forma aleatoria, entonces se alcanza la capacidad de la red con una probabilidad muy alta, este proceso se conoce como random network coding.
La información enviada puede verse alterada por “ruidos” y los errores se pueden propagar por toda la red.  Consideraremos la situación en la que algunos paquetes son corrompidos por ruido, perdidos por la red debido a una implementación deficiente o incluso en la que un adversario inyecta paquetes erróneos en la red. Veremos cómo, sabiendo muy poco sobre la red, se puede recuperar la información enviada si se ha codificado en un espacio vectorial, en lugar de en un vector como en teoría clásica de códigos.
