Respuesta a: Protocolos TCP y UDP

NUESTROS CURSOS Foros Curso CCNA R&S 200-125 Protocolos TCP y UDP Respuesta a: Protocolos TCP y UDP

#18943
AlvaroM
Superadministrador

Hola Ricardo!

Lo que pasa, es que en el ejemplo estamos ASUMIENDO que el servidor no envía datos a la PC.

Trabajemos con un ejemplo «CASI REAL» para que este concepto quede más claro. Vamos a trabajar con la interacción que ocurre entre una computadora que accede a una página web “segura” que utiliza el protocolo HTTPS.

Supongamos que yo me conecto a una página web «prueba.com», YO voy a iniciar el establecimiento de la conexión con el servidor, ¿no es cierto?, asumamos que estamos utilizando valores de ISN de cero en ambos extremos para simplicidad. Recuerda que en la vida real estos valores son generados de manera aleatoria.

Vayamos paso a paso.

Establecimiento de la Conexión

– Yo le envío al servidor mi Número de Secuencia Inicial de 0 (byte fantasma) y mi valor de Ack también de 0 a través del mensaje TCP SYN.
– El servidor devuelve su respuesta con su propio Número de Secuencia Inicial de 0 (byte fantasma), y devuelve un valor de Ack de 1 (ISN recibido+1 en el establecimiento de la conexión). Estos datos son enviados en el mensaje TCP SYN+ACK.
– Yo le envío al servidor el valor de número de Ack 1 [ISN del mensaje (SYN+ACK)+1]. Estos datos se envían a través del mensaje ACK.

Entonces mi computadora tiene su #SEQ = 1, #ACK = 1 y el servidor también tiene los mismos valores #SEQ = 1 y #ACK = 1.

Hasta acá ya se ha establecido la conexión con el servidor. Esto es lo mismo que analizamos en las clases… ahora sí debe darse el intercambio de datos.

Intercambio de datos

Cuando nosotros visitamos una página web con el protocolo HTTPS, existe un intercambio de datos a nivel de Aplicación entre el servidor y el cliente que es relevante para la privacidad de la página web (navegación segura). En este proceso, tanto el servidor como la computadora intercambian bytes, y acá sí veríamos una variación en los números de Secuencia y Ack de ambas partes.

– Mi computadora va enviar un mensaje del protocolo TLS (seguridad de la página web) que va tener supongamos 400 bytes de datos de Aplicación. El número de Secuencia llegaría a ser 1 y el Ack también sería 1… no existe variación en este momento.

– El servidor recibe ese mensaje con datos de Aplicación, y debe devolver un mensaje de reconocimiento ACK a mi computadora argumentando de que efectivamente recibió el mensaje enviado.

– El servidor enviara un segmento ACK con el número de Secuencia de 1 y el número de Ack de 401, ¿porque este número de Ack?… esto porque ya ha recibido por parte de mi computadora los bytes del 1 al 400, y ahora espera recibir el byte 401. Este mensaje no lleva datos de Aplicación, Ok…

– El servidor en este tipo de aplicación, a continuación también enviará un mensaje del protocolo TLS (seguridad de la página web) que va tener supongamos 600 bytes de datos de Aplicación. El número de Secuencia llegaría a ser 1, y el Ack sería 401. El número de ACK todavía no cambia ya que no se han recibido más mensajes que tengan bytes de datos de Aplicación por parte del cliente.

– El cliente recibe ese mensaje con datos de Aplicación, y debe devolver un mensaje de reconocimiento ACK al servidor, argumentando de que efectivamente recibió el mensaje enviado.

– El cliente enviara un segmento ACK con el número de secuencia 401, ¿por qué 401?… esto porque el cliente ya envió los datos del 1 al 400, le toca enviar los datos comenzando desde el byte 401, en este mensaje NO está enviando datos de Aplicación. El número de Ack, llegaría a ser igual a 601, ¿por qué 601?… porque el servidor le ha enviado los bytes desde el 1 al 600, entonces el cliente le indica al servidor con este mensaje, que ya ha recibido esos bytes y que espera en su próximo mensaje al byte número 601.

– En el siguiente mensaje del servidor al cliente, se tendría un número de Secuencia de 601 y un número de ACK de 401. Y seguramente se enviaran otros datos de Aplicación de acuerdo al funcionamiento de TLS.

Como puedes ver en esta interacción, AMBOS dispositivos están enviando datos de Aplicación, y esto provoca que los valores de Ack y Seq cambien en los 2 extremos.

En el ejemplo de la clase, estamos asumiendo POR SIMPLICIDAD, que SOLAMENTE LA PC envía datos de Aplicación, y que el servidor solamente se encarga de RECONOCER la recepción de esos mensajes a través del segmento ACK. El servidor NO LE ENVÍA datos de Aplicación al cliente y es por eso que el número de ACK no cambia desde el cliente al servidor y el número de Secuencia tampoco cambia desde el servidor al cliente.

Espero que con esta explicación quede más claro!

Atento a tus comentarios.

Saludos cordiales.

  • Esta respuesta fue modificada hace 2 años, 7 meses por AlvaroM.