40
Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Prof. Marcelo Gonçalves Rubinstein Redes de Computadores

Redes de Computadores - lee.eng.uerj.brrubi/cursos/cd2/Parte5a.pdf · Enlace é um canal de comunicação entre nós adjacentes Serviços Enquadramento ... (inserção de bits) Receptor,

Embed Size (px)

Citation preview

Programa de Pós-Graduação em Engenharia Eletrônica

Faculdade de Engenharia

Universidade do Estado do Rio de Janeiro

Prof. Marcelo Gonçalves Rubinstein

Redes de Computadores

Ementa

Introdução a Redes de Computadores

A Camada Aplicação

A Camada Transporte

A Camada Rede

A Camada Enlace

(A Camada Física)

Camada enlace

Protocolos de enlace

Fornecem comunicação entre nós (hospedeiros ouroteadores) em um enlace

Enlace é um canal de comunicação entre nós adjacentes

Serviços

Enquadramento

Controle de erros

Detecção e correção de erros

Controle de fluxo

Endereçamento

Controle de acesso ao meio

Transmissão dos dados pelos enlaces (fonte: Kurose)

Camada enlace

Alguns serviços semelhantes aos serviços

providos pela camada transporte

Canais

Ponto-a-ponto

Difusão (Broadcast)

Necessidade de controle de acesso ao meio

compartilhado

Camada enlace

Em geral, há três tipos de serviços providos

Não orientado a conexões e sem confirmação

Não orientado a conexões e com confirmação

Orientado a conexões e com confirmação

Camada enlace

Não orientado a conexões e sem confirmação

Apropriado quando a taxa de erros é baixa

Recuperação de perdas a cargo das camadassuperiores

Apropriado para tráfego de tempo real

Maior parte das redes locais usa um serviço desse tipo

Camada enlace

Não orientado a conexões e com confirmação

Quadros são numerados

Usa temporizadores para implementar a confiabilidade

Usado atualmente em redes sem fio

Essas redes possuem canais não confiáveis

Camada enlace

Orientado a conexões e com confirmação

Quadros são numerados

Usa temporizadores para implementar a confiabilidade

Camada enlace

Confirmação na camada enlace

Questão de otimização

Pode estar em camadas superiores

Problema é a fragmentação dos pacotes em quadros

Pode fazer com que se leve muito tempo para

transmitir um pacote

Enquadramento

Serviço provido pela camada física não garante

que o fluxo de bits seja livre de erros

Número de bits pode ser maior ou menor do que onúmero de bits transmitidos

Bits podem ter valores diferentes dos bits transmitidos

Camada enlace divide o fluxo de bits em

quadros e faz uma verificação em cada quadro

(detecção e correção de erros)

Enquadramento

Vários métodos para marcar o início e o fim dos

quadros

Contagem de caracteres

Octetos de flags, com inserção de octetos

Flags iniciais e finais, com inserção de bits

Violações de codificação da camada física

Outros

Enquadramento - contagem de carac.

Usa um campo no cabeçalho para especificar o

número de caracteres do quadro

Enquadramento - contagem de carac.

Exemplo de contagem de caracteres (fonte: Tanenbaum)

Enquadramento - contagem de carac.

Problema

Contagem pode ser adulterada por um erro detransmissão

Mesmo com a verificação incorreta, destino não sabe

onde começa o próximo quadro

Solicitação de retransmissão também não adianta

Destino não sabe quantos caracteres devem ser

ignorados para chegar ao início da retransmissão

Enquadramento - contagem de carac.

Exemplo de contagem de caracteres com um erro (fonte: Tanenbaum)

Enquadramento - contagem de carac.

Quase não é utilizado

Enquadramento - octetos de flags

Soluciona o problema de ressincronização após

um erro

Quadro começa e termina com octetos especiais

(octetos de flags)

Delimitadores de início e de fim de quadro

Enquadramento - octetos de flags

Um quadro com octetos de flags (fonte: Tanenbaum)

Enquadramento - octetos de flags

Dados binários podem conter os octetos de flags

Solução → transmissor da camada enlace introduz umcaractere de escape especial (ESC) antes de cadaocteto de flag “acidental” nos dados

Técnica chamada inserção de octetos ou inserção de

caracteres

Usada no protocolo PPP

Enquadramento - octetos de flags

Sequências de quadros com octetos de flags (fonte: Tanenbaum)

Enquadramento - octetos de flags

Problema

Depende do uso de caracteres de 8 bits

Enquadramento - flags iniciais e finais

Dados podem ter um número arbitrário de bits

Cada quadro começa e termina com um padrão

de bits

Exemplo

01111110

Quando encontra cinco bits 1 consecutivos nos dadoso transmissor da camada enlace coloca um bit 0(inserção de bits)

Receptor, ao ver cinco bits 1 seguidos por um bit 0,remove o bit 0

Enquadramento - flags iniciais e finais

Exemplo de inserção de bits (fonte: Tanenbaum)

(a) Dados originais (b) Dados transmitidos

(c) Dados recebidos após a remoção dos bits

Enquadramento - flags iniciais e finais

Se o receptor perder a sincronização, basta

procurar pelo padrão de bits

Enquadramento - violações de codif.

Só pode ser aplicado em redes nas quais a

decodificação no meio físico contém algum tipo

de redundância

Exemplo

Bit 1 é um par alto-baixo e o bit 0 é um par baixo-alto

Todo bit de dados tem uma transição intermediária,facilitando a localização dos limites de bits peloreceptor

Combinações baixo-baixo e alto-alto podem serusadas na delimitação de quadros

Controle de fluxo

Duas abordagens mais comuns

Controle de fluxo baseado em realimentação

Controle de fluxo baseado na velocidade

Mecanismo interno limita a velocidade com que os

transmissores podem enviar os dados

Não usa realimentação do receptor

Não utilizado na camada enlace

Detecção e correção de erros

Erros de transmissão frequentes

Loops locais

Enlaces sem fio

Erros tendem a ocorrer em rajadas

Vantagem

Podem danificar poucos quadros

Desvantagem

Dificultam a correção dos erros

Usam informações redundantes para detectar e

corrigir erros

Detecção e correção de erros

Códigos de correção de erros

Bons para enlaces sem fio

Retransmissão pode conter erros

Ex.: correção antecipada de erros (Forward ErrorCorrection – FEC)

Códigos de detecção de erros

Bons para enlaces confiáveis

Ex.: enlaces de fibra

Detecção e correção de erros - paridade

Código simples de detecção de erros

Bit de paridade acrescentado aos dados

Escolhido de forma que o número de bits 1 da palavrade código seja par ou ímpar

Receptor conta quantos bits 1 a palavra possui

Se é usada a paridade par e contou um número ímparde 1s → ocorreu um número ímpar de erros

Número par de erros → não são detectados

Código com um único bit de paridade pode

detectar erros isolados

Detecção e correção de erros - paridade

Exemplo

1011010 enviado com paridade par → 10110100

1011010 enviado com paridade ímpar → 10110101

Como os erros ocorrem geralmente em rajada

Paridade com um bit não é suficiente

Solução → aumenta-se o número de bits de paridade

Detecção e correção de erros - paridade

Paridade bidimensional

Paridade de linha

Paridade de coluna

Paridade dos bits de paridade

Pode detectar e corrigir erros isolados

Pode detectar erros duplos

Exemplo de paridade bidimensional (fonte: Kurose)

Detecção e correção de erros - checksum

Soma de verificação

Método simples

Normalmente implementado em software

Bits de dados tratados como uma sequência de

números inteiros de k bits

Soma-se esses números inteiros (em

complemento a 1) e usa-se o total como bits de

detecção de erros

Receptor pode recalcular o checksum e

compará-lo com o transmitido

Se diferente → erro

Usado no TCP, no UDP e no IP

Detecção e correção de erros - CRC

Código de redundância cíclica (Cyclic Redundancy

Check) ou código polinomial

Mais complexo

Geralmente implementado em hardware

Trata sequência de bits como representações de

polinômios com coeficientes 0 e 1

Quadro de k bits → k termos, de xk-1 até x0

Polinômio de grau k-1

Aritmética polinomial feita em módulo 2, sem

transportes para adição nem empréstimos para

subtração

Adição e subtração são idênticas à operação ou-exclusivo

Detecção e correção de erros - CRC

Transmissor e receptor devem concordar em

relação ao uso de um polinômio gerador G(x)

Tanto o bit de mais alta ordem quanto o bit de maisbaixa ordem devem ser iguais a 1

Polinômio gerador pode ser escolhido de acordo com aprobabilidade de ocorrerem erros

Quadro de m bits corresponde a M(x)

M(x) tem de ser de maior grau do que G(x)

Detecção e correção de erros - CRC

CRC acrescentado ao final do quadro de forma

que o quadro verificado seja divisível por G(x)

Sequência de verificação de quadro (Frame CheckSequence – FCS)

Ao receber o quadro verificado, o receptor

tentará dividi-lo por G(x)

Se o resto é diferente de zero → erro

Detecção e correção de erros - CRC

Algoritmo

Seja r o grau de G(x)

Acrescente r bits à extremidade de mais baixa ordemde M(x)

Polinômio xrM(x)

Divida a sequência de bits correspondente a xrM(x)pela sequência correspondente por G(x)

Subtraia o resto da sequência correspondente a xrM(x)

Resultado é o quadro verificado que deverá sertransmitido

Polinômio T(x)

Exemplo de cálculo de CRC (fonte: Tanenbaum)

Detecção e correção de erros - CRC

Usado em diversos padrões de redes pessoais,

locais e metropolitanas

Exemplo de G(x) do IEEE 802

x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5

+ x4 + x2 + x1 + 1