Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Unidade IV – Camada de Enlace de Dados Hercules Zimmermann Willig A camada de Enlace de dados Desempenha basicamente quatro funções: � Fornece interface bem definida para a camada de rede; � Organiza os dados recebidos da camada de rede em quadros (frames) a serem transmitidos na rede física (e vice-versa); � Trata erros de transmissão; � Realiza controle de fluxo para evitar que receptores lentos (ou muito ocupados) sejam inundados de quadros por emissores rápidos (ou pouco ocupados). A camada de Enlace de dados Serviços possíveis: � Sem conexão, sem confirmação: � usado quando se dispõe de canais de comunicação com alta confiabilidade, como em redes locais; � Sem conexão, com confirmação: � usado quando se dispõe de canais de comunicação com razoável confiabilidade, como nas transmissões sem fio; Com conexão, com confirmação: usado quando se dispõe de canais de comunicação com baixa confiabilidade, como em redes telefônicas. A camada de Enlace de dados Detecção e Correção de Erros Na transmissão de dados, erros podem ocorrer por diversas razões: � indução eletromagnética, � falha de sincronização entre emissor e receptor, � defeito de componentes, etc. A camada de enlace de dados deve garantir uma transmissão livre de erros entre duas máquinas diretamente conectadas. A camada de Enlace de dados Paridade de Caracteres Paridade de Caracteres Quando se usa codificação de 7 bits em bytes de 8 bits, é possível a utilização do oitavo bit como sinalizador de paridade, de modo que a quantidade de bits 1 no byte seja par (no caso de paridade par) ou ímpar (no caso de paridade ímpar). A camada de Enlace de dados Paridade de Caracteres Esse sistema permite detectar mas não corrige erros. Paridade Combinada � Nesse esquema, além da paridade de caracter, instala-se uma paridade para o bloco de caracteres, permitindo-se a detecção e recuperação de 1 erro por caracter, a detecção de dois erros por caracter, e havendo falha de detecção no caso de erros quádruplos, como o indicado no exemplo. Paridade Combinada VRC = Vertical Redundancy Checking LRC = Longitudinal Redundancy Checking BCC = Block Check Caracter Paridade Combinada Paridade Combinada Verificação de Redundância Cíclica (Cyclic Redundancy Checking - CRC) � É um método de detecção polinomial que permite a detecção de praticamente toda ocorrência de erros. � CRC-16: x16+x15+x2+1� Usado com caracteres de 8 bits Protocolos elementares � Quando a camada de enlace de dados aceita um pacote, ela o encapsula em um quadro acrescentando a ele um cabeçalho e um fim, fazendo com que um pacote consista em um quadro acrescido de informações de controle. � Para fazer o controle da chegada dos pacotes nos endereços corretos é necessário um protocolo de envio e recebimento. Protocolos elementares � Protocolo Simplex sem Restrições(utopia) � Dados transmitidos apenas em um sentido � Camada de rede sempre pronta � Camada de enlace nunca perde dado � Protocolo Simplex Stop-and-Wait � O transmissor só envia um quadro quando recebe a confirmação do quadro anterior. � Números de seqüência: o primeiro quadro é numerado com o bit 0, o segundo com 1, o terceiro com zero… � Técnica ineficiente: não tem conferência de erros e enquanto o transmissor espera por reconhecimentos o canal não é utilizado. Protocolos elementares � Protocolo Simplex com ruído � Unidirecional � Suporta erros (ACK - do inglês acknowledge) � Temporizador (time out) � Quadros com números de seqüência no cabeçalho Protocolo de janelas deslizantes � Um sistema que resolve esse problema é o protocolo de janelas deslizantes; � O emissor mantém uma janela de transmissão de frames enviados mas ainda não confirmados; � Desta forma o transmissor pode transmitir mais frames enquanto aguarda a confirmação dos que já forma transmitidos mantendo assim o canal de comunicação sempre cheio; � Com base nas confirmações recebidas, o transmissor elimina da janela de envio os frames confirmados pelo receptor e transmite novos; Protocolo de janelas deslizantes � Cada frame transmitido e cada ACK recebido precisa ser numerado para que o transmissor identifique os frames corretos e errados daqueles já transmitidos; � O receptor também mantém uma janela de frames recebidos em casos de erros; � No caso de uma falha de transmissão, os frames seguintes deverão ser armazenados no receptor até o frame defeituoso ser retransmitido; � Protocolo de janelas deslizantes Perda de ack � Um frame será retransmitido sempre que: � Não for recebido pelo receptor; � Chegar no receptor com defeito; � Se o ACK correspondente não for recebido pelo transmissor; � A perda de um ACK resultaria na retransmissão de um frame que já foi transmitido corretamente; � Em função disso, o ACK serve de confirmação para o frame em questão e todos os frames anteriores; � Assim, o ACK 5 confirma o recebimento dos frames de 1 a 5 e não somente do 5; Protocolo de janelas deslizantes Perda de ack � Se um ACK não for transmitido corretamente, o próximo valerá pelo que foi perdido confirmando aqueles frames já recebidos; � O receptor então passa a enviar ACKs desde que todos os pacotes recebidos até então estejam corretos; � Em caso de erro, o receptor para de transmitir ACK até que o frame defeituoso seja retransmitido; � Ao fazer a retransmissão de algum frame, o transmissor precisa ajustar o tempo de timeout do frame retransmitido e dos demais frames no buffer de envio para evitar que varios timeouts ocorram em sequência;