Você está na página 1de 26

REDES DE COMPUTADORES

2.2 CAMADA DE ENLACE DE DADOS

! Desempenha basicamente quatro funções:

♦ Fornece interface bem definida para a camada de rede;

♦ Organiza os dados recebidos da camada de rede em quadros


(frames) a serem transmitidos na rede física (e vice-versa);

♦ Trata erros de transmissão; e

♦ Realiza controle de fluxo para evitar que receptores lentos (ou


muito ocupados) sejam inundados de quadros por emissores
rápidos (ou pouco ocupados).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 1

REDES DE COMPUTADORES

Serviços fornecidos para a camada de rede

! O principal serviço é a transferência de dados da camada de rede


de uma máquina 1 para a camada de rede de uma máquina 2
(diretamente conectada à máquina 1).

máquina 1 máquina 2 máquina 1 máquina 2

4 4
Enlace Enlace
3 virtual real 3
2 2
1 1

(a) (b)

Figura 1. (a) Comunicação virtual; (b) Comunicação real

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 2
REDES DE COMPUTADORES

! Serviços possíveis:

♦ Sem conexão, sem confirmação: usado quando se dispõe de


canais de comunicação com alta confiabilidade, como em redes
locais;
♦ Sem conexão, com confirmação: usado quando se dispõe de
canais de comunicação com razoável confiabilidade, como nas
transmissões sem fio;
♦ Com conexão, com confirmação: usado quando se dispõe de
canais de comunicação com baixa confiabilidade, como em
redes telefônicas.

Tratamento de Quadros

! Dados recebidos da camada de rede (blocos de bytes) precisam ser


enviados pelo canal de enlace de uma máquina A para uma
máquina B diretamente conectada à primeira, usando-se a camada
física que transmite seqüências de bits agrupadas em blocos ditos
quadros (frames).

! Cada quadro é precedido de um cabeçalho (sinalizadores - flags -


de controle) e acrescido de um campo de verificação (checksum)
que permite a detecção (e, eventualmente, a correção) de erros no
quadro ao chegar no destino (imediato).
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 3

REDES DE COMPUTADORES

! A geração de quadros pode ser:

♦ Por temporização de intervalos entre quadros, quando são


inseridos intervalos de tempo entre um quadro e outro; não é
muito confiável porque as redes de transmissão não garante a
temporização do sistema para o usuário final;

♦ Por contagem de bytes, quando se usa um cabeçalho no


quadro indicando a quantidade de bytes no mesmo; apresenta
um problema sério quando os contadores dos quadros são
alterados por erros de transmissão.

4 1 2 3 4 3 3 2 1 5 1 3 5 7 8 (a)
quadro 1 quadro 3
quadro 2

4 1 2 3 4 5 3 2 1 5 1 3 5 7 8 (b)
quadro 1 quadro 3
quadro 2

Figura 2. Enquadramento por contagem de bytes


(a) sem erros, (b) com erros
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 4
REDES DE COMPUTADORES

♦ Por utilização de byte de início e fim de quadro, com inserção


de caracter de escape1, quando se usa um ou mais bytes para
marcar o início e o fim de um quadro, inserindo-se bytes de
escape quando a seqüência de início e/ou fim aparece dentro dos
dados transmitidos.

Dado a
L U A
transmitir:

Enquadramento: DLE STX L U A DLE ETX

Dado a
L DLE A
transmitir:

Enquadramento: DLE STX L DLE DLE A DLE ETX

DLE = Data Link Escape, STX = Start of Text, ETX = End of Text

Figura 3. Enquadramento com byte de início e fim

1
Método muito usado para a transmissão de caracteres de 8 bits.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 5

REDES DE COMPUTADORES

♦ Por utilização de seqüência de início e fim de quadro, com


inserção de bit de escape, quando se usa um padrão de bits
para indicar o início e o fim de um quadro, inserindo-se bits de
escape quando a seqüência de início e/ou fim aparece dentro
dos dados transmitidos.

Dado a
011011111111111111110 0 10
transmitir:

Sinalização: 01111110

Enquadramento: 01111110 011011111 0 11111 0 11111 0 10010 01111110

A cada sequência de 5 bits 1 consecutivos nos dados a transmitir é inserido


um bit de escape ( 0), para que nunca haja confusão com a sequência de
sinalização.

Figura 4. Enquadramento com seqüência de bits de início e fim

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 6
REDES DE COMPUTADORES

♦ Por violação de codificação na camada física, usado em


algumas redes locais (IEEE 802, p.ex.) onde cada bit de dados
é codificado como 2 bits físicos
(0 = 01, 1 = 10, 00 e 11 são codificações inválidas para dados,
podendo ser usadas para início e/ou fim de quadro).

Codificações
inválidas
1 0 0 1 1 0 0 1

Figura 5. Enquadramento por violação de codificação

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 7

REDES DE COMPUTADORES

Detecção e Correção de Erros

! Na transmissão de dados, erros podem ocorrer por diversas


razões: indução eletromagnética, falha de sincronização entre
emissor e receptor, defeito de componentes, etc.

! A camada de enlace de dados deve garantir uma transmissão livre


de erros entre duas máquinas diretamente conectadas.

Recepção do
caracter ou
quadro

Equipamento não
Técnica de
corrige erro; pede
detecção de erro
retransmissão

Tem Erro? Sim

Não
Pronto p/ receber
Equipamento
novo caracter ou
corrige erro
quadro

Figura 6. Esquema de detecção e recuperação de erros na transmissão

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 8
REDES DE COMPUTADORES

Paridade de Caracteres

! Quando se usa codificação de 7 bits em bytes de 8 bits, é possível


a utilização do oitavo bit como sinalizador de paridade, de modo
que a quantidade de bits 1 no byte seja par (no caso de paridade
par) ou ímpar (no caso de paridade ímpar).

Caracter Bit de paridade par Seqüência a transmitir


1000100 0 10001000
1110000 1 11100001

Caracter Bit de paridade impar Seqüência a transmitir


1000100 1 10001001
1110000 0 11100000

Figura 7. Paridade de Caracter

! Este esquema permite detectar, mas não corrigir erros.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 9

REDES DE COMPUTADORES

Paridade Combinada

! Nesse esquema, além da paridade de caracter, instala-se uma


paridade para o bloco de caracteres, permitindo-se a detecção e
recuperação de 1 erro por caracter, a detecção de dois erros por
caracter, e havendo falha de detecção no caso de erros
quádruplos, como o indicado no exemplo.

M E N S A G E M BCC
Bit 1 1 1 0 1 1 1 1 1 1
2 0 0 1 1 0 1 0 0 1
3 1 1 1 0 0 1 1 1 0
4 1 0 1 0 0 0 0 1 1 LRC
5 0 0 0 1 0 0 0 0 1
6 0 0 0 0 0 0 0 0 0
Bit 7 1 1 1 1 1 1 1 1 0
VRC 0 1 0 0 0 0 1 0 0

Figura 8. Paridade combinada - dados corretos

VRC = Vertical Redundancy Checking


LRC = Longitudinal Redundancy Checking
BCC = Block Check Caracter

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 10
REDES DE COMPUTADORES

M E N S A G E M BCC
Bit 1 1 1 0 1 1 1 1 1 1
2 0 0 (0) 1 0 1 0 0 (0)
3 1 1 1 0 0 1 1 1 0
4 1 0 1 0 0 0 0 1 1 LRC
5 0 0 0 1 0 0 0 0 1
6 0 0 0 0 0 0 0 0 0
Bit 7 1 1 1 1 1 1 1 1 0
VRC 0 1 (1) 0 0 0 1 0 0
Figura 9. Paridade combinada - dados com erro simples
(erro recuperável)

M E N S A G E M BCC
Bit 1 1 1 0 1 1 1 1 1 1
2 0 0 1 (0) 0 1 0 0 (0)
3 1 1 1 0 0 1 1 1 0
4 1 0 1 0 0 0 0 1 1 LRC
5 0 0 0 1 0 0 0 0 1
6 0 0 0 0 0 0 0 0 0
Bit 7 1 1 1 (0) 1 1 1 1 (1)
VRC 0 1 0 0 0 0 1 0 0
Figura 10. Paridade combinada - dados com erro duplo
(erro detectável)
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 11

REDES DE COMPUTADORES

M E N S A G E M BCC
Bit 1 1 1 0 1 1 1 1 1 1
2 0 0 1 1 0 1 0 0 1
3 1 1 1 0 0 1 1 1 0
4 1 0 (0) (1) 0 0 0 1 1 LRC
5 0 0 (1) (0) 0 0 0 0 1
6 0 0 0 0 0 0 0 0 0
Bit 7 1 1 1 1 1 1 1 1 0
VRC 0 1 0 0 0 0 1 0 0

Figura 11. Paridade combinada - dados com erro quádruplo


(não detectável)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 12
REDES DE COMPUTADORES

Verificação de Redundância Cíclica (Cyclic Redundancy Checking - CRC)

! É um método de detecção polinomial que permite a detecção de


praticamente toda ocorrência de erros.

! Idéia: os bits do quadro a ser transmitido serão coeficientes de um


polinômio D(x). Esse polinômio é multiplicado pelo termo de maior
grau de um polinômio gerador G(x), resultando em um polinômio
D'(x), que é dividido pelo polinômio gerador G(x). O resto dessa
divisão é o CRC do quadro. Na recepção, é feita a divisão, usando-
se o mesmo polinômio gerador G(x), e se o resto da divisão não for
0 (zero), ocorreu erro de transmissão.

! Três polinômios geradores tornaram-se padrões internacionais:

CRC-12 X12+x11+x3+x2+x1+1 Usado com caracteres de 6 bits


CRC-16 X16+x15+x2+1 Usado com caracteres de 8 bits
CRC-CCITT X16+x12+x5+1 Usado com caracteres de 8 bits

! A utilização de geradores de 16 bits tais como CRC-16 e CRC-


CCITT, detecta todos os erros de 1 ou 2 bits, todos os erros com
número ímpar de bits, todos os erros em rajada de tamanho igual
ou inferior a 16 bits, 99,997 % de erros em rajada de 17 bits, e
99,998 % de erros em rajada de 18 ou mais bits.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 13

REDES DE COMPUTADORES

Exemplo:

Dado a transmitir = 10111011

G(x) = x 3 + x2 + x

D(x) = 1x7 + 0x6 + 1x5 + 1x4 + 1x3 + 0x2 + 1x1 + 1x0 =

x7 + x5 + x4 + x3 + x + 1

D(x) * termo de maior grau de G(x) =

(x7 + x5 + x4 + x3 + x + 1) * x3 =

x10 + x8 + x7 + x6 + x4 + x3 = D'(x)

D'(x) % G(x) = x2 + x = 1 1 0 = R(x) = CRC

Dado transmitido = 10111011 110

! A aplicação de CRC é normalmente feita através de hardware.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 14
REDES DE COMPUTADORES

Medição de Erros em Canais de Comunicação

! Taxa de Erro de Bit (Bit Error Rate - BER)

Número de bits errados


BER = ---------------------------------------
Número de bits transmitidos

! Taxa de Erro de Quadro (Frame Error Rate - FER)

Número de quadros errados


FER = ------------------------------------------
Número de quadros transmitidos

Erros 10E01 1000E E1010 10E01 00E01 10E11


aleatórios
BER = 6 / 30 FER = 6/6

Erros em 10101 1000E E1010 10101 EEE0E 10111


grupo
BER = 6 / 30 FER = 3/6
Figura 12.
Figura 13. Erros aleatórios versus Erros em grupo (burst)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 15

REDES DE COMPUTADORES

! Testes nos canais de comunicação são realizados com o uso de


software e/ou hardware (TEST-SET) geradores de padrões de bits
que são transmitidos, recuperados e verificados quanto à sua
integridade.

Padrão de
teste
Linha TX
Modem B

Modem B Loop
Test-set
Linha RX
Padrão de
teste

Figura 14. Teste de canal de comunicação

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 16
REDES DE COMPUTADORES

Controle de Fluxo

! Regula o fluxo de quadros entre emissor e receptor, não


permitindo que um emissor rápido (ou pouco ocupado) inunde um
receptor lento (ou muito ocupado).

! Essa regulagem normalmente requer algum mecanismo de


realimentação do emissor por parte do receptor, de acordo com
regras bem definidas.

Controle de fluxo baseado em Confirmação Positiva com


Retransmissão (Positive Acknowledgment - PAR)

! Cada quadro enviado deve ser confirmado pelo receptor.

! O emissor reenvia automaticamente um quadro se não receber a


confirmação dentro de um intervalo de tempo (timeout).

! Para o receptor não confundir um quadro já recebido com uma


cópia retransmitida, usa-se um campo de seqüência no cabeçalho
do quadro (que, nesse caso específico, somente necessita de um
bit).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 17

REDES DE COMPUTADORES

Emissor Receptor
envia( Q1, Seq 0)
=== liga temporizador === recebe( Q1, Seq 0 )
envia( ACK, Seq 0 )
recebe( ACK, Seq 0)
envia( Q2, Seq 1 )
=== liga temporizador === recebe( Q2, Seq 1 )
envia( ACK, Seq 1 )
(deveria ter recebido ACK)
=== timeout ===
re-envia( Q2, Seq 1 )
recebe( Q2, Seq 1 )
=== descarta Q2 ===
envia( ACK, Seq 1 )
recebe( ACK, Seq 1)

Figura 15. Controle de fluxo tipo PAR

! Problema 1: Gera um quadro completo (vários bits) para transmitir


somente um ACK 0 ou um ACK 1 (dois bits seriam suficientes).

! Problema 2: Desperdiça muita banda de transmissão porque a


transmissão é half-duplex.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 18
REDES DE COMPUTADORES

Banda = 50 Kbps
Atraso de transmissão (ida e volta) = 500 mseg (típico de satélite)
Tamanho do quadro = 1000 bits
Tempo de sinalização do quadro = 1000 / 50000 = 0,020 seg = 20 mseg
Tempo de transmissão = 250 mseg
Tempo de entrega no receptor = 20 + 250 = 270 mseg
Tempo de confirmação no emissor = 270 + 250 = 520 mseg
Tempo de espera do emissor = 500 / 520 ≅ 96 %

Controle de fluxo baseado em Janela Deslizante (Sliding Window)

! Melhora 1: envia confirmação do quadro anterior da máquina A


para a máquina B junto com um quadro da máquina B para a
máquina A. Se não houver nada a ser transmitido de B para A,
envia um ACK isolado. Essa técnica é chamada de piggybacking.

! Melhora 2: envia vários quadros (N) antes de obter a confirmação;


conforme forem sendo confirmados, continua a transmitir, de
modo que em um dado instante possa existir N quadros pendentes
de confirmação.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 19

REDES DE COMPUTADORES

Máquina A Máquina B
envia( Q1A, Seq 1, Ack 0 )
=== liga temporizador Q1A === recebe( Q1A, Seq 1, Ack 0 )
envia( Q1B, Seq 1, Ack 1 )
envia( Q2A, Seq 2, Ack 0 ) === liga temporizador Q1B ===
=== liga temporizador Q2A === recebe( Q2A, Seq 2, Ack 0 )
envia( Q2B, Seq 2, Ack 2 )
envia( Q3A, Seq 3, Ack 0 ) === liga temporizador Q2B ===
=== liga temporizador Q3A === recebe( Q3A, Seq 3, Ack 0 )
envia( Q3B, Seq 3, Ack 3 )
recebe( Q1B, Seq 1, Ack 1 ) === liga temporizador Q3B ===
envia( Q4A, Seq 4, Ack 1 )
=== liga temporizador Q4A ===
recebe( Q2B, Seq 2, Ack 2 )
envia( Q5A, Seq 5, Ack 2 )
=== liga temporizador Q5A ===
recebe( Q3B, Seq 3, Ack 3 )
envia( Q6A, Seq 6, Ack 3 )
=== liga temporizador Q6A ===

Figura 16. Controle de fluxo por Janela Deslizante (N=3)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 20
REDES DE COMPUTADORES

Banda = 50 Kbps
Atraso de transmissão (ida e volta) = 500 mseg
Tamanho do quadro = 1000 bits
Tempo de sinalização de 10 quadros = 10*1000/50000=0,200seg=200 mseg
Tempo de transmissão = 250 mseg
Tempo de entrega no receptor (1o. quadro) = 20 + 250 = 270 mseg
Tempo de confirmação no emissor (1o. quadro) = 270 + 20 + 250 = 540 mseg
Tempo de espera do emissor = 340 / 540 ≅ 63 %

! É fácil concluir que a combinação [grande atraso de transmissão,


banda larga e quadro pequeno] é desastrosa em termos de
utilização de um canal de comunicação.

! Com a escolha apropriada da quantidade de quadros a transmitir


sem confirmação (N), pode-se ter o emissor transmitindo
continuamente (basta que o emissor receba a confirmação do
primeiro quadro da janela logo após terminar de sinalizar o último
quadro. Quanto seria N para esse exemplo?).

! Essa técnica é chamada de pipelining.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 21

REDES DE COMPUTADORES

! No caso da ocorrência de erro em algum quadro, pode-se:

♦ Ignorar toda a seqüência de quadros a partir do errado; não


confirmar a recepção; aguardar a retransmissão de todos os
quadros a partir do errado (técnica go back n). É um
procedimento ruim para canais de comunicação com muito
erro.

♦ Guardar os quadros da seqüência após o quadro errado; não


confirmar o quadro errado; aguardar a retransmissão do
mesmo (técnica seletive repeat). É um procedimento bem mais
eficiente em termos de aproveitamento de banda, mas requer
mais memória no nível de enlace do receptor.

! Vamos ver a seguir um exemplo de um protocolo de enlace tipo


PAR muito simples usado em canais unidirecionais.

! Vamos supor que SEQUENCIA, QUADRO, PACOTE e EVENTO são


tipos de dados pré-definidos.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 22
REDES DE COMPUTADORES
void emissor( void ) {
SEQUENCIA prox_quadro_a_enviar;
QUADRO quadro;
PACOTE pacote;
EVENTO evento;

prox_quadro_a_enviar = 0;
Obtenha( pacote, Camada_de_Rede );

while( true ) {
quadro.info = pacote;
quadro.seq = prox_quadro_a_enviar;

Envie( quadro, Camada_Fisica );


Inicialize_temporizador( quadro.seq );
Espere_evento( evento ); // chegada de quadro, erro crc, timeout
If( evento == chegada_de_quadro ) {
Receba( quadro, Camada_Fisica );
If( quadro.ack == prox_quadro_a_enviar ) {
Obtenha( pacote, Camada_de_Rede );
Incremente( prox_quadro_a_enviar, MOD_1 );
}
}
}
}
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 23

REDES DE COMPUTADORES
void receptor( void ) {
SEQUENCIA quadro_a_receber;
QUADRO quadro, q_ack;
PACOTE pacote;
EVENTO evento;

quadro_esperado = 0;

while( true ) {
Espere_evento( evento ); // chegada de quadro ou erro crc

If( evento == chegada_de_quadro ) {


Receba( quadro, Camada_Fisica );

If( quadro.seq == quadro_esperado ) {


Pacote = quadro.info;
Entregue( pacote, Camada_de_Rede );
q_ack.ack = quadro_esperado;
Incremente( quadro_esperado, MOD_1 );
}

Envie( q_ack, Camada_Fisica );


}
}
}
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 24
REDES DE COMPUTADORES

EXEMPLOS DE PROTOCOLOS DE ENLACE DE DADOS

HDLC - High-level Data Link Control

! Protocolo derivado do SDLS (Syncronous Data Link Control) usado


na arquitetura SNA da IBM.

! Foi adotado e modificado pelo CCITT para produzir o LAP (Link


Access Procedure) usado como parte da arquitetura de rede X.25.

! Todos são protocolos orientados a bit, usando inserção de bit


(insere um bit 0 após cada seqüência de cinco bits 1) para a
transparência de dados.

! Todos usam a estrutura de quadro indicada na figura abaixo.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 25

REDES DE COMPUTADORES

Bits 8 8 8 >= 0 16 8
01111110 Endereço Controle Dados CRC 01111110

Figura 17. Quadro HDLC

! Endereço: em canais compartilhados, é usado para identificar


emissor/receptor. Em canais ponto-a-ponto, pode ser usado para
diferenciar comandos de respostas.

! Controle: é usado para o envio de números de seqüência,


reconhecimento (ACK) e outras informações.

! Dados: contem os dados (pacote da camada de rede) a serem


transportados. Pode ser vazio.

! CRC: contêm verificação de erros, usando Cyclic Redundance Check


com polinômio gerador CRC-CCITT.

! 01111110: seqüência delimitadora do quadro.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 26
REDES DE COMPUTADORES

SLIP - Serial Line Internet Protocol

! Criado por Rick Adamns em 1984 para conectar estações de


trabalho SUN na Internet através de uma linha telefônica.

! É um protocolo orientado a caracter, com inserção de byte (0xDB,


0xDC) para transparência de dados.

! Tem uma estrutura de quadro muito simples.

Bytes 1 >= 1 1
0xC0 Dados 0xC0

Figura 18. Quadro SLIP

! Embora ainda seja bastante usado, tem vários problemas:


♦ Não detecta e/ou corrige erro;
♦ Só transporta datagramas IP (Internet);
♦ Não negocia endereçamento (cada lado precisa conhecer seu
parceiro antecipadamente);
♦ Não tem nenhum mecanismo de autenticação;
♦ Não é um padrão aprovado pela Internet (existem várias
versões incompatíveis).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 27

REDES DE COMPUTADORES

PPP - Point to Point Protocol

! É um protocolo de enlace proposto IETF para suprir as deficiências


do SLIP. O PPP fornece:

♦ Um método de enquadramento que delimita o início/fim de


cada quadro com um padrão de bits;

♦ Um controle de enlace para "ativar" a linha de comunicação,


testá-la, negociar opções e "desativá-la" quando não mais
necessária. Isso é feito pelo subprotocolo LCP (Link Control
Protocol);

♦ Um mecanismo de negociação de opções de rede, de modo


independente do protocolo de rede adotado. Isso é
implementado por um NCP (Network Control Protocol) para
cada nível de rede suportado.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 28
REDES DE COMPUTADORES

! Um exemplo típico de uso é o acesso a provedores de acesso


Internet por usuários domésticos:

♦ Discagem ao provedor via modem;

♦ Estabelecimento de conexão física entre modems;

♦ Seqüência de pacotes LCP é enviada em um ou mais quadros


PPP para estabelecer parâmetros para a conexão física
(velocidade máxima, tamanho de quadro, tamanho de janela,
etc.);

♦ Seqüência de pacotes NCP é enviada para configurar o nível de


rede. Tipicamente, é usada para obter endereço IP do usuário,
obter endereço IP do provedor, obter endereço IP do servidor
de nomes, etc.;

♦ Liberação do tráfego IP;

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 29

REDES DE COMPUTADORES

! PPP é muito semelhante em estrutura ao HDLC, sendo orientado a


byte. A estrutura de um quadro PPP vista na figura 40 a seguir.

Bytes 1 1 1 1 ou 2 variável 1 ou 2 1
01111110 Endereço Controle Protocolo Dados CRC 01111110

Figura 19. Quadro PPP

! Onde:

♦ Endereço: sempre fixo em 11111111;

♦ Controle: normalmente fixo em 00000011, indicando quadro


não numerado;

♦ Protocolo: LCP, NCP, IP, IPX, AppleTalk, etc.;

♦ Dados: carga útil (default=1500 bytes);

♦ CRC: verificação de erros.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 30
REDES DE COMPUTADORES

2.3.1 SUBCAMADA DE ACESSO AO MEIO - REDES DE DIFUSÃO

! Trata dos problemas e protocolos para acesso ao meio (ou canal)


de comunicação em redes de difusão, onde múltiplos usuários
(estações) tem de competir entre si para usar o meio de
transmissão.

! Os protocolos usados para determinar quem usa a rede na próxima


vez pertencem à subcamada de acesso ao meio, chamada de
controle de acesso ao meio (MAC - Medium Access Control).

Problema da Alocação do Canal

! Como controlar o acesso a um canal de transmissão compartilhado


por N usuários?

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 31

REDES DE COMPUTADORES

Alocação Estática de Canal em LANs e MANs

! Idéia: dividir a banda passante (W) em N faixas, usando FDM.

! Problemas:

1) Diminui a taxa de transmissão disponível para cada usuário


(banda passante de cada usuário passa a ser W/N), logo a
taxa de transmissão é menor;

2) Quando um usuário não transmite, o canal é desperdiçado (vai


acontecer muito porque o tráfego típico em LAN/MAN é em
rajada).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 32
REDES DE COMPUTADORES

Alocação Dinâmica de Canal em LANs e MANs

! Definições:

♦ Modelo de Estações (Station Model): N estações


independentes, cada uma com um programa/usuário gerando
quadros para transmissão;

♦ Presunção de Canal Único (Single Channel Assumption): um


único canal está disponível para transmissão/recepção das N
estações;

♦ Presunção de Colisão (Collision Assumption): dois quadros


transmitidos ao mesmo tempo colidem e são deteriorados,
exigindo retransmissão;

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 33

REDES DE COMPUTADORES

♦ Transmissão em Tempo Contínuo (Continous Time): um quadro


pode ser transmitido a qualquer tempo. Não existe um relógio
mestre dividindo o tempo em intervalos discretos (fatias);

♦ Transmissão em Tempo Fatiado (Slotted Time): um quadro só


pode ser transmitido em uma fatia de tempo. Uma fatia de
tempo pode conter 0, 1 ou mais quadros, indicando uma fatia
vazia, com um quadro ou colisão, respectivamente;

♦ Transmissão com Teste de Portadora (Carrier Sense): uma


estação pode testar se o canal está livre para, somente nesse
caso, iniciar sua transmissão;

♦ Transmissão sem Teste de Portadora (No Carrier Sense): uma


estação não pode testar se o canal está livre.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 34
REDES DE COMPUTADORES

PROTOCOLOS DE ACESSO MÚLTIPLO

ALOHA (1970)

! Um dos primeiros a ser desenvolvido. Princípio de funcionamento


de uma estação que quer transmitir um quadro:

♦ Estação transmite quadro;

♦ Estação escuta o canal para receber o quadro que ela mesma


transmitiu;

♦ Se receber o quadro, a transmissão foi um sucesso;

♦ Se não receber, houve colisão. Espera um tempo aleatório


(crescente) e retransmite.

! Esse sistema é chamado de transmissão com contenção.

! Eficiência: aproximadamente 18 %

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 35

REDES DE COMPUTADORES

ALOHA Fatiado (1972)

! Princípio de funcionamento de uma estação que quer transmitir


um quadro:

♦ Estação aguarda marca de tempo para poder transmitir o


quadro;
♦ O restante do comportamento é igual ao ALOHA.

! Eficiência: aproximadamente 36 %

CSMA - Carrier Sense Multiple Access (1-persistente)

! Princípio de funcionamento de uma estação que quer transmitir


um quadro:

♦ Estação testa o canal para ver se está livre;


♦ Se estiver ocupado, aguarda ficar livre testando
continuamente;
♦ O restante do comportamento é igual ao ALOHA.

! Eficiência: aproximadamente 50 %

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 36
REDES DE COMPUTADORES

CSMA (Não persistente)

! Princípio de funcionamento semelhante ao CSMA, só que quando o


canal está ocupado, aguarda um tempo aleatório (crescente) antes
de tentar de novo.

! Eficiência: aproximadamente 85% (mas com atraso alto).

CSMA (p-persistente)

! Usado em canais fatiados no tempo. Princípio de funcionamento:

♦ Estação aguarda fatia de tempo para transmitir, e transmite


com probabilidade p. Com probabilidade q = 1 - p, deixa para
transmitir na próxima fatia de tempo (não tem o que
transmitir).

♦ Quando ocorre colisão, aguarda tempo aleatório (crescente)


para retransmitir.

! Eficiência: aproximadamente 70% com p = 0,5, 90% com p=0,1 e


95% com p=0,01.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 37

REDES DE COMPUTADORES

CSMA-Collision Detection

! Idéia: além de não iniciar a transmissão com o canal ocupado,


interrompe uma transmissão tão logo seja detectada colisão.

! Quando ocorre colisão, aguarda um tempo aleatório (crescente)


para retransmitir.

! É a base do IEEE 802.3 (Ethernet).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 38
REDES DE COMPUTADORES

Protocolos Livres de Colisão

Protocolo Bit-Map

! Cada estação i = 1, 2, ... N manifesta seu desejo de transmitir


assinalando a i-ésima entrada de um "quadro de controle" de N
bits com um bit 1.

! Após as N estações indicarem seu desejo de transmitir, elas são


liberadas para transmitir em ordem numérica, de acordo com o
quadro de controle.

! Se uma estação ficar pronta para transmitir após a passagem do


quadro de controle, azar o dela. Deve aguardar o próximo quadro
de controle.

! Protocolos desse tipo são chamados de protocolos de reserva.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 39

REDES DE COMPUTADORES

quadro de
dados

0 1 2 3 0 1 2 3
. 1 1 . 1 2 . 1 1 1 1 2 3

quadro de
controle

tempo
Figura 20. Protocolo Bit-Map

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 40
REDES DE COMPUTADORES

Protocolo Binary Countdown

! Cada estação que quiser transmitir faz uma difusão de seu


endereço (um bit por vez). Os vários endereços difundidos são
operados logicamente com OR.

! Processados da esquerda para a direita (mais alta ordem


primeiro), toda vez que uma estação com bit 0 for superada por
uma estação com bit 1, desiste de usar.

! A estação que permanecer no páreo sozinha ganha o direito de


transmitir, transmite, e inicia-se outro ciclo de disputa.

Estação Endereço T0 T1 T2 T3
A 2 (0 0 1 0) 0 - - -
B 4 (0 1 0 0) 0 - - -
C 9 (1 0 0 1) 1 0 0 -
D 10 (1 0 1 1 0 1 0
0)
1 0 1 0 D vence e transmite

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 41

REDES DE COMPUTADORES

Padrão IEEE 802 para LANs e MANs

! O IEEE 802 é uma série de padrões internacionais para protocolos


de acesso ao meio em LANs e MANs. Os principais são:

♦ 802.1, que descreve o conjunto como um todo, definindo as


primitivas de interface;

♦ 802.2, que descreve a parte superior do nível de enlace,


usando o protocolo LLC (Logical Link Control);

♦ 802.3, que descreve o padrão CSMA/CD (base do Ethernet);

♦ 802.4, que descreve o padrão token bus; e

♦ 802.5, que descreve o padrão token ring.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 42
REDES DE COMPUTADORES

IEEE 802.2

! Os padrões IEEE 802 para LANs e MANs oferecem o serviço de


melhor esforço de entrega, sem garantia, que pode ser usado sem
problemas em redes TCP/IP (porque os níveis superiores tem
mecanismos de controle de erro). Algumas redes, porém, podem
necessitar de um enlace de dados com algum controle de erro e
fluxo.

! Para elas, foi definido o padrão 802.2, que implementa tais


controles através do protocolo LLC (Logical Link Control) que,
inclusive, esconde do nível de rede as características específicas
de cada tecnologia de transporte de dados. O LLC oferece os
serviços: sem conexão/não confiável, sem conexão/confiável e
com conexão/confiável.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 43

REDES DE COMPUTADORES

Nível de
Pacote
Rede

LLC LLC Pacote


Nível de
Enlace
MAC MAC LLC Pacote

Nível Físico Rede física


(a) (b)

Figura 21. (a) Posição do LLC, (b) Formato do LLC

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 44
REDES DE COMPUTADORES

IEEE 802.3 e Ethernet

! O IEEE 802.3 padroniza rede local usando CSMA/CD (1-


persistente), sendo originado do ALOHA (1970), acrescido de
Carrier Sense (1976), sendo chamado com freqüência de Ethernet.

! O cabeamento utilizado é o indicado na tabela abaixo.

Distância Número
Padrão Cabo Máxima2 máximo de Observação
Estações
10base5 Coaxial 500 100 Quase não mais usado, alta
grosso imunidade a ruído, 10 Mbps
10base2 Coaxial 185 30 Mais barato, alta imunidade
fino a ruídos, 10 Mbps
10baseT Par 100 1024 Mais usado, média
trançado imunidade a ruído, 10 a 100
Mbps
10baseF Fibra 2000 1024 O mais caro, totalmente
ótica imune a ruído, 10 a 622
Mbps

2
EM um segmento. Pode-se usar até 4 repetidores de sinal, num total de 5 segmentos.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 45

REDES DE COMPUTADORES

! A codificação usada segue dois padrões: Manchester e Manchester


Diferencial.

Dados 1 0 0 1 1 1 0 1

Codificação binária

Codificação
Manchester
Codificação
Manchester
Diferencial

transição => bit 0 sem transição => bit 1

Figura 22. Codificação de dados IEEE 802.3

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 46
REDES DE COMPUTADORES

! O enquadramento é mostrado na figura abaixo.

Bytes 7 1 2a6 2a6 2 0 a 1500 0 a 46 4


Preâmbulo Início Ender. Ender. Tamanho Dados Preenchi- CRC
Destino Origem dos Dados mento

♦ Preâmbulo é sete vezes 10101010, na codificação Manchester,


que gera uma onda quadrada de 10 MHz, visando a
sincronização entre receptor e emissor;

♦ Início (10101011) é marca de início de quadro;

♦ Endereço Destino, é o endereço da estação receptora. Cada


estação tem um endereço associado à sua interface de rede
(placa de comunicação). No endereçamento, o bit de mais alta
ordem é 0 (zero) para endereços normais e 1 (um) para
endereços em grupo. Endereços de grupo permitem endereçar
várias estações ao mesmo tempo, num esquema dito de
multidifusão (multicast). O endereço destino com todos os bits
1 é reservado para endereçar todas as estações ao mesmo
tempo - difusão (broadcast);

♦ Endereço Origem, é o endereço da estação emissora;

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 47

REDES DE COMPUTADORES

♦ Tamanho dos Dados, é quantidade de bytes transmitidos como


Dados;

♦ Dados, são os dados a serem transportados;

♦ Preenchimento, são usados na medida do necessário para que


um quadro tenha um tamanho mínimo de 64 bytes (em redes
de 10 Mbps). Um quadro muito pequeno poderia ser
transmitido totalmente antes de chegar ao seu destino mais
longo, gerando uma colisão caso a estação localizada no
destino mais longo (cabo) resolvesse transmitir;

♦ CRC, é a verificação de erros.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 48
REDES DE COMPUTADORES

! O tratamento de colisão é feito usando-se o Algoritmo Binary


Exponential Backoff.

Início
Fatia-de-tempo = tempo de 1 quadro percorrer o cabeamento;

Transmissão;

Enquanto houver colisão, Início


1a. Colisão)
espera 0 ou 1 Fatia-de-tempo;
2a. Colisão)
espera 0, 1, 2 ou 3 Fatia-de-tempo;
3a. Colisão)
espera 0, 1, ..., 7 Fatia-de-tempo;
...
Na. Colisão)
Espera 0, 1, ..., 2N - 1 Fatia-de-tempo, para N ≤ 10 sempre.

Transmissão;
Fim
Fim

! O algoritmo é adaptativo à quantidade de colisões.


© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 49

REDES DE COMPUTADORES

! A eficiência do 802.3 (a 10 Mbps, com quadro mínimo de 64 bytes)


é indicada na figura abaixo.

Quadro

1,0
0,9 1024 bytes
Eficiência do canal

0,8 512 bytes


0,7
0,6 256 bytes
0,5
128 bytes
0,4
0,3 64 bytes
0,2
0,1
0 1 2 4 8 16 32 64 128 256
Estações tentando transmitir

Figura 23. Eficiência do IEEE 802.3

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 50
REDES DE COMPUTADORES

Redes Locais 802.3 Comutadas

! O crescimento do número de estações em rede implica no


crescimento do tráfego; quando satura, o que fazer?

! Aumentar a capacidade da rede de 10 Mbps (Ethernet) para 100


Mbps (Fast Ethernet), implica em trocar todas as interfaces de
rede e trocar o concentrador (hub).

! Utilizar tecnologia de comutação de circuito através de


comutadores (switchs) Ethernet é uma solução bastante adotada
para preservar o investimento em interfaces de comunicação,
obtendo-se um ganho considerável de performance.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 51

REDES DE COMPUTADORES

O
O
O
O
Hub
O

Figura 24. Comutador Ethernet

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Enlace * Pág. 52