OposMD/temario_expandido/spec_10_tcpip.md

2.3 KiB

10. Arquitectura y servicios TCP/IP

Propósito del apartado Detallar los servicios que ofrece la pila TCP/IP, con foco en los protocolos de transporte (TCP y UDP), su operación, mecanismos de fiabilidad, y la interfaz de programación de sockets que permiten construir aplicaciones de red.

Pila TCP/IP en la práctica

  • Capa de aplicación: protocolos (HTTP, SMTP, DNS, SSH) que crean la carga útil.
  • Capa de transporte: TCP y UDP gestionan comunicación de extremo a extremo.
  • Capa de Internet: IP proporciona direccionamiento y encaminamiento.
  • Capa de enlace/física: entrega de tramas sobre el medio.

TCP: características y mecanismos

  • Orientado a conexión: establecimiento (three-way handshake: SYN, SYN-ACK, ACK) y cierre (FIN/ACK).
  • Fiabilidad: confirmaciones (ACKs), retransmisiones, temporizadores RTO y control de congestión (slow start, congestion avoidance).
  • Control de flujo: ventana deslizante que limita el volumen de datos no confirmados.
  • Segmentación y reensamblado: fragmentación en segmentos y ordenamiento en destino.

UDP: características y usos

  • No orientado a conexión, sin garantías de entrega ni orden; baja latencia y overhead.
  • Útil para DNS, VoIP, streaming y servicios donde la retransmisión sería contraproducente.

Sockets y APIs de programación

  • Sockets TCP (stream) y UDP (datagram) como abstracción para construir aplicaciones.
  • Parámetros básicos: dirección, puerto, familia de direcciones (IPv4/IPv6), opciones de socket (timeouts, reuseaddr).

Consideraciones de rendimiento

  • Tamaño de ventana TCP, escalado de ventana y ajuste del RTO.
  • Impacto de la latencia y la pérdida en throughput (modelos como la ecuación de throughput de TCP).

Seguridad y limitaciones

  • TCP está sujeto a ataques (SYN flood, hijacking); técnicas de mitigación: SYN cookies, filtros.
  • UDP facilita spoofing y amplificación (DDoS); buenas prácticas: filtrado, rate-limit.

Puntos de estudio

  • Entender en detalle el handshake TCP, el control de congestión y cómo afectan a la transferencia de datos.
  • Saber cuando usar UDP vs TCP en aplicaciones reales.
  • Conocer la estructura de cabeceras TCP/UDP y campos relevantes (puertos, flags, secuencia, ACK).

Lecturas internas recomendadas

  • RFC 793 (TCP) y RFC 768 (UDP) para referencia, y documentación sobre programación de sockets.