Comunicação de Dados
Protocolos de Janela Deslizante
Sumário
1) Protocolo de Janela Deslizante de um bit.
2) Protocolo que utiliza go-back-n.
3) Protocolo que utiliza transmissão seletiva.
Introdução
•
•
•
•
O que são protocolos de Janela Deslizante.
Questão dos canais.
Pegar carona.
Vantagens e desvantagens.
Dois canais
• Nos protocolos apresentados anterior mente, os quadros de dados
eram transmitidos em apenas um sentido.
• Em situações mais práticas, há necessidade de transmitir dados em
ambos os sentidos.
• Você pode obter uma transmissão de dados full-duplex definindo
dois canais de comunicação distintos e usar cada um deles para um
tráfego de dados simplex (em diferentes sentidos).
• Se isso for feito, haverá dois circuitos físicos separados, cada um
com um canal "direto" (para dados) e um canal "inverso" (para
confirmações).
• Em ambos os casos, a largura de banda do canal inverso é quase
totalmente perdida. Na verdade, o usuário está pagando por dois
circuitos, mas está usando apenas a capacidade de um deles.
Uso do canal
• Uma ideia melhor é usar o mesmo circuito
para dados em ambos os sentidos.
– Afinal de contas, nos protocolos 2 (Protocolo
básico de enlace de dados) e 3 (Protocolo simplex
sem restrições) ele já estava sendo usado para
transmitir quadros em ambos os sentidos.
• O canal inverso tem a mesma capacidade do
canal direto.
Tipo de quadro
• Nesse modelo, os quadros de dados enviados
de A para B são misturados com os quadros de
confirmação enviados de A para B.
• Ao verificar o campo kind do cabeçalho de um
quadro recebido, o receptor pode identificar
se o quadro é de dados ou de confirmação.
Pegar carona
• Apesar de o entrelaçamento de quadros de dados
e de controle no mesmo circuito representar um
avanço em relação ao uso de dois circuitos físicos
separados, ainda é possível introduzir mais um
aperfeiçoamento.
• Quando um quadro de dados chega a seu
destino, em vez de enviar imediatamente um
quadro de controle separado, o receptor se
contém e espera até a camada de rede enviar o
próximo quadro.
Piggybacking
• Quando o quadro chega, o receptor ao invés
de mandar imediatamente o reconhecimento,
ele aguarda a sua Camada de Rede enviar o
próximo pacote.
• A confirmação é acrescentada ao quadro de
dados por meio do campo ack.
• Note que a confirmação está pegando carona
no quadro de dados. A isto de dá o nome de
piggybacking (pegar carona).
Janelas de Transmissão e Recepção
• Em qualquer instante o transmissor mantém
um conjunto de números de sequência
correspondentes a quadros que ele pode
enviar.
• O receptor mantém uma janela
correspondente a quantidade de quadros que
está apto a aceitar.
– As janelas não precisam ter os mesmos limites
superior e inferior ou o mesmo tamanho.
Janela de Transmissão
• Os números de sequência no transmissor representam
os quadros que foram ou que podem ser enviados, mas
ainda não confirmados.
• Sempre que chega um novo pacote da Camada de
Rede, ele recebe um novo número de sequência, mais
alto e o limite superior da janela é aumentado em uma
unidade.
• Quando a confirmação é recebida, o limite inferior é
incrementado em uma unidade.
• Se a janela chegar ao seu limite máximo, a Camada de
Enlace é obrigada a desativar a Camada de Rede até
que outro buffer esteja disponível.
Janela de Recepção
• Corresponde aos quadros que ela está apta a
aceitar.
• Quadros fora da janela são descartados.
• Ao receber um quadro, ela o repassa à
Camada de Rede e envia a confirmação.
• A Camada de Rede sempre recebe quadros na
ordem em que foram enviados.
Vantagens
• O campo ack do cabeçalho de quadro precisa
de apenas alguns bits, enquanto um quadro
separado precisaria de um cabeçalho, da
confirmação e de um total de verificação.
• Além disso, um número menor de quadros
enviados significa menor quantidade de
interrupções de "chegada de quadro", e
• Talvez menor quantidade de buffers no
receptor.
Desvantagens
• Quanto tempo a camada de enlace de dados
deve esperar por um pacote ao qual deverá ac
• Se a camada de enlace de dados esperar durante
um intervalo de tempo maior que o permitido
pelo timeout do transmissor, o quadro será
retransmitido, o que invalidará todo o processo
de confirmação.
– Esperar durante um número fixo de milissegundos.
– Se nenhum pacote tiver chegado até o final desse
intervalo de tempo, a camada de enlace de dados
simplesmente enviará um quadro de confirmação
separado.
Sumário
1) Protocolo de Janela Deslizante de um bit.
2) Protocolo que utiliza go-back-n.
3) Protocolo que utiliza transmissão seletiva.
Protocolos de Janela Deslizante de 1 bit
• Nos protocolos mostrados anteriormente, a taxa
de utilização do enlace é ineficiente.
• Em outro modelo, os quadros de dados e de
confirmação são misturados.
– O campo kind mostra se o quadro é de dados ou de
confirmação.
• Canal bidirecional.
• Vamos supor que neste protocolo de Janela
Deslizante, o tamanho máximo da janela é igual a
1.
Regra Stop-and-wait
• Esse tipo de protocolo utiliza o stop-and-wait.
– O transmissor envia um quadro e aguarda sua
confirmação antes de enviar o quadro seguinte.
Variáveis
• Next_frame_to _send.
– Informa qual quadro o transmissor está tentando
enviar.
• Frame_expected.
– Informa que quadro o receptor está esperando.
• Nos dois casos, 0 e 1 são as únicas
possibilidades.
Funcionamento
• A máquina que inicia busca o primeiro pacote
em sua camada de rede.
• Constrói um quadro a partir dele e o envia.
• Quando esse (ou qualquer) quadro chega ao
destino, a camada de enlace de dados
receptora verifica se ele é uma cópia.
• Se o quadro for o esperado, ele será
repassado à camada de rede e a janela do
receptor será deslocada para cima.
Funcionamento (2)
• O campo de confirmação contém o número do último
quadro recebido sem erro.
• Se esse número estiver de acordo com o número de
sequência do quadro que o transmissor está tentando
enviar, o transmissor saberá que já cuidou do quadro
armazenado em buffer e poderá buscar o pacote
seguinte em sua camada de rede.
• Se o número de sequência for discordante, o
transmissor deve continuar tentando enviar o mesmo
quadro.
• Sempre que um quadro é recebido, um outro quadro
também é enviado de volta.
Exemplificação
Sumário
1) Protocolo de Janela Deslizante de um bit.
2) Protocolo que utiliza go-back-n.
3) Protocolo que utiliza transmissão seletiva.
Pipelining
• Técnica de manter vários quadros pendentes.
• Quando um quadro chega danificado no
receptor ele é descartado. Porém, o que
acontece com os demais quadros que o
seguem.
• Há duas estratégias:
– Go-back-n.
– Retransmissão seletiva.
Go-back-n
• O receptor descarta o quadro recebido com erro
e todos os quadros subsequentes, recebidos sem
erros, até receber a retransmissão do quadro
errado.
• Nenhuma confirmação desses quadros
descartados sem erros é enviada.
• Em outras palavras, a Camada de Enlace se
recusa a aceitar qualquer quadro, exceto o
próximo que ela tem de entregar à Camada de
Rede.
Sumário
1) Protocolo de Janela Deslizante de um bit.
2) Protocolo que utiliza go-back-n.
3) Protocolo que utiliza transmissão seletiva.
Retransmissão seletiva
• Um quadro incorreto recebido é descartado.
• Porém, os quadros recebidos depois dele, sem
defeitos, são aceitos e inseridos no buffer.
• Quando o temporizador termina, somente o
quadro com erro é retransmitido.
Negative Acknowledgement
• Com frequência, a retransmissão seletiva
envia um pacote NAK ao detectar um erro.
• Isso evita a necessidade de aguardar o
timeout para retransmitir o quadro.
Discussão em classe
• Um campo de um único bit, neste modelo em
especial, pode ser utilizado com eficiência?
• Como isto funcionaria conceitualmente.
Solicitação de Repetição Automática
• Protocolos nos quais o transmissor espera por
uma confirmação antes de continuar sua
tarefa de transmissão.
– Solicitação de repetição automática (ARQ).
– Confirmação positiva com repetição (PAR).
Download

03 protocolos de janela deslizante