Cuando se usa TCP, los dispositivos primero deben establecer una conexión con un sistema par antes de que se produzca la transmisión
de datos para
que la sesión orientada a la conexión se establezca entre el host A y
el host B Una máquina iniciará la conexión que luego deberá ser aceptada por la otra máquina.
Los módulos de software de protocolos en los sistemas operativos de los dispositivos host
se comunican entre sí enviando mensajes a través de la red para verificar que
la transferencia esté autorizada y que ambas
partes estén listas para la transmisión de datos.
Para que esto ocurra, se produce un intercambio de tres vías entre los dispositivos host que utilizan TCP.
Entonces, el host que inicia la sesión configurará el indicador SYN o el bit SYN en
el encabezado TCP del segmento inicial enviado al servidor B.
El anfitrión A también elegirá un número de secuencia inicial que
en este ejemplo digamos 100.
Entonces, el indicador de control SYN se activa y el
número de secuencia se establece en un valor inicial de 100.
Esto luego se usa para iniciar el proceso de apretón de manos.
Este segmento de sincronización también especifica el número de puerto al que el remitente
desea conectarse, por ejemplo, el puerto 80 o HTTP.
El host del lado derecho estará esperando una solicitud de conexión del cliente remoto,
en este caso el host A.
cuando se recibe el SYN y se
acepta, el host b enviará un segmento TCP con los indicadores SYN y ACK establecidos.
Por lo tanto, los indicadores de control SYN y ACK están
activados y se usan para negociar la conexión y acusar recibo
del segmento de sincronización de iniciales del remitente.
B también establece un número de secuencia inicial para indicar
el siguiente número de secuencia del siguiente byte de datos
que espera recibir del host A.
el servidor B también establece el indicador de acuse de recibo,
en este caso 101 un indicador de ACK indica, la siguiente porción de datos, el servidor espera recibir.
Así que el host A envió inicialmente un número de secuencia de 100 y
el host B, en este caso suponiendo que un tamaño de ventana de 1 devuelve un acuse de
recibo de un 101.
El tercer paso en el handshake de tres vías es donde el host iniciador en
este caso el host A ha recibido el SYN del host B y envía un segmento TCP con el campo de control configurado a
ACK, en otras palabras, acuse de recibo. 36 Por lo tanto, el servidor A reconoce el próximo segmento que
espera recibir del servidor B en este caso 301, inicialmente el servidor B envió un número de secuencia de 300.
Entonces, el host A espera el próximo segmento 301.
El host A establece su número de secuencia en 101.
El segmento inicial enviado fue 100 y el siguiente en este caso es 101 porque el bit SYN o el
indicador SYN no están configurados, esto
confirma que el enlace de tres vías se ha completado con éxito.
Solo para reiterar, los bits o indicadores de control inicialmente A envían un
segmento con el bit SYN o el indicador SYN activado.
Entonces, el indicador de control SYN se establece en 1. 46 El host B en el segundo paso del handshake
de tres vías establece sus banderas o bits de control en SYN ACK.
En otras palabras, el bit SYN se establece en
1 y el bit ACK se establece en 1.
En el último paso del handshake de
tres vías, el Host A establece el bit ACK en 1 o el indicador ACK se activa.
El bit SYN o el indicador SYN se establece en 0 para indicar que
el handshake de tres vías se ha completado con éxito.
Ahora los números de secuencia y los agradecimientos pueden causar mucha confusión. Por lo tanto, voy a explicarlos
con más detalle ahora.
Estamos asumiendo en este ejemplo, que se usa un tamaño de ventana de 1.
Ahora bien, si recuerda el tamaño de la ventana es la cantidad máxima
de datos que el receptor puede recibir de un remitente y procesar correctamente. 59 Entonces vamos a suponer que solo se puede
transmitir 1 segmento en un momento determinado antes de que se reciba un
acuse de recibo para acusar recibo de ese segmento.
Asumamos que A comienza con un número de secuencia inicial de
5 debido a un tamaño de ventana de 1, solo se puede enviar 1 segmento de A a B.
B recibe con éxito el segmento de A
y reconoce el próximo segmento que quiere recibir.
por lo tanto, en lugar de acusar recibo del número
de secuencia de 5, acepta la
secuencia número 6, lo que implica que todos los números de secuencia anteriores se recibirán correctamente.
Así que B reconoce en este caso la secuencia número 6, pero B puede
comenzar con un número de secuencia inicial de 10. 71 entonces en el encabezado TCP B le dice a A
que su número de secuencia inicial es 10 y que su secuencia de recepción recibida es 5 desde
A y espera la secuencia número 6 desde A en el siguiente paquete.
Supongamos que recibe con éxito ese segmento, por lo
que A enviará ahora el segmento 6 a B, en otras palabras,
el siguiente número de secuencia.
A también acusa recibo del segmento 10 del host B.
Entonces, A ha recibido con éxito el segmento con la secuencia número 10.
Tenga en cuenta una
vez más que el anfitrión puede elegir aleatoriamente los
números de secuencia iniciales y, por lo tanto, en
el apretón de manos inicial de tres vías que la información debe ser
comunicada entre los 2 hosts para que sepan cuáles son los números iniciales de la secuencia. 84 Entonces, una vez más A envía la secuencia número 6 a B y confirma la secuencia 11.
Supongamos que B recibe con éxito
ese segmento y, por lo tanto, reconocerá el segmento 7.
El siguiente segmento que espera recibir una
vez más 7 en el acuse de recibo indica que el segmento anterior se recibió con éxito.
Entonces, el host B al establecer el número de secuencia en 7 le está diciendo al host A
que la secuencia número 6 fue recibida con éxito.
El servidor B envía la secuencia número 11 porque ese
es el siguiente número de secuencia que A espera recibir.
Lo que hay que notar una vez más, es que los números de
secuencia iniciales que el host espera recibir y la secuencia de número de,
por ejemplo, 11 implica que el número de secuencia 10 y el número de secuencia anterior se recibieron con éxito.
Ahora, una vez más, el control de flujo evita un problema por el cual el remitente envía tantos
datos 99 que los buffers del receptor están desbordados.
Si esta es una máquina muy poderosa y esta es una máquina más antigua eso no es tan poderoso, es posible que A pueda invadir los búferes de B porque está enviando demasiados datos. 103 Entonces, B necesita un mecanismo para decirle a A que disminuya la velocidad para que D
pueda procesar con éxito el tráfico que está recibiendo. 105 Entonces, como ejemplo, supongamos que el tamaño de la ventana en este ejemplo
es 3 en lugar de 1. 107 Entonces, A puede enviar 3 segmentos de datos antes de recibir un acuse de recibo. 108 La ventaja de aumentar el tamaño de la ventana es que el rendimiento puede aumentar dramáticamente porque un host puede enviar más datos con menos reconocimientos y, por lo tanto, los temporizadores de ida y vuelta disminuyen drásticamente. 111 Entonces, en este ejemplo, A envía 3 segmentos a B. 112 Supongamos que el buffer
recibido de B está lleno y no puede manejar esa cantidad de datos 114 B enviará un indicador de no listo a A 115 y lo hace estableciendo el tamaño de la ventana en 0.
Esto le dice al remitente que deje de enviar datos y espere a que el indicador esté listo desde el receptor. 118 Suponiendo que el host B ahora haya podido procesar los datos en su buffer de recepción y ahora puede recibir más datos. 120 Puede enviar un indicador listo para A, para decirle que reanude el envío de datagramas.
por lo que A reanuda la transmisión enviando, por ejemplo, 3 segmentos a B. 122 Porque el tamaño de la ventana es 3. 123 Así que tenga en cuenta en segundo plano que el host TCP involucrado en la conversación puede negociar
varios parámetros y uno de ellos es el control de flujo 125 donde un receptor, puede decirle a un emisor que reduzca la velocidad o que deje de enviar datos 126 hasta que el receptor tenga espacio de búfer disponible para recibir segmentos transmitidos.
Esto permite la comunicación entre un poderoso o una máquina rápida y una máquina más lenta o menos potente donde pueden negociar la tasa de transmisión.