Camada de Enlace - decom.ufop.br · Bytes de flag com inserção de bytes (byte stuffing): • Cada...

Post on 21-Dec-2018

217 views 0 download

Transcript of Camada de Enlace - decom.ufop.br · Bytes de flag com inserção de bytes (byte stuffing): • Cada...

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

Agenda

• Questões de projeto;

• 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

QUESTÕES DE PROJETO

Questões de projeto;

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

Tópicos

• Objetivos;

• Serviços oferecidos à camada de rede;

• Enquadramento;

• Controle de erros;

• Controle de fluxo.

Questões de projeto

4

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;

Questões de projeto

5

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.

Questões de projeto

6

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;

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

Questões de projeto

7

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.

Questões de projeto

8

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.

Questões de projeto

9

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.

Questões de projeto

10

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.

Questões de projeto

11

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.

Questões de projeto

12

Enquadramento

1. 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.

Questões de projeto

13

Enquadramento

2. 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?

Questões de projeto

14

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? Mesma estratégia, um byte ESC antes do byte ESC “acidental”;

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

Questões de projeto

15

Enquadramento

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

• 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;

• 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.

Questões de projeto

16

Enquadramento

• 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.

Questões de projeto

17

Enquadramento

4. 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.

Questões de projeto

18

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.

Questões de projeto

19

Controle de fluxo

• Tratamento do problema de um transmissor rápido e um receptor lento;

• Métodos:

• Baseado em feedback;

• Baseado em velocidade;

• Veremos mais detalhes ao longo do curso.

Questões de projeto

20

DETECÇÃO E CORREÇÃO DE ERROS

Questões de projeto;

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.

21

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

22

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

23

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

24

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

25

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

26

Códigos de detecção de erros

1. Bits de paridade;

2. Checksum;

3. CRC.

Detecção e correção de erros

27

Códigos de detecção de erros

1. 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

28

Códigos de detecção de erros

1. 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

29

Códigos de detecção de erros

1. 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

30

Códigos de detecção de erros

2. 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 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

31

Códigos de detecção de erros

2. 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

32

Códigos de detecção de erros

2. 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);

Detecção e correção de erros

33

Códigos de detecção de erros

3. 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

34

Resto da divisão

Códigos de detecção de erros

3. CRC (cont.):

• Gerador de CRC (Transmissor):

• Mensagem: 100100001 (Dados + CRC)

Detecção e correção de erros

35

Códigos de detecção de erros

3. CRC (cont.):

• Verificador de CRC (Receptor):

Detecção e correção de erros

36

Códigos de detecção de erros

3. CRC (cont.):

• Exemplo de descarte:

Detecção e correção de erros

37

Códigos de detecção de erros

3. CRC (cont.):

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

Detecção e correção de erros

38

Códigos de detecção de erros

3. CRC (cont.):

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

Detecção e correção de erros

39

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-32 X32 + x26 + x23 + x22 + x11 +

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

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

40

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:

10001001

10110001

00111000 (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

41

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

42

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

43

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

44

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 + M11

P2 = M3 + M6 + M7 + M10 + M11

P4 = M5 + M6 + M7

P8 = M9 + M10 + M11

Considerar formação de paridade par.

Detecção e correção de erros

45

1 2 3 4 5 6 7 8 9 10 11

P1 P2 M3 P4 M5 M6 M7 P8 M9 M10 M11

Códigos de correção de erros

Exemplo 01 (cont.):

Para a mensagem: 1101001

P1 = M3 + M5 + M7 + M9 + M11 = 1 + 1 + 1 + 0 + 1 = 0

P2 = M3 + M6 + M7 + M10 + M11 = 1 + 0 + 1 + 0 + 1 = 1

P4 = M5 + M6 + M7 = 1 + 0 + 1 = 0

P8 = M9 + M10 + M11 = 0 + 0 + 1 = 1

Código de Hamming:

Detecção e correção de erros

46

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

Códigos de correção de erros

Exemplo 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 = 1

P2 + M3 + M6 + M7 + M10 + M11 = 1 + 1 + 0 + 1 + 0 + 1 = 0

P4 + M5 + M6 + M7 = 0 + 0 + 0 + 1 = 1

P8 + 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

47

Códigos de correção de erros

Exemplo 02: numerando da direita para a esquerda:

P1 = M3 + M5 + M7 + M9 + M11

P2 = M3 + M6 + M7 + M10 + M11

P4 = M5 + M6 + M7

P8 = 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

48

11 10 9 8 7 6 5 4 3 2 1

M11 M10 M9 P8 M7 M6 M5 P4 M3 P2 P1

Códigos de correção de erros

Exemplo 02 (cont.):

Para a mensagem: 1001101

P1 = M3 + M5 + M7 + M9 + M11 = 1 + 0 + 1 + 0 + 1 = 1

P2 = M3 + M6 + M7 + M10 + M11 = 1 + 1 + 1 + 0 + 1 = 0

P4 = M5 + M6 + M7 = 0 + 1 + 1 = 0

P8 = M9 + M10 + M11 = 0 + 0 + 1 = 1

Código de Hamming:

Detecção e correção de erros

49

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

Códigos de correção de erros

Exemplo 02 (cont.):

No receptor:

• Mensagem recebida sem erro: 10011100101

P1 + M3 + M5 + M7 + M9 + M11 = 1 + 1 + 0 + 1 + 0 + 1 = 0

P2 + M3 + M6 + M7 + M10 + M11 = 0 + 1 + 1 + 1 + 0 + 1 = 0

P4 + M5 + M6 + M7 = 0 + 0 + 1 + 1 = 0

P8 + M9 + M10 + M11 = 1 + 0 + 0 + 1 = 0

• Síndrome de erro (número binário formado por P8, P4, P2, P1):

• 00002 = 010 (o bit errado é o sétimo);

• Para realizar a correção basta inverter o bit 7;

Detecção e correção de erros

50

Códigos de correção de erros

Exemplo 02 (cont.):

No receptor:

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

P1 + M3 + M5 + M7 + M9 + M11 = 1 + 1 + 0 + 0 + 0 + 1 = 1

P2 + M3 + M6 + M7 + M10 + M11 = 0 + 1 + 1 + 0 + 0 + 1 = 1

P4 + M5 + M6 + M7 = 0 + 0 + 1 + 0 = 1

P8 + M9 + M10 + M11 = 1 + 0 + 0 + 1 = 0

• Síndrome de erro (número binário formado por P8, P4, P2, P1):

• 01112 = 710 (não houve erro);

Detecção e correção de erros

51

PROTOCOLOS BÁSICOS DE ENLACE DE DADOS

Questões de projeto;

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.

52

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

53

Camada Nome

5 Aplicação

4 Transporte

3 Rede

2 Enlace

1 Física

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

54

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

55

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

56

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;

57

Protocolos básicos de enlace de dados

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;

58

Protocolos básicos de enlace de dados

1. Simplex sem restrições

59

Protocolos básicos de enlace de dados

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);

}

} 60

Protocolos básicos de enlace de dados

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);

}

} 61

Protocolos básicos de enlace de dados

2. Simplex Stop-and-Wait em canal livre de erros

• Trata o controle de fluxo;

• Continua considerando um canal sem erros e tráfego simplex;

62

Protocolos básicos de enlace de dados

2. Simplex Stop-and-Wait em canal livre de erros

63

Protocolos básicos de enlace de dados

2. Simplex Stop-and-Wait em canal livre de erros

64

Protocolos básicos de enlace de dados

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

3. Simplex Stop-and-Wait em 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;

65

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em 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 temporizado é usado no transmissor para não ficar em deadlock;

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

66

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em 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).

67

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em canal com ruídos

68

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em canal com ruídos

69

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em canal com ruídos

70

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;

3. Simplex Stop-and-Wait em canal com ruídos

71

Protocolos básicos de enlace de dados

3. Simplex Stop-and-Wait em canal com ruídos

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

72

Protocolos básicos de enlace de dados

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;

73

Protocolos básicos de enlace de dados

PROTOCOLOS DE JANELA DESLIZANTE

Questões de projeto;

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.

74

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

75

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

76

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

77

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

78

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

79

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

80

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

81

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

82

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

83

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

84

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

85

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

86

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

87

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

88

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

89

EXEMPLOS DE PROTOCOLOS DE ENLACE DE DADOS

Questões de projeto;

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.

90

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

91

PPP

• Descrito na RFC 1661 e mais elaborado na RFC 1662 (além de outras);

• Características:

• Trata 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

92

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

93

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

94

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

95

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

96

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

97

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

98

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

99

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

100

PPP

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

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

Exemplos de protocolos de enlace de dados

101

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

102

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

103

CONTROLE DE ACESSO AO MEIO

Questões de projeto;

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.

104

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

105

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

106

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

107

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

108

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

109

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

110

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

111

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

112

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

113

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

114

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

115

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

116

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

117

ALOHA

• ALOHA Original (2):

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

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

118

ALOHA

• ALOHA Original (3):

• Vulnerabilidade do quadro (sombreado):

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

119

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

120

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

121

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

122

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

123

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

124

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

125

CSMA - Comparação

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

126

1-persistente Não-persistente P-persistente

Canal ocupado Espera até que ele fique desocupado

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

Espera até o próximo slot

Canal desocupado Transmite 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

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.

127

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

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 contensão e transmissão;

• Padronizado como IEEE 802.3 (Ethernet);

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

128

CSMA/CD

• Modelo conceitual:

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

inatividade

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

129

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

130

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

131

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

132

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

133

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

134

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

135

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

136

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

137

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

138

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

139

Ethernet

140

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

Ethernet Clássica (10 Mbps)

• Arquitetura:

Controle de acesso ao meio

141

Ethernet Clássica (10 Mbps)

• Cabeamento:

Controle de acesso ao meio

142

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.

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

143

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

144

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

145

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

146

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

147

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

148

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

149

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

150

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

151

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

152

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

153

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

154

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

155

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.

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

156

Gigabit Ethernet (1 Gbps)

• Cabeamento:

Controle de acesso ao meio

157

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-CX 2 pares de

STP 25 m Par trançado blindado.

1000Base-T 4 pares de

UTP 100 m UTP padrão Cat5.

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

158

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; 159