Funcionamiento de Protocolos de Red y Arquitectura TCP/IP
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
con un tamaño de 8,77 KB
Capas del Modelo TCP/IP
El modelo se organiza en las siguientes capas: Aplicación (HTTP/DNS/SMTP) → Transporte (TCP/UDP, puertos) → Red (IP) → Enlace (Ethernet, MAC) → Física (bits).
Unidades de Datos (PDU)
- Mensaje (Capa de Aplicación)
- Segmento (Capa de Transporte)
- Datagrama (Capa de Red)
- Frame o Trama (Capa de Enlace)
- Bits (Capa Física)
Un Protocolo se define entre la misma capa de hosts distintos, mientras que una Interfaz se establece entre capas adyacentes del mismo host.
Puertos de Red Comunes
- :80 HTTP
- :25 SMTP
- :110 POP3
- :53 DNS (UDP)
- :22 SSH
- :8080 Proxy
- Puertos Efímeros (1024–65535): Asignados por el Sistema Operativo al cliente.
Sockets y Conexiones
Un Socket se define por una 4-tupla única: IP_origen:puerto_origen ↔ IP_destino:puerto_destino. Si existen dos conexiones del mismo cliente al mismo servidor, es obligatorio el uso de puertos efímeros distintos; de lo contrario, el Sistema Operativo no podría distinguirlas.
- Socket de escucha: Se mantiene fijo en el puerto del servicio.
- Socket de conexión: Se crea uno nuevo por cada cliente, operando en un hilo independiente.
Registros de DNS
- A: Mapea nombre → IPv4.
- NS: Servidor autoritativo de la zona.
- MX: Servidor de correo + prioridad.
- CNAME: Alias → nombre canónico (se debe seguir hasta encontrar el registro A).
- PTR: IP → nombre (utilizado como técnica anti-spam).
- SOA: Metadatos de administración de la zona.
- TXT: SPF/DKIM/verificación.
Una Zona es la porción que administra un servidor, mientras que un Dominio es el árbol lógico completo. Un dominio puede tener varias zonas mediante la delegación vía NS. Respecto a la Caché/TTL: si no ha expirado, se responde sin consultar; si expiró, se resuelve de nuevo. El archivo hosts tiene prioridad absoluta.
Resolución de DNS
El DNS local actúa de forma recursiva (realiza toda la gestión). Los servidores Raíz, TLD y Autoritativos son iterativos (responden lo que saben o entregan una referencia).
Flujo de resolución:
PC → DNS local → Raíz (ref .uy) → TLD .uy (ref .com.uy) → TLD .com.uy (ref autoritativo) → Autoritativo (A: IP) → DNS local → PC.
- Con CNAME: El autoritativo responde "alias de web.com.uy", y el DNS local resuelve web.com.uy desde cero en una nueva ronda completa.
- MX Lookup: Consulta MX → obtiene nombre del servidor de correo → consulta A → obtiene IP.
- Anti-spam PTR: Se verifica el PTR de la IP → nombre, y el registro A del nombre → debe coincidir con la misma IP. Si no coincide, se marca como spam.
Protocolo HTTP
Ejemplo de petición: GET /equipo.html HTTP/1.1 / Host: www.deportes.com.uy / If-Modified-Since: [fecha].
Códigos de Estado:
- 200 OK
- 301 Moved Permanently: Redirige a la cabecera Location.
- 304 Not Modified: Indica usar la caché.
- 404 Not Found
- 500 Server Error
El encabezado If-Modified-Since permite optimizar: si no hubo cambios, se recibe un 304 sin cuerpo; si cambió, un 200 con el contenido. El User-Agent identifica el dispositivo para que el servidor sirva contenido adaptado.
Diferencias entre versiones:
- HTTP 1.0: Una nueva conexión TCP por cada objeto (N handshakes, N slow starts).
- HTTP 1.1: Conexión persistente + pipelining (1 handshake que se reutiliza para todo).
Proxy HTTP
- PC → DNS local: Obtiene la IP del proxy (UDP :53).
- PC → Proxy:
GET http://www.deportes.com.uy/equipo.html HTTP/1.1(TCP :8080). Se usa la URL completa porque el proxy no sabe a quién reenviar sin ella. - Proxy → DNS: Obtiene la IP del servidor.
- Proxy → Servidor:
GET /equipo.html(TCP :80, sale con IP pública vía NAT). - 200 OK → El proxy cachea el contenido → PC.
Son dos conexiones TCP separadas con puertos y secuencias distintas. Un segundo cliente que pida lo mismo recibirá la respuesta del proxy desde la caché directamente. El proxy verifica la validez con If-Modified-Since. NAT permite que una IP privada salga como la IP pública del router. 22
Protocolos de Correo y Transferencia
- SMTP (:25): Envío entre servidores.
- POP3 (:110): Descarga y borra del servidor (orientado a un solo dispositivo).
- IMAP (:143): Sincroniza y deja los mensajes en el servidor (multi-dispositivo).
Flujo SMTP:
EHLO / MAIL FROM: [email protected] / RCPT TO: [email protected] / DATA / From: Alicia / To: Bernardo / Subject: Hola / [línea en blanco] / cuerpo del mensaje / . / QUIT.
El MAIL FROM se usa para el routing del servidor, mientras que el From: interno es lo que ve el destinatario (pueden diferir en ataques de phishing). El punto solo en una línea indica el fin del mensaje.
MIME y Base64:
Dado que SMTP solo soporta ASCII de 7 bits, los adjuntos binarios se codifican en Base64. Los encabezados Content-Type y Content-Transfer-Encoding indican cómo decodificar.
Comparativa FTP vs HTTP:
- FTP: Utiliza 2 conexiones (control :21 + datos :20), mantiene el estado y requiere autenticación obligatoria.
- HTTP: Utiliza 1 conexión, no tiene estado y la autenticación es opcional.
TCP vs UDP
- TCP: Con conexión, confiable y ordenado. Usado en HTTP, SMTP, FTP, SSH.
- UDP: Sin conexión, no confiable y sin orden. Usado en DNS, streaming, videollamadas y juegos.
Se prefiere UDP cuando la latencia importa más que la confiabilidad (como en Zoom o juegos), ya que un paquete perdido sería inútil retransmitirlo. DNS usa UDP por ser mensajes pequeños, evitando el overhead de conexión; el reintento lo maneja la aplicación.
Stop-and-Wait y Ventana
- Ttx (Tiempo de transmisión) = L(bits) / C(bps)
- Eficiencia (η) = Ttx / (Ttx + RTT)
- W_opt (Ventana óptima) = (Ttx + RTT) / Ttx
Ejemplo: L=1500B, C=120kbps, RTT=500ms → Ttx=100ms, η=16.7%, W=6.
El método Stop-and-Wait (W=1) es simple pero muy ineficiente. Una ventana fija grande llena el canal pero no se adapta a la congestión. La ventana deslizante de TCP se adapta dinámicamente a la red y al receptor. En Go-Back-N, ante una pérdida, se retransmite ese segmento y todos los siguientes.
Resumen de Flujo Completo
- Sin proxy: DNS (PC → local → raíz → .uy → .com.uy → autoritativo → IP) → TCP handshake → GET /equipo.html HTTP/1.1 → 200 OK.
- Con proxy: DNS (PC → local → IP proxy) → TCP PC → proxy (:8080) → GET http://www.deportes.com.uy/equipo.html (URL completa) → DNS (proxy → local → IP servidor) → TCP proxy → servidor (:80) vía NAT → 200 OK → cachea → PC.