* Orientado a la conexión: TCP establece una conexión antes de la transmisión de datos, lo que permite una comunicación confiable a través de un apretón de manos de tres vías. Este apretón de manos permite la negociación de parámetros y la garantía de que ambas partes están listas para comunicarse.
* Transferencia de datos confiable: TCP garantiza una entrega de datos confiable. Hace esto a través de varios mecanismos:
* Entrega secuenciada: Los segmentos TCP (unidades de datos) están numerados, asegurando que se entreguen en el orden correcto. Si los segmentos llegan fuera de servicio, el receptor los reordena antes de pasar los datos a la capa de aplicación.
* Reconocimiento (ACK): El receptor envía un reconocimiento (ACK) para cada segmento recibido. Esto confirma que los datos llegaron con éxito.
* Retransmisión: Si el remitente no recibe un ACK dentro de un cierto período de tiempo de espera, supone que el segmento se perdió y lo retransmite. Esto garantiza que todos los datos finalmente lleguen, incluso en presencia de congestión de red o errores.
* SUMACIÓN DE CHECK: Cada segmento TCP incluye una suma de verificación. El receptor calcula la suma de verificación del segmento recibido y la compara con la suma de verificación incluida en el segmento. Si las sumas de verificación no coinciden, indica que los datos se dañaron durante la transmisión, y el receptor descarta el segmento. El remitente, que no recibe un ACK, retransmitirá el segmento corrupto.
* Control de flujo: TCP utiliza mecanismos de control de flujo (como una ventana deslizante) para evitar que el remitente abrume el receptor. El receptor anuncia su tamaño de ventana de recepción, lo que indica cuántos datos puede manejar. El remitente no debe enviar más datos que el tamaño de la ventana anunciado.
* Control de congestión: TCP incluye mecanismos de control de congestión (como inicio lento, evitación de congestión, retransmisión rápida y recuperación rápida) para evitar abrumar la red. Detecta la congestión de la red al monitorear la pérdida o el retraso de los paquetes y ajusta su tasa de envío en consecuencia.
En contraste, UDP (protocolo de datagrama de usuario) es un protocolo sin conexión que ofrece un manejo mínimo de errores. UDP envía datos sin establecer una conexión o garantizar la entrega. No proporciona reconocimientos, retransmisión, secuenciación o control de flujo. Esto hace que UDP sea más rápido y más eficiente para las aplicaciones donde alguna pérdida de datos es aceptable (por ejemplo, transmisión de video, juegos en línea), pero es menos confiable que TCP. Las aplicaciones que usan UDP deben implementar sus propios mecanismos de manejo de errores si la confiabilidad es importante.
Otros protocolos, como HTTP o SMTP, construyen * en la parte superior * de TCP, heredando sus capacidades de transporte confiables. HTTP, por ejemplo, se basa en TCP para la entrega confiable de contenido web. SMTP, por correo electrónico, también usa TCP para una transferencia de mensajes confiable. Estos propios protocolos proporcionan el manejo de errores de la capa de aplicación (por ejemplo, códigos de estado HTTP, mensajes de error SMTP), pero la confiabilidad * subyacente * proviene de TCP.
Por lo tanto, tcp Se destaca como el protocolo que proporciona las capacidades de manejo de errores más sólidas debido a su naturaleza orientada a la conexión y sus mecanismos integrales para garantizar la transferencia de datos confiable.