Protocolo de ventana deslizante | Juego 1 (lado del remitente)

Requisito previo: Detener y esperar ARQ

Stop and Wait ARQ ofrece control de flujo y error, pero puede causar grandes problemas de rendimiento ya que el remitente siempre espera el reconocimiento, incluso si tiene el siguiente paquete listo para enviar. Considere una situación en la que tiene una conexión de gran ancho de banda y el retraso de propagación también es alto (está conectado a algún servidor en algún otro país a través de una conexión de alta velocidad), no puede usar esta velocidad completa debido a las limitaciones de detener y esperar .

El protocolo de ventana deslizante maneja este problema de eficiencia al enviar más de un paquete a la vez con un número de secuencia mayor. La idea es la misma que la canalización en arquitectura.

Pocas terminologías:

Retardo de transmisión (Tt) : tiempo para transmitir el paquete desde el host al enlace saliente. Si B es el ancho de banda del enlace y D es el tamaño de datos para transmitir

    Tt = D/B  

Retraso de propagación (Tp) : es el tiempo que tarda el primer bit transferido por el host en el enlace saliente para llegar al destino. Depende de la distancia d y de la velocidad de propagación de la onda s (depende de las características del medio).

   Tp = d/s  

Eficiencia : se define como la relación entre el tiempo útil total y el tiempo de ciclo total de un paquete. Para el protocolo de parada y espera,

Total cycle time = Tt(data) + Tp(data) + 
                    Tt(acknowledgement) + Tp(acknowledgement)
              =  Tt(data) + Tp(data) + Tp(acknowledgement)
         =   Tt + 2*Tp

Dado que los acuses de recibo tienen un tamaño muy reducido, se puede despreciar su retardo de transmisión.

Efficiency = Useful Time / Total Cycle Time 
           = Tt/(Tt + 2*Tp) (For Stop and Wait)
           = 1/(1+2a)  [ Using a = Tp/Tt ]

Ancho de banda efectivo (EB) o rendimiento : número de bits enviados por segundo.

EB = Data Size(D) / Total Cycle time(Tt + 2*Tp)
Multiplying and dividing by Bandwidth (B),
       =  (1/(1+2a)) * B   [ Using a = Tp/Tt ]
       =  Efficiency * Bandwidth

Capacidad del enlace : si un canal es Full Duplex, los bits se pueden transferir en ambas direcciones y sin colisiones. El número de bits que un canal/enlace puede contener como máximo es su capacidad.

 Capacity = Bandwidth(B) * Propagation(Tp)
        
 For Full Duplex channels, 
 Capacity = 2*Bandwidth(B) * Propagation(Tp)

Concepto de canalización

En el protocolo Stop and Wait, solo se transmite 1 paquete al enlace y luego el remitente espera el reconocimiento del receptor. El problema en esta configuración es que la eficiencia es muy inferior ya que no estamos llenando el canal con más paquetes después de que el primer paquete se haya colocado en el enlace. Dentro del tiempo de ciclo total de unidades Tt + 2*Tp, ahora calcularemos la cantidad máxima de paquetes que el remitente puede transmitir en el enlace antes de obtener un acuse de recibo.

 In Tt units ----> 1 packet is Transmitted.
 In 1 units  ----> 1/Tt packet can be Transmitted.
 In  Tt + 2*Tp units ----->  (Tt + 2*Tp)/Tt 
                             packets can be Transmitted
                ------>  1 + 2a  [Using a = Tp/Tt]

Paquetes máximos que se pueden transmitir en el tiempo total del ciclo = 1+2*a

Permítanme explicar ahora con la ayuda de un ejemplo.

Considere Tt = 1 ms, Tp = 1,5 ms.

En la imagen que se muestra a continuación, después de que el remitente haya transmitido el paquete 0, transmitirá inmediatamente los paquetes 1, 2, 3. El reconocimiento de 0 llegará después de 2*1,5 = 3 ms. En Stop and Wait, en el tiempo 1 + 2*1.5 = 4ms, estábamos transfiriendo un solo paquete. Aquí mantenemos una ventana de paquetes que hemos transmitido pero aún no reconocidos .

Después de haber recibido el Ack para el paquete 0, la ventana se desliza y se le puede asignar el número de secuencia 0 al siguiente paquete. Reutilizamos los números de secuencia que hemos reconocido para que el tamaño del encabezado se mantenga al mínimo, como se muestra en el diagrama a continuación.

Número mínimo de bits para la ventana del remitente (muy importante para GATE)

Como hemos visto anteriormente,

 Maximum window size = 1 + 2*a    where a = Tp/Tt

 Minimum sequence numbers required = 1 + 2*a. 

Todos los paquetes en la ventana actual recibirán un número de secuencia. Número de bits necesarios para representar la ventana del remitente = ceil(log2(1+2*a)).

Pero a veces el número de bits en los encabezados del protocolo está predefinido. El tamaño del campo del número de secuencia en el encabezado también determinará la cantidad máxima de paquetes que podemos enviar en el tiempo total del ciclo. Si N es el tamaño del campo de número de secuencia en el encabezado en bits, entonces podemos tener 2 N números de secuencia.

Tamaño de ventana ws = min(1+2*a, 2 N )

Si desea calcular los bits mínimos necesarios para representar números de secuencia/ventana del remitente, será ceil(log2(ws)) .

En este artículo, hemos discutido la ventana de envío solamente. Para la ventana de recepción, hay 2 protocolos, a saber, Go Back N y Selective Repeat , que se utilizan para implementar la canalización de forma práctica. Hablaremos de la ventana de recepción en el set 2.

Este artículo ha sido contribuido por Pranjul Ahuja. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *