Programa de Pós-Graduação em Engenharia Eletrônica
Faculdade de Engenharia
Universidade do Estado do Rio de Janeiro
Prof. Marcelo Gonçalves Rubinstein
Ementa
Introdução a Redes de Computadores
A Camada Aplicação
A Camada Transporte
A Camada Rede
A Camada Enlace
(A Camada Física)
Camada enlace
Protocolos de enlace
Fornecem comunicação entre nós (hospedeiros ou roteadores) em um enlace
Enlace é um canal de comunicação entre nós adjacentes
Serviços
Enquadramento Controle de erros
Detecção e correção de erros
Controle de fluxo Endereçamento
Camada enlace
Alguns
serviços
semelhantes
aos
serviços
providos pela camada transporte
Canais
Ponto-a-ponto
Difusão (Broadcast)
Necessidade de controle de acesso ao meio compartilhado
Camada enlace
Em geral, há três tipos de serviços providos
Não orientado a conexões e sem confirmação Não orientado a conexões e com confirmação Orientado a conexões e com confirmação
Camada enlace
Não orientado a conexões e sem confirmação
Apropriado quando a taxa de erros é baixa
Recuperação de perdas a cargo das camadas superiores
Apropriado para tráfego de tempo real
Camada enlace
Não orientado a conexões e com confirmação
Quadros são numerados
Usa temporizadores para implementar a confiabilidade Usado atualmente em redes sem fio
Camada enlace
Orientado a conexões e com confirmação
Quadros são numerados
Camada enlace
Confirmação na camada enlace
Questão de otimização
Pode estar em camadas superiores
Problema é a fragmentação dos pacotes em quadros
Pode fazer com que se leve muito tempo para transmitir um pacote
Enquadramento
Serviço provido pela camada física não garante
que o fluxo de bits seja livre de erros
Número de bits pode ser maior ou menor do que o número de bits transmitidos
Bits podem ter valores diferentes dos bits transmitidos
Camada enlace divide o fluxo de bits em
quadros e faz uma verificação em cada quadro
(detecção e correção de erros)
Enquadramento
Vários métodos para marcar o início e o fim dos
quadros
Contagem de caracteres
Octetos de flags, com inserção de octetos Flags iniciais e finais, com inserção de bits Violações de codificação da camada física Outros
Enquadramento - contagem de carac.
Usa um campo no cabeçalho para especificar o
número de caracteres do quadro
Enquadramento - contagem de carac.
Enquadramento - contagem de carac.
Problema
Contagem pode ser adulterada por um erro de transmissão
Mesmo com a verificação incorreta, destino não sabe onde começa o próximo quadro
Solicitação de retransmissão também não adianta
Destino não sabe quantos caracteres devem ser ignorados para chegar ao início da retransmissão
Enquadramento - contagem de carac.
Enquadramento - contagem de carac.
Enquadramento - octetos de flags
Soluciona o problema de ressincronização após
um erro
Quadro começa e termina com octetos especiais
(octetos de flags)
Enquadramento - octetos de flags
Enquadramento - octetos de flags
Dados binários podem conter os octetos de flags
Solução → transmissor da camada enlace introduz um caractere de escape especial (ESC) antes de cada octeto de flag “acidental” nos dados
Técnica chamada inserção de octetos ou inserção de caracteres
Enquadramento - octetos de flags
Enquadramento - octetos de flags
Problema
Enquadramento - flags iniciais e finais
Dados podem ter um número arbitrário de bits
Cada quadro começa e termina com um padrão
de bits
Exemplo
01111110
Quando encontra cinco bits 1 consecutivos nos dados o transmissor da camada enlace coloca um bit 0 (inserção de bits)
Receptor, ao ver cinco bits 1 seguidos por um bit 0, remove o bit 0
Enquadramento - flags iniciais e finais
Exemplo de inserção de bits (fonte: Tanenbaum)
(a) Dados originais (b) Dados transmitidos (c) Dados recebidos após a remoção dos bits
Enquadramento - flags iniciais e finais
Se o receptor perder a sincronização, basta
procurar pelo padrão de bits
Enquadramento - violações de codif.
Só pode ser aplicado em redes nas quais a
decodificação no meio físico contém algum tipo
de redundância
Exemplo
Bit 1 é um par alto-baixo e o bit 0 é um par baixo-alto Todo bit de dados tem uma transição intermediária, facilitando a localização dos limites de bits pelo receptor
Combinações baixo-baixo e alto-alto podem ser usadas na delimitação de quadros
Controle de erros
Mais comum é dar ao transmissor alguma
realimentação sobre o que está se passando do
outro lado
Confirmações (reconhecimentos) positivas e negativas
Além disso usam-se temporizadores
Espera pela confirmação durante um tempo
Números de sequência também são usados
Várias cópias do mesmo quadro podem ser recebidas
Controle de fluxo
Duas abordagens mais comuns
Controle de fluxo baseado em realimentação Controle de fluxo baseado na velocidade
Mecanismo interno limita a velocidade com que os transmissores podem enviar os dados
Não usa realimentação do receptor Não utilizado na camada enlace
Detecção e correção de erros
Erros de transmissão frequentes
Loops locais
Enlaces sem fio
Erros tendem a ocorrer em rajadas
Vantagem
Podem danificar poucos quadros
Desvantagem
Dificultam a correção dos erros
Usam informações redundantes para detectar e
corrigir erros
Detecção e correção de erros
Códigos de correção de erros
Bons para enlaces sem fio
Retransmissão pode conter erros
Ex.: correção antecipada de erros (Forward Error
Correction – FEC)
Códigos de detecção de erros
Bons para enlaces confiáveis
Detecção e correção de erros - definições
Quadro com m bits de dados e r bits de
redundância
Tamanho total n bits
Unidade de n bits é chamada palavra de código
de n bits
Número de posições de bits que duas palavras
diferem entre si é chamado distância (de
Hamming)
Detecção e correção de erros - definições
Se duas palavras de código estiverem a uma
distância d uma da outra
→
necessário corrigir d
erros para converter uma na outra
Em geral todas as 2
mmensagens de dados são
válidas
Mas nem todas as 2
npalavras de código
possíveis são usadas
Pode-se elaborar uma lista contendo todas as
palavras válidas e localizar duas palavras de
código cuja distância é mínima
Detecção e correção de erros
Detecção e correção de erros dependem da
distância de Hamming do código completo
Para detectar d erros é necessário um código de distância d + 1
Não há como d erros de bits transformarem uma palavra de código válida em outra válida
Para corrigir d erros é necessário um código de distância 2d + 1
Palavras de código válidas estarão tão distantes que, mesmo com d alterações, a palavra de código original continuará mais próxima do que qualquer outra
Detecção e correção de erros
Exemplo
Código contendo as seguintes palavras: 0000000000, 0000011111, 1111100000 e 1111111111
Distância igual a 5
Pode corrigir erros duplos
Se detecta 0000000111 (é um erro duplo)
Original deve ser 0000011111
Se detecta 0000000111 e foi transmitido 0000000000 (é um erro triplo) → erro não corrigido de maneira adequada
Detecção e correção de erros - paridade
Código simples de detecção de erros
Bit de paridade acrescentado aos dados
Escolhido de forma que o número de bits 1 da palavra de código seja par ou ímpar
Receptor conta quantos bits 1 a palavra possui
Se é usada a paridade par e contou um número ímpar de 1s → ocorreu um número ímpar de erros
Número par de erros → não são detectados
Código com um único bit de paridade tem uma
distância igual a 2
Detecção e correção de erros - paridade
Exemplo
1011010 enviado com paridade par → 10110100 1011010 enviado com paridade ímpar → 10110101
Como os erros ocorrem geralmente em rajada
Paridade com um bit não é suficiente
Detecção e correção de erros - paridade
Paridade bidimensional
Paridade de linha Paridade de coluna
Paridade dos bits de paridade