comunicação de dados protocolos básicos de enlace de dados
TRANSCRIPT
![Page 1: Comunicação de dados Protocolos básicos de enlace de dados](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/1.jpg)
Comunicação de dados
Protocolos básicos de enlace de dados
![Page 2: Comunicação de dados Protocolos básicos de enlace de dados](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022081421/552fc160497959413d8e8998/html5/thumbnails/30.jpg)
Temporizador
• Quanto deve durar o tempo do temporizador?– Curto demais – Pacotes retransmitidos
desnecessariamente.– Amplo demais – Retransmissões necessárias
demoram a ocorrer.