Go-Back-N (GBN) é um protocolo ARQ de janela deslizante que permite ao remetente transmitir vários quadros (até um tamanho de janela definido) sem esperar por confirmações individuais.
salvar vídeo do youtube vlc
- Se um pacote for perdido ou corrompido, o remetente retransmite esse pacote e todos os pacotes subsequentes na janela.
- Exemplo: Se os pacotes 1–5 forem enviados e o pacote 3 for perdido, os pacotes 3, 4 e 5 serão retransmitidos.
Este mecanismo garante confiabilidade, mas pode desperdiçar largura de banda se erros ocorrerem com frequência.
As três principais características do GBN são:
1. Tamanho da janela do remetente (W é )
É o próprio N. Se dissermos que o protocolo é GB10, então Ws = 10. N deve ser sempre maior que 1 para implementar o pipelining. Para N = 1 reduz-se ao Protocolo Parar e Esperar .
Eficiência de GBN = N/(1+2a)
onde
uma = Tp/Tt
Tp= Atraso de propagação
Tt= Atraso de transmissão do remetente
Qual será a eficiência se o atraso de processamento, o atraso de fila e o atraso de transmissão de confirmação não forem zero?
Eficiência = N * (Tempo útil) / (Tempo total)
onde tempo útil=Tt
Tempo total = Tt+ 2 * Tp+PR+ Pq + Tt(ace)
onde
- T t = Atraso de transmissão do lado do remetente
- T p = Atraso de propagação
- Pr = Atraso no processamento
- Pq = Atraso na fila
- T t (ace) = Atraso de Transmissão de Reconhecimento
Se B é a largura de banda do canal então
Largura de banda ou taxa de transferência efetiva
= Eficiência * Largura de banda
= (N/(1+2a)) *B
2. Tamanho da janela do receptor (W R )
- Sempre 1 em GBN.
- O receptor aceita apenas o próximo pacote esperado.
- Pacotes fora de ordem são descartados.
3. Agradecimentos
Reconhecimentos (ACKs) são sinais enviados pelo receptor para confirmar o recebimento bem-sucedido de pacotes de dados. Eles garantem uma comunicação confiável entre remetente e destinatário. Se um ACK não for recebido dentro de um tempo definido, o remetente assume que o pacote foi perdido e o retransmite.
Tipos de ACK
ACK cumulativo
- Uma única confirmação confirma o recebimento de todos os pacotes até certo ponto.
- Vantagem: Menos tráfego (menos ACKs).
- Desvantagem: Menos confiável se um ACK for perdido, vários pacotes parecerão não reconhecidos.
ACK independente
- Cada pacote é reconhecido individualmente.
- Vantagem: Alta confiabilidade.
- Desvantagem: Maior tráfego devido a mais ACKs.
Funcionamento do protocolo GB-N
Enviando página
- Mantém uma janela de tamanho N (por exemplo, tamanho da janela GB4 = 4).
- Pode enviar até N pacotes não confirmados.
- Cada pacote transmitido possui um temporizador.
- Se um ACK for recebido, a janela desliza para frente.
- Se ocorrer um tempo limite (para um pacote perdido), o remetente retransmite esse pacote e todos os subsequentes na janela.
Lado do receptor
- Mantém um tamanho de janela de 1 (WR = 1).
- Aceita apenas o pacote esperado em sequência.
- Se o pacote correto chegar: envia um ACK e passa para o próximo número de sequência esperado.
- Se um pacote fora de ordem chegar: descarta-o e reenvia o ACK para o último pacote recebido corretamente.
Relação entre tamanho da janela e números de sequência
O tamanho da janela e números de sequência em uma janela deslizante, protocolos como Go-Back-N ou Selective Repeat estão intimamente relacionados.
- O tamanho da janela determina quantos pacotes o remetente pode transmitir sem precisar de confirmação. É como um limite de quantos dados podem ser enviados antes que o remetente tenha que parar e aguardar a confirmação.
- Números de sequência são usados para rotular pacotes para que o receptor saiba sua ordem e possa detectar quaisquer pacotes perdidos.
O tamanho da janela deve ser menor ou igual à faixa de disponibilidade números de sequência . Se o tamanho da janela for muito grande comparado ao intervalo de números de sequência, o receptor poderá ficar confuso porque o mesmo número de sequência poderá ser reutilizado antes que o primeiro seja reconhecido. Isso tornaria difícil saber se um pacote é novo ou duplicado.
busca adversária
A relação entre o tamanho da janela e o número de sequência é dada pela fórmula:
EMé+ WR<= ASN
onde Wéé o tamanho da janela do remetente e WRé o tamanho da janela do receptor e ASN é o número de sequência disponível.
EMé+ 1<= ASN because WR= 1 no protocolo GB-N
Portanto, os números de sequência mínimos exigidos em GBN = N + 1
Bits necessários em GBN = ⌈ log2(N + 1)⌉
O 1 extra é necessário para evitar o problema de pacotes duplicados.
Exemplo de Protocolo GB-N
Considere um exemplo de GB4.
- O tamanho da janela do remetente é 4, portanto, exigimos um mínimo de 4 números de sequência para rotular cada pacote na janela.
- Agora suponha que o receptor tenha recebido todos os pacotes (0 1 2 e 3 enviados pelo remetente) e, portanto, esteja aguardando novamente o pacote número 0 (não podemos usar 4 aqui, pois temos apenas 4 números de sequência disponíveis, pois N = 4).
- Agora suponha que o reconhecimento cumulativo dos 4 pacotes acima seja perdido na rede.
- No lado do remetente haverá tempo limite para o pacote 0 e, portanto, todos os 4 pacotes serão transmitidos novamente.
- O problema agora é que o receptor está aguardando um novo conjunto de pacotes que deveria ter começado em 0, mas agora receberá as cópias duplicadas dos pacotes aceitos anteriormente.
- Para evitar isso, precisamos de um número de sequência extra.
- Agora o receptor poderia facilmente rejeitar todos os pacotes duplicados que começavam em 0 porque agora estará aguardando o pacote número 4 (adicionamos um número de sequência extra agora).
Isto é explicado com a ajuda das ilustrações abaixo. Tentando com números de sequência 4.
Agora tentando com um número de sequência extra.
Agora está claro por que precisamos de 1 bit extra no protocolo GBN.
Vantagens do protocolo GBN
- Simples de implementar e eficaz para uma comunicação confiável.
- Melhor desempenho do que protocolos stop-and-wait para redes livres de erros ou com baixo erro.
Desvantagens do protocolo GBN
- Ineficiente se os erros forem frequentes, pois vários quadros podem precisar ser retransmitidos desnecessariamente.
- A largura de banda pode ser desperdiçada devido a retransmissões redundantes.