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

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

Embed Size (px)

Citation preview

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.