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.
Capa 2 – Enlace de datos (Data Link Layer)
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° | Capa | Función principal | Ejemplos de protocolos/dispositivos |
|---|---|---|---|
| 7 | Aplicación | Interfaz de usuario de red | HTTP, FTP, DNS |
| 6 | Presentación | Traducción, cifrado, compresión | SSL/TLS, ASCII, JPEG |
| 5 | Sesión | Gestión de sesiones/conexiones | NetBIOS, RPC |
| 4 | Transporte | Transporte fiable, segmentación | TCP, UDP |
| 3 | Red | Enrutamiento y direccionamiento lógico | IP, ICMP |
| 2 | Enlace | Comunicación local, dirección MAC | Ethernet, Wi-Fi (802.11), PPP |
| 1 | Física | Transmisión de bits sobre el soporte | RJ45, Fibra, Señal de radio |
Ejemplo de viaje de un mensaje
Imaginemos que usted envía un mensaje HTTP a un servidor remoto:
- Aplicación (HTTP) → el navegador prepara la solicitud.
- Presentación (TLS) → la solicitud es cifrada.
- Sesión → se abre una sesión segura.
- Transporte (TCP) → la solicitud se divide en segmentos.
- Red (IP) → los segmentos se encapsulan en paquetes IP.
- Enlace (Ethernet) → los paquetes se colocan en tramas.
- 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.