Concepto Wrap Around y Número de Secuencia TCP

Requisito previo: TCP | Estructura de servicios y segmentos 
El Protocolo de control de transmisión (TCP) es uno de los protocolos más importantes del protocolo de Internet. Proporciona un servicio de capa de transporte completo a las aplicaciones y genera un circuito virtual entre el remitente y el receptor que está activo durante la transmisión. Su segmento consta de un encabezado TCP, opciones TCP y los datos que transporta el segmento. 

Números de secuencia: 
el campo de número de secuencia de 32 bits define el número asignado al primer byte de datos contenido en este segmento. TCP es un protocolo de transporte de flujo. Para garantizar la conectividad, cada byte a transmitir está numerado. Durante el establecimiento de la conexión, cada parte utiliza un generador de números aleatorios para crear un número de secuencia inicial (ISN), que suele ser diferente en cada dirección. Sabemos que un número de secuencia TCP es de 32 bits. Por lo tanto, tiene un número finito (de 0 a (2 32 -1) = 4 números de secuencia de Giga) y significa que solo podremos enviar 4 GB de datos con un número de secuencia único no más que eso. Ayuda con la asignación de un número de secuencia que no entra en conflicto con otros bytes de datos transmitidos a través de una conexión TCP. Un ISN es único para cada conexión y está separado por cada dispositivo. 

Concepto Wrap Around: 
puede ocurrir con una alta tasa de tráfico, todos los números de secuencia se agotaron. El número de secuencia para cada paquete tiene que ser único, pero dado que es finito (4 Giga) en algún momento, el número de secuencia se consume por completo. Los números de secuencia que se utilizaron, cuando están disponibles, se pueden volver a utilizar según los requisitos y esta reutilización de números de secuencia se conoce como concepto Wraparound

En palabras simples, «Usar los números de secuencia una y otra vez una vez que todos se agotaron, para mantener la continuidad de la transferencia de datos» se llama Wrap around the concept. Esto ayuda a enviar más y más datos sin preocuparse por la cantidad de datos que se enviarán. Como los números de secuencia se pueden usar una y otra vez, no hay límite en la cantidad de datos. 

¿Cuándo y cómo se implementa Wrap Around? 
Por ejemplo, si estoy descargando software de tamaño 4GB+ 2 bytes, pero el número de secuencia disponible es solo 4GB, los dos bytes restantes no obtendrán ningún número de secuencia. En este tipo de casos, los números de secuencia se envuelven, es decir, se usan una y otra vez según el requisito. Este envoltorio se ve afectado por el número de secuencia inicial aleatorio. Es posible que obtengamos un número menor del número de secuencia al principio, pero después de que todos los números de secuencia se consuman nuevamente, el número de secuencia comenzará desde 0. 

Desde donde empecemos a usar números de secuencia obtendremos 2 32 números de secuencia. Por lo tanto, podemos decir que reutilizar un número de secuencia según el requisito es el concepto de ajuste del número de secuencia TCP. Ahora bien, si tenemos un concepto de ajuste, surge un nuevo concepto, es decir, tiempo de ajuste , que depende de los números de secuencia de ajuste. 

Tiempo de vuelta: 
el tiempo que se tarda en volver se denomina tiempo de vuelta. Significa que si comenzamos desde el número de secuencia 0 (o puede ser cualquier cosa), después de cuánto tiempo volveremos a usar este mismo número de secuencia. El tiempo de vuelta es el tiempo necesario para comenzar a reutilizar el mismo número de secuencia. También se puede decir que el tiempo necesario para repetir el número de secuencia es según el requisito. El tiempo de respuesta depende de los números de secuencia y el ancho de banda. Como el ancho de banda es la tasa de bits a la que se consumen los bits (número de secuencia). Cuanto más rápida es la tasa de consumo, más rápido es el consumo de números de secuencia. 

Wrap Around Time
= (Total sequence number) / (Bandwidth)
= (232) / (Bandwidth) 

¿Por qué es posible Wrap Around?  
Existe un concepto denominado Tiempo de vida , en el peor de los casos, un paquete requerirá 3 minutos (180 segundos) para llegar al destino (es decir, la vida útil del paquete). En la tecnología actual, el mismo número de secuencia estará disponible después de 180 segundos, pero no lo usaremos antes del tiempo de finalización. Siempre que Wrap Around Time > Life Time de un paquete, no habrá problema en usar el mismo número de secuencia. Después de completar el tiempo, finaliza la vida útil de los segmentos, lo que significa que en ese mismo tiempo se produce un tiempo de espera. Después de que se usan todos los números de secuencia y finaliza su vida útil, no hay daño en usar el mismo número de secuencia nuevamente. 

Reducción del tiempo de ajuste: 
si el número total de bits que se consumirán es igual al número de secuencia, no habrá necesidad de ajustar el número de secuencia. Pero esto no es posible y vamos a utilizar el concepto envolvente. Dado que el tiempo de retorno depende directamente de una serie de números de secuencia e inversamente dependiente del ancho de banda (velocidad a la que fluirán los datos). 

Cuantos más números de secuencia estén disponibles, mayor será el tiempo de respuesta. Cuanto menor sea el ancho de banda, mayor será el tiempo de respuesta. Entonces, para reducir el tiempo de respuesta, necesitamos: 
 

  1. Reducir los números de secuencia o 
     
  2. Aumentar el ancho de banda (posible) 
     

Ejemplo-1: dados n bits, ¿cuántos números de secuencia son posibles? 
Explicación: 
para 1 bit, son posibles 2 números, es decir, 0 y 1 
Para 2 bits, son posibles 4 números, es decir, 00, 01, 10, 11 
para 3 bits, son posibles 8 números, es decir, 000, 001, 010, 011, 100, 101, 110, 111 .. y así sucesivamente 
para n bits 2^n números son posibles, es decir, de 0 a 2 n -1 (en binario). 

Ejemplo-2: Dado un número n de números de secuencia, ¿cuántos bits se requieren para representar el conjunto? 
Explicación – 
Necesitamos x número de bits, sabemos que 2 x = n 
 

=> x log(2) = log(n) 

Tendremos, 
 

=> x = log(n) 

Tomando la base 2 de los registros dados. 

Ejemplo-3: El ancho de banda del canal se da como 1 GBps. ¿Cuánto tiempo puede permanecer un paquete en el enlace sin preocuparse por el problema de tener 2 paquetes con los mismos números de secuencia? 
Explicación – 
 

Bandwidth = 1 GBps = 230 
Sequence numbers = 232

So, Wrap around time: 
= Sequence number/Bandwidth
=232 / 230
=22
=4 seconds 

Ejemplo-4: GATE-CS-2014-(Conjunto-3) | Pregunta 65 

Ejemplo-5: GATE CS 2018 | Pregunta 32
 

Publicación traducida automáticamente

Artículo escrito por Bhumika_Rani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *