REDES E SISTEMAS
INTERNET
Camada de Enlace
Roteiro
•
Introdução
Introdução
•
Recapitulando:
Protocolo da camada 5
Protocolo da camada 4 Protocolo da
camada 3 Protocolo da
camada 2
Máquina de origem Máquina de destino
Introdução
•
Layer 2
ou Camada de Enlace
• O foco desta camada é na comunicação que ocorre entre dois computadores adjacentes
•
Funções
• Fornecer uma abstração de linha ponto a ponto sem erros para a camada de rede
• Tratar erros de transmissão que podem ocorrer na camada física • Regular o fluxo de quadros entre computadores adjacentes
•
Para alcançar estes objetivos o primeiro passo é agrupar
uma sequência de bits em um quadro
Introdução
•
Estrutura de um quadro (frame) da camada de enlace:
Pacote
Cabeçalho Payload Trailer Cabeçalho Payload Trailer Pacote
Máquina Transmissora Máquina Receptora
Serviços para a Camada de Rede
•
O processo da camada de rede na origem entrega um
pacote para a camada de enlace da origem
• A função da camada de enlace é levar este pacote até a camada
de rede do destino
• Lembre-se que a abstração é de comunicação na horizontal, mas
na prática o pacote vai para camada de enlace e depois para física •
Os protocolos de enlace pode oferecer o seguinte:
• Serviço sem conexão e sem confirmação. • Serviço sem conexão e com confirmação.
Serviços para a Camada de Rede
•
Serviço sem conexão e sem confirmação:
• A máquina de origem envia quadros independentes à máquina de destino, sem confirmação pela máquina de destino
• Se algum quadro for perdido devido a ruídos na linha não haverá
nenhuma tentativa de detectar os erros ou corrigi-los
• A recuperação ainda pode ser feita pelas camadas superiores • Quando usar:
• Quando a taxa de erros é muito baixa
• Quando é necessário comunicação em tempo real (voz/vídeo)
Serviços para a Camada de Rede
•
Serviço sem conexão e com confirmação:
• A máquina de origem envia quadros independentes à máquina de destino mas cada quadro é individualmente confirmado
• Caso a confirmação não chegue após um tempo específico, o
quadro poderá ser enviado novamente
• Quando usar:
• Em canais não confiáveis
• É muito usado para comunicação sobre meio de transmissão sem fio • Frase para reflexão:
• “Oferecer recursos de confirmação no nível da camada de enlace de dados é uma questão de otimização, e não uma exigência!”
Serviços para a Camada de Rede
•
Serviço com conexão e com confirmação:
• É estabelecida uma conexão antes do início da transmissão e cada quadro é individualmente confirmado
• Neste caso, a camada 2 garante que todos os quadros serão
recebidos na ordem correta e uma única vez
• Quando usar:
• Em canais não confiáveis com elevados retardos
Enquadramento
•
A divisão de um fluxo de bits em quadros permite que
sejam feitas checagens sobre a integridade dos bits
• A camada física pode perder bits ou mesmo inverter 0s e 1s • Conceito de total de verificação (checksum)•
Como delimitar o início de um quadro e o final do
anterior?
• Mecanismos usados:
• Contagem de caracteres.
• Bytes de flags, com inserção de bytes.
• Flags iniciais e finais, com inserção de bits.
• Os protocolos podem usar também uma combinação destes
Enquadramento
•
Contagem de caracteres.
• Ideia simples e “aparentemente” boa.
Enquadramento
•
Contagem de caracteres.
• É fácil ocorrer problemas troca de um bit no contador pode colocar tudo a perder!
• Raramente usado nos dias atuais.
Erro
Frame 1 Frame 2 (incorreto)
Enquadramento
•
Bytes de flags
são usados símbolos especiais no início
e fim dos quadros para enquadramento.
• Contorna o problema do método anterior!
• O que fazer caso o símbolo FLAG ocorra na área de dados?
Enquadramento
•
Bytes de flags com inserção de bytes.
• São colocados bytes de escape antes de bytes de flags que ocorram na área de dados!
• Este mecanismo é usado no protocolo PPP (simplificação)
Enquadramento
•
Flags iniciais e finais com inserção de bits.
• O problema do método anterior é que ele trabalha no nível de byte.
• Considera-se um padrão de flag em nível binário exemplo
01111110
• O receptor saberá que começou e terminou um quadro quando acha uma sequência de bits igual a essa
• Para evitar a ocorrência dentro da área de dados, usa-se preenchimento de bits
Controle de erros
•
Para controle de erros a técnica usada geralmente
consiste na inclusão de bits redundantes nos quadros
•
Os protocolos de enlace podem usar um dos seguintes
mecanismos:
• Códigos de correção de erros: são inseridos bits redundantes que
permitem que o receptor detecte e corrija os erros
• Não precisa retransmissão do quadro defeituoso
• Útil em ambientes hostis (como comunicação sem fio)
• Códigos para detecção de erros: são inseridos bits redundantes
que permitem apenas que o receptor detecte que ocorreu erro.
• É preciso solicitar ao transmissor para reenviar o quadro
Controle de erros
•
O que é exatamente um erro?
•
Um quadro consiste de
m
bits de dados e
r
bits
redundantes ou de verificação
• Uma palavra de código (codeword) é uma unidade formada por n bits (n = m + r)
• Exemplo: palavra de código com n = 8, m = 7 e r = 1: • Um erro ocorre se um destes bits dor trocado
10001001
n = 8
Controle de erros
•
Distância de Hamming:
• Número de bits em que duas palavras de código diferem entre si.
• Pode ser obtido por meio da contagem de 1s da operação XOR. • Exemplo:
10001001
10110001
00111000
XOR
Controle de erros
•
Distância de Hamming:
• Nas transmissões, todas as 2m mensagens de dados são válidas,
mas nem todas as 2n mensagens são válidas
• Os bits de redundâncias são calculados de modo a permitir distinguir palavras válidas das não válidas
Detecção de erros
•
Exemplo simples
bit de paridade:
• O bit de paridade é escolhido de forma que o número de bits 1 da palavra seja par (ou ímpar).
• Considere o envio de 1011010 com 1 bit de paridade par, será
enviado portanto a sequência 10110100.
Correção de erros
•
Exemplo simples:
• Considere um código contendo apenas 4 palavras válidas:
• A distância de Hamming é igual a 5, isso significa que é possível
corrigir erros duplos (2 x d + 1 = 5 d = 2)
• Se chegar no receptor 0000000111 ele saberá que a palavra enviada foi na verdade 0000011111
• Se um erro triplo ocorrer, a correção não será adequada.
Controle de erros
•
Outros mecanismos de detecção de erros:
• Checksums.
• Verificação de redundância cíclica (CRCs).
•
Outros mecanismos de correção de erros:
• Códigos de convolução binários. • Códigos de Reed-Solomon.