Saltar al contenido principal

Modelo OSI

Cuando se envían datos a través de una red, se requiere una serie de transformaciones, codificaciones y acciones para que los datos viajen de un dispositivo a otro. El modelo OSI (Open Systems Interconnection) permite dividir este proceso complejo en pasos lógicos, llamados capas, cada una con un rol específico.

Ventajas del modelo OSI​

  • Facilita el diseño y la comprensión de las redes.
  • Permite la interoperabilidad entre diferentes fabricantes.
  • Organiza los protocolos y las responsabilidades.

Visión general de las 7 capas​

Fuente: Wikipedia

Detalle capa por capa​

Capa 1 – Física (Physical Layer)​

Rol:
Transmite los bits brutos (0 y 1) sobre un soporte físico: cable, fibra óptica, ondas de radio…

Funciones:

  • Definición de señales eléctricas, ópticas o de radio.
  • Sincronización de los bits.
  • Conectores y cableado.

Ejemplos:

  • Cable Ethernet (RJ45)
  • Fibra óptica
  • Wi-Fi (a nivel de modulación)
  • Bluetooth

¿Qué ve un programador? No mucho. Esta capa es totalmente gestionada por el hardware.

Rol:
Permite la comunicación local entre dos máquinas conectadas a la misma red física.

Funciones:

  • Divide los datos en tramas (frames en inglés).
  • Asignación y verificación de la dirección MAC (Media Access Control, única para cada dispositivo).
  • Detección de errores.

Ejemplos de protocolos:

  • Ethernet
  • Wi-Fi (IEEE 802.11)

Dirección MAC:

  • Única por tarjeta de red (ej: 00:1A:2B:3C:4D:5E)
  • Grabada físicamente en el hardware

Dispositivos:

  • Switch
  • Tarjeta de red (NIC)

¿Qué ve un programador? Dirección MAC, tramas (frames), configuración de red local, a veces manipulación de paquetes a nivel Ethernet (ej: Wireshark, Scapy).

Capa 3 – Red (Network Layer)​

Rol:
Asegura el enrutamiento de los paquetes de una red a otra (interconexión de redes).

Funciones:

  • Asignación de direcciones IP (Internet Protocol).
  • Enrutamiento entre subredes.
  • Fragmentación de paquetes.

Ejemplos de protocolos:

  • IP (Internet Protocol)
  • ICMP (utilizado por ping)
  • ARP (traducción IP ↔ MAC)

Dispositivos:

  • Routers

¿Qué ve un programador? Dirección IP, subred, ping, comunicación vía sockets (IP/puerto).


Capa 4 – Transporte (Transport Layer)​

Rol:
Asegura el transporte fiable o no fiable de los datos entre dos máquinas.

Funciones:

  • Segmentación y reensamblaje.
  • Control de errores.
  • Control de flujo.

Protocolos principales:

  • TCP (Transmission Control Protocol)
    • Fiable, con acuse de recibo.
    • Ej: HTTP, FTP, SSH
  • UDP (User Datagram Protocol)
    • No fiable, rápido.
    • Ej: DNS, videojuegos en línea, VoIP

Puertos:

  • Identifican las aplicaciones en una máquina (ej: puerto 80 para HTTP)

¿Qué ve un programador? Manipulación de sockets TCP/UDP, gestión de puertos, gestión de errores de conexión, timeouts, retransmisiones, elección entre fiabilidad (TCP) y rapidez (UDP).

Ejemplos:

  • En Python: socket(AF_INET, SOCK_STREAM) (TCP)
  • curl http://... → utiliza TCP puerto 80

Capa 5 – Sesión (Session Layer)​

Rol:
Gestiona las sesiones de comunicación entre dos máquinas. Una sesión es un enlace lógico entre dos aplicaciones.

Funciones:

  • Apertura, gestión y cierre de sesión.
  • Restauración tras interrupción.

Ejemplos de protocolos:

  • NetBIOS
  • RPC (Remote Procedure Call)

Observaciones:

  • Poco visible como tal en las aplicaciones modernas (a menudo combinada con la capa de transporte).

Capa 6 – Presentación (Presentation Layer)​

Rol:
Asegura la traducción, compresión y cifrado de los datos.

Funciones:

  • Conversión de formatos (ej: texto plano ↔ binario).
  • Codificación: ASCII, UTF-8, JPEG
  • Cifrado SSL/TLS.

Ejemplos concretos:

  • HTTPS = HTTP + TLS (capa de presentación)
  • OpenSSL, GnuTLS

¿Qué ve un programador? La capa de presentación puede ser manipulada a través de librerías como ssl en Python.


Capa 7 – Aplicación​

Rol:
Proporciona servicios de red a las aplicaciones de usuario.

Protocolos:

  • HTTP / HTTPS
  • FTP
  • SMTP / IMAP / POP3
  • DNS

Ejemplos de aplicaciones:

  • Navegadores web
  • Clientes de correo
  • Clientes FTP
  • Clientes DNS

¿Qué ve un programador? Usted utiliza todos los días la capa 7: fetch(), requests.get(), socket, etc.

Resumen de las capas​

N°CapaFunción principalEjemplos de protocolos/dispositivos
7AplicaciónInterfaz de usuario de redHTTP, FTP, DNS
6PresentaciónTraducción, cifrado, compresiónSSL/TLS, ASCII, JPEG
5SesiónGestión de sesiones/conexionesNetBIOS, RPC
4TransporteTransporte fiable, segmentaciónTCP, UDP
3RedEnrutamiento y direccionamiento lógicoIP, ICMP
2EnlaceComunicación local, dirección MACEthernet, Wi-Fi (802.11), PPP
1FísicaTransmisión de bits sobre el soporteRJ45, Fibra, Señal de radio

Ejemplo de viaje de un mensaje​

Imaginemos que usted envía un mensaje HTTP a un servidor remoto:

  1. Aplicación (HTTP) → el navegador prepara la solicitud.
  2. Presentación (TLS) → la solicitud es cifrada.
  3. Sesión → se abre una sesión segura.
  4. Transporte (TCP) → la solicitud se divide en segmentos.
  5. Red (IP) → los segmentos se encapsulan en paquetes IP.
  6. Enlace (Ethernet) → los paquetes se colocan en tramas.
  7. Física (Cable) → las tramas se convierten en señales eléctricas.

El servidor recibe en orden inverso: Física → Enlace → Red … hasta Aplicación.

Para programadores​

  • La capa Aplicación corresponde a sus llamadas HTTP/HTTPS.
  • La capa Transporte (TCP/UDP) explica los problemas de latencia, timeout, pérdida de paquetes.
  • La capa Red le ayuda a comprender el direccionamiento IP, la conexión entre clientes/servidores.
  • Las capas Enlace y Física son útiles de conocer para diagnosticar problemas de red local.

Referencias​