Redes de Computadores - kusumoto.com.br · • A paridade longitudinal (ou paridade horizontal),...

23
Prof. André Y. Kusumoto [email protected] Redes de Computadores

Transcript of Redes de Computadores - kusumoto.com.br · • A paridade longitudinal (ou paridade horizontal),...

Prof. André Y. [email protected]

Redes de Computadores

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