Upload
internet
View
116
Download
6
Embed Size (px)
Citation preview
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).