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
Top Related