La programación de redes de ordenadores implica la escritura de programas de ordenador que permiten que los procesos se comuniquen entre sí a través de una red de ordenadores.
Comunicaciones orientadas a la conexión y comunicaciones sin conexión
En general, la mayoría de las comunicaciones se pueden dividir en orientadas a la conexión y sin conexión. El hecho de que una comunicación esté orientada a la conexión o no, se define por el protocolo de comunicación, y no por la interfaz de programación de aplicaciones (API). Algunos ejemplos de protocolos orientados a la conexión son el Protocolo de Control de Transmisión (TCP) y el Intercambio de Paquetes Secuenciados (SPX), y algunos ejemplos de protocolos sin conexión son el Protocolo de Datagramas de Usuario (UDP), el "IP crudo" y el Intercambio de Paquetes de Red (IPX).
Clientes y servidores
Para las comunicaciones orientadas a la conexión, las partes de la comunicación suelen tener diferentes roles. Una parte suele estar a la espera de las conexiones entrantes; esta parte suele denominarse "servidor". Otra parte es la que inicia la conexión; esta parte suele denominarse "cliente".
Para las comunicaciones sin conexión, una parte ("servidor") suele esperar un paquete entrante, y otra parte ("cliente") suele entenderse como la que envía un paquete no solicitado al "servidor".
Protocolos y APIs populares
La programación de redes cubre tradicionalmente diferentes capas del modelo OSI/ISO (la mayor parte de la programación a nivel de aplicaciones pertenece a la L4 y superiores). La siguiente tabla contiene algunos ejemplos de protocolos populares pertenecientes a diferentes capas OSI/ISO, y APIs populares para ellos.
[CAPA OSI/ISO] / [PROTOCOLO] / [API]
L3(Red) / IP / Raw Socket
L4 (transporte) / TCP, UDP, SCTP / Berkeley Sockets
L5 (sesión) / TLS / Open SSL
L7 (aplicación) / HTTP / Varios