Protocolo de janelas deslizantes

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book-4.svg
Esta página ou secção cita fontes confiáveis e independentes, mas que não cobrem todo o conteúdo, comprometendo a sua verificabilidade (desde Fevereiro de 2008).
Por favor, adicione mais referências inserindo-as no texto. Material sem fontes poderá ser removido.—Encontre fontes: Google (notícias, livros e acadêmico)

Protocolo de janelas deslizantes é usado para a entrega confiável e ordenada de mensagens. É um protocolo orientado à conexão (primeiro garante que a conexão está ativa, para depois iniciar o envio das mensagens) que garante que todas as mensagens enviadas são entregues aos destinatários integralmente e na ordem correta de envio.

O receptor envia uma mensagem de confirmação de recebimento (ACK) a cada mensagem recebida. Se o transmissor não recebe o ACK de uma mensagem num tempo pré-estabelecido, ele envia a mesma mensagem novamente. O transmissor cria uma espécie de tabela, onde cada posição é uma janela, em que são gravadas todas as mensagens que foram enviadas.

A cada ACK recebido, avança uma posição da tabela para a direita (a janela “desliza”). Por questão de segurança, se o receptor receber uma mensagem com numeração fora do intervalo de numeração das janelas a mesma é descartada e se estiver na numeração, porém fora de ordem a mensagem é armazenada.

Protocolo de janelas deslizantes[editar | editar código-fonte]

  1. Um protocolo que envia um frame e aguarda a sua confirmação é ineficiente porque desperdiça o canal que é full duplex;
  2. Um sistema que resolve esse problema é o de janelas deslizantes;
  3. O emissor mantém uma janela de transmissão de frames enviados mas ainda não confirmados;
  4. Desta forma o mesmo pode transmitir mais frames enquanto aguarda a confirmação;
  5. A medida que o receptor recebe os frames, envia para a origem uma confirmação especificando até qual frame já recebeu corretamente;
  6. Com base nas confirmações recebidas, o emissor elimina da janela de envio os confirmados e transmite novos frames;
  7. O emissor deve manter um controle de timeout para cada frame enviado;
  8. O tempo de timeout define o limite de tempo em que a confirmação pode chegar do destinatário;
  9. Se dentro deste tempo, a confirmação não chegar, o emissor assume que o frame não foi enviado;

Operação do receptor[editar | editar código-fonte]

Toda vez que um pacote com numeração x é recebido, o receptor verifica se ele cai na janela de recepção, nrx < nr+wr. (Os receptores mais simples só têm que acompanhar um valor nr=ns.) Se ele estiver dentro da janela, o receptor aceita isso. Se for numerado nr, o número de sequência de recepção é aumentado em 1 e, possivelmente, mais se outros pacotes consecutivos foram previamente recebidos e armazenados. Se x > nr, o pacote é armazenado até que todos os pacotes anteriores tenham sido recebidos.[1] Se xns, o último é atualizado para ns=x+1.

Ver também[editar | editar código-fonte]