comunicação de dados protocolos básicos de enlace de dados

Post on 22-Apr-2015

126 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

Introdução

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

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

Quadros duplicados (2)

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

dados e quadros de controle.

Quadros duplicados (3)

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

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.

Problema

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

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.

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?

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.

Temporizador

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

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

demoram a ocorrer.

top related