Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1 Camada de Enlace 1 - Definindo o contexto • Um protocolo de camada de enlace transporta um Datagrama sobre um enlace individual. • Um enlace individual possui dois elementos físicos fisicamente conectados: � host-roteador ; � roteador-roteador ; ou � host-host • unidade de dados trocada pelo protocolo de camada de enlace: quadro (frame) • O protocolo de camada de enlace defini o formato dos quadros trocados entre os nós nas extremidades do enlace. 2 2 - Serviços da Camada de Enlace 2.1- Considerações iniciais - Para acesso ao enlace cada quadro da camada de enlace: � encapsula datagramas, acrescentando cabeçalhos e trailer � possui ‘endereços físicos’ usados nos seus cabeçalhos para identificar a fonte e o destino dos quadros. � diferente do endereço IP (endereço lógico) ! aplicação transporte rede enlace física rede enlace física M M M M H t H t H n H t H n H l M H t H n H l quadro enlace físico protocolo de enlace placa adaptadora 3 • Exemplos de protocolos de camada de enlace: • Ethernet; • Token Ring; e • PPP (WAN). • Tarefa de um protocolo de enlace => movimentar um datagrama da camada de rede nó a nó por um único enlace do caminho. • Tarefa de um protocolo de rede => movimentar segmentos (pacotes) da camada de transporte fim-a-fim, do hospedeiro origem ao hospedeiro destino. • Característica importante da camada de enlace: • Um datagrama pode ser manipulado por diferentes protocolos de enlace nos diferentes enlaces do caminho (EX: primeiro enlace => Ethernet, último enlace => PPP, enlaces intermediários => Frame Relay). 2.2 - Serviços que podem ser oferecidos por um protocolo de camada de enlace: � Delimitação de dados e acesso ao enlace: � Delimitação de dados (Enquadramento de dados): � Um quadro consiste em um campo de dados(datagrama inserido) e em uma série de campos de cabeçalho. � Um protocolo de camada de enlace especifica a estrutura do quadro. 4 � Acesso ao enlace: � Um protocolo de acesso ao canal especifica as regras pelas quais um quadro é transmitido sobre o enlace. � Um protocolo de acesso ao canal serve para coordenar as transmissões de quadros de diversos nós (problema de acesso múltiplo). � Entrega confiável: � Garantia do transporte de cada datagrama da camada de rede, pelo enlace, sem erro( semelhante ao TCP). � Entrega confiável frequentemente é usado por enlaces que costumam ter altas taxas de erros (Ex: enlace sem fio). � Considerada desnecessária (sobrecarga) para enlaces de baixa taxa de erro(Ex: enlaces de fibra ótica, enlaces coaxiais, enlaces de pares de fio de cobre). � Controle de Fluxo: � limitação da transmissão entre transmissor e receptor. � evita que um nó que está enviando informações de um lado do enlace congestione o nó receptor. � Detecção de Erros: � erros causados pela atenuação do sinal e por ruídos. � o receptor detecta a presença de erros � a detecção de erros na camada de enlace geralmente é implementada em hardware. 5 � Correção de Erros: • o receptor identifica e corrige o bit com erro(s) sem recorrer à retransmissão. � Half-duplex e Full-duplex: � Transmissões podem ser Half ou Full-duplex. � Half-duplex => um nó não pode transmitir e receber pacotes ao mesmo tempo. � Full-duplex => os nós em ambas as extremidades do enlace podem transmitir e receber pacotes ao mesmo tempo. 3- Implementação da Camada de Enlace 3.1 – Implementação em adaptadores (placa de rede) � O protocolo de camada de enlace é implementado no “adaptador” � ex., placa PCMCIA, placa Ethernet � tipicamente inclui: RAM, chips DSP, interface com barramento do host, e interface do enlace � adaptadores são conhecidos como cartões (placas) de interface de rede ou NICs (network interface cards) 6 � O adaptador encapsula o datagrama em um quadro e o transmite para dentro do enlace de comunicação • Componentes principais de um adaptador: • Interface de barramento • Interface de enlace • Interface de barramento => responsável pela comunicação com o barramento • Interface de enlace => responsável pela implementação do protocolo de camada de enlace (montagem e desmontagem de quadros, detecção de erros, acesso aleatório) 7 3.2-Técnicas de Detecção e Correção de erros implementáveis na Camada de Enlace • A detecção de erros não é 100% confiável! • Protocolos podem deixar passar alguns erros, mas é raro. • No nó remetente, para que os dados, D, fiquem protegidos contra erros de bits, eles são aumentados com bits de detecção e de correção (error detection-and-correction bits – EDC). • O desafio do receptor é determinar se D linha é ou não igual ao D original, uma vez que recebeu apenas D linha e EDC linha. EDC= Bits de Detecção e Correção de Erros (redundância) D = Dados protegidos pela verificação de erros ( pode incluir os campos de cabeçalho) Enlace sujeito a erros 8 3.2.1 – Técnicas de detecção de erros • Três técnicas: • Verificação de paridade • Método de soma de verificação • Verificação de redundância cíclica (CRC)(normalmente empregadas em camada de enlace) • Verificação de Paridade • Paridade com bit único • Paridade bi-dimensional • Paridade com bit único • Detecta erro de um único bit • Esquema de paridade par : • o remetente inclui um bit adicional e escolhe o valor desse bit de modo que o número total de ´1´ (uns) nos d+1 bits seja par. • Esquema de paridade impar: • O valor do bit de paridade é escolhido de modo que haja um número ímpar de ´1´ (uns). • Nos esquemas acima o receptor precisa apenas contar quantos ´1´(uns) há nos d +1 bits recebidos. • Exemplo: • Se escolhido o esquema de paridade par e for encontrado um número ímpar de bits de valor `1`, o receptor saberá que ocorreu pelo menos um erro de bit. 9 • Paridade bi-dimensional • Detecta e corrige erros de um único bit; • Os d bits de D são divididos em i filas e j colunas; • Um valor de paridade é calculado para cada fila e para cada coluna; • Os i+j+1 bits de paridade resultantes compreendem os bits de detecção de erros do quadro do enlace; • Suponha que ocorra um erro de um único bit nos d bits originais da informação: • Com esse esquema, tanto a paridade da coluna quanto da fila que contiver o bit modificado estarão com erro. • O receptor não só poderá detectar que ocorreu um erro como identificar o bit que foi corrompido e corrigi-lo. sem erros erro de 1 bit corrigível 10 • Método de soma de verificação Objetivo: detectar “erros” (ex. bits trocados) num segmento transmitido. Como a detecção de erros na camada de transporte é implementada em software, é importante que o esquema de detecção de erros seja simples e rápido como a soma de verificação. Por isso essa técnica é normalmente empregada na camada de transporte, mas, nada impede que seja aplicada na camada de enlace. Na camada de enlace a detecção de erros é implementada em hardware dedicado, em adaptadores que podem rodar velozmente as mais complexas operações, o que permite técnicas de detecção de erros mais complexas como o CRC que será visto mais adiante. Transmissor: � trata o conteúdo de segmentos (d bits de dados) como seqüências de números inteiros de 16 bits. � checksum: adição (soma em complemento de um) da soma de todas as palavras de 16 bits (conteúdo do segmento). (Kurose, pagina 156, 157) � transmissor coloca o valor do checksum no campo checksum do UDP Receptor: � computa o checksum do segmento recebido 11 � verifica se o checksum calculado é igual ao valor do campo checksum: � NÃO - erro detectado � SIM - não detectou erro. Exemplo: Tomemos a informação binária abaixo que já se encontra dividida em seqüência de números de 16 bits. Para achar o complemento de um basta pegar o resultado anterior e converter 0 em 1 e 1 em 0: 1011010100111101 (soma de verificação ou checksum) - No receptor todas as palavras são somadas, inclusive a soma de verificação. - Sem qualquer erro deverá ser encontrado: 1111111111111111 -Se houver erro o resultado terá algum zero (0) 12 � Verificação de redundância cíclica (CRC – Cyclic redundancy Check) � Transmissor encara os bits de dados, D, como um número binário. � Remetente e receptor devem concordar com a escolha de um padrão gerador de r+1 bits, G (polinômio gerador). � objetivo: para uma dada parcela de dados, D (d bits), o remetente escolherá r CRC bits adicionais, R, e os anexará à D tal que: � <D+R> é divisível de forma exata por G (módulo 2) � receptor conhece G, divide <D+R> por G. Se o resto é diferente de zero: erro detectado! � pode detectar todos os erros em seqüência (burst errors) com comprimento menor que r+1 bits � largamente usado na prática (ATM, HDCL) �Um código de 8 bits (G=> padrão gerador) é usado para proteger o cabeçalho de 5 bytes das células ATM. padrão de bits fórmula matemática bits de dados a