Buscar

parte3_camada_enlace

Prévia do material em texto

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 
2012/02 
1 
Camada Nome 
5 Aplicação 
4 Transporte 
3 Rede 
2 Enlace 
1 Física 
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 
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 
Tópicos 
• Objetivos; 
• Serviços oferecidos à camada de rede; 
• Enquadramento; 
• Controle de erros; 
• Controle de fluxo. 
 
Introdução 
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; 
 
Introdução 
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. 
 
 
Introdução 
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; 
 
 
 
 
 
 
• Gerenciar quadros é o núcleo das atividades da camada de enlace. 
Introdução 
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. 
Introdução 
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. 
Introdução 
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. 
Introdução 
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. 
Introdução 
11 
Enquadramento 
• Problema de enquadramento: 
• 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 
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. 
Introdução 
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? 
 
Introdução 
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? 
Introdução 
15 
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 
Enquadramento 
3. 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 
Enquadramento 
3. 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 
Enquadramento 
3. 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 
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. 
Introdução 
20 
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 
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 permitindoo envio de novos dados; 
• Baseado em velocidade: o protocolo tem um mecanismo interno 
que limita a velocidade dos transmissores. 
Introdução 
22 
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 
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 
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 
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 o erro e corrigi-lo sem a necessidade de enviá-lo 
novamente. 
Detecção e correção de erros 
26 
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 
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 
Códigos de detecção de erros 
1. Bits de paridade; 
2. Checksum; 
3. CRC. 
Detecção e correção de erros 
29 
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 
30 
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 
31 
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 
32 
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 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 
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 
34 
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, o checksum enviado é 
descartado); 
 
Detecção e correção de erros 
35 
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 
36 
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 
37 
Códigos de detecção de erros 
3. CRC (cont.): 
• Verificador de CRC (Receptor): 
Detecção e correção de erros 
38 
Códigos de detecção de erros 
3. CRC (cont.): 
• Exemplo de descarte: 
Detecção e correção de erros 
39 
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 
40 
Códigos de detecção de erros 
3. 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-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 
42 
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 
43 
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 
44 
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 
45 
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 
46 
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 
47 
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 
48 
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 
49 
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 
50 
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 (não houve erro); 
Detecção e correção de erros 
51 
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 (o bit errado é o sétimo); 
• Para realizar a correção basta inverter o bit 7; 
 
Detecção e correção de erros 
52 
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. 
53 
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 
54 
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 
55 
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 
56 
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 
57 
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; 
58 
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; 
59 
Protocolos básicos de enlace de dados 
1. Simplex sem restrições 
60 
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); 
} 
} 
61 
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); 
} 
} 
62 
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; 
 
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 
2. Simplex Stop-and-Wait em 
canal livre de erros 
65 
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; 
66 
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 temporizador é usado no transmissor para não ficar em 
deadlock; 
 
• Neste exemplo, apenas um bit é necessário. 
67 
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). 
 
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 
3. Simplex Stop-and-Wait em 
canal com ruídos 
71 
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 
72 
Protocolos básicos de enlace de dados 
3. Simplex Stop-and-Wait em 
canal com ruídos 
 
 
 
 
 
 
 
 
 
 
 
• Código-fonte: arquivo “p3.c”. 
73 
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. 
74 
Protocolosbásicos de enlace de dados 
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. 
75 
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 
76 
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 
77 
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 
78 
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 
79 
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 
80 
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 
81 
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 
82 
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 
83 
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 
84 
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 
85 
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 
86 
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 
87 
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 
88 
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 
89 
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 
90 
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. 
91 
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 
92 
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 
93 
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 
94 
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 
95 
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çãode erro. 
Exemplos de protocolos de enlace de dados 
96 
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 
97 
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 
98 
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. 
99 
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 
100 
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 
101 
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 
102 
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 
103 
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 
104 
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 
105 
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 
106 
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 
107 
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 
108 
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 
109 
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 
110 
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 
111 
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 
112 
ALOHA 
• ALOHA Original (2): 
 
• O tempo de transmissão dos quadros é completamente 
aleatório: 
Controle de acesso ao meio / Protocolos de acesso múltiplo 
113 
ALOHA 
• ALOHA Original (3): 
 
• Vulnerabilidade do quadro (sombreado): 
Controle de acesso ao meio / Protocolos de acesso múltiplo 
114 
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 
115 
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 
116 
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 
117 
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 
118 
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 
119 
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 
120 
CSMA - Comparação 
Controle de acesso ao meio / Protocolos de acesso múltiplo 
121 
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, ou seja, a quantidade de dados processados em um determinado 
espaço de tempo. 
122 
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 contenção e transmissão; 
 
• Padronizado como IEEE 802.3 (Ethernet); 
Controle de acesso ao meio / Protocolos de acesso múltiplo 
123 
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 
124 
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 
125 
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 
126 
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 
127 
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 
128 
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 
129 
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 
130 
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 
131 
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 
132 
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 
133 
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 
134 
Ethernet 
135 
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 
136 
Ethernet Clássica (10 Mbps) 
• Cabeamento: 
Controle de acesso ao meio 
137 
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 
138 
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 
139 
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 
140 
Ethernet Clássica (10 Mbps) 
• Estruturade 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 
141 
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 
142 
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 
143 
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 
144 
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 
145 
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 
146 
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 
147 
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 
148 
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 
149 
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 
150 
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 
151 
Gigabit Ethernet (1 Gbps) 
• Cabeamento: 
Controle de acesso ao meio 
152 
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 
153 
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; 154 
http://www.ifba.edu.br/professores/romildo/disciplinas.html
http://randearievilo.com.br/redes/
http://randearievilo.com.br/redes/
http://randearievilo.com.br/redes/
http://homepages.dcc.ufmg.br/~mmvieira/redes/redes.html

Continue navegando