Proceso de comunicación TCP - CCNA V6.0
Modulo 1.
Capítulo 9 - Capa de transporte.
Sección 9.2 - TCP y UDP.
Tema 9.2.1 - Proceso de comunicación TCP.
9.2.1.1 Procesos del servidor TCP.
Cada proceso de aplicación que se ejecuta en el servidor está configurado para utilizar un número de puerto, ya sea predeterminado o de forma manual, por el administrador del sistema. Un servidor individual no puede tener dos servicios asignados al mismo número de puerto dentro de los mismos servicios de la capa de transporte.
Por ejemplo, un host que ejecuta una aplicación de servidor web y una de transferencia de archivos no puede configurar ambas para utilizar el mismo puerto (por ejemplo, el puerto TCP 80). Una aplicación de servidor activa asignada a un puerto específico se considera abierta, lo que significa que la capa de transporte acepta y procesa los segmentos dirigidos a ese puerto. Toda solicitud entrante de un cliente direccionada al socket correcto es aceptada y los datos se envían a la aplicación del servidor. Pueden existir varios puertos abiertos simultáneamente en un servidor, uno para cada aplicación de servidor activa.
Consulte las figuras 1 a 5 para ver la asignación típica de puertos de origen y de destino en las operaciones TCP de cliente y servidor.
9.2.1.2 Establecimiento de conexiones TCP.
En algunas culturas, cuando dos personas se conocen, generalmente se saludan dándose la mano. Ambas culturas entienden el acto de darse la mano como señal de un saludo amigable. Las conexiones en la red son similares. En las conexiones TCP, el cliente del host establece la conexión con el servidor.
Una conexión TCP se establece en tres pasos:
Paso 1: el cliente de origen solicita una sesión de comunicación de cliente a servidor con el servidor.
Paso 2: el servidor reconoce la sesión de comunicación de cliente a servidor y solicita una sesión de comunicación de servidor a cliente.
Paso 3: el cliente de origen reconoce la sesión de comunicación de servidor a cliente.
9.2.1.3 Finalización de la sesión TCP.
Para cerrar una conexión, se debe establecer el marcador de control de finalización (FIN) en el encabezado del segmento. Para finalizar todas las sesiones TCP de una vía, se utiliza un enlace de dos vías, que consta de un segmento FIN y un segmento de reconocimiento (ACK). Por lo tanto, para terminar una conversación simple admitida por TCP, se requieren cuatro intercambios para finalizar ambas sesiones.
Nota: En esta explicación, los términos “cliente” y “servidor” se utilizan como referencia con fines de simplificación,
Paso 1: cuando el cliente no tiene más datos para enviar en la transmisión, envía un segmento con el marcador FIN establecido.
pero el proceso de finalización puede ser iniciado por dos hosts cualesquiera que tengan una sesión abierta:Paso 2: el servidor envía un ACK para reconocer el marcador FIN y terminar la sesión de cliente a servidor.
Paso 3: el servidor envía un FIN al cliente para terminar la sesión de servidor a cliente.
Paso 4: el cliente responde con un ACK para reconocer el recibo del FIN desde el servidor.
Una vez reconocidos todos los segmentos, la sesión se cierra.
9.2.1.4 Análisis del enlace de tres vías de TCP.
Los hosts hacen un seguimiento de cada segmento de datos dentro de una sesión e intercambian información sobre qué datos se reciben mediante la información del encabezado TCP. TCP es un protocolo dúplex completo, en el que cada conexión representa dos transmisiones de comunicación unidireccionales o sesiones. Para establecer la conexión, los hosts realizan un enlace de tres vías. Los bits de control en el encabezado TCP indican el progreso y estado de la conexión.
Enlace de tres vías:
- Establece que el dispositivo de destino se presente en la red
- Verifica que el dispositivo de destino tenga un servicio activo y que acepte solicitudes en el número de puerto de destino que el cliente de origen intenta utilizar.
- Informa al dispositivo de destino que el cliente de origen intenta establecer una sesión de comunicación en dicho número de puerto.
Una vez que se completa la comunicación, se cierran las sesiones y se finaliza la conexión. Los mecanismos de conexión y sesión habilitan la función de confiabilidad de TCP.
Los seis bits del campo de bits de control del encabezado del segmento TCP también se conocen como marcadores. Un marcador es un bit que se establece como activado o desactivado. Haga clic en el campo de bits de control en la figura para ver los seis marcadores. Ya hemos hablado de SYN, ACK y FIN. El marcador RST se utiliza para restablecer una conexión cuando ocurre un error o se agota el tiempo de espera. Haga clic aquí para obtener más información sobre los marcadores PSH y URG.
- URG - importante campo de puntero urgente
- ACK - importante campo de confirmación
- PSH - función de empujar
- RST - restablecer la conexión
- SYN - sincronizar los números de secuencia
- FIN - no hay más datos del emisor
9.2.1.5 Vídeo de demostración: enlace de tres vías de TCP.
Haga clic en Reproducir en la figura para ver un vídeo de demostración, con Wireshark, del enlace de tres vías de TCP.
Haga clic aquí para descargar la documentación de soporte del vídeo.
Haga clic aquí para leer la transcripción de este vídeo.
Transcripción de este vídeo: Protocolo TCP de enlace de tres vías (7 min)
Tengo capturas de pantalla de una captura de paquetes de Wireshark con el proceso de enlace de 3 vías de TCP y la finalización de una conversación de TCP. Veamos las capturas de pantalla para tener una idea de cómo funciona.
TCP es un protocolo orientado a la conexión, o sea, una conexión completa se debe establecer primero para que los datos se puedan enviar o recibir. El enlace de 3 vías TCP inicia la conexión. Cuando la conexión debe finalizar, por ejemplo, una conexión con un servidor web, y cierra el navegador web, la conexión se termina con un enlace de dos vías.
Un enlace de tres vías TCP consta de 3 pasos, [SYN], [SYN, ACK] y [ACK]. SYN significa sincronización; ACK significa reconocimiento. Primero, el host de origen envía un segmento de sincronización. Luego, el host de destino envía un reconocimiento y su propio segmento de sincronización. Luego el host inicial envía un segmento de reconocimiento; por lo tanto, [SYN], [SYN, ACK] y [ACK]. Podemos verlo aquí, en la captura de pantalla. Si miramos la ventana Packet List, en Packets 10, 11 y 12, vemos un [SYN], un [SYN, ACK], y un [ACK]. Es el protocolo de enlace de 3 vías. Si vemos el paquete inicial del enlace de tres vías, el segmento de [SYN] de esta parte, podemos ver que el número de secuencia es 0. El comienzo del enlace de tres vías es el número 0 porque es el primer paquete de la conexión o conversación entre dos hosts, o en este caso, los hosts del servidor. El número de secuencia es un número aleatorio de 32 bits denominado ISN o número de secuencia inicial. Este número (o ISN) se selecciona aleatoriamente al principio de cada conversación TCP. Esto ayuda a proteger contra ataques a la conexión TCP. Wireshark toma el número aleatorio de 32 bits y lo convierte en 0. Luego incrementa los números de secuencia y reconocimiento a partir de ahí. Esto facilita la lectura y sigue los segmentos en orden con el programa Wireshark.
Analicemos algunos de los detalles de este segmento inicial [SYN]. Vamos a la ventana Packet Details y podemos ver Sequence number: 0, que es un número de secuencia relativa. Si observamos Flags, vemos que se fijó Syn bit. Puede verlo aquí con un 1. En el próximo paquete, número 11, el servidor responde al segmento de sincronización inicial. Vamos a la próxima pantalla; ahora el paquete 11 está resaltado. El servidor responde con un reconocimiento cuyo número es 0 y se envía el reconocimiento 1, y el número de secuencia inicial, con el número de secuencia relativa 0, se ha incrementado y se ha enviado el reconocimiento 1. Podemos ver en la ventana Protocol Details, el número de reconocimiento 1. Es el número de reconocimiento relativo. El servidor también envió su segmento de sincronización, que es 0, ya que es la conversación inicial en otra dirección. Si miramos la ventana Details, podemos ver que el número de secuencia es 0, y que es el número de secuencia relativa del servidor al host. Si observamos Flags, tanto SYN como ACK se configuraron.
Si vemos la captura siguiente, en el paquete 12, paso 3, del enlace de 3 vías, host 10.1.1.1 responde con un reconocimiento o [ACK], y si analizamos la ventana Protocol Details, vemos que el reconocimiento es 1, incrementa el segmento de sincronización del servidor en 1. Puede verse que se fijó el bit de reconocimiento, pero vea que el bit de sincronización no se fijó. Es el final del protocolo de enlace de 3 vías.
Veamos cómo se interrumpirá la conexión TCP. En la próxima pantalla, se puede ver que en el paquete 16, el servidor se comunica con el host en 10.1.1.1, y envió un reconocimiento con un final o FIN, y un reconocimiento o ACK. En este segmento, tenemos [FIN, ACK]. El FIN finaliza la conversación. Se fijó la señal de reconocimiento ya que el enlace de 3 vías primero se fijó, y en cada segmento enviado luego, se fija señal de reconocimiento. Puede ver en el paquete número 17, el host respondió al servidor con reconocimiento de que la conversación finalizó. Es un enlace de dos vías. Un [FIN, ACK] y un [ACK]. Si nos anticipamos, en la ventana Packet List, el paquete 18, se puede ver que el host 10.1.1.1 envía al servidor su propio FIN y reconocimiento, y luego el servidor responde con su [ACK]. Tenemos dos enlaces de dos vías para finalizar la conexión. Si vuelve a la captura anterior, y observa Protocol Details o Packet Details, se puede ver aquí el segmento TCP, los indicadores, observe el 1 del reconocimiento y luego el 1 del final o indicador de final. Aquí se configuró. Observe que los reconocimientos subieron hasta 374, lo que indica que estas capturas se generaron de dos capturas de paquetes separadas en Wireshark. Puede ver en estas dos capturas más recientes cómo termina la conversación con 2 enlaces de dos vías, un [FIN, ACK] y un [ACK], y luego otro que va en otra dirección.
9.2.1.6 Práctica de laboratorio: Uso de Wireshark para observar la negociación en tres pasos de TCP.
En esta práctica de laboratorio, cumplirá los siguientes objetivos:
- Parte 1: Preparar Wireshark para capturar paquetes
- Parte2: Capturar, localizar y examinar paquetes
Comentarios
Publicar un comentario