slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
Capítulo 3
A camada de
Onde vive o protocolo de camada de
enlace?
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 3
Questões de projeto da camada de enlace
•
Serviços de rede da camada de enlace
•
Quadros
•
Controle de erros
Pacotes e quadros
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 5
Serviços da camada de rede
Possíveis serviços
1.
Serviço não orientado à conexão sem
reconhecimento (ACK)
2.
Serviço não orientado à conexão com
reconhecimento (ACK)
3.
Serviço orientado à conexão com
reconhecimeto (ACK)
slide 7 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
Formação de Quadros: limites
1.
Contagem de bytes
2.
Bytes de flags com inserção de bytes
3.
Bits de flag com inserção de bits
Contagem de bytes
•
Utiliza um campo no cabeçalho, indicando o
números de bytes do quadro.
•
Camada de enlace sabe onde é o término do
quadro.
•
Problema: contagem pode ser adulterada por erro
na transmissão.
•
Em caso de erro pode ficar sem sincronização.
slide 9 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
Contagem de bytes
Inserção de bytes
•
Cada quadro começa e termina por bytes
especiais (bytes de flag).
•
Resolve o problema da sincronização em
caso de erro na transmissão.
•
Duas flags consecutivas indicam o fim de um
quadro e início do próximo.
•
Caso a sequencia específica da flag ocorra
dentre os dados, é utilizado um caractere de
escape especial imediatamente antes de
slide 11 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
Inserção de bytes
(a) Quadro limitado com bytes de flag.
(b) Quatro exemplos de sequências de bytes antes e
depois do preenchimento com bytes (byte stuffing).
Inserção de bits
•
O enquadramento ocorre a nível de bit.
•
Quadros podem ter qualquer número de bits.
•
Exemplo:
•
Flag: 01111110.
•
A cada 5 bits 1´s em sequencia é adicionado um 0.
•
Garante a densidade mínima de transições.
•
Ajuda a manter a sincronização.
slide 13 © 2011 Pearson Prentice Hall. Todos os direitos reservados.
Inserção de bits
•
Bit stuffing. (a) Dados originais. (b) Dados com bits
de preenchimento. (c) Dados armazenados em
buffer após retirada dos bits de preenchimento.
Violação de código na camada física
•
A codificação de bits como sinais é utilizado pela
camada física para auxilio na recuperação do clock.
•
Exemplo utilização do código de linha 4B/5B, onde 4
bits são representados por 5 bits numa tabela fixa.*
•
Há sequencias de bits que não são utilizadas.
•
As sequencias não utilizadas passam indicar o início
e fim dos quadros.
*Nesta tabela toma-se o cuidado para que não haja uma
sequencia com mais de 4 zeros consecutivos.
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 15
Detecção e correção de erros
•
Outra função importante da camada de
enlace, visa aumentar a confiabilidade de
um canal
•
Inserçao de redundância
•
A detecção de um erro leva ao descarte do
quadro
•
A correção de erros permite a recuperação
dos dados
Códigos de detecção de erros
Códigos lineares e em blocos
1.
Repetição
2.
Paridade
3.
Checksums
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 17
Código de repetição
•
A mensagem é repetida:
•
1011 >> 101110111011
•
Erro detectado: 10
1
110
0
110
1
1
•
Método simples, porém ineficiente
Bits de paridade
Intercalando bits de paridade para detectar
sucessão de erros.
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 19
Checksum
•
Um algoritmo recebe um bloco de bits como entrada
e produz uma sequência de bits de tamanho fixo
Cyclic Redundancy Check
•
Próprio para detecção de erros acidentais
•
Simples de implementar
•
A mensagem é dividida por um polinômio
gerador
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 21
Cyclic Redundancy Check (exemplo)
•
Mensagem: 11010011101100
•
Um polinômio de 3ª ordem: x
3
+x+1 = 1011
•
3 bits zero são adicionados ao final da mensagem:
11010011101100 000
•
A mensagem aumentada é dividida pelo polinômio
para encontrar o resto (100)
•
O resto da divisão substituirá os bits acrescentados
ao final: 11010011101100 100
•
No receptor, a divisão pelo polinômio tem que
apresentar resto zero
Cyclic Redundancy Check (exemplo)
11010011101100 000 <--- mensagem (preenchida com 3 bits) 1011 <--- polinônio divisor
01100011101100 000 <--- resultado (XOR dos bits da msg e do polinômio) 1011 <--- divisor desloca-se para a esquerda
00111011101100 000 1011
00010111101100 000 1011
00000001101100 000 <--- o divisor pode saltar os bits zerados 1011 00000000110100 000 1011 00000000011000 000 1011 00000000001110 000 1011 00000000000101 000 101 1 ---00000000000000 100 <--- o resto (3 bits)
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 23
Correção de erros
•
ARQ (Automatic Repeat Request): o
erro é detectado e a retransmissão
solicitada (implícita ou explicitamente)
•
FEC (Forward Error Correction): O
transmissor acrescenta código de
correção de erros à mensagem
•
HARQ (Hybrid ARQ) é a combinação
das duas técnicas
Códigos de correção de erros
1.
Código de Hamming
2.
Código convolucional binário
3.
Códigos de Reed-Solomon
4.
Códigos de checagem de paridade de
baixa densidade
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 25
Códigos de Hamming
Exemplo de um código de Hamming (11,7) corrigindo um bit.
p1 cobre as posicões binárias onde o bit menos significativo é 1
posições ímpares :p1, m3, m5, m7, m9, m11.
p2 cobre as posições binárias onde o segundo bit menos significativo é 1
posicões: p2, m3, m6, m7, m10, m11
Código convolucional
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 27
Código de Reed Solomon
•
Uma família de códigos de correção de erros
•
Capaz de detectar e corrigir múltiplos
símbolos
•
Adicionando t símbolos de verificação, é
capaz de detectar erros em até t símbolos e
corrigir int(t/2) símbolos
Códigos de checagem de paridade de baixa
densidade
•
LDPC: Low density parity check
•
Desenvolvido em 1963, era impraticável até o
final dos anos 1990
•
Usado em DVB, 10Gbase-T, IEEE 802.11n e
IEEE 802.11ac
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 29
Protocolos básicos de enlace de dados
•
Protocolo simplex idealizado
•
Protocolo simplex stop-and-wait
•
Canal sem ocorrência de erros
•
Protocolo simplex stop-and-wait
Protocolos básicos de enlace de dados
•
Protocolo simplex idealizado
•
Protocolo simplex stop-and-wait
•
Canal sem ocorrência de erros
•
Protocolo simplex stop-and-wait
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 31
Protocolo simplex idealizado
•
O receptor é capaz de receber e processar
os quadros enviados pelo transmissor, que
permanece em loop, enviando os quadros.
Protocolo simplex stop and wait (s/erros)
•
O receptor tem capacidade finita de
processamento e armazenamento (buffer)
dos quadros recebidos
•
Introdução do reconhecimento positivo (ACK)
para controle de fluxo
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 33
Protocolo simplex stop and wait (c/erros)
•
Além das limitações práticas no receptor
(buffer e processamento), o canal agora
apresenta erros.
•
Quadros não confirmados serão
restransmitidos
•
Necessidade do número de sequência
Protocolo de janela deslizante
•
A janela consiste de uma porção do buffer
(circular).
•
Para ser transmitido, um quadro deve estar
dentro da janela do transmissor
•
Para ser recebido, um quadro deve estar
dentro da janela do receptor
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 35
Protocolos de janela deslizante (2)
Janela de tamanho 1, com número de sequência de 3 bits.
(a)
Inicialmente.
(b)
Após o envio do primeiro quadro.
(c)
Após receber o
primeiro quadro.
(d)
Após receber o primeiro reconhecimento
Protocolo de janela deslizante de bit único
Dois cenários para o protocolo 4.
(a)
Caso normal.
(b)
Caso incomum. A notação segue (seq, ack, núm. pacote).
O asterisco indica quando a camada de rede aceita o pacote.
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 37
Protocolo go-back-n (1)
Paralelismo e recuperação de erros. Efeito do erro
quando o tamanho da janela do receptor é unitário (1).
Protocolo go-back-n (2)
Paralelismo e recuperação de erros. Efeito do erro
quando o tamanho da janela do receptor é grande.
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 39
Implementação de temporizadores
Simulação de múltiplos contadores.
(a)
Os timeouts
enfileirados.
(b)
Situação após o primeiro timeout expirar.
Reconhecimento e repetição seletiva
•
Reconhecimentos seletivos podem ser usados para
indicar exatamente quais quadros foram perdidos e,
assim, solicitar a retransmissão de quadros
© 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 41