Comunicação de dados Protocolos básicos de enlace de dados.

30
Comunicação de dados Protocolos básicos de enlace de dados

Transcript of Comunicação de dados Protocolos básicos de enlace de dados.

Page 1: Comunicação de dados Protocolos básicos de enlace de dados.

Comunicação de dados

Protocolos básicos de enlace de dados

Page 2: Comunicação de dados Protocolos básicos de enlace de dados.

Sumário

1) Protocolos básicos de enlace de dados.2) Um protocolo simplex sem restrições.3) Um protocolo Simples Stop-and-wait em um canal livre de erros.4) Um protocolo Simples Stop-and-wait em um canal com ruídos.

Page 3: Comunicação de dados Protocolos básicos de enlace de dados.

Introdução

• Processos independentes, em cada camada, que se comunicam enviando mensagens.

Page 4: Comunicação de dados Protocolos básicos de enlace de dados.

Localização e função da Camada de Enlace

• Parte da Camada de Enlace reside nas interfaces de rede.

• Outra parte no Sistema Operacional.– Geralmente o software para o processo da

Camada de Enlace toma a forma de um driver de dispositivo.

• Quando a Camada de Enlace recebe um pacote, ela o encapsula em um quadro acrescentando-lhe um cabeçalho e um final.

Page 5: Comunicação de dados Protocolos básicos de enlace de dados.

Funções da Camada de Enlace

• Existem funções de biblioteca denominadas:– to_physical_layer.– from_physical_layer.– to_network_layer.– from_network_layer.– Wait_for_events.

• Essas funções recebem e enviam quadros e calculam o checksum.– Geralmente implementadas em hardware.

Page 6: Comunicação de dados Protocolos básicos de enlace de dados.

Controle de erro

• Quando o quadro chega, o checksum é calculado.• Se houver erro a Camada de Enlace é informada.– Event = chSum_err.

• Se o quadro chegar intacto, a Camada de Enlace também é avisada para que ela possa recebê-lo usando from_physical_layer e repassar sua carga útil à Camada de Rede.– Event = frame_arrival.

Page 7: Comunicação de dados Protocolos básicos de enlace de dados.

Campos do cabeçalho de um quadro hipotético

• O quadro é composto por quatro campos:– Kind: Informações de controle.– Seq: Número de sequência.– Ack: Confirmação de recebimento.– Info: Pode conter dados (carga útil).

Page 8: Comunicação de dados Protocolos básicos de enlace de dados.

Relacionamento entre as camadas

• A Camada de Rede obtém a mensagem da Camada de Transporte, acrescenta a ele o cabeçalho e repassa-o à Camada de Enlace para inclusão no campo info de um quadro.

• No destino, a Camada de Enlace extrai o pacote do campo info e o entrega à Camada de Rede.

Page 9: Comunicação de dados Protocolos básicos de enlace de dados.

Sumário

1) Protocolos básicos de enlace de dados.2) Um protocolo simplex sem restrições.3) Um protocolo Simples Stop-and-wait em um canal livre de erros.4) Um protocolo Simples Stop-and-wait em um canal com ruídos.

Page 10: Comunicação de dados Protocolos básicos de enlace de dados.

Protocolo simplex sem restrições

• Protocolo o mais simples possível.– Não se preocupa com a possibilidade de algo sair

errado.– Dados transmitidos em apenas um sentido.– Camadas de rede do receptor e transmissor estão

sempre prontas.– Canal nunca perde quadros.• Apenas o campo info é utilizado.• Único evento possível é o frame_arrival.

– Chegada de um quadro não danificado.

Page 11: Comunicação de dados Protocolos básicos de enlace de dados.

Transmissor

• Loop while infinito que envia dados o mais rápido possível.– Busca um pacote na Camada de Rede.– Cria o quadro.– Transmite o quadro.

Page 12: Comunicação de dados Protocolos básicos de enlace de dados.

Receptor

• Espera que algo aconteça.– Único evento é a chegada de um quadro intacto.– Função wait_for_events retorna com evento frame_arrival.

• A chamada from_physical_layer remove o quadro do buffer do hardware e o coloca em uma variável onde o código receptor poderá buscá-lo quando necessário.

• Dados são repassados à Camada de Rede.• Camada de Enlace volta a esperar pelo próximo

quadro.

Page 13: Comunicação de dados Protocolos básicos de enlace de dados.

Sumário

1) Protocolos básicos de enlace de dados.2) Um protocolo simplex sem restrições.3) Um protocolo Simples Stop-and-wait em um canal livre de erros.4) Um protocolo Simples Stop-and-wait em um canal com ruídos.

Page 14: Comunicação de dados Protocolos básicos de enlace de dados.

Protocolo simplex stop-and-waitCanal livre de erros

• Impedir que o transmissor sobrecarregue o receptor com quadros mais rapidamente do que ele conseguirá processá-los.

• Continuamos a supor que:– O canal é livre de erros.– A comunicação é simples.

Page 15: Comunicação de dados Protocolos básicos de enlace de dados.

Situações possíveis

• Receptor poderoso o bastante para processar todo quadro que chega.

• Se isto não for possível, então a Camada de Enlace deve ser “lenta” o bastante para que o receptor possa acompanhar o fluxo de quadros.

Page 16: Comunicação de dados Protocolos básicos de enlace de dados.

Solução geral

• Exemplo simples de controle de fluxo:– Receptor oferece feedback ao tansmissor.• Depois de enviar o pacote a sua Camada de Rede, o

receptor envia um pequeno quadro de volta ao transmissor, permitindo a transmissão do próximo quadro.

– Transmissor envia o quadro e aguarda a chegada do pequeno quadro de confirmação.

Page 17: Comunicação de dados Protocolos básicos de enlace de dados.

Stop-and-wait

• Os protocolos onde o transmissor envia um quadro e aguarda uma confirmação são denominados de stop-and-wait (pare e espere).

Page 18: Comunicação de dados Protocolos básicos de enlace de dados.

Deduções

• O canal físico pode ser half-duplex.• O transmissor, ao contrário do exemplo anterior, deve

esperar pela chegada da confirmação antes de retornar ao loop e buscar o próximo pacote da rede.

• A Camada de Enlace do transmissor não precisa nunca inspecionar o quadro recebido pois a resposta é sempre uma confirmação.

• A Camada de Enlace do receptor, após repassar o pacote à Camada de Rede, deve enviar o quadro de reconhecimento antes de retornar ao loop de espera de um evento.

Page 19: Comunicação de dados Protocolos básicos de enlace de dados.

Sumário

1) Protocolos básicos de enlace de dados.2) Um protocolo simplex sem restrições.3) Um protocolo Simples Stop-and-wait em um canal livre de erros.4) Um protocolo Simples Stop-and-wait em um canal com ruídos.

Page 20: Comunicação de dados Protocolos básicos de enlace de dados.

Protocolo simplex stop-and-waitCanal com ruído

• Neste modelo vamos imaginar um canal onde ocorrem erros.

• Neste modelo, estamos supondo que um quadro pode se corromper ou não chegar, sendo função da Camada de Enlace receptora detectar essas ocorrências e avisar à Camada de Enlace transmissora.

• Este aviso pode ocorrer retornando um recibo (confirmação) confirmando a chegada do quadro integro.

• No receptor, o hardware calcula o checksum. Se um erro for detectado, ou se o quadro não chegar, a Camada de Enlace receptora não enviará a confirmação.

Page 21: Comunicação de dados Protocolos básicos de enlace de dados.

Timer

• O transmissor possui um timer cuidadosamente calculado. Assim que o quadro é enviado, o timer é acionado.

• O receptor somente envia o reconhecimento somente se o quadro chegar integro.

• O transmissor aguarda a chegada da confirmação por um período de tempo (o timer) se o timer do transmissor expirar (timeout), este retransmite o quadro inúmeras vezes até chegar a confirmação.

Page 22: Comunicação de dados Protocolos básicos de enlace de dados.

Quadros duplicados

• A Camada de Rede de A envia um pacote à Camada de Enlace de A. O quadro é transmitido e chega corretamente à Camada de Enlace de B. B repassa o pacote a sua própria Camada de Rede e envia a confirmação para A.

Page 23: Comunicação de dados Protocolos básicos de enlace de dados.

Quadros duplicados (2)

• A confirmação se perde.• O canal não faz distinções entre quadros de

dados e quadros de controle.

Page 24: Comunicação de dados Protocolos básicos de enlace de dados.

Quadros duplicados (3)

• O transmissor deduz (incorretamente) que o seu quadro se perdeu e retransmite o quadro.

Page 25: Comunicação de dados Protocolos básicos de enlace de dados.

Quadros duplicados (4)

• O quadro duplicado chega integro à Camada de Enlace e, como não contém erros, é passado imediatamente à Camada de Rede, que passa a ter um quadro duplicado.

Page 26: Comunicação de dados Protocolos básicos de enlace de dados.

Problema

• O receptor deve possui alguma forma de distinguir um quadro que ele está recebendo pela primeira vez, de um quadro duplicado.

Page 27: Comunicação de dados Protocolos básicos de enlace de dados.

Números de Sequência

• Uma solução é inserir um número de sequência no quadro.

• Desta forma, o receptor pode verificar o valor do número de sequência do quadro e determinar se esse é um novo quadro ou uma retransmissão que deve ser descartada.

Page 28: Comunicação de dados Protocolos básicos de enlace de dados.

Tamanho do campo número de sequência

• Eficiência.– Quadros do menor tamanho possível.– Qual é o tamanho do campo número de

sequência?• Qual é menor tamanho possível de um campo “número

de sequência”!?• Pode ser de apenas um bit?

Page 29: Comunicação de dados Protocolos básicos de enlace de dados.

Diferença entre este protocolo e os anteriores

• O protocolo Simples Stop-and-wait em um canal com ruídos difere dos anteriores por possuir uma variável cujo valor é memorizado quando a Camada de Enlace está em estado de espera.– Em next_frame_to_send o transmissor memoriza

o número do próximo quadro a ser enviado.– Em frame_expected o receptor memoriza o

número do próximo frame a ser recebido.

Page 30: Comunicação de dados Protocolos básicos de enlace de dados.

Temporizador

• Quanto deve durar o tempo do temporizador?– Curto demais – Pacotes retransmitidos

desnecessariamente.– Amplo demais – Retransmissões necessárias

demoram a ocorrer.