Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 2/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Enquadramento Quadros (frames) cabeçalho + dados Controle lógico do enlace 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 3/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 4/23
5/9 Prof. André Y. Kusumoto andre_unip@kusumoto.com.br 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.
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 6/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Cálculo de Paridade Técnicas para Detecção de Erros Caractere 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 Transmitir 1000100 0 10001000 1110000 1 11100001 Caractere Bit de Paridade Seqüência a Transmitir 1000100 1 10001001 1110000 0 11100000 7/23
8/9 Método da Paridade Combinada Prof. André Y. Kusumoto andre_unip@kusumoto.com.br 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.
Prof. André Y. Kusumoto andre_unip@kusumoto.com.br 9/9 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 BCC Bit 1 1 1 0 1 1 1 1 1 1 2 0 0 1 1 0 1 0 0 1 3 1 1 1 0 0 1 1 1 0 4 1 0 1 0 0 0 0 1 1 5 0 0 0 1 0 0 0 0 1 6 0 0 0 0 0 0 0 0 0 Bit 7 1 1 1 1 1 1 1 1 0 VRC => 0 1 0 0 0 0 1 0 0 <= LRC
Prof. André Y. Kusumoto andre_unip@kusumoto.com.br 10/16 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)
Prof. André Y. Kusumoto andre_unip@kusumoto.com.br 11/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma checksum 10101001 00111001 Transmissão: 10101001 00111001 k = 8 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andre_unip@kusumoto.com.br 12/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma 11100010 checksum Transmissão: 10101001 00111001 10101001 k = 8 00111001 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andre_unip@kusumoto.com.br 13/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma 11100010 checksum 00011101 Transmissão: 10101001 00111001 10101001 k = 8 00111001 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andre_unip@kusumoto.com.br 14/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma 11100010 checksum 00011101 10101001 k = 8 00111001 Transmissão: 10101001 00111001 00011101 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andre_unip@kusumoto.com.br 15/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma 11100010 checksum 00011101 10101001 k = 8 00111001 Transmissão: 10101001 00111001 00011101 Receptor 10101001 00111001 00011101 Soma checksum 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andre_unip@kusumoto.com.br 16/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Soma 11100010 checksum 00011101 10101001 k = 8 00111001 Transmissão: 10101001 00111001 00011101 Receptor 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 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 andre_unip@kusumoto.com.br 17/16 Técnicas para Detecção de Erros Soma de Verificação (Checksum) Dados a serem transmitidos: 10101001 00111001 Transmissor Transmissão: 10101001 00111001 00011101 Receptor 10101001 00111001 Soma 11100010 checksum 00011101 10101001 00111001 00011101 Soma 11111111 checksum 00000000 k = 8 Se ZERO, OK! 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 Transporte de 1 1 + 1 + 1 = 1 Transporte de 1 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 andrekusumoto.unip@gmail.com 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. 18/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Exemplo: CRC - Cyclic Redundancy Checking 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.x 7 + 0.x 6 + 1.x 5 + 1.x 4 + 1.x 3 + 0.x 2 + 1.x 1 + 1.x 0 = x 7 + x 5 + x 4 + x 3 + x + 1 Multiplicando D(x) pelo termo de maior grau G(x): x 7 + x 5 + x 4 + x 3 + x + 1 x 3 X 10 + x 8 + x 7 + x 6 + x 4 + x 3 D (x) 19/23
Dividindo D (x) por G(x): Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com CRC - Cyclic Redundancy Checking x 10 + x 8 + x 7 + x 6 + x 4 + x 3 x 3 + x 2 + x x 10 + x 9 + x 8 x 7 + x 6 + x 5 + x 4 + x 3 + 1 x 9 + x 7 + x 6 x 9 + x 8 + x 7 x 8 + x 6 + x 4 x 8 + x 7 + x 6 x 7 + x 4 + x 3 x 7 + x 6 + x 5 x 6 + x 5 + x 4 + x 3 x 6 + x 5 + x 4 x 3 x 3 + x 2 + x x 2 + x R(x) 20/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com CRC - Cyclic Redundancy Checking R(x) = x 2 + 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 D(x) R(x) T(x) = 10111011 110 Na recepção, a sequência recebida 10111011 110 será dividida pelo mesmo G(x): Dados recebidos: 1.x 10 + 0.x 9 + 1.x 8 + 1.x 7 + 1.x 6 + 0.x 5 + 1.x 4 + 1.x 3 + 1.x 2 + 1.x 1 + 0.x 0 = x 10 + x 8 + x 7 + x 6 + x 4 + x 3 + x 2 + x 1 21/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com CRC - Cyclic Redundancy Checking x 10 + x 8 + x 7 + x 6 + x 4 + x 3 + x 2 + x x 3 + x 2 + x x 10 + x 9 + x 8 x 7 + x 6 + x 5 + x 4 + x 3 + 1 x 9 + x 7 + x 6 x 9 + x 8 + x 7 x 8 + x 6 + x 4 x 8 + x 7 + x 6 x 7 + x 4 + x 3 x 7 + x 6 + x 5 x 6 + x 5 + x 4 + x 3 x 6 + x 5 + x 4 x 3 + x 2 + x x 3 + x 2 + x 0 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. 22/23
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 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 x 12 + x 11 + x 3 + x 2 + x + 1 CRC-16 x 16 +x 15 +x 2 +1 CRC-32 X 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x 23/23