Red de conocimiento informático - Conocimiento sistemático - Control de flujo (dejar de esperar, GBN, SR)

Control de flujo (dejar de esperar, GBN, SR)

La falta de coincidencia entre una mayor velocidad de envío y una menor capacidad de recepción provocará errores de transmisión, por lo que el control del flujo también es una tarea importante de la capa de enlace de datos.

El control de flujo de la capa de enlace de datos es punto a punto, mientras que el control de flujo de la capa de transporte es de extremo a extremo.

El significado del control de flujo de la capa de enlace de datos es: si el receptor no puede aceptarlo, no responderá a la confirmación. (Marco de confirmación)

El control de flujo de la capa de transporte significa: el extremo receptor envía una ventana de notificación al extremo emisor.

Los métodos de control de flujo incluyen el protocolo de parada y espera y el protocolo de ventana deslizante (GBN, SR).

¿Por qué existe un acuerdo de parada y espera?

Además de los errores de bits, también habrá pérdida de paquetes en el canal subyacente (fallos de líneas físicas, fallos de equipos, ataques de virus, errores de información de enrutamiento, etc., provocarán la pérdida de paquetes). para lograr el control del flujo.

¿Estudiar los requisitos previos para esperar el acuerdo?

Aunque ahora se usa comúnmente la comunicación full-duplex, para facilitar la discusión, solo una parte envía datos (remitente) y una parte recibe datos (receptor).

Debido a que estamos discutiendo el principio de transmisión confiable, no consideramos a qué nivel se transmiten los datos.

"Dejar de esperar" significa dejar de enviar cada paquete, esperar la confirmación de la otra parte y luego enviar el siguiente paquete después de recibir la confirmación.

Dividido en dos situaciones:

? ¿No hay condiciones de error

? Hay errores (tres situaciones)

——El marco de datos se pierde o se detecta un error en el marco.

-Ack se perdió

-ACK llegó tarde

El protocolo de detener y esperar es simple, pero la utilización del canal es demasiado baja.

El remitente de GBN debe responder con tres cosas.

1. Llamada de la capa superior

Cuando la capa superior quiere enviar datos, el remitente primero verifica si la ventana de envío está llena. Si no, genera un marco y lo envía; si la ventana está llena, el remitente solo necesita devolver datos a la capa superior, indicando a la capa superior que la ventana está llena. La capa superior lo enviará más tarde (en realidad, el remitente puede almacenar en caché estos datos y enviar el marco cuando la ventana no está llena).

2. Recibir un ACK.

En el protocolo GBN, el acuse de recibo acumulativo se utiliza para confirmar la enésima trama, lo que indica que el receptor ha recibido la enésima trama y todas las tramas anteriores.

3. Evento de tiempo de espera

El nombre del protocolo es Back N Frame/Back N Frame, que proviene del comportamiento del remitente cuando hay tramas perdidas y con mucho retraso. Al igual que en el protocolo de parada y espera, el temporizador se utilizará nuevamente para recuperar la trama de datos o para reconocer la pérdida de la trama. Si se agota el tiempo de espera, el remitente retransmite todas las tramas enviadas pero no reconocidas.

Qué debe hacer el receptor GBN.

Si se reciben N tramas correctamente en secuencia, el receptor enviará un ACK para las N tramas y transmitirá la parte de datos de la trama a la capa superior.

En otros casos, las tramas se eliminan y los ACK se retransmiten en orden para la trama recibida más recientemente. El receptor no necesita almacenar en caché ninguna trama desordenada y solo necesita mantener una información: expectedseqnum (el número de secuencia de la siguiente trama recibida secuencialmente).

¿Puede la longitud de la ventana ser infinita?

Si se utilizan n bits para numerar las tramas, entonces el tamaño de la ventana de transmisión WT debería satisfacer: debido a que el tamaño de la ventana de envío es demasiado grande, el receptor no tendrá forma de distinguir las tramas nuevas de las antiguas. marcos.

Ejemplo:

Debido a que GBN es un reconocimiento acumulativo, el reconocimiento del cuadro 3 significa que se han recibido los cuadros anteriores al 3 y al 3, por lo que los cuadros que se retransmitirán son 4, 5. , 6 y 7, es decir, el número de fotogramas a retransmitir es 4, así que elija c

El remitente SR debe responder a tres cosas:

Llamada de la capa superior<. /p> p>

Después de recibir los datos de la capa superior, el remitente SR verifica el siguiente número de secuencia que se puede usar para la trama. Si el número de secuencia está dentro de la ventana de envío, la trama de datos se envía en caso contrario; Al igual que GBN, se almacenan en caché o se devuelven a la capa superior antes de la transmisión.

2. Recibir un ACK.

Si se recibe un ACK y el número de secuencia de la trama está dentro de la ventana, el remitente SR marca la trama confirmada como recibida. Si el número de secuencia del fotograma es el límite inferior de la ventana (el número de secuencia corresponde a la primera ventana situada más a la izquierda), la ventana avanza hasta el fotograma no reconocido con el número de secuencia más pequeño.

Si la ventana se ha movido y hay fotogramas no enviados con números de secuencia en la ventana, estos fotogramas se envían.

3. Evento de tiempo de espera

Cada fotograma tiene su propio temporizador y solo se retransmite un fotograma después del evento de tiempo de espera.

Qué debe hacer el receptor SR

Bienvenidos a todos los que llegan (marco en la ventana)

El receptor SR reconocerá los fotogramas recibidos correctamente independientemente de si están en orden o no. . Los fotogramas fuera de orden se almacenarán en el buffer y se devolverán al remitente con un fotograma de confirmación [quien reciba la confirmación] hasta que se reciban todos los fotogramas (es decir, fotogramas con números de secuencia más pequeños), y luego se podrá entregar un lote de fotogramas en Ordene la capa superior y luego la ventana deslizante se puede mover hacia adelante.

Si se recibe una trama fuera del número de secuencia de la ventana (menos que el límite inferior de la ventana), se devuelve ACK. De lo contrario, se ignorará el marco.

¿Puede la longitud de la ventana ser infinita?

Para SR, la ventana de transmisión es preferiblemente igual a la ventana de recepción.

Si se excede, por ejemplo, cuando n=2, la ventana máxima es 2. Si la ventana es 3, es imposible distinguir si el cuadro retransmitido es un cuadro antiguo o un cuadro nuevo (como se muestra en la figura siguiente).

Ejemplo

Respuesta:

Protocolo ARQ continuo (GBN): el remitente puede enviar múltiples tramas de datos de forma continua si se recibe una trama de confirmación del receptor. Puedes seguir enviando. Si se produce un error en una trama, el receptor simplemente descarta la trama y todas las tramas posteriores, y el remitente necesita retransmitir la trama y todas las tramas posteriores después de un tiempo de espera. Cabe señalar aquí que en el protocolo ARQ continuo, el receptor generalmente adopta el método de confirmación acumulativa, es decir, el receptor envía confirmación al último paquete que llega en secuencia;

Protocolo ARQ selectivo (SR): En la selección En el protocolo de retransmisión selectiva, el receptor confirma uno por uno los paquetes de datos recibidos correctamente, independientemente de si los paquetes de datos recibidos están en orden o no, siempre que se reciban correctamente, se envía un paquete ACK selectivo para su confirmación. . Por lo tanto, ACK. Cuando se selecciona el protocolo de retransmisión, el paquete ya no tiene la función de acuse de recibo acumulativo. Preste especial atención a la diferencia entre este y el protocolo GBN.

Tanto los fotogramas 0 como 2 deben retransmitirse, por lo que el número de fotogramas que deben retransmitirse en este problema es num=2, y b.