Qué hace la programación de redes?

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