03 protocolos de janela deslizante

Download Report

Transcript 03 protocolos de janela deslizante

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).