Redes de Computadores - Laboratório de Engenharia Elétricarubi/cursos/rc/Parte5a.pdf · Enlace é...

Preview:

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 erros

Mais comum é dar ao transmissor alguma

realimentação sobre o que está se passando do

outro lado

Confirmações (reconhecimentos) positivas e negativas

Além disso usam-se temporizadores

Espera pela confirmação durante um tempo

Números de sequência também são usados

Várias cópias do mesmo quadro podem ser recebidas

Ex.: Reconhecimentos perdidos

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 Error

Correction – FEC)

Códigos de detecção de erros

Bons para enlaces confiáveis

Ex.: enlaces de fibra

Detecção e correção de erros - definições

Quadro com m bits de dados e r bits de

redundância

Tamanho total n bits

Unidade de n bits é chamada palavra de código

de n bits

Número de posições de bits que duas palavras

diferem entre si é chamado distância (de

Hamming)

Detecção e correção de erros - definições

Se duas palavras de código estiverem a uma

distância d uma da outra → necessário corrigir d

erros para converter uma na outra

Em geral todas as 2m mensagens de dados são

válidas

Mas nem todas as 2n palavras de código

possíveis são usadas

Pode-se elaborar uma lista contendo todas as

palavras válidas e localizar duas palavras de

código cuja distância é mínima

Distância de Hamming do código completo

Detecção e correção de erros

Detecção e correção de erros dependem da

distância de Hamming do código completo

Para detectar d erros é necessário um código dedistância d + 1

Não há como d erros de bits transformarem uma palavra

de código válida em outra válida

Para corrigir d erros é necessário um código dedistância 2d + 1

Palavras de código válidas estarão tão distantes que,

mesmo com d alterações, a palavra de código original

continuará mais próxima do que qualquer outra

Detecção e correção de erros

Exemplo

Código contendo as seguintes palavras: 0000000000,0000011111, 1111100000 e 1111111111

Distância igual a 5

Pode corrigir erros duplos

Se detecta 0000000111 (é um erro duplo)

Original deve ser 0000011111

Se detecta 0000000111 e foi transmitido 0000000000(é um erro triplo) → erro não corrigido de maneiraadequada

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 tem uma

distância igual a 2

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)

Recommended