Prof. Ivair Teixeira Redes de Computadores
2 Nesta Aula Nessa Aula Camada de enlace de dados Detecção e correção de erros. Bibliografia: RSCD - Stallings, William - Redes e Sistemas de Comunicação de Dados RC - Tanenbaum, Andrew S – Redes de Computadores
3 Os dados podem ser corrompidos durante a transmissão. Algumas aplicações exigem que os erros sejam detectados e corrigidos. Funções da camada de enlace Lidar com erros de transmissão. Regular o fluxo de dados, de tal forma que os receptores lentos não seja atropelados por transmissores rápidos. Camada de enlace de dados
4 Recebe os pacotes da camada de rede e encapsula em quadros com: Cabeçalho. Carga útil. Final. Camada de enlace de dados Pacote Cabeçalho Campo de Carga útil Final Pacote Cabeçalho Campo de Carga útil Final
5 Serviços oferecidos com frequência: Serviço sem conexão e sem confirmação. Serviços sem conexão e com confirmação. Serviços orientado a conexão com confirmação. Camada de enlace de dados
6 Serviço sem conexão e sem confirmação. Nenhuma conexão lógica é estabelecida antes ou liberada depois. Quadros independentes são enviados da origem ao destino sem nenhuma confirmação de recebimento. Apropriado quando a taxa de erros é muito baixa a recuperação fica a cargo das camadas superiores. Apropriado para tráfego em tempo real, por exemplo voz, quando o retardo é pior que a falha. Camada de enlace de dados
7 Serviço sem conexão e com confirmação. Nenhuma conexão lógica é estabelecida ou liberada. Cada quadro enviado é individualmente confirmado. Serviço útil em canais não confiáveis como sistemas sem fio, dispensável em canais confiáveis como fibra. Camada de enlace de dados Quadros Enlace Datagrama Rede
8 Serviço com conexão e com confirmação. Máquinas de origem e destino estabelecem uma conexão antes dos dados serem transferidos. Cada quadro é numerado para garantir que sejam recebidos, uma única vez e na ordem correta. É constituído por três fases: Estabelecimento da conexão, com reserva de variáveis de controle e contadores. Transmissão de um ou mais quadros. Desconexão e liberação das variáveis Usada quando não pode haver perda de pacote e a responsabilidade esta a cargo da camada de enlace Camada de enlace de dados
9 Divisão de quadros: A divisão dos quadros não é tão simples. Uma opção seria inserir um intervalo de tempo entre os quadros, como palavras em um texto. É possível este método? Camada de enlace de dados
10 Divisão de quadros: A divisão dos quadros não é tão simples. Uma opção seria inserir um intervalo de tempo entre os quadros, como palavras em um texto. É possível este método? Não, pois não há garantias relacionadas a temporização. Camada de enlace de dados Novos métodos foram criados. Contagem de caracteres Bytes de flags, com inserção de bytes. Flags iniciais e finais, com inserção de bits
Quadro 1Quadro 2Quadro 3Quadro 4 11 Divisão de quadros: Contagem de Caracteres: Utiliza um campo no cabeçalho para especificar o número de caracteres do quadro. Ex. Quadros de tamanho 8, 5, 5 e 7. Camada de enlace de dados Qual o problema desse método? Obs: para melhor entendimento foram utilizados decimal e não binário
12 Camada de enlace de dados Divisão de quadros: Contagem de Caracteres: Se ocorrer um erro de transmissão no “número de caracteres do quadro”. Não é possível localizar o erro para sincronizar e retransmitir somente os quadros errados Quadro 1Quadro 2Quadro 3Quadro Quadro 1Quadro 2 Quadro 3 Quadro
13 Divisão de quadros: Bytes de flags, com inserção de bytes: Contorna o problema de sincronização após o erro. Insere bytes especiais (não ASCII) no início e fim de cada quadro. Se o receptor perder a sincronização busca o byte de flag para descobrir o quadro atual (dois flags juntos indicam fim e início). Camada de enlace de dados FLAGCabeçalhoCarga útilFinalFLAG FlagCabecalhoCarga útilFimFlag Cabeçalho Qual o problema?
14 Divisão de quadros: Bytes de flags, com inserção de bytes: E para dados binários (programas, float) onde o padrão de bits possa ser igual ao Flag? Camada de enlace de dados FlagCabecalhoCarga útilFimFlag Cabeçalho
15 Divisão de quadros: Flags iniciais e finais, com inserção de bits: Permite tamanhos sem regras (tamanhos arbitrários). Cada quadro inicia e termina com o padrão Sempre que o transmissor encontra cinco 1s consecutivos insere um 0 no fluxo de bits. Sempre que o receptor encontra cinco 1 consecutivos seguido de um 0, remove automaticamente o bit 0. Dado: TX: Salvo: Camada de enlace de dados
16 Controle de erros - Detecção e Correção. Detecção: Inclui no bloco de dados informações que permitem identificar que ocorreu um erro e solicitar retransmissão. Eficiente em canais confiáveis como fibra óptica. Correção: Inclui no bloco de dados informações que permitem deduzir quais foram os dados enviados e corrigir o erro. Eficiente em enlaces sem fio pois a quantidade de reenvio podem invalidar a comunicação. Camada de enlace de dados
17 Controle de erros - Detecção e Correção. Basicamente os erros podem ocorrer: Em grandes volumes (rajadas). Isoladamente (bits). Suponha um bloco de 1000 bits Erros em rajada poderão afetar apenas 1 ou 2 blocos. Erros isolados poderão se espalhar por todo bloco. Erros em rajadas dificilmente pode ser corrigidos Erros isolados poderão ser corrigidos Camada de enlace de dados
18 Detecção. A forma mais comum é o feedback para o transmissor O receptor retorna confirmações positivas (sem erro) ou negativas (com erro) dos quadros. De acordo com a confirmação o transmissor transmite o próximo ou retransmite o quadro atual. Qual o problema desse controle? Camada de enlace de dados
19 Detecção. Se o quadro sumir o receptor nunca recebe resposta e não sabe o que fazer (envia o próximo ou retransmite?). Qual a solução para esse problema? Camada de enlace de dados
20 Detecção. Se o quadro sumir o receptor nunca recebe resposta e não sabe o que fazer (envia o próximo ou retransmite?). Qual a solução para esse problema? Disparar um temporizador quando envia o quadro, se expirar o tempo o quadro é reenviado. Qual o problema dessa solução? Camada de enlace de dados
21 Detecção. E se sumir a confirmação, ou atrasar um tempo maior que o configurado, o receptor pode receber quadros repetidos. Qual a solução do problema da solução anterior? Camada de enlace de dados
22 Detecção. E se sumir a confirmação, ou atrasar um tempo maior que o configurado, o receptor pode receber quadros repetidos. Qual a solução do problema da solução anterior? Numerar os quadros. Camada de enlace de dados
23 Detecção - Checksum: A camada de enlace divide o fluxo de bits em quadros. Calcula o total de verificação (checksum) para cada quadro e insere o total calculado no quadro. No destino o total de verificação é recalculado e comparado por uma operação xor. Se houver erro o quadro é descartado e retransmitido. Camada de enlace de dados Transmissor Receptor DadosTotal de verificação
24 Detecção – Paridade. Suponha uma transmissão com quadros de 1000 bits e taxa de erros de 0,001 bit. Na paridade par deve ser incluído um bit de controle após a palavra, de forma que resulte em um número par de 1s. Camada de enlace de dados Bit de paridade O receptor conta os 1s e compara com o bit de paridade, se houve erro solicita uma retransmissão.
25 Correção – Hamming 7 – 11 (1950). Um valor de 7 bits é transmitido e uma palavra de 11 bits. Por exemplo a letra H = As posições com potência de 2 são os bits de verificação. Na demais posições estão a “carga útil”. Camada de enlace de dados b1b2b3b
26 Correção – Hamming 7 – 11 (1950). Para calcular cada bit de verificação realiza-se uma operação xor entre as posições relacionadas a este bit. Por exemplo o bit 1 aparece na fatoração em potências de 2 dos números 3, 5, 7, 9 e 11, pois: 3 = = = = = = = Camada de enlace de dados b1b2b3b – 0 = 0 0 – 1 = 1 1 – 0 = 1 1 – 1 = 0
27 Correção – Hamming 7 – 11 (1950). Camada de enlace de dados b1b21b3001b Xor entre os bits relacionados b1 = 3 – 5 – 7 – 9 – 0 b2 = 3 – 6 – 7 – 10 – 0 b3 = 5 – 6 – 1 b4 = 9 – 10 – 0 Decomposição 3 = = = = = = = Código enviado:
28 Correção – Hamming 7 – 11 (1950). Camada de enlace de dados b1b21b3001b Xor entre os bits relacionados b1 = 3 – 5 – 7 – 9 – 1 b2 = 3 – 6 – 7 – 10 – 1 b3 = 5 – 6 – 1 b4 = 9 – 10 – 1 Suponha um erro no bit 11 Para encontrar o bit errado basta somar o “peso” dos bit de verificação que estão diferentes b1 = 1 b2 = 2 b4 = 8 11
29 Correção – Hamming 7 – 11 (1950). Camada de enlace de dados b1b21b3101b Xor entre os bits relacionados b1 = 3 – 5 – 7 – 9 – 1 b2 = 3 – 6 – 7 – 10 – 0 b3 = 5 – 6 – 0 b4 = 9 – 10 – 0 Suponha um erro no bit 5 Para encontrar o bit errado basta somar o “peso” dos bit de verificação que estão diferentes b1 = 1 b4 = 4 5
30 Codifique a sequência usando o código de Hamming Atividades Xor entre os bits relacionados b1 = b2 = b3 = b4 = Decomposição 3 = = = = = = =
31 1 – Quais as funções da camada de enlace? 2 – Como funciona o enquadramento na camada de enlace. 3 – Quais as situações mais apropriadas para cada um dos três serviços oferecidos pela camada de enlace (conexão e confirmação). 4 – Qual a diferença entre detecção e correção de erros? Em que tipos de enlace cada qual é mais eficiente. 5 – Usando a técnica “Flags iniciais e finais, com inserção de bits” codifique os seguintes dados com o flag padrão: – Calcule a paridade (par) dos seguintes quadros: , e Atividades