27
1 BCC361 2012/01 Camada de Enlace BCC361 – Redes de Computadores Universidade Federal de Ouro Preto Departamento de Ciência da Computação Prof. Reinaldo Silva Fortes www.decom.ufop.br/reinaldo 2011/02 1 Camada Nome 5 Aplicação 4 Transporte 3 Rede 2 Enlace 1 Física BCC361 2012/01 Agenda Introdução; Detecção e correção de erros; Protocolos básicos de enlace de dados; Protocolos de janela deslizante; Exemplos de protocolos de enlace de dados; Controle de acesso ao meio. 2 BCC361 2012/01 INTRODUÇÃO Introdução; Detecção e correção de erros; Protocolos básicos de enlace de dados; Protocolos de janela deslizante; Exemplos de protocolos de enlace de dados; Controle de acesso ao meio. 3 BCC361 2012/01 Tópicos Objetivos; Serviços oferecidos à camada de rede; Enquadramento; Controle de erros; Controle de fluxo. Introdução 4 BCC361 2012/01 Objetivos A camada física recebe um fluxo de bits brutos e tenta entregá-los ao destino; Entretanto: Não garante a entrega livre de erros; O número de bits recebidos pode ser diferente do enviado; Bits podem chegar com valores diferentes dos originais; Meios físicos possuem uma taxa máxima de transmissão e existe um tempo gasto na propagação dos sinais; Introdução 5 BCC361 2012/01 Objetivos Objetivo: Realizar a comunicação eficiente e confiável entre dois computadores adjacentes; Adjacentes: fisicamente conectados por um canal de comunicação preservando a ordem de envio dos bits; (a) Comunicação virtual. (b) Comunicação real. Introdução 6

Camada de Enlace - DECOM-UFOP · Camada de Enlace BCC361 – Redes de Computadores ... • Adjacentes: fisicamente conectados por um canal de comunicação preservando a ordem de

Embed Size (px)

Citation preview

1

BCC3612012/01

Camada de Enlace

BCC361 – Redes de ComputadoresUniversidade Federal de Ouro PretoDepartamento de Ciência da Computação

Prof. Reinaldo Silva Forteswww.decom.ufop.br/reinaldo2011/02

1

Camada Nome

5 Aplicação

4 Transporte

3 Rede

2 Enlace

1 Física

BCC3612012/01

Agenda• Introdução;• Detecção e correção de erros;• Protocolos básicos de enlace de dados;• Protocolos de janela deslizante;• Exemplos de protocolos de enlace de dados;• Controle de acesso ao meio.

2

BCC3612012/01

INTRODUÇÃO

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

3

BCC3612012/01

Tópicos• Objetivos;• Serviços oferecidos à camada de rede;• Enquadramento;• Controle de erros;• Controle de fluxo.

Introdução

4

BCC3612012/01

Objetivos• A camada física recebe um fluxo de bits brutos e tenta

entregá-los ao destino;• Entretanto:

• Não garante a entrega livre de erros;• O número de bits recebidos pode ser diferente do enviado;• Bits podem chegar com valores diferentes dos originais;• Meios físicos possuem uma taxa máxima de transmissão e existe

um tempo gasto na propagação dos sinais;

Introdução

5

BCC3612012/01

Objetivos• Objetivo: Realizar a comunicação eficiente e confiável entre

dois computadores adjacentes;• Adjacentes: fisicamente conectados por um canal de

comunicação preservando a ordem de envio dos bits;

(a) Comunicação virtual. (b) Comunicação real.

Introdução

6

2

BCC3612012/01

Objetivos• Funções:

1. Fornecer uma interface de serviço bem definida à camada de rede;2. Lidar com erros de transmissão;3. Regular o fluxo de dados.

• Para isso:• Recebe pacotes da camada de rede e os encapsula em quadros;

• Gerenciar quadros é o núcleo das atividades da camada de enlace.

Introdução

7

BCC3612012/01

Serviços oferecidos• O principal serviço é a transferência de dados entre as

camadas de rede de uma máquina origem para uma máquina destino;

• Tipos de serviços:1. Sem conexão e sem confirmação;2. Sem conexão e com confirmação;3. Com conexão e com confirmação.

Introdução

8

BCC3612012/01

Serviços oferecidos• O principal serviço é a transferência de dados entre as

camadas de rede de uma máquina origem para uma máquina destino;

• Tipos de serviços:1. Sem conexão e sem confirmação:

• Não há tentativa de identificar a perda de um quadro e recuperá-lo;• Este trabalho é feito nas camadas superiores;• Apropriado quando as taxas de erros é baixa e para tráfego em

tempo real (transmissão de voz por exemplo);• Exemplo de uso: Ethernet;

2. Sem conexão e com confirmação;3. Com conexão e com confirmação.

Introdução

9

BCC3612012/01

Serviços oferecidos• O principal serviço é a transferência de dados entre as

camadas de rede de uma máquina origem para uma máquina destino;

• Tipos de serviços:1. Sem conexão e sem confirmação;2. Sem conexão e com confirmação:

• Existe a verificação de perda de um quadro e a tentativa de recuperá-lo;

• Apropriado para canais menos confiáveis, como sistemas sem fio;• O custo do envio de um pacote inteiro pode ser muito maior do que

o overhead de verificação e recuperação de um quadro;• Exemplo de uso: 802.11 (WiFi);

3. Com conexão e com confirmação.

Introdução

10

BCC3612012/01

Serviços oferecidos• O principal serviço é a transferência de dados entre as

camadas de rede de uma máquina origem para uma máquina destino;

• Tipos de serviços:1. Sem conexão e sem confirmação;2. Sem conexão e com confirmação;3. Com conexão e com confirmação:

• Serviço mais sofisticado: cada quadro é numerado e sua entrega é garantida;

• Cada quadro será entregue uma única vez e na ordem correta (fluxo de bits confiável);

• Apropriado para enlaces longos e não confiáveis;• Exemplo de uso: sistemas de satélite.

Introdução

11

BCC3612012/01

Enquadramento• Problema:

• Como agrupar sequências de bits em quadros?• Como determinar o início e o fim de um quadro?

• Métodos:1. Contagem de caracteres;2. Bytes de flag com inserção de bytes (byte stuffing);3. Flags iniciais e finais, com inserção de bits (bit stuffing);4. Violações de codificação da camada física.

Introdução

12

3

BCC3612012/01

Enquadramento1. Contagem de caracteres:

• Utiliza um campo de cabeçalho para especificar o tamanho do quadro;• Problema: a contagem pode ser adulterada por erro na transmissão;• Por isso, não é mais utilizado.

Fluxo de bytes. (a) Sem erros. (b) Com um erro.

Introdução

13

BCC3612012/01

Enquadramento2. Bytes de flag com inserção de bytes (byte stuffing):

• Cada quadro começa e termina com um byte especial: byte de flag;

• Dois bytes de flag seguidos indicam o fim de um quadro e o início de outro;

• Caso o receptor perca a sincronização basta procurar dois bytes de flag seguidos;

• Problema: e se ocorrer o padrão do FLAG no campo de carga útil?

Introdução

14

BCC3612012/01

Enquadramento• Um caractere especial (byte de escape: ESC) é inserido antes do

FLAG “acidental”;

• Assim o byte de FLAG do enquadramento é distinguido do byte de FLAG dos dados;

• Problema: e se ocorrer o padrão do byte de escape nos dados?

Introdução

15

BCC3612012/01

Enquadramento• Problema: e se ocorrer o padrão do byte de escape nos dados?

Mesma estratégia, um byte ESC antes do byte ESC “acidental”;

• Bytes ESC inseridos nos dados são removidos após a recepção.

Introdução

16

BCC3612012/01

Enquadramento3. Flags iniciais e finais, com inserção de bits (bit stuffing) (1):

• Um problema na estratégia anterior: está ligada à utilização de bytes (8 bits) => 1 quadro é composto por n bytes;

• O enquadramento pode ser feito em nível de bits, assim, os quadros podem ser compostos por unidades de qualquer tamanho;

Introdução

17

BCC3612012/01

Enquadramento3. Flags iniciais e finais, com inserção de bits (bit stuffing) (2):

• Cada quadro começa e termina com a inserção de um padrão de bits: 01111110;

• Sempre que ocorre uma sequência de cinco bits “1” nos dados é inserido um bit “0” após a sequência;

• Na entrega estes bits “0” são removidos;

• Neste caso não há ambiguidade na identificação dos limites dos quadros.

Introdução

18

4

BCC3612012/01

Enquadramento3. Flags iniciais e finais, com inserção de bits (bit stuffing) (3):

• Exemplo da inserção de bits:

(a) Dados originais. (b) Dados com bits de preenchimento.

(c) Dados armazenados em buffer após retirada dos bits de preenchimento.

Introdução

19

BCC3612012/01

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

• Baseado em características da camada física;• O início e o final do quadro é definido pela utilização de um

código de transmissão inválido;• Exemplo: na codificação 4B/5B, 16 das 32 possibilidades de sinal

não são utilizadas, pode-se utilizar um destes códigos para sinalizar o início e o fim dos quadros;

• Por serem sinais reservados, não é necessário inserir bytes ou bits nos dados;

• São fáceis de serem identificados.

Introdução

20

BCC3612012/01

Controle de erros• Tratamento do problema de entrega dos quadros em ordem e

sem repetição;

• Métodos:• Quadros de controle com confirmações positivas e negativas;• Temporização do envio dos quadros e recebimento de

confirmações;• Atribuição de números de sequência para os quadros afim de

evitar duplicação no receptor;

• Ao longo dos próximos tópicos veremos mais detalhes sobre o gerenciamento de erros.

Introdução

21

BCC3612012/01

Controle de fluxo• Tratamento do problema de um transmissor rápido e um

receptor lento;• Ou seja, Equilíbrio entre a taxa de transmissão e de recepção de

quadros;• O protocolo deve manter regras bem definidas sobre quando um

transmissor pode enviar o quadro;

• Métodos:• Baseado em feedback: o receptor envia informações de volta ao

transmissor permitindo o envio de novos dados;• Baseado em velocidade: o protocolo tem um mecanismo interno

que limita a velocidade dos transmissores.

Introdução

22

BCC3612012/01

DETECÇÃO E CORREÇÃO DE ERROS

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

23

BCC3612012/01

Tópicos• Introdução;• Códigos de detecção de erros.• Códigos de correção de erros;

Detecção e correção de erros

24

5

BCC3612012/01

Introdução• Erros de transmissão acontecem:

• Fibra óptica = poucos erros;• Enlaces sem fio = muitos erros;

• Erros vieram para ficar, então, como lidar com eles?

• Duas estratégias:• Inclusão de informação redundante para detectar o erro;• Inclusão de informação redundante para corrigir o erro;

• Cada estratégia é adequada para um determinado ambiente.

Detecção e correção de erros

25

BCC3612012/01

Introdução• Inclusão de informação redundante para detectar o erro:

• Códigos de detecção de erros;• Usados em meios confiáveis (fibra óptica por ex.);• O bloco defeituoso é retransmitido;

• Inclusão de informação redundante para corrigir o erro:• Códigos de correção de erros;• Também chamado de: correção antecipada de erros;• Usados em meios menos confiáveis (enlaces sem fio por ex.);• Tenta descobrir qual era o bloco transmitido originalmente.

Detecção e correção de erros

26

BCC3612012/01

Introdução• Tipos de erros:

• Erros simples (um bit isolado);

• Rajada de erros (sequência de bits corrompidos):

Detecção e correção de erros

27

BCC3612012/01

Introdução• Redundância:

• Tanto a detecção quanto a correção de erros usará da redundância de dados:

Detecção e correção de erros

28

BCC3612012/01

Códigos de detecção de erros1. Bits de paridade;2. Checksum;3. CRC.

Detecção e correção de erros

29

BCC3612012/01

Códigos de detecção de erros1. Bits de paridade:

• Um único bit (bit de paridade) é acrescentado aos dados;• Este bit é escolhido de forma que:

• O número de bits “1” transmitidos seja par;• OU, este número seja ímpar;

• Método simples, que permite detecção de erros individuais;• Normalmente implementado em hardware;• Exemplos:

• Paridade par: 0101101 => 01011010;• Paridade ímpar: 0101101 => 01011011;

Detecção e correção de erros

30

6

BCC3612012/01

Códigos de detecção de erros1. Bits de paridade (cont.):

• Entrelaçamento:• Os dados são formatados na forma de matrizes;• Bits de paridade são calculados para cada coluna:

Detecção e correção de erros

31

BCC3612012/01

Códigos de detecção de erros1. Bits de paridade (cont.):

• Paridade combinada:• Os dados são formatados na forma de matrizes;• Bits de paridade são calculados para cada linha e coluna:

Detecção e correção de erros

32

BCC3612012/01

Códigos de detecção de erros2. Checksum:

• “Checksum” é usado para indicar um grupo de bits de verificação, independentemente de como são calculados;

• Um grupo de bits de paridade pode ser exemplo de checksum;• Porém, existem checksums mais robustos que os bits de paridade;

• Opera sobre palavras e não bits;• Erros que passaram pelos bits de paridade podem ser

encontrados;• Exemplo: Protocolo IP – soma de verificação de 16 bits.

Detecção e correção de erros

33

BCC3612012/01

Códigos de detecção de erros2. Checksum (cont.):

• Transmissor:• Divide a mensagem em k segmentos de n bits;• Soma os k segmentos;• Forma o checksum com o complemento da soma;• Envia a mensagem junto com o checksum;• Exemplo:

• 1010100100111001;• 10101001 | 00111001;• 10101001 + 00111001 = 11100010;• 00011101 (complemento da soma – checksum);• 101010010011100100011101 (mensagem codificada);

Detecção e correção de erros

34

BCC3612012/01

Códigos de detecção de erros2. Checksum (cont.):

• Receptor:• Divide a mensagem em k segmentos de n bits;• Soma os k segmentos;• Forma o checksum com o complemento da soma;• Se o checksum for igual a zero, dados aceitos!• Exemplo:

• 101010010011100100011101 (mensagem recebida);• 10101001 | 00111001| 00011101;• 10101001 + 00111001 + 00011101 = 11111111;• 00000000 (checksum é zero, mensagem aceita!);• 1010100100111001 (mensagem decodificada, o checksum enviado é

descartado);

Detecção e correção de erros

35

BCC3612012/01

Códigos de detecção de erros3. CRC:

• Cyclic Redundancy Check => Código de Redundância Cíclica;• Também conhecido como código polinomial;• Ideia:

Detecção e correção de erros

36

Resto da divisão

7

BCC3612012/01

Códigos de detecção de erros3. CRC (cont.):

• Gerador de CRC (Transmissor):

• Mensagem: 100100001 (Dados + CRC)

Detecção e correção de erros

37

BCC3612012/01

Códigos de detecção de erros3. CRC (cont.):

• Verificador de CRC (Receptor):

Detecção e correção de erros

38

BCC3612012/01

Códigos de detecção de erros3. CRC (cont.):

• Exemplo de descarte:

Detecção e correção de erros

39

BCC3612012/01

Códigos de detecção de erros3. CRC (cont.):

• Polinômio gerador de CRC é o nome dado para a representação polinomial do divisor:

Detecção e correção de erros

40

BCC3612012/01

Códigos de detecção de erros3. CRC (cont.):

• Exemplos de polinômios e aplicações:

Detecção e correção de erros

41

Nome Polinômio Aplicação

CRC-8 X8 + x2 + x + 1 ATM header

CRC-10 X10 + x9 + x5 + x4 + x2 + 1 ATM AAL

CRC-16 X16 + x12 + x5 + 1 HDLC

CRC-32X32 + x26 + x23 + x22 + x11 +

x10 + x8 + x7 + x5 + x4 + x2 + x + 1 LANs

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming:

• Vários bits de paridade são acrescentados usando regras especiais;

• Com esta redundância é possível corrigir erros;• Um quadro consiste de m bits de dados e r bits redundantes;• O tamanho total n é dado por m + r;• Esta unidade de n bits é chamada palavra de código (codeword);

Detecção e correção de erros

42

8

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming (cont.):

• Dadas duas palavras de código, é possível determinar quantos bits são divergentes aplicando XOR:

100010011011000100111000 (3 bits divergentes)

• Ao número de posições diferentes dá-se o nome de Distância de Hamming;

Detecção e correção de erros

43

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming (cont.):

• Ideia:• Os bits são numerados;• Bits que são potência de dois são de verificação (1, 2, 4, ...);• Os demais são bits de dados (3, 5, 6, 7, ...);• Cada bit de verificação força a paridade de um conjunto de

bits (paridade par ou impar);

Detecção e correção de erros

44

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming (cont.):

• Ideia:• Um bit pode ser incluído em vários cálculos de verificação;• Para saber para quais bits de verificação o bit na posição (k)

contribui, represente-o como a soma das potências de 2:• Para k = 11: 11 = 1 + 2 + 8• Para k = 5: 5 = 1 + 4

Detecção e correção de erros

45

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming (cont.):

• Ideia:• O código de Hamming é definido pelo número de bits

utilizados na forma (n, m);• Exemplo de um código de Hamming (11, 7):

• Usa um total de 11 bits;• 7 bits de dados;• 4 bits de verificação.

Detecção e correção de erros

46

BCC3612012/01

Códigos de correção de erros• Códigos de Hamming (cont.):

• Dois exemplos de um código de Hamming (11, 7):Exemplo 01 (numerando da esquerda para a direita):

P1 = M3 + M5 + M7 + M9 + M11P2 = M3 + M6 + M7 + M10 + M11P4 = M5 + M6 + M7P8 = M9 + M10 + M11

Considerar formação de paridade par.

Detecção e correção de erros

47

1 2 3 4 5 6 7 8 9 10 11

P1 P2 M3 P4 M5 M6 M7 P8 M9 M10 M11

BCC3612012/01

Códigos de correção de errosExemplo 01 (cont.):

Para a mensagem: 1101001

P1 = M3 + M5 + M7 + M9 + M11 = 1 + 1 + 1 + 0 + 1 = 0P2 = M3 + M6 + M7 + M10 + M11 = 1 + 0 + 1 + 0 + 1 = 1P4 = M5 + M6 + M7 = 1 + 0 + 1 = 0P8 = M9 + M10 + M11 = 0 + 0 + 1 = 1

Código de Hamming:

Detecção e correção de erros

48

1 2 3 4 5 6 7 8 9 10 11

P1 P2 1 P4 1 0 1 P8 0 0 1

0 1 1 0 1 0 1 1 0 0 1

9

BCC3612012/01

Códigos de correção de errosExemplo 01 (cont.):

No receptor:• Mensagem recebida: 01100011001 (erro no quinto bit);• Calcula-se novamente a paridade dos bits verificadores,

considerando seu próprio valor:

P1 + M3 + M5 + M7 + M9 + M11 = 0 + 1 + 0 + 1 + 0 + 1 = 1P2 + M3 + M6 + M7 + M10 + M11 = 1 + 1 + 0 + 1 + 0 + 1 = 0P4 + M5 + M6 + M7 = 0 + 0 + 0 + 1 = 1P8 + M9 + M10 + M11 = 1 + 0 + 0 + 1 = 0

• Síndrome de erro (número binário formado por P8, P4, P2, P1):• 01012 = 510 (o bit errado é o quinto);• Para realizar a correção basta inverter o bit 5;

Detecção e correção de erros

49

BCC3612012/01

Códigos de correção de errosExemplo 02: numerando da direita para a esquerda:

P1 = M3 + M5 + M7 + M9 + M11P2 = M3 + M6 + M7 + M10 + M11P4 = M5 + M6 + M7P8 = M9 + M10 + M11

Exercício, considerar formação de paridade par:• Codifique a mensagem: 1001101;• Simule a recepção da mensagem sem erros e com erro no bit 7;

Detecção e correção de erros

50

11 10 9 8 7 6 5 4 3 2 1

M11 M10 M9 P8 M7 M6 M5 P4 M3 P2 P1

BCC3612012/01

Códigos de correção de errosExemplo 02 (cont.):

Para a mensagem: 1001101

P1 = M3 + M5 + M7 + M9 + M11 = 1 + 0 + 1 + 0 + 1 = 1P2 = M3 + M6 + M7 + M10 + M11 = 1 + 1 + 1 + 0 + 1 = 0P4 = M5 + M6 + M7 = 0 + 1 + 1 = 0P8 = M9 + M10 + M11 = 0 + 0 + 1 = 1

Código de Hamming:

Detecção e correção de erros

51

11 10 9 8 7 6 5 4 3 2 1

1 0 0 P8 1 1 0 P4 1 P2 P1

1 0 0 1 1 1 0 0 1 0 1

BCC3612012/01

Códigos de correção de errosExemplo 02 (cont.):

No receptor:• Mensagem recebida sem erro: 10011100101

P1 + M3 + M5 + M7 + M9 + M11 = 1 + 1 + 0 + 1 + 0 + 1 = 0P2 + M3 + M6 + M7 + M10 + M11 = 0 + 1 + 1 + 1 + 0 + 1 = 0P4 + M5 + M6 + M7 = 0 + 0 + 1 + 1 = 0P8 + M9 + M10 + M11 = 1 + 0 + 0 + 1 = 0

• Síndrome de erro (número binário formado por P8, P4, P2, P1):• 00002 = 010 (não houve erro);

Detecção e correção de erros

52

BCC3612012/01

Códigos de correção de errosExemplo 02 (cont.):

No receptor:• Mensagem recebida: 10010100101 (erro no sétimo bit);

P1 + M3 + M5 + M7 + M9 + M11 = 1 + 1 + 0 + 0 + 0 + 1 = 1P2 + M3 + M6 + M7 + M10 + M11 = 0 + 1 + 1 + 0 + 0 + 1 = 1P4 + M5 + M6 + M7 = 0 + 0 + 1 + 0 = 1P8 + M9 + M10 + M11 = 1 + 0 + 0 + 1 = 0

• Síndrome de erro (número binário formado por P8, P4, P2, P1):• 01112 = 710 (o bit errado é o sétimo);• Para realizar a correção basta inverter o bit 7;

Detecção e correção de erros

53

BCC3612012/01

PROTOCOLOS BÁSICOS DE ENLACE DE DADOS

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

54

10

BCC3612012/01

Introdução• Suposições:

• Entre as três camadas envolvidas:• Existem processos independentes que se

comunicam através de troca de mensagens;• Implementação das camadas

segue a arquitetura:

Protocolos básicos de enlace de dados

55

Camada Nome

5 Aplicação

4 Transporte

3 Rede

2 Enlace

1 Física

BCC3612012/01

Introdução• Suposições (cont.):

• Máquina A deseja enviar um longo fluxo de dados para a máquina B através de um serviço confiável e orientado a conexões;

• A possui um suprimento infinito de pacotes prontos para serem enviados;

• A camada de enlace encapsula o pacote em um quadro;• Os protocolos não se preocupam com o checksum (normalmente

feito em hardware, está a cargo das funções da biblioteca;• Funções existentes em biblioteca:

• to(from)_physical_layer;• to(from)_network_layer;• wait_for_event;• ...

Protocolos básicos de enlace de dados

56

BCC3612012/01

Introdução• Suposições (cont.):

• Tipos de eventos:• cksum_err;• frame_arrival;• timeout;

• Estruturas de dados:• boolean;• seq_nr;• packet;• frame_kind;• frame;

Protocolos básicos de enlace de dados

57

BCC3612012/01

Introdução• Suposições (cont.):

• Constantes:• MAX_SEQ;• MAX_PKT;

• Protocolos:1. Simplex sem restrições;2. Simplex Stop-and-Wait em canal livre de erros;3. Simplex Stop-and-Wait em canal livre com ruídos;

• Tudo isso, e os exemplos de protocolos, é fornecido em um simulador implementado por Tanenbaum, disponível no site da disciplina.

Protocolos básicos de enlace de dados

58

BCC3612012/01

1. Simplex sem restrições• Dados trafegam em um único sentido;

• Cenário ideal (imaginário - utopia), nada sai errado:• As camadas de rede estão sempre prontas;• Tempo de processamento é ignorado;• Espaço em buffer é infinito;• Dados nunca são danificados;• Quadros nunca são perdidos;

59

Protocolos básicos de enlace de dados

BCC3612012/01

1. Simplex sem restrições• Dois procedimentos: Transmissor e Receptor;• Um único evento possível: frame_arrival;• Não são usados número de sequência ou de confirmação;• Ou seja, não trata controle de fluxo nem correção de erros;

60

Protocolos básicos de enlace de dados

11

BCC3612012/01

1. Simplex sem restrições

61

Protocolos básicos de enlace de dados

BCC3612012/01

1. Simplex sem restrições• Código-fonte:

typedef enum {frame_arrival} event_type;#include "protocol.h“

void sender1(void) { frame s;packet buffer;

while (true) {from_network_layer(&buffer);s.info = buffer;to_physical_layer(&s);

}}

62

Protocolos básicos de enlace de dados

BCC3612012/01

1. Simplex sem restrições• Código-fonte (cont.):

void receiver1(void) { frame r;event_type event;

while (true) {Wait_for_event(&event);from_physical_layer(&r);to_network_layer(&r.info);

}} 63

Protocolos básicos de enlace de dados

BCC3612012/01

2. Simplex Stop-and-Waitem canal livre de erros• Trata o controle de fluxo;• Continua considerando um canal sem erros e tráfego simplex;

64

Protocolos básicos de enlace de dados

BCC3612012/01

2. Simplex Stop-and-Waitem canal livre de erros

65

Protocolos básicos de enlace de dados

BCC3612012/01

2. Simplex Stop-and-Waitem canal livre de erros

66

Protocolos básicos de enlace de dados

• Código-fonte: arquivo “p2.c”

12

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos• Agora podem ocorrer erros;

• Na ocorrência de erros, o quadro deve ser retransmitido;

• O receptor deve saber distinguir se o quadro foi duplicado;

• Então utiliza um número de sequência;

67

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos• O transmissor passa para o próximo quadro apenas depois de

receber uma confirmação (ACK) da última sequência enviada;

• O receptor apenas aceita quadros com a próxima sequência esperada;

• Um temporizador é usado no transmissor para não ficar em deadlock;

• Neste exemplo, apenas um bit é necessário.

68

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos• Esta estratégia é conhecida como:

• Solicitação de Repetição Automática;• Ou ARQ (Automatic Repeat reQuest);• Ou PAR (Positive Acknowledgement with Retransmission).

69

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos

70

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos

71

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos

72

Protocolos básicos de enlace de dados

• É importante que o tempo de timeout seja suficiente para que o ACK chegue sem esgotá-lo quando nenhum erro ocorrer;

13

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos

73

Protocolos básicos de enlace de dados

BCC3612012/01

3. Simplex Stop-and-Waitem canal com ruídos

• Código-fonte: arquivo “p3.c”.74

Protocolos básicos de enlace de dados

BCC3612012/01

Conclusão• Nos protocolos anteriores os quadros de dados são

transmitidos em apenas um sentido (simplex);

• Além disso, o transmissor precisa esperar a confirmação do último quadro enviado para poder enviar um novo quadro;• Este tempo de espera pode ser significativo, deixando o canal

ocioso;

• Estes protocolos são bons para introduzir o assunto, mas em situações práticas são pouco usuais.

75

Protocolos básicos de enlace de dados

BCC3612012/01

PROTOCOLOS DE JANELA DESLIZANTE

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

76

BCC3612012/01

Introdução• Para um melhor aproveitamento do canal é necessária uma

transmissão full-duplex:• Uso de dois canais simplex separados (transmissão / recepção);• Uso de um canal full-duplex;

• Aprimoramento dos protocolos Stop-and-Wait anteriores:• Ao invés de enviar quadros de ACK puros, pode enviar ACK +

dados em um único quadro;• Ou seja, o ACK “pega carona” em um quadro de dados;• Esta técnica chama-se piggybacking;• Mas e se não houver um quadro? Timeout;• Quanto tempo esperar?

Protocolos de janela deslizante

77

BCC3612012/01

Introdução• Outra questão a ser aprimorada nos protocolos anteriores é a

necessidade de esperar um ACK para enviar outro pacote;

• Nos protocolos de Janela Deslizante é permitido que mais de um pacote esteja “em trânsito” sem a confirmação;

• Cada quadro contém um número de sequência de n bits (0 até 2n-1);

• Stop-and-Wait é um protocolo de janela deslizante com n = 1;

• Protocolos mais sofisticados utilizam um valor arbitrário de n;

Protocolos de janela deslizante

78

14

BCC3612012/01

Introdução• O transmissor mantém um conjunto de números de sequência que

ele pode enviar: janela de transmissão;

• O receptor mantém um conjunto de números de sequência que ele pode receber: janela de recepção;

• Estas janelas não precisam ser iguais e nem possuírem tamanho fixo;

Protocolos de janela deslizante

79

BCC3612012/01

Introdução• Apesar de maior liberdade, mantém-se a exigência de entregar os

pacotes à camada de rede na mesma ordem em que eles foram repassados à camada de enlace;

• O canal de comunicação física continua entregando os quadros na ordem de envio;

• Protocolos:• Janela deslizante de um bit;• Pipeline:

• Go-Back-N;• Retransmissão seletiva;

Protocolos de janela deslizante

80

BCC3612012/01

Janela deslizante de um bit• N = 1, quadro esperado: 0 ou 1;

• Utiliza o protocolo Stop-and-Wait;

• Código-fonte: arquivo “p4.c”.

Protocolos de janela deslizante

81

BCC3612012/01

Janela deslizante de um bit

Dois cenários para o protocolo 4. (a) Caso normal.(b) Caso incomum. A notação segue (seq, ack, núm. pacote).O asterisco indica quando a camada de rede aceita o pacote.

Protocolos de janela deslizante

82

BCC3612012/01

Pipeline• Até agora foi considerado que o tempo gasto para um quadro

chegue ao receptor e o quadro de confirmação retorne ao transmissor era insignificante;

• Em muitos casos esta afirmação não é verdadeira:• O tempo de ida e volta pode afetar a eficiência da utilização da

largura de banda;

Protocolos de janela deslizante

83

BCC3612012/01

Pipeline• Exemplo:

• Canal de satélite de 50 kbps;• Tempo de ida e volta (round trip): 500 ms;• Quadro: 1.000 bits;

• T = 0: início da transmissão;• T = 20 ms: fim da transmissão do quadro;• T = 270 ms: receptor recebe o quadro completo;• T = 520 ms: transmissor recebe confirmação;• Tempo de bloqueio do transmissor:

• Tempo esperando / tempo total = 500 / 520 = 0,96 (96%);• Utilização da banda: 4%.

Protocolos de janela deslizante

84

15

BCC3612012/01

Pipeline• Como utilizar melhor a banda?

• Permitir que o transmissor envie w quadros antes do bloqueio ao invés de apenas 1;

• Uma escolha adequada de w permite que o transmissor seja capaz de transmitir continuamente.

Protocolos de janela deslizante

85

BCC3612012/01

Pipeline• Para determinar w é preciso saber quantos quadros “cabem”

no canal:• Produto largura de banda-atraso (BD);• BD = B * tempo de trânsito em mão única / tam. do quadro (bits);• B é a largura de banda em bits/s;

• w = 2 * BD + 1;• Para o exemplo anterior: w = 2 * 50k * 250 m / 1.000 + 1 = 26;

• Isso significa que, quando terminar de enviar 26 quadros a confirmação para o primeiro quadro terá acabado de chegar, liberando-o para enviar outro quadro.

Protocolos de janela deslizante

86

BCC3612012/01

Pipeline• Como lidar com erros no pipeline? Duas estratégias:

• A primeira estratégia (janela de recepção = 1) é chamada de Go-Back-N;

• Código-fonte: arquivo “p5.c”;

• A segunda estratégia (janela de recepção != 1) é chamada de Retransmissão Seletiva;

• Código-fonte: arquivo “p6.c”.

Protocolos de janela deslizante

87

BCC3612012/01

Pipeline• Go-Back-N:

• Atenção à notação diferente: Quadro 0 => ACK 0, nos protocolos simples usamos Quadro 0 => ACK 1;

• O que acontece se um ACK é perdido?

Protocolos de janela deslizante

88

BCC3612012/01

Pipeline• Retransmissão Seletiva:

• Atenção à notação diferente: Quadro 0 => ACK 0, nos protocolos simples usamos Quadro 0 => ACK 1;

• O que acontece se um ACK ou NAK é perdido?

Protocolos de janela deslizante

89

BCC3612012/01

Pipeline• Go-Back-N v.s. Retransmissão seletiva:

• No Go-Back-N pacotes recebidos corretamente podem ser enviados novamente:

• Funcionará bem quando houverem poucos erros;

• Na Retransmissão Seletiva é inserida complexidade do controle de pacotes recebidos fora de ordem e o seu armazenamento em buffer:

• Para que não haja sobreposição de quadros (achar que um quadro retransmitido é um novo quadro) o tamanho da janela deverá ser (MAX_SEQ + 1) / 2;

• Consequentemente, o tamanho do buffer deverá ser igual ao tamanho da janela, e não ao número de sequência;

• Vide Ilustração no slide seguinte.

Protocolos de janela deslizante

90

16

BCC3612012/01

Pipeline

(a) Situação inicial com uma janela de tamanho 7. (b) Após o envio e recebimento de 7 quadros sem reconhecimento.

(c) Situação inicial com uma janela de tamanho 4. (d) Após o envio e recebimento de 4 quadros sem reconhecimento.

Protocolos de janela deslizante

91

BCC3612012/01

EXEMPLOS DE PROTOCOLOS DE ENLACE DE DADOS

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

92

BCC3612012/01

Introdução• Camada de Enlace na Internet:

• Modelo básico da Internet:• Dentro de um único prédio, as LANs são bastante utilizadas

para interconexões;• Infraestrutura geograficamente distribuída é construída a

partir de linhas privadas ponto-a-ponto;

• Protocolo de enlace de dados utilizado em linhas ponto-a-ponto:• PPP (Point-to-Point Protocol).

Exemplos de protocolos de enlace de dados

93

BCC3612012/01

PPP• Descrito na RFC 1661 e mais elaborado na RFC 1662 (além de

outras);

• Características:• Realiza o tratamento de erros;• Reconhece e trata diferentes protocolos;• Permite que endereços IP sejam negociados em tempo de

conexão;• Permite autenticação;• Orientado a caractere (quadros representam um número inteiro

de bytes);

Exemplos de protocolos de enlace de dados

94

BCC3612012/01

PPP• Recursos:

• Enquadramento utilizando marcadores não ambíguos e detecção de erros;

• Um protocolo de controle de enlace para ativar, testar, negociar opções e desativar linhas: LCP (Link Control Protocol);

• Um protocolo para negociar opções da camada de rede, permitindo o uso de vários protocolos de rede: NCP (Network Control Protocol);

Exemplos de protocolos de enlace de dados

95

BCC3612012/01

PPP• Quadro PPP (1):

• Delimitado pelo flag 01111110;

• Endereço: contém o valor fixo 11111111;

• Controle: contém o valor padrão 00000011;

• O LCP fornece um mecanismo para omitir o Endereço e o Controle;

Exemplos de protocolos de enlace de dados

96

17

BCC3612012/01

PPP• Quadro PPP (2):

• Protocolo: informa o tipo de protocolo utilizado no campo de Carga Útil (IPv4, IPv6, IPX, AppleTalk, etc.);

• Carga Útil: dados transferidos, que pode ser de tamanho variado;

• Checksum: para verificação de erro.

Exemplos de protocolos de enlace de dados

97

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (1):

• DEAD: não há nenhuma portadora da camada física presente e não existe qualquer conexão da camada física;

Exemplos de protocolos de enlace de dados

98

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (2):

• ESTABLISH: conexão física estabelecida, começa a negociação das opções do LCP;

Exemplos de protocolos de enlace de dados

99

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (3):

• AUTHENTICATE: negociações do LCP foram bem sucedidas, se desejarem as duas partes poderão verificar suas identidades mutuamente;

Exemplos de protocolos de enlace de dados

100

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (4):

• NETWORK: o protocolo NCP é invocado para configurar a camada de rede;

Exemplos de protocolos de enlace de dados

101

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (5):

• OPEN: configuração da camada de rede foi bem-sucedida, o transporte dos dados pode ser feito;

Exemplos de protocolos de enlace de dados

102

18

BCC3612012/01

PPP• Diagrama de estado de um enlace PPP (6):

• TERMINATE: o transporte dos dados foi concluído;

Exemplos de protocolos de enlace de dados

103

BCC3612012/01

PPP• Duas situações comuns do uso do PPP (1):

• SONET: enlaces de fibra ótica em redes de longa distância:

(a) Pilha de protocolos;(b) Relação entre quadros.

Exemplos de protocolos de enlace de dados

104

BCC3612012/01

PPP• Duas situações comuns do uso do PPP (2):

• ADSL (Asymmetric Digital Subscriber Line): conecta milhões de usuarios domésticos e empresas a partir do serviço telefônico tradicional:

• DSLAM (DSL Access Multiplexer): dispositivo na estação local que extrai os pacotes e os insere em uma rede do ISP.

Exemplos de protocolos de enlace de dados

105

BCC3612012/01

CONTROLE DE ACESSO AO MEIO

Introdução;Detecção e correção de erros;Protocolos básicos de enlace de dados;Protocolos de janela deslizante;Exemplos de protocolos de enlace de dados;Controle de acesso ao meio.

106

BCC3612012/01

Introdução• Até agora lidamos com enlaces ponto-a-ponto orientados a

conexão;

• Quando são utilizados enlaces broadcast (ou redes de difusão), uma questão fundamental entra em cena:• Como determinar quem tem direito de usar o canal quando

mais de um host necessita usá-lo simultaneamente?

• Canais broadcast normalmente são chamados também de:• Canais multiacesso;• Canais de acesso aleatório.

Controle de acesso ao meio

107

BCC3612012/01

Introdução• Os protocolos utilizados para determinar quem será o próximo

a usar um canal multiacesso pertencem a uma subcamada da camada de enlace de dados:• MAC (Medium Access Control);• Subcamada de controle de acesso ao meio;

• A subcamada MAC é especialmente importante para as LANs, pois nestas redes os hosts normalmente utilizam um canal broadcast;• WANs utilizam enlaces ponto-a-ponto.

Controle de acesso ao meio

108

19

BCC3612012/01

Introdução• Tópicos:

• O problema de alocação de canais:• Dois esquemas de alocação:

• Alocação Estática;• Alocação Dinâmica;

• Protocolos de acesso múltiplo:• ALOHA;• CSMA;• Protocolos de LANs sem fios;

• Ethernet.

Controle de acesso ao meio

109

BCC3612012/01

Problema de alocação de canais• Como alocar um único canal de broadcast entre usuários

concorrentes?

• Duas abordagens:• Alocação Estática;• Alocação Dinâmica.

Controle de acesso ao meio

110

BCC3612012/01

Problema de alocação de canais• Alocação Estática:

• Tradicionalmente usando multiplexação (e.g. FDM e TDM);

• Pode ser eficiente quando:• O número de usuários é pequeno e fixo;• Cada usuário demanda tráfego pesado;

• Problemas:• Número de usuários grande e variável;• Tráfego em rajadas.

Controle de acesso ao meio

111

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (1):

• Baseado em 5 premissas:1. Tráfego independente;2. Premissa de canal único;3. Colisões observáveis;4. Tempo contínuo ou segmentado;5. Detecção de portadora.

Controle de acesso ao meio

112

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (2):

• Baseado em 5 premissas:1. Tráfego independente:

• Existem n estações independentes que geram quadros a serem transmitidos;

• A estação fica bloqueada até o quadro ser totalmente transmitido;

2. Premissa de canal único;3. Colisões observáveis;4. Tempo contínuo ou segmentado;5. Detecção de portadora.

Controle de acesso ao meio

113

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (3):

• Baseado em 5 premissas:1. Tráfego independente;2. Premissa de canal único:

• Todas as estações compartilham um único canal de comunicação, tanto para transmissão quanto para recepção;

• Do ponto de vista do hardware elas são equivalentes;• Do ponto de vista do software podem haver prioridades;

3. Colisões observáveis;4. Tempo contínuo ou segmentado;5. Detecção de portadora.

Controle de acesso ao meio

114

20

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (4):

• Baseado em 5 premissas:1. Tráfego independente;2. Premissa de canal único;3. Colisões observáveis:

• A transmissão “simultânea” de dois ou mais quadros por estações diferentes causa uma colisão;

• Estações são capazes de detectar colisões;• Quadros envolvidos em colisões devem ser retransmitidos

posteriormente;4. Tempo contínuo ou segmentado;5. Detecção de portadora.

Controle de acesso ao meio

115

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (5):

• Baseado em 5 premissas:1. Tráfego independente;2. Premissa de canal único;3. Colisões observáveis;4. Tempo contínuo ou segmentado:

• Em tempo contínuo os quadros podem ser transmitidos a qualquer instante;

• Em tempo segmentado (slotted) o tempo é dividido em intervalos discretos (slots) e as transmissões de quadros sempre começam no início de um slot;

5. Detecção de portadora.

Controle de acesso ao meio

116

BCC3612012/01

Problema de alocação de canais• Alocação Dinâmica (6):

• Baseado em 5 premissas:1. Tráfego independente;2. Premissa de canal único;3. Colisões observáveis;4. Tempo contínuo ou segmentado;5. Detecção de portadora:

• Com a detecção de portadora (carrier sense) as estações conseguem detectar se o canal está em uso antes de tentarem utilizá-lo e podem aguardar até um momento em que ele esteja livre;

• Sem a detecção de portadora (no carrier sense) as estações não conseguem detectar se o canal está em uso. Assim, simplesmente transmitem quando necessário.

Controle de acesso ao meio

117

BCC3612012/01

Protocolos de acesso múltiplo• Existem muitos algoritmos para alocar um canal de acesso

múltiplo;

• Abordaremos apenas dois deles e suas variações;

• ALOHA:• ALOHA original;• Slotted ALOHA;

• CSMA:• CSMA persistente e não persistente;• CSMA com detecção de colisões.

Controle de acesso ao meio

118

BCC3612012/01

ALOHA• ALOHA Original (1):

• As estações transmitem quando possuírem dados a serem enviados;

• Haverá colisões:• Serão detectadas;• Após um tempo de espera aleatório os dados serão

novamente transmitidos;

Controle de acesso ao meio / Protocolos de acesso múltiplo

119

BCC3612012/01

ALOHA• ALOHA Original (2):

• O tempo de transmissão dos quadros é completamente aleatório:

Controle de acesso ao meio / Protocolos de acesso múltiplo

120

21

BCC3612012/01

ALOHA• ALOHA Original (3):

• Vulnerabilidade do quadro (sombreado):

Controle de acesso ao meio / Protocolos de acesso múltiplo

121

BCC3612012/01

ALOHA• Slotted ALOHA:

• O tempo é dividido em unidades (slots);

• A transmissão pode ocorrer apenas no início de um slot;

• Possui menor vulnerabilidade dos quadros;

• Possibilita duplicar a capacidade do ALOHA Original, mas necessita sincronização entre as estações;

• Uma forma de sincronização seria fazer com que uma estação especial emitisse um sinal no início de cada slot.

Controle de acesso ao meio / Protocolos de acesso múltiplo

122

BCC3612012/01

CSMA• CSMA = Carrier Sense Multiple Acccess;

• Estações escutam uma portadora (transmissão) por um curto período de tempo antes de transmitir, procurando identificar transmissões em curso;

• Persistente e não-persistente:• 1-persistente;• Não-persistente;• P-persistente;

• Com detecção de colisões:• CSMA/CD.

Controle de acesso ao meio / Protocolos de acesso múltiplo

123

BCC3612012/01

CSMA 1-persistente• Uma estação escuta o canal ao desejar transmitir dados;

• Caso o canal esteja ocupado espera até que ele fique livre;

• Assim que o canal fica livre, transmite os dados;

• Caso alguma colisão ocorra, a estação espera um tempo aleatório e começa o processo novamente.

Controle de acesso ao meio / Protocolos de acesso múltiplo

124

BCC3612012/01

CSMA 1-persistente• É chamado 1-persistente porque sempre transmite ao verificar

que o canal está livre;• Ou seja, transmite com uma probabilidade igual a 1 quando o

canal está livre;

• O tempo de propagação tem um efeito importante no desempenho do protocolo.

Controle de acesso ao meio / Protocolos de acesso múltiplo

125

BCC3612012/01

CSMA não-persistente• Similar ao 1-persistente;

• Diferença:• Ao verificar que o canal está ocupado, uma estação espera por

um período aleatório até começar a escutá-lo novamente;• Com isso, é um método menos guloso e tem um desempenho

melhor que o 1-persistente;

Controle de acesso ao meio / Protocolos de acesso múltiplo

126

22

BCC3612012/01

CSMA p-persistente• Usado em canais com slots:

• Estação escuta o canal;• Se estiver livre, transmite com uma probabilidade p;• Senão, espera até o próximo slot;• Repete o processo no próximo slot;• Na ocorrência de colisão a estação espera um tempo aleatório e

repete todo o processo.

Controle de acesso ao meio / Protocolos de acesso múltiplo

127

BCC3612012/01

CSMA - ComparaçãoControle de acesso ao meio / Protocolos de acesso múltiplo

128

1-persistente Não-persistente P-persistente

Canal ocupadoEspera até que ele fique desocupado

Espera um tempo aleatório e começa o processo novamente

Espera até opróximo slot

Canal desocupadoTransmite um quadro

Transmite um quadro

Transmite com probabilidade p

Colisão

Espera um tempo aleatório e começa o processo novamente

Espera um tempo aleatório e começa o processo novamente

Espera um tempo aleatório e começa o processo novamente

BCC3612012/01

ALOHA v.s. CSMA• Utilização do canal de acesso por vários protocolos:

O throughput pode ser traduzido como a taxa de transferência efetiva de um sistema.

129

Controle de acesso ao meio / Protocolos de acesso múltiplo

BCC3612012/01

CSMA/CD• CSMA/CD = Carrier Sense Multiple Acccess / Collision

Detection;

• Introduz melhoria:• Uma estação interrompe a transmissão assim que detecta uma

colisão;• Com isso, economiza tempo e largura de banda;

• Consiste em alternar períodos de contenção e transmissão;

• Padronizado como IEEE 802.3 (Ethernet);

Controle de acesso ao meio / Protocolos de acesso múltiplo

130

BCC3612012/01

CSMA/CD• Modelo conceitual:

• Apresenta um de três estados: contenção (disputa), transmissão ou inatividade

Controle de acesso ao meio / Protocolos de acesso múltiplo

131

BCC3612012/01

CSMA/CD• Questão importante:

• Quanto tempo uma estação deve esperar para saber se houve uma colisão?

• 2x o tempo de propagação de ponta-a-ponta;• Colisão não ocorrerá após este período;

• Colisões afetam o desempenho do sistema, principalmente em cabos longos e quadros curtos.

Controle de acesso ao meio / Protocolos de acesso múltiplo

132

23

BCC3612012/01

Protocolos de LANs sem fios• LAN sem fio é um exemplo de uso de canal broadcast;

• Mas, possui características distintas, que leva à adoção de protocolos diferentes;

• Normalmente em LANs sem fio não é possível identificar colisões enquanto elas estão ocorrendo;

• Adicionalmente, uma estação pode não ser capaz de transmitir ou receber quadros de todas as outras estações.

Controle de acesso ao meio / Protocolos de acesso múltiplo

133

BCC3612012/01

Protocolos de LANs sem fios• Problema da estação oculta:

• Uma estação não consegue detectar uma possível concorrente pelo meio físico porque ela está distante demais;

• A e C ocultos ao transmitirem para B:

Controle de acesso ao meio / Protocolos de acesso múltiplo

134

BCC3612012/01

Protocolos de LANs sem fios• Problema da estação exposta:

• Em uma situação inversa, é possível detectar um “falso” concorrente pelo meio físico caso dois transmissores estejam ao alcance um do outro, mas o mesmo não ocorra com os receptores.

• B e C visíveis ao transmitirem para A e D, respectivamente:

Controle de acesso ao meio / Protocolos de acesso múltiplo

135

BCC3612012/01

Protocolos de LANs sem fios• O problema nas LANs sem fio na realidade está em identificar

a atividade em torno do receptor;• Em um sistema de rádio, várias transmissões simultâneas podem

ocorrer desde que todas tenham destinos distintos, e estes estejam fora do alcance uns dos outros;

• O CSMA não atende a este propósito;• No fio, uma única transmissão é possível de cada vez.

Controle de acesso ao meio / Protocolos de acesso múltiplo

136

BCC3612012/01

Protocolos de LANs sem fios• Protocolo MACA (Multiple Access with Collision Avoidance):

• A ideia básica é fazer com que o transmissor estimule o receptor a liberar um quadro curto como saída, de modo que as estações vizinhas possam detectar essa transmissão e evitar transmitir enquanto o quadro de dados (grande) estiver sendo recebido;

• Esta técnica é usada no lugar da detecção de portadora.

Controle de acesso ao meio / Protocolos de acesso múltiplo

137

BCC3612012/01

Protocolos de LANs sem fios

• O protocolo MACA:• (a) A envia um RTS (Request to Send) a B;• (b) B responde com um CTS (Clear to Send) para A.

Controle de acesso ao meio / Protocolos de acesso múltiplo

138

24

BCC3612012/01

Protocolos de LANs sem fios• Ainda assim poderá haver colisões;

• Neste caso, o transmissor que não obteve sucesso na transmissão aguardará um tempo aleatório para fazer nova tentativa.

Controle de acesso ao meio / Protocolos de acesso múltiplo

139

BCC3612012/01

Ethernet• Ethernet é provavelmente a o tipo de rede de comunicação

mais utilizado no mundo;

• Foi implementada em 1976 por Metcalfe e Boggs no PARC (Palo Alto Research Center) da Xerox;

• Em 1978, a DEC, a Intel e a Xerox criaram um padrão para uma Ethernet de 10Mbps, chamado de padrão DIX.

Controle de acesso ao meio

140

BCC3612012/01

Ethernet• Com pequenas alterações, o padrão DIX se tornou o padrão

IEEE 802.3 em 1983;• O padrão define uma família de redes com velocidades de 10,

100, 1.000 Mbps e 10.000 Mbps em diferentes meios.

Controle de acesso ao meio

141

BCC3612012/01

Ethernet

142

Controle de acesso ao meio

• Padrões estabelecidos:

• Estrategicamente a IEEE optou por manter a combatibilidade entre os padrões novos e antigos;

• Assim, normalmente os padrões mais novos consistem de adaptações dos padrões antigos de forma a aumentar sua capacidade de transmissão.

Padrão IEEE Ano Descrição

802.3 1983 10 Mbps – Cabo coaxial

802.3i 1990 10 Mbps – Par trançado

802.3j 1993 10 Mbps – Fibra ótica

802.3u 1995 100 Mbps – Fast Ethernet

802.3ab 1999 1 Gbps – Gigabit Ethernet

802.3an 2006 10 Gbps – 10 Gigabit Ethernet

BCC3612012/01

Ethernet Clássica (10 Mbps)• Arquitetura:

Controle de acesso ao meio

143

BCC3612012/01

Ethernet Clássica (10 Mbps)• Cabeamento:

Controle de acesso ao meio

144

Nome Cabo Dist. max. Nós / seg. Vantagens

10Base5 Coaxial (thick) 500 m 100 Cabo original (obsoleto).

10Base2 Coaxial (thin) 185 m 30 Sem necessidade de hub.

10Base-T Par trançado 100 m 1.024 Sistema mais barato.

10Base-F Fibra ótica 2.000 m 1.024 Melhor para interligar prédios.

25

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (1): (a) DIX; (b) IEEE 802-3;

• Preâmbulo: tem como função criar um padrão de 0s e 1s para a sincronização. Em algumas literaturas, não é considerado parte do frame Ethernet pois é adicionado ao frame na camada física/

• Composto de 7 bytes “10101010” e 1 byte “10101011” (Início de quadro – IDQ, ou Start of Frame – SoF);

Controle de acesso ao meio

145

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (2): (a) DIX; (b) IEEE 802-3;

• Endereço: endereço LAN do adaptador do destino e da origem;• Bit 47 = 0: unicast;• Bit 47 = 0 : multicast;• Todos os bits = 1: broadcast;

Controle de acesso ao meio

146

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (3): (a) DIX; (b) IEEE 802-3;

• Tipo / Tamanho: identifica o protocolo da camada de rede que deve receber o pacote ou o tamanho do pacote;

• <= 0x600 (1536) = representa tamanho;• > 0x600 (1536) = representa tipo;

Controle de acesso ao meio

147

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (4): (a) DIX; (b) IEEE 802-3;

• Dados: dados a serem transportados;• Deve ter comprimento entre 46 e 1500 bytes;• Caso seja menor que 46, o campo Preenchimento é usado para

complementar este tamanho;

Controle de acesso ao meio

148

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (5): (a) DIX; (b) IEEE 802-3;

• Preenchimento: complementa o tamanho do quadro quando ele é menor do que 46;

• Previne que uma estação termine de transmitir um quadro antes do primeiro bit chegar no extremo do cabo e ocorra uma colisão;

Controle de acesso ao meio

149

BCC3612012/01

Ethernet Clássica (10 Mbps)• Estrutura de quadro (6): (a) DIX; (b) IEEE 802-3;

• Checksum: para detecção de erro, usa o CRC-32;

Controle de acesso ao meio

150

26

BCC3612012/01

Ethernet Clássica (10 Mbps)• A detecção de colisão pode levar um tempo de 2 :

• = tempo de propagação de um quadro entre as duas extremidades;

Controle de acesso ao meio

151

BCC3612012/01

Ethernet Clássica (10 Mbps)• Algoritmo de espera:

• CSMA/CD com backoff exponencial binário;• Ao ocorrer colisão, as estações devem esperar (sortear) um

intervalo de tempo de espera (slots de espera):• Número inteiro no intervalo [0 .. 2c - 1], onde c é o número de

colisões consecutivas;• Para c de 10 a 16 o número máximo de slots é 1023;• Após a 16ª tentativa a estação desiste de transmitir e qualquer

recuperação de erro será repassado para as camadas superiores.

Controle de acesso ao meio

152

BCC3612012/01

Ethernet Clássica (10 Mbps)• Ethernet Comutada:

• Um problema na arquitetura da Ethernet Clássica era identificar interrupções ou conexões partidas;

• Uma solução para este problema foi a utilização de Hubs;• Um hub simplesmente conecta todos os fios eletronicamente,

como se eles fossem únicos;• Assim, em termos lógicos a arquitetura da rede não muda, então,

sua capacidade não foi afetada pela utilização do hub.

Controle de acesso ao meio

153

BCC3612012/01

Ethernet Clássica (10 Mbps)• Para resolver o problema de carga, procurou-se outra solução:

• A Ethernet Comutada;• O núcleo deste sistema está na utilização de outro tipo de

hardware: Switch;• Ele contém uma placa integrada, que conecta todas as portas,

conforme mostra a figura abaixo:

(a) Hub. (b) Switch.

Controle de acesso ao meio

154

BCC3612012/01

Ethernet Clássica (10 Mbps)• Em um switch os quadros são enviados apenas para as portas

para as quais eles são destinados;

• Algumas vantagens sobre os hubs:• Como não existem colisões, o enlace é usado de forma mais

eficiente;• Vários quadros podem ser enviados simultaneamente, quando

envolverem estações diferentes;• Segurança: não operam em modo promíscuo (todas as estações

“ouvem” todas as mensagens), pois os quadros são encaminhados apenas a quem eles são endereçados.

Controle de acesso ao meio

155

BCC3612012/01

Fast Ethernet (100 Mbps)• Mesmo com o uso do switch a Ethernet começou a ficar

saturada;

• Em 1992 a IEEE reuniu o comitê do 802.3 para produzir uma LAN mais rápida;

• Optou-se então por definir adaptações ao padrão existente para aumentar sua capacidade, surgiu o padrão 803.3u, mais conhecido como Fast Ethernet;

Controle de acesso ao meio

156

27

BCC3612012/01

Fast Ethernet (100 Mbps)• Os formatos de quadro, interfaces e regras foram mantidos;

• Mas o tempo de bit foi reduzido, provocando o aumento da taxa de transmissão de 10 para 100 Mbps;

• Permite utilizar par trançado ou fibra ótica:

• Unshielded Twisted Pair - UTP ou Par Trançado sem Blindagem;• Shield Twisted Pair - STP ou Par Trançado Blindado.

Controle de acesso ao meio

157

Nome Cabo Dist. max. Vantagens

100Base-T4 Par trançado 100 m Utiliza UTP da categoria 3.

100Base-TX Par trançado 100 m Full-duplex a 100 Mbps (UTP Cat5).

100Base-FX Fibra ótica 2.000 m Full-duplex a 100 Mbps. Grandes distâncias.

BCC3612012/01

Gigabit Ethernet (1 Gbps)• Objetivo similar ao da Fast Ethernet: aumentar a capacidade

mantendo a compatibilidade – agora o padrão é 802.3ab;• Dois modos de operação:

• Full-duplex: • Uso de switch;• Não há colisões;• O comprimento máximo do cabo depende da intensidade do sinal;

• Half-duplex: • Uso de hub;• Colisões ocorrem (usa CSMA/CD);• Para aumentar a distância de alcance acrescentou duas

características:• Extensão de portadora;• Rajada de quadros.

Controle de acesso ao meio

158

BCC3612012/01

Gigabit Ethernet (1 Gbps)• Cabeamento:

Controle de acesso ao meio

159

Nome Cabo Dist. max. Vantagens

1000Base-SX Fibra ótica 550 m Fibra multimodo.

1000Base-LX Fibra ótica 5.000 m Modo único ou multimodo.

1000Base-CX2 pares de

STP 25 m Par trançado blindado.

1000Base-T 4 pares de UTP 100 m UTP padrão Cat5.

BCC3612012/01

10 Gigabit Ethernet (10 Gbps)• Mesmo objetivo das anteriores: aumento da capacidade

mantendo a compatibilidade;

• Permite conexões de longa distância utilizando fibra ótica e conexões de curta distância usando cabos de cobre ou mesmo fibra ótica;

• Suporta apenas conexões full-duplex;

• O tempo de bit é de 0,1 ns;

Controle de acesso ao meio

160

BCC3612012/01

Fim!REFERÊNCIAS:• A.S. TANENBAUM, Redes de Computadores, Prentice Hall, 5a.

edição, 2011;• Materiais didáticos dos professores:

• Romildo Bezerra, IFBA / 2011-01,Disponível em: http://www.ifba.edu.br/professores/romildo/disciplinas.html#red(acesso em 17/08/2011);

• Rande A. Moreira, UFOP / 2011-01 Disponível em: http://randearievilo.com.br/redes/ (acesso em 17/08/2011);

• Marcos Vieira, UFMG / 2011-01 Disponível em: http://homepages.dcc.ufmg.br/~mmvieira/redes/redes.html(acesso em 17/08/2011);

• Fátima Figueiredo, PUC Minas, não disponível on-line; 161