You are on page 1of 35

Comunicao de dados

Protocolos bsicos de enlace de dados

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

Localizao e funo 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 cabealho e um final.

Funes da Camada de Enlace


Existem funes de biblioteca denominadas:
to_physical_layer. from_physical_layer. to_network_layer. from_network_layer. Wait_for_events.

Essas funes 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 tambm avisada para que ela possa receb-lo usando from_physical_layer e repassar sua carga til Camada de Rede.
Event = frame_arrival.

Campos do cabealho de um quadro hipottico


O quadro composto por quatro campos:
Kind: Informaes de controle. Seq: Nmero de sequncia. Ack: Confirmao de recebimento. Info: Pode conter dados (carga til).

Relacionamento entre as camadas


A Camada de Rede obtm a mensagem da Camada de Transporte, acrescenta a ele o cabealho e repassa-o Camada de Enlace para incluso no campo info de um quadro. No destino, a Camada de Enlace extrai o pacote do campo info e o entrega Camada de Rede.

Protocolo simplex sem restries


Protocolo o mais simples possvel.
No se preocupa com a possibilidade de algo sair errado. Dados transmitidos em apenas um sentido. Camadas de rede do receptor e transmissor esto sempre prontas. Canal nunca perde quadros.
Apenas o campo info utilizado. nico evento possvel o frame_arrival.
Chegada de um quadro no danificado.

Transmissor
Loop while infinito que envia dados o mais rpido possvel.
Busca um pacote na Camada de Rede. Cria o quadro. Transmite o quadro.

Receptor
Espera que algo acontea.
nico evento a chegada de um quadro intacto. Funo 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 varivel onde o cdigo receptor poder busc-lo quando necessrio. Dados so repassados Camada de Rede. Camada de Enlace volta a esperar pelo prximo quadro.

Protocolo simplex stop-and-wait Canal 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 comunicao simples.

Situaes possveis
Receptor poderoso o bastante para processar todo quadro que chega. Se isto no for possvel, ento a Camada de Enlace deve ser lenta o bastante para que o receptor possa acompanhar o fluxo de quadros.

Soluo 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 transmisso do prximo quadro.

Transmissor envia o quadro e aguarda a chegada do pequeno quadro de confirmao.

Stop-and-wait
Os protocolos onde o transmissor envia um quadro e aguarda uma confirmao so denominados de stop-and-wait (pare e espere).

Dedues
O canal fsico pode ser half-duplex. O transmissor, ao contrrio do exemplo anterior, deve esperar pela chegada da confirmao antes de retornar ao loop e buscar o prximo pacote da rede. A Camada de Enlace do transmissor no precisa nunca inspecionar o quadro recebido pois a resposta sempre uma confirmao. A Camada de Enlace do receptor, aps repassar o pacote Camada de Rede, deve enviar o quadro de reconhecimento antes de retornar ao loop de espera de um evento.

Protocolo simplex stop-and-wait Canal com rudo


Neste modelo, estamos supondo que um quadro pode se corromper ou no chegar, sendo funo da Camada de Enlace detectar essas ocorrncias. O hardware receptor calcula o checksum.

Procedimentos
O transmissor possui um timer. Assim que o quadro enviado, o timer acionado. O receptor somente envia o reconhecimento se o quadro chegar integro. Se o timer do transmissor expirar (timeout), este retransmite o quadro inmeras vezes at chegar a confirmao.

Pacotes duplicados
A Camada de Enlace tem, entre as suas funes, de entregar os pacotes Camada de Rede, livres de erros. A Camada de rede do receptor no tem como saber se um pacote foi perdido ou duplicado. A Camada de Enlace deve garantir que nenhum pacote seja entregue duplicado Camada de Rede.

Nmeros de Sequncia
Torna-se necessrio distinguir um quadro que ele esteja recebendo pela primeira vez de um quadro que est sendo retransmitido. A soluo inserir um nmero de sequncia no quadro. Desta forma, o receptor pode verificar o valor do nmero de sequncia do quadro e determinar se esse um novo quadro ou uma retransmisso que deve ser descartada.

Tamanho do campo nmero de sequncia


Eficincia.
Quadros do menor tamanho possvel. Qual o tamanho do campo nmero de sequncia?
Pode ser de apenas um bit?

Solicitao de Repetio Automtica


ARQ (Automatic Repeat reQuest). PAR (Positive Acknowledgement with Retransmission).
Protocolos nos quais o transmissor espera por uma confirmao antes de continuar sua tarefa de transmisso.

Dedues
O terceiro modelo difere dos demais pela presena de uma varivel , no transmissor, que memoriza o nmero de sequncia do quadro enviado enquanto a Camada de Enlace est no modo de espera. No receptor, outra varivel memoriza o nmero de sequncia do prximo quadro esperado.

Temporizador
Quanto deve durar o tempo do temporizador?
Curto demais Pacotes retransmitidos desnecessariamente. Amplo demais Retransmisses necessrias demoram a ocorrer.

Protocolos de Janela Deslizante


Nos protocolos mostrados anteriormente, a taxa de utilizao do enlace ineficiente. Em outro modelo, os quadros de dados e de confirmao so misturados.
O campo kind mostra se o quadro de dados ou de confirmao.

Canal bidirecional.

Piggybacking
Quando o quadro chega, o receptor ao invs de mandar imediatamente o reconhecimento, ele aguarda a sua Camada de Rede enviar o prximo pacote. A confirmao acrescentada ao quadro de dados por meio do campo ack. Note que a confirmao est pegando carona no quadro de dados. A isto de d o nome de piggybacking (pegar carona).

Vantagens
Melhor uso da largura de banda.
Campo ack precisa de poucos bits. Um quadro separado precisaria do cabealho, da confirmao e do checksum.

Uma quantidade menor de quadros demanda um processamento menor tanto no transmissor quanto no receptor.

Problemas
Quanto tempo o receptor deve esperar por um pacote de Camada de Rede?
Esquema ad hoc.
Nmero fixo de milisegundos.
Se um pacote chegar, a confirmao adicionada a ele. Caso contrrio, um quadro separado, com a confirmao, enviada.

Janelas de Transmisso e Recepo


Em qualquer instante o transmissor mantm um conjunto de nmeros de sequncia correspondentes a quadros que ele pode enviar. O receptor mantm uma janela correspondente a quantidade de quadros que est apto a aceitar.
As janelas no precisam ter os mesmos limites superior e inferior ou o mesmo tamanho.

Janela de Transmisso
Os nmeros de sequncia no transmissor representam os quadros que foram ou que podem ser enviados, mas ainda no confirmados. Sempre que chega um novo pacote da Camada de Rede, ele recebe um novo nmero de sequncia, mais alto e o limite superior da janela aumentado em uma unidade. Quando a confirmao recebida, o limite inferior incrementado em uma unidade. Se a janela chegar ao seu limite mximo, a Camada de Enlace obrigada a desativar a Camada de Rede at que outro buffer esteja disponvel.

Janela de Recepo
Corresponde aos quadros que ele est apta a aceitar. Quadros fora da janela so descartados. Ao receber um quadro, ela o repassa Camada de Rede e envia a confirmao. A Camada de Rede sempre recebe quadros na ordem em que foram enviados.

Regra
Transmissor espera por uma confirmao antes de enviar o prximo quadro. Degrada o desempenho.

Pipelining
Tcnica de manter vrios quadros pendentes. Quando um quadro chega danificado no receptor ele descartado. Porm, o que acontece com os demais quadros que o seguem. H duas estratgias:
Go-back-n. Retransmisso seletiva.

Go-back-n
O receptor descarta o quadro recebido com erro e todos os quadros subsequentes, recebidos sem erros, at receber a retransmisso do quadro errado. Nenhuma confirmao desses quadros descartados sem erros enviada. Em outras palavras, a Camada de Enlace se recusa a aceitar qualquer quadro, exceto o prximo que ela tem de entregar Camada de Rede.

Retransmisso seletiva
Um quadro incorreto recebido descartado. Porm, os quadros recebidos depois dele, sem defeitos, so aceitos e inseridos no buffer. Quando o temporizador termina, somene o quadro com erro retransmitido.

Negative Acknowledgement
Com frequncia, a retransmisso seletiva envia um pacote NAK ao detectar um erro. Isso evita a necessidade de aguardar o timeout para retransmitir o quadro.