NUESTROS CURSOS › Foros › Curso CCNA R&S 200-125 › Protocolos TCP y UDP › Respuesta a: Protocolos TCP y UDP
Hola Mauricio
Primera consulta:
En el establecimiento de la conexión, los campos Source y Destination port también llevan los datos hacia donde se quiere establecer la comunicación, de nada serviría establecer una comunicación para después darse cuenta que un puerto no se encuentra disponible en un dispositivo de destino, estaríamos gastando recursos de manera innecesaria. Todos los campos necesarios para la comunicación inicial son establecidos en el proceso 3-Way Handshake.
Segunda Consulta:
Si uno de los 2 extremos finaliza su entrega de datos, cierra la conexión enviando un segmento FIN, y el otro extremo responde con un segmento FIN ACK; si el servidor sigue teniendo datos para enviar a pesar que la computadora cerro la sesión, los sigue enviando sin problemas, y la computadora recibe los segmentos sin problemas y responde con segmentos ACK. Sino se pudieran enviar los segmentos ACK, no se podrían aplicar los conceptos de confiablidad en la transmisión de datos. En el caso que el servidor no tenga más datos a enviar, en ese momento envía el también su segmento FIN ACK y se cierra la conexión.
Tercera Consulta:
Si bien los conceptos genéricos para explicar la ventana y reconocimientos son los que mostramos en la clase, en la vida real NO EXISTE una regla obligatoria para determinar cada cuanto tiempo se envía un ACK. Nadie te obliga a enviar un ACK por cada segmento recibido, o nadie te indica que se deba enviar un ACK para todos los segmentos de la ventana; de hecho, esperar a que se reciban todos los segmentos del tamaño de la ventana para recién enviar un ACK sería perjudicial para algunas aplicaciones, porque esto significaría que tienes que ESPERAR a que todos tus segmentos lleguen al destino para recién recibir un ACK, con esto estarías retrasando la comunicación, imagina que uno de esos segmentos enviados se pierda, tendrías que esperar a los timeouts, tendrías que enviar nuevamente tu segmento de red, esperar el ACK de toda la ventana, y recién enviar nuevos segmentos. No sería eficiente.
Cada sistema operativo implementa diferentes algoritmos de reconocimientos; por ejemplo en Windows lo que se hace, es que para ciertas aplicaciones, se envía un ACK cada 2 segmentos recibidos que sean del tamaño del MSS, si haces una captura, probablemente veras este comportamiento, cada 2 segmentos 1 ACK sin importar el tamaño de la ventana. De nuevo, TODO depende de que aplicación se esta utilizando y de que sistema operativo estamos utilizando, NO existe una regla genérica que sea utilizada para todos en todo momento.
Cuarta consulta:
Si, es totalmente posible con NAT.
Quinta consulta:
Todo depende de la aplicación y cómo ha sido creada; recuerda que al hablar de TCP, en la mayoría de las situaciones no podemos hablar de que los comportamientos sean los mismos para todos, existen DIVERSOS algoritmos de TCP que son utilizados por diferentes aplicaciones en diferentes situaciones; no podemos poner en una bolsa a que todas las aplicaciones cumplan las mismas reglas porque NO todas las aplicaciones funcionan de la misma forma ni han sido creadas de la misma forma. Considera por ejemplo las aplicaciones interactivas como juegos en línea o chats, en esos casos necesitas que la información llegue lo más rápido posible sin tener que esperar un ACK de segmentos acumulados; pero existen otras aplicaciones que tienen diferente comportamiento, como transferencia de archivos (aplicaciones Bulk) donde si podrías tener un comportamiento menos estricto.
Volviendo a tu consulta, puede ser que un servidor al cual accedes o una aplicación que utilizas, tenga implementado un timeout que cierra la sesión cada 60 segundos, otro servidor cerrara la sesión cada 30 segundos, otro tardara más, otro menos, no existen estándares para esto, tu defines como quieres que funcione tu aplicación.
Al final en CCNA solo se tocan los conceptos de TCP de manera introductoria, hablamos más a fondo de todos estos temas en el curso de TCP: https://netwgeeks.com/cursos/tcp-basico-intermedio/
Atentos a cualquier otra consulta.
Saludos! =)