Upload
nguyenminh
View
221
Download
0
Embed Size (px)
Citation preview
�
Carlos E. Pereira - UFRGS/DELET GCAR
CamadaCamada de Enlace de de Enlace de DadosDados
Carlos E. Pereira - UFRGS/DELET GCAR
CamadaCamada de Enlace de de Enlace de Dados Dados
● aborda algoritmos que permitem umacomunicação eficiente e confiável entre doiscomputadores adjacentes em nível dacamada de enlace de dados (adjacentes nosentido de estarem fisicamente conectadas)
�
Carlos E. Pereira - UFRGS/DELET GCAR
Tarefas da CamadaTarefas da Camadade Enlace de de Enlace de DadosDados
● Enquadramento (Delimitação de quadros)
● Controle de Erros
● Controle de Fluxo
● Gerenciamento de Enlace
Carlos E. Pereira - UFRGS/DELET GCAR
EnquadramentoEnquadramento
● Fluxo de bits é dividido em quadros, sendocalculado um ‘checksum’ (digito/código deverificação)
�
Carlos E. Pereira - UFRGS/DELET GCAR
DelimitaçãoDelimitação de de Quadros Quadros
● 1. Contagem de Caracteres– um campo do cabeçalho é usado para determinar
número de caracteres do quadro
– problema: erros na transmissão (no campo com onúmero de caracteres)
Carlos E. Pereira - UFRGS/DELET GCAR
Contagem Contagem de de CaracteresCaracteres
�
Carlos E. Pereira - UFRGS/DELET GCAR
DelimitaçãoDelimitação de de Quadros Quadros
● 2. Caracteres Iniciais e Finais com Inserçãode Caracteres (character stuffing)– DLE STX e DLE ETX (DLE = Data Link
Escape)
– em caso de transmissão de arquivos binários:inclusão de DLE em cada seqüencia DLE queaparecer no arquivo (estes caracteres sãoremovidos na recepção)
– desvantagem (perda de 8 bits a cada inserção)
Carlos E. Pereira - UFRGS/DELET GCAR
Delimitação Delimitação de de QuadrosQuadros
● Inserção de caracteres
�
Carlos E. Pereira - UFRGS/DELET GCAR
DelimitaçãoDelimitação de de Quadros Quadros
● 3. Flags iniciais e finais (bit stuffing)– flag: símbolo inicial e final de quadro com um
número qualquer de bits (previamente definido)
– ex: 01111110 (protocolo HDLC) => natransmissão de arquivos binários uma seqüenciade cinco 1s consecutivos é sempre inserido um0 de forma a evitar o aparecimento do flag
– vantagem: somente 1 bit adicional em cadainserção
Carlos E. Pereira - UFRGS/DELET GCAR
Delimitação Delimitação de de QuadrosQuadros
● O que ocorre se 0111110 deve ser transmitido ?
● ex:– 011111101011001011111011(sinal a ser transmitido)
– 0111111010110010111110011 (após bit stuffing)
– 011111101011001011111011 (sinal recuperado)
�
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Erros isolados: 1 bit em 1 quadro
● Erros em rajada: todo o quadro ou mais deum quadro é deturpado
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Detecção de err o: a partir do quadrorecebido conclui-se que houve erro natransmissão e solicita-se reenvio
● Correção de erro: o quadro contéminformações redundantes de forma apermitir a identificação de qual bit contémerro. Não necessita reenvio.
�
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Palavra de código: mensagem contendo mbits de dados e r bits redundantes =>tamanho total n = m+r
● Distância de Hamming: número deposições de bits em que duas palavras decódigo diferem => indica o número de errosque deve ocorrer (inversão de bits) paratornar uma palavra de código em outraválida
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Em geral 2m mensagens são válidas, porémnem todas possíveis 2n palavras de códigosão válidas
● Dado um conjunto de símbolos (palavras decódigo) válidos, determina-se a distânciade Hammig do conjunto como sendo amenor distância de Hammig entre duaspalavras de código válidas do conjunto
�
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Detecção de d erros: é possível caso adistância de Hamming do conjunto sejaigual a d+1
● ex: paridadeDistância de Hammig = 2, logo permite adetecção de err os em 1 único bit
● análise do código: 0000 0001 1000 1111
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Correção de d err os: é possível caso adistância de Hamming do conjunto sejaigual a 2d+1
● implica que, após a ocorrência de d erros apalavra recebida estará a uma distância deHamming d de somente uma palavra válida(estará no mínimo a uma distância d+1 deoutra).
�
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
– supondo um código com n=m+r bits, cada umadas 2m mensagens válidas tem n palavras decódigo inválidas a uma distância igual a 1(inversão de 1 único bit ou erros simples)
– logo, para permitir reconhecimento do erro,cada mensagem válida deve ter associado a ela(n+1) seqüencias de bits
– logo o limite teórico é (n+1)*2m <= 2n ou aindam+r+1<= 2r (logo, dado m posso saber r)
Carlos E. Pereira - UFRGS/DELET GCAR
DetecçãoDetecção e e Correção Correção de de Erros Erros
● Tabelam r1 24 38 416 532 6
�
Carlos E. Pereira - UFRGS/DELET GCAR
CódigoCódigo de Hamming de Hamming
● bits da palavra de código são numerados apartir da esquerda (início b1)
● todos os bits que são potências de 2 (1,2,4,...)são considerados bits de verificação (V)
● os outros bits (3,5,6,7,9,...) são preenchidoscomo bits de dados
● um bit de dados pode contribuir em diversosbits de verificação (ex: b5 contribui no 1 e 4)
Carlos E. Pereira - UFRGS/DELET GCAR
CódigoCódigo de Hamming de Hamming
● ex: mensagem 1001000 (m=7,
● V V 1 V 0 0 1 V 0 0 0b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11
b1= 0 (b3 xor b5 xor b7 xor b9 xor b11)b2= 0 (b3 xor b6 xor b7 xor b10 xor b11)b4= 1 (b5 xor b6 xor b7)b8= 0 (b9 xor b10 xor b11)
● logo código enviado seria 00110010000
��
Carlos E. Pereira - UFRGS/DELET GCAR
Código Código de Hammingde Hamming
Carlos E. Pereira - UFRGS/DELET GCAR
CódigoCódigo de Hamming de Hamming
● inicializa-se um contador em zero
● verifica-se a paridade de cada bit deverificação
● se a paridade não estiver correta soma-se ovalor da posição do bit de verificação aocontador
● no final: contador em zero = transmissão OKcontador não zero = indica bit onde houve oerro
��
Carlos E. Pereira - UFRGS/DELET GCAR
CódigoCódigo de Hamming de Hamming
● Supondo erro em um bit na transmissão 00110010001 em vez de 00110010000
● checagem:00110010001 cálculo dos bits deverificação: b1= 1 b2= 1 b4= 1 b8= 1uma vez que b1, b2 e b8 diferem, temos queerro está no bit 11
Carlos E. Pereira - UFRGS/DELET GCAR
CódigoCódigo de Hamming de Hamming
● Aplicação para detecção de erro em rajada(vários bits afetados):– juntar k quadros formando uma matriz
– transmiti r a matriz por coluna
– reconstruir a matriz na recepção
● Se um quadro for destruído, apenas 1 bit decada quadro original é afetado,possibilitando sua correção
��
Carlos E. Pereira - UFRGS/DELET GCAR
CódigosCódigos de de DetecçãoDetecção de de ErrosErros● Correção de erros: usadas especialmente em
caso de longos tempos de propagação, namaioria dos casos prefere-se somente a detecçãoe o re-envio
● ex: taxa de erro 10-6 por bit (erros isolados) emum canal com tamanho de 1000 bitsHamming: exigiria 10 bits, o que numa transmissão de
1 MByte implicaria em overhead de 10000 bitsParidade: a cada 1000 blocos uma nova transmissãoseria necessária (1000 bits + 1 paridade + 1000paridade = overhead 2001 bits)
Carlos E. Pereira - UFRGS/DELET GCAR
CódigosCódigos de de Detecção Detecção de deErrosErros
● Código de Redundância Cíclica (CRC)– cadeias de bits são tratadas como polinômios
– k bits = polinômio xk + xk-1 + xk-2 + ... x0
– aritmética polinomial em módulo 2 (soma esubtração = XOR)
● transmissor e receptor devem concordar emrelação ao polinômio gerador G(x)
��
Carlos E. Pereira - UFRGS/DELET GCAR
AlgoritmoAlgoritmo de de cálculo cálculo do CRC do CRC
● definir r como o grau de G(x). Acrescentar r bitszero à extremidade de baixa ordem do quadro, demodo que ele passe a conter m+r bits ecorresponda ao polinômio xrM(x)
● dividir (módulo 2) G(x) por xrM(x)
● subtraia (em módulo 2) o resto da divisão eacrescente no polinômio original (formando T(x)polinômio a ser transmitido, que é divisível porG(x) )
Carlos E. Pereira - UFRGS/DELET GCAR
CálculoCálculo CRC CRC
● ex: G(x) = x4 + x + 1 mensagem 1101011011
1100001010
10011 11010110110000 10011
10011
10011
00001
00000
00010
00000 ... resto = 1110
��
Carlos E. Pereira - UFRGS/DELET GCAR
CálculoCálculodo CRCdo CRC
Carlos E. Pereira - UFRGS/DELET GCAR
UsoUso do CRC do CRC na recepçãona recepção
● no receptor T(x) é dividido por G(x). Casohaja erros T(x) passa a ser T(x) + E(x).=>o resultado da divisão será E(x)/G(x)
● para que erros possam ser detectadosE(X)/G(x) deve ser diferente de zero
��
Carlos E. Pereira - UFRGS/DELET GCAR
AbrangênciaAbrangência do do uso uso de CRC de CRC
● Exemplo: detecção de 2 erros simplesisolados E(x)=xi + xj onde i>jou ainda E(x) = xj (x i-j +1)
● para que todos os erros duplos sejamdetectados G(x) não deve dividir xk + 1para qualquer k até um máximo valor i<j(máximo tamanho do quadro)ex: x15+x14+1 não divide xk+1 para k<32768
Carlos E. Pereira - UFRGS/DELET GCAR
““CRCsCRCs - - padrões padrões””● CRC-12: x12 + x11 + x3 + x2+ x + 1
para caracteres de 6 bits
● CRC-16: x16 + x15 + x2+ 1CRC-CCITT: x16 + x12 + x5 + 1detectam todos os erros simples e duplos, todos oserros com número ímpar de bits, todos os erros emrajada com no máximo 16 bits, 99.997 % das rajadasde erro de 17 bits
● vantagem: um simples circuito de deslocamentopode ser usado para cálculos
��
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolo Protocolo ““UtópicoUtópico””
➩ Camada de rede sempre tem dados paratransmitir
➩ transmissor fica sempre transmitindo
➩ receptor tem buffer infinito
➩ canal não possui erros de transmissão
Carlos E. Pereira - UFRGS/DELET GCAR
��
Carlos E. Pereira - UFRGS/DELET GCAR
Controle Controle de de Erros Erros no Enlaceno Enlace
● Para garantir transmissões confiáveis atravésde retransmissão, o procedimento em geralutilizado é fazer com que o destinatário de umquadro envie ao remetente quadros com avisosde reconhecimento positivo ou negativo dosquadros recebidos
● reconhecimento pode ser enviado como quadrode controle do nível 2 ou ‘de carona’ emcampo de controle de quadro com informação
Carlos E. Pereira - UFRGS/DELET GCAR
ControleControle de de Erros Erros no Enlaceno Enlace
● O que fazer se confirmação em caso deproblemas na transmissão da mensagem ouda confirmação de recebimento ?
– uso de temporizadores: controle de time-out
��
Carlos E. Pereira - UFRGS/DELET GCAR
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolos ElementaresProtocolos Elementares de deEnlace deEnlace de Dados Dados
● simplex sem restr ições: transmissão somentenum sentido, camadas sempre prontas atransmitir e receber. Supõe que camada dedados não apresenta erros e que receptor podeprocessar dados de forma infinitamente rápida
● stop-and-wait simplex: receptor demora paraprocessar dados. Após processar o receptorenvia um quadro para avisar transmissor
�
Carlos E. Pereira - UFRGS/DELET GCAR
Algoritmo Algoritmo (‘simplex’)(‘simplex’)
➩ Transmissorwhile(true) DeCamadaRede(buffer) s.info = buffer ParaCamadaFísica(s)
➩ Receptorwhile (true) Esperar(evento) DaCamadaFísica(r) ParaCamadaRede(r.info)
Carlos E. Pereira - UFRGS/DELET GCAR
ControleControle de de Erros Erros no Enlace no Enlace
● Procedimentos mais util izados para controlede erro:– simplex pára-e-espera
● receptor com buffer finito
● canal ruidoso
– bit alternado (simplex para canal ruidoso)
– janela n com retransmissão integral
– janela n com retransmissão seletiv
��
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolo Protocolo ‘‘párapára-e--e-espera’espera’➪ Receptor tem buffer finito (informa o
transmissor se está pronto ou não a receberos dados)
➪ Transmissor EnviaQuadro Aguarda
➪ Receptor RecebeQuadro Processa Envia sinal para continuar
Carlos E. Pereira - UFRGS/DELET GCAR
��
Carlos E. Pereira - UFRGS/DELET GCAR
Canal Canal RuidosoRuidoso➪ Quadros podem chegar danificados
(necessidade de retransmissão)
➪ Procedimento:➪Transmissor envia quadro
➪Se quadro chegou corretamente, receptorconfirma para enviar outra mensagem, casocontrário é descartado sem confirmação
➪Caso não receba confirmação, transmissorretransmite quadro (após determinado tempo deespera)
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolos ElementaresProtocolos Elementares de deEnlace deEnlace de Dados Dados
● protocolo simplex para canal com ruído– somente uma confirmação por parte do receptor
não é suficiente (o que fazer se a comunicaçãoé perdida ??)
– solução: adiciona-se um número de seqüênciano cabeçalho de cada quadro enviado. Receptorinforma caso recepção seja OK. Número deseqüência pode ter comprimento de apenas 1 bit
��
Carlos E. Pereira - UFRGS/DELET GCAR
Carlos E. Pereira - UFRGS/DELET GCAR
��
Carlos E. Pereira - UFRGS/DELET GCAR
Algoritmo Algoritmo de bit de bit alternadoalternado
● Transmissor somente envia novo quadrodepois de receber o reconhecimento doquadro enviado anteriormente
● Uma vez que quadros podem serretransmitidos, é necessário numerá-los paraque o receptor possa distinguir se éretransmissão ou novo quadro
● Como transmissor somente envia quadroapós receber o último, 1 bit é suficiente
Carlos E. Pereira - UFRGS/DELET GCAR
AlgoritmoAlgoritmo de bit de bit alternado alternado
��
Carlos E. Pereira - UFRGS/DELET GCAR
AlgoritmoAlgoritmo de bit de bit alternado alternado
● Técnica simples porém ineficiente, poiscanal não é usado enquanto confirmação éesperada
Carlos E. Pereira - UFRGS/DELET GCAR
OtimizaçõesOtimizações
● receptor envia confirmação de recebimento nãoem um quadro de controle, mas de ‘carona’ emum quadro de dados (‘piggybacking’) =>melhor utilização da largura de banda do canal
● caso não tenha dados para enviar em umdeterminado intervalo, receptor enviaconfirmação como quadro de controle
��
Carlos E. Pereira - UFRGS/DELET GCAR
OtimizaçõesOtimizações
● Outra forma de aumentar a eficiência épermitir que transmissor envie váriasmensagens mesmo sem ter recebidoconfirmação
Carlos E. Pereira - UFRGS/DELET GCAR
ProtocolosProtocolos de de JanelaJanelaDeslizanteDeslizante
● transmissor mantém janela de transmissão ereceptor uma janela de recepção (nãoprecisam ter o mesmo tamanho)
● janela de transmissão contém quadrosenviados mas não confirmados (tamanhovariável)
● janela de recepção contém quadros járecebidos e sendo processados (verificaçãode CRC, etc.) => tamanho constante
��
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolos Protocolos de de JanelaJanelaDeslizanteDeslizante
● Procedimento:Transmitir um número finito dequadros antes de parar e esperar pela confirmação:visa utili zar melhor o canal
● transmissor possui janela de tamanho variávelcontendo todos os quadros que pode transmiti r.Cada quadro recebe uma numeração emseqüência.
● Receptor possui uma janela de tamanho fixocontendo os códigos de seqüência dos códigos quepodem ser recebidos
Carlos E. Pereira - UFRGS/DELET GCAR
Como funciona Como funciona em em caso caso dedeerro erro de de transmissão transmissão ??
● ‘Go back n’ : ignora todos os quadros recebidosdepois do quadro com erro até que o quadrooriginalmente errado seja recebido corretamente
● Repetição seletiva: os quadros recebidoscorretamente após um quadro errado sãobufferizados pela camada de enlace. Quando oquadro errado for recebido corretamente, todo oconjunto de quadros bufferizados é passado para acamada de rede
��
Carlos E. Pereira - UFRGS/DELET GCAR
Carlos E. Pereira - UFRGS/DELET GCAR
��
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolos ElementaresProtocolos Elementares de deEnlace deEnlace de Dados Dados
● Go back n:– confirmação de um quadro n confirma
automaticamente todos os quadros de seqüênciamenor que n
Carlos E. Pereira - UFRGS/DELET GCAR
ControleControle de de Fluxo Fluxo
● Transmissor rápido (rodando em máquinarápida ou não sobrecarregada) quer enviardados para receptor lento (rodando emmáquina lenta ou sobrecarregada)– Problema pode ser contornado através do uso
do protocolo de janelas deslizantes
�
Carlos E. Pereira - UFRGS/DELET GCAR
Protocolo Protocolo de de janela deslizantejanela deslizante
● Janela de Transmissão com largura T
● após enviar T quadros, transmissorsuspende envio e fica aguardandoconfirmação
● quadros numerados de 0 a T-1
Carlos E. Pereira - UFRGS/DELET GCAR
��
Carlos E. Pereira - UFRGS/DELET GCAR
Desempenhos Desempenhos dos dos ProtocolosProtocolos
● Dedução em Tannembaum
Carlos E. Pereira - UFRGS/DELET GCAR
DesempenhoDesempenho