Esa es una muy buena pregunta. El medio a través del cual se envían los datos no siempre es confiable. TCP promete confiabilidad al asegurarse de que los datos lleguen a su destino previsto (a través de un medio no confiable).
Lo logra mediante Agradecimientos (ACK). Cuando TCP recibe datos de la capa superior (capa de aplicación), divide los datos en segmentos y agrega su propio encabezado. Este encabezado asigna un segmento único no. a esta porción de datos. Cuando el destinatario recibe esta porción, responde al remitente diciéndole la siguiente secuencia de datos que espera recibir.
Puede haber no. de razones por las cuales el remitente no recibe ACK:
1. Los datos se perdieron a mitad de camino y, por lo tanto, el destino no los recibió en absoluto.
2. Los datos estaban dañados y el destino no podía tener sentido.
3. ACK se perdió.
4. Proceso de destino cerrado sin intimidar al remitente, etc., etc.
Si el remitente no recibe este ACK dentro de un cierto intervalo (llamado intervalo de tiempo de espera), el remitente reenvía estos datos y restablece el intervalo de tiempo de espera. Sigue intentándolo hasta que se rinde después de un cierto no. de tiempos de espera. Tanto el remitente como el destino usan una secuencia inicial aleatoria única no. para este propósito. Esta secuencia no. representa el siguiente byte de datos que espera el otro lado.
El remitente también envía un ACK por cada ACK enviado por destino, para indicarle al destino que “sé que recibió los datos”. El host (remitente / cliente) no necesita enviar al paquete un paquete especial para ACK, puede complementar este ACK junto con el siguiente fragmento de segmento que se enviará.
Por otro lado, si ACK se recibe con éxito, el remitente está seguro de que el destino recibió los datos. El siguiente diagrama debería tener algún sentido ahora
- ¿Cuáles son las alternativas de TCP para SSH?
- ¿Cómo viola NAT el argumento de extremo a extremo?
- ¿Existe una buena solución para el problema del conteo de protocolo RIP al infinito?
- ¿Cuál es la diferencia entre una API y un protocolo?
- ¿Recibieron ayuda Vint Cerf y Bob Kahn cuando desarrollaron el protocolo TCP / IP?