La capa de transporte conecta los puntos finales de las aplicaciones a través de una red IP. TCP y UDP utilizan números de puerto de 16 bits, pero ofrecen a las aplicaciones modelos de comunicación y garantías diferentes.
Conceptos Básicos de Red · Lección 6
Capa de transporte
Aprende cómo TCP y UDP utilizan puertos y distintas semánticas de entrega entre los puntos finales de las aplicaciones.
Puertos y sockets
Un puerto de destino ayuda al sistema operativo a entregar el tráfico a un socket a la escucha. Una conexión o un flujo se identifica mediante algo más que un puerto: importan el protocolo, las direcciones de origen y destino y los puertos de origen y destino. Por tanto, un mismo puerto de servidor puede atender simultáneamente a muchos clientes.
¿Cómo puede un único puerto de servidor TCP atender a varios clientes a la vez?
Flujos de bytes TCP
TCP proporciona un flujo de bytes ordenado y fiable mientras la conexión siga siendo viable. Utiliza números de secuencia, confirmaciones, retransmisiones, control de flujo y control de congestión. TCP no conserva los límites de los mensajes de la aplicación: una escritura puede llegar mediante varias lecturas, o una lectura puede devolver varias escrituras. Las aplicaciones definen su propio formato de delimitación.
Fiabilidad no significa entrega absoluta. Una conexión puede agotar su tiempo de espera, restablecerse o fallar, y una confirmación no demuestra que una aplicación haya guardado los datos de forma duradera.
¿Qué ocurre con los límites de los mensajes de una aplicación en TCP?
El intercambio inicial de TCP
Una conexión TCP normal comienza con un intercambio de tres pasos:
- El iniciador envía
SYNcon su información de secuencia inicial. - El receptor responde con
SYN-ACK, su propia información de secuencia y una confirmación. - El iniciador devuelve
ACK.
Esto establece el estado de transporte en ambos puntos finales. No autentica al servidor de la aplicación ni demuestra que la operación solicitada a la aplicación vaya a tener éxito.
¿Cuál es el orden normal del intercambio TCP de tres pasos?
Datagramas UDP
UDP conserva los límites de los datagramas y proporciona detección de errores mediante sumas de comprobación, pero no ofrece el estado de conexión, el orden, la retransmisión, el control de flujo ni el control de congestión de TCP. Una aplicación puede añadir por sí misma la fiabilidad o el comportamiento de congestión que necesite. UDP no es automáticamente más rápido; el rendimiento depende del diseño del protocolo, la carga de trabajo, la ruta y la implementación.
¿Qué propiedad ofrece UDP a las aplicaciones?
Inspeccionar puntos finales de transporte
Usa ss para inspeccionar sockets a la escucha y conectados sin modificarlos:
$ ss -lntup
$ ss -tn state established
Los detalles de los procesos pueden requerir privilegios. Un socket a la escucha solo demuestra disponibilidad local en el límite de transporte; el cortafuegos, el enrutamiento, la familia de direcciones, TLS y la salud de la aplicación aún requieren las pruebas apropiadas.
¿Qué establece un socket TCP a la escucha?
Lección completada
Has completado Capa de transporte
Ahora puedes distinguir el comportamiento de los flujos TCP del de los datagramas UDP.
Identifica un flujo mediante el protocolo, las direcciones y los puertos.
Trata TCP como un flujo de bytes fiable y ordenado sin límites de mensajes.
Reconoce qué demuestra y qué no demuestra el intercambio inicial de TCP.
Trata la fiabilidad y el comportamiento de congestión de UDP como decisiones de diseño de la aplicación.
Comprueba la salud de la aplicación más allá del estado del socket local.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita