Redes de Computadores - kusumoto.com.br · • A paridade longitudinal (ou paridade horizontal),...
Transcript of Redes de Computadores - kusumoto.com.br · • A paridade longitudinal (ou paridade horizontal),...
Prof. André Y. Kusumoto – [email protected]
2/23
Nível de Enlace
• A comunicação entre dois equipamentos geograficamente separados envolve uma infraestrutura física de comunicação que é formada pela interligação, ponto-a-ponto, de vários pontos intermediários
Enlace (link)• Pode existir um número variado de enlaces (entre origem e destino), cada
um com um diferente tipo de tecnologia de interconexão• Composto por um meio físico – par trançado, fibra óptica ou o próprio ar• Pode ser dedicado (ponto-a-ponto) ou compartilhado (broadcast)• Ex. Viagem SP-Paris• Objetivo principal – fornecer uma comunicação eficiente e confiável entre
dois pontos adjacentes
Prof. André Y. Kusumoto – [email protected]
3/23
Controle lógico do enlace
Enquadramento•Quadros (frames) – cabeçalho + dados•Delimitar onde um quadro inicia, o que forma o cabeçalho e o que são dados•Marcas especiais de início e fim, marca de início seguida pelo tamanho do quadro ou ainda uma marca de início e um silêncio (repouso) no final da transmissão.
Endereçamento•Enlaces compartilhados (broadcast)•Identificar o destino•Endereço físico – MAC (Media Access Control) Address•Cabeçalho da camada de enlace
• Endereço de origem e destino
Prof. André Y. Kusumoto – [email protected]
4/23
Controle lógico do enlace
Detecção e correção de erros•A comunicação entre dois pontos é suscetível a erros•Detectar e descartar ou Detectar e corrigir•Inserção de bits de redundância - verificação
Prof. André Y. Kusumoto – [email protected]
Métodos de detecção e correção de erros
Definição• A ocorrência de erros em uma transmissão de dados, é motivada por diversas causas,
como por exemplo, ruído, falha na sincronização do receptor em relação ao transmissor, defeitos nos componente, etc.
• Um equipamento deve ser capaz de detectar erros e, eventualmente, até corrigi-los.
5/9
Prof. André Y. Kusumoto – [email protected]
6/23
Técnicas para Detecção de Erros
• Baseados no uso de uma função de cálculo, usando o conjunto de dados a serem transmitidos como seu parâmetro de entrada
• O transmissor efetua o cálculo dessa função e envia junto aos dados. O destino ao receber os dados, realiza o mesmo cálculo e compara com o resultado com o valor recebido
Prof. André Y. Kusumoto – [email protected]
7/23
Técnicas para Detecção de Erros
Cálculo de ParidadeCaractere•Esta técnica consiste em acrescentar um bit extra ao caractere, provocando um número par (ou impar) em relação ao número total de bits “1”s.•O receptor calcula um novo bit de paridade para cada caractere em cima dos bits recebidos e compara este bit com aquele enviado pelo transmissor. •Se forem iguais, a transmissão é considerada correta; se não, haverá necessidade de retransmissão do caractere. •Incapaz de detectar erros aos pares.
Paridade Par
Paridade Impar
Caractere Bit de Paridade Seqüência a Transmitir1000100 0 100010001110000 1 11100001
Caractere Bit de Paridade Seqüência a Transmitir1000100 1 100010011110000 0 11100000
Prof. André Y. Kusumoto – [email protected]
Método da Paridade Combinada• A paridade vertical, denominada VRC (Vertical Redundancy Checking), consiste em acrescentar um
bit de paridade para cada caractere transmitido.• A paridade longitudinal (ou paridade horizontal), denominada LRC (Longitudinal Redundancy
Checking) , consiste em acrescentar um bit de paridade para cada nível (posição) de bit dentro do byte de um bloco.
• A utilização desses dois métodos (VRC + LRC) em conjunto, dá-se o nome de paridade combinada.
• A paridade combinada possibilita a formação de um BCC (Block Check Character), obtido de todos bits formados pela paridade horizontal.
• Quando a mensagem chegar ao seu destino, o equipamento receptor calcula um novo BCC a partir dos bits recebidos e compara-o com o BCC recebido ao final da mensagem.
• Ocorrendo a igualdade entre esses BCCs, a mensagem recebida será considerada correta, sendo aceita e processada. Caso contrário, a mensagem será considerada incorreta, pedindo-se, assim, a retransmissão da mensagem.
• Se após várias retransmissões o erro ainda persistir, o terminal solicita intervenção do operador.
8/9
Prof. André Y. Kusumoto – [email protected]
Método da Paridade Combinada• Vejamos a transmissão do texto “MENSAGEM”, utilizando paridade par, com código ASCII.Texto recebido sem erro
M E N S A G E M BCCBit 1 1 1 0 1 1 1 1 1 1
2 0 0 1 1 0 1 0 0 13 1 1 1 0 0 1 1 1 0
4 1 0 1 0 0 0 0 1 15 0 0 0 1 0 0 0 0 16 0 0 0 0 0 0 0 0 0
Bit 7 1 1 1 1 1 1 1 1 0VRC => 0 1 0 0 0 0 1 0 0
<= LRC
9/9
Prof. André Y. Kusumoto – [email protected]
Técnicas para Detecção de Erros
Soma de Verificação (Checksum)•Os b bits de dados a serem transmitidos são agrupados em porções menores, de k bit, múltiplos de b.•A seguir, cada grupo (de k bits) é usado como argumento de um função cumulativa. Tipicamente, somatório binário.•O valor resultante sofre uma operação de complemento de 1, formando o checksum•O receptor agrupa os dados recebidos em k bits. Depois efetua a soma, inclusive com o checksum.•O complemento de 1 do resultado desta soma deve ser igual a zero (ausência de erros)
10/16
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001
Técnicas para Detecção de Erros
11/16
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
10101001
00111001
Soma
checksum
k = 8k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001
Técnicas para Detecção de Erros
12/16
10101001
00111001
Soma 11100010
checksum
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001
Técnicas para Detecção de Erros
13/16
10101001
00111001
Soma 11100010
checksum 00011101
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001 00011101
Técnicas para Detecção de Erros
14/16
10101001
00111001
Soma 11100010
checksum 00011101
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001 00011101Receptor
Técnicas para Detecção de Erros
15/16
10101001
00111001
Soma 11100010
checksum 00011101
10101001
00111001
00011101
Soma
checksum
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001 00011101Receptor
Técnicas para Detecção de Erros
16/16
10101001
00111001
Soma 11100010
checksum 00011101
10101001
00111001
00011101
Soma 11111111
checksum
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
Soma de Verificação (Checksum)Dados a serem transmitidos: 10101001 00111001Transmissor
Transmissão: 10101001 00111001 00011101Receptor
Técnicas para Detecção de Erros
17/16
10101001
00111001
Soma 11100010
checksum 00011101
10101001
00111001
00011101
Soma 11111111
checksum 00000000
Se ZERO, OK!
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 Transporte de 1
1 + 1 + 1 = 1 Transporte de 1
k = 8
Os b bits de dados a serem transmitidos
são agrupados em porções menores, de
k bit, múltiplos de b.
A seguir, cada grupo (de k bits) é usado
como argumento de um função cumulativa.
Tipicamente, somatório binário.
O valor resultante sofre uma operação de
complemento de 1, formando o checksum
O receptor agrupa os dados recebidos
em k bits.
Depois efetua a soma, inclusive com o
checksum.
O complemento de 1 do resultado desta soma
deve ser igual a zero (ausência de erros)
Prof. André Y. Kusumoto – [email protected]
18/23
Técnicas para Detecção de Erros
CRC (Cyclic Redundancy Checking)•O CRC, ou método de detecção polinomial, é um processo de checagem de erros mais sofisticado e utilizado que o método da paridade combinada.•Na transmissão, os dados a serem transmitidos são transformados em um polinômio D(x), em função dos “0”s e “1”s. •O polinômio D(x) é multiplicado pelo termo de maior grau de um polinômio gerador G(x). •O resultado desta multiplicação será um novo polinômio D’(x) que será dividido pelo polinômio gerador G(x). •O resto desta divisão R(x) será enviado ao término da transmissão de D(x) (pode ser chamado de BCC, FCS, etc). •Na recepção, os dados recebidos serão divididos pelo mesmo polinômio gerador G(x). •Se o resto desta divisão for igual a zero, significa que ao houve erros na transmissão; caso contrário, foi detectado erro na transmissão, sendo necessária a retransmissão da informação enviada anteriormente.•As divisões polinomiais são realizadas desconsiderando a existência de sinal.
Prof. André Y. Kusumoto – [email protected]
19/23
CRC - Cyclic Redundancy Checking
Exemplo:
Seja a seqüência 10111011 a ser transmitida utilizando o método polinomial com polinômio gerador G(x) = x3 + x2 + x, então:
D(x) = 1.x7 + 0.x6 + 1.x5 + 1.x4 + 1.x3 + 0.x2 + 1.x1 + 1.x0 = x7 + x5 + x4 + x3 + x + 1
Multiplicando D(x) pelo termo de maior grau G(x):
x7 + x5 + x4 + x3 + x + 1x3
X10 + x8 + x7 + x6 + x4 + x3 D’(x)
Prof. André Y. Kusumoto – [email protected]
20/23
CRC - Cyclic Redundancy Checking
Dividindo D’(x) por G(x):
x10 + x8 + x7 + x6 + x4 + x3 x3 + x2 + x
x10 + x9 + x8 x7 + x6 + x5 + x4 + x3 + 1
x9 + x7 + x6
x9 + x8 + x7
x8 + x6 + x4
x8 + x7 + x6
x7 + x4 + x3
x7 + x6 + x5
x6 + x5 + x4 + x3
x6 + x5 + x4
x3
x3 + x2 + x
x2 + x R(x)
Prof. André Y. Kusumoto – [email protected]
21/23
CRC - Cyclic Redundancy Checking
R(x) = x2 + x = 110 (1.x2 + 1.x1 + 0.x0)
R(x) será enviado ao final da sequência D(x), ou seja:
T(x) = 10111011 110
Na recepção, a sequência recebida 10111011 110 será dividida pelo mesmo G(x):
Dados recebidos:1.x10 + 0.x9 + 1.x8 + 1.x7 + 1.x6 + 0.x5 + 1.x4 + 1.x3 + 1.x2 + 1.x1 + 0.x0 = x10 + x8 + x7 + x6 + x4 + x3 + x2 + x1
T(x) =10111011 . 110
D(x) R(x)
Prof. André Y. Kusumoto – [email protected]
22/23
CRC - Cyclic Redundancy Checking
Resto = 0, indicando que não houve erros na transmissão. Se o resto fosse diferente de zero, haveria necessidade de se retransmitir toda a sequência enviada pelo transmissor.
x10 + x8 + x7 + x6 + x4 + x3 + x2 + x x3 + x2 + xx10 + x9 + x8 x7 + x6 + x5 + x4 + x3 + 1 x9 + x7 + x6
x9 + x8 + x7
x8 + x6 + x4
x8 + x7 + x6
x7 + x4 + x3
x7 + x6 + x5
x6 + x5 + x4 + x3
x6 + x5 + x4
x3 + x2 + x x3 + x2 + x 0
Prof. André Y. Kusumoto – [email protected]
23/23
CRC - Cyclic Redundancy Checking
• Os polinômios geradores padronizados, em sistemas síncronos, são apresentados na tabela abaixo.
Padrão Polinômio Gerador
CRC-12 x12 + x11 + x3 + x2 + x + 1
CRC-16 x16+x15+x2+1
CRC-32 X32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x