Cap. 5: Camada de Enlace Camada de Enlace Teleprocessamento e Redes Instituto de Informática – UFG Prof. Fábio M. Costa (slides baseados em [Kurose&Ross2003])
Cap. 5: Camada de Enlace
Camada de Enlace
Teleprocessamento e Redes
Instituto de Informática – UFGProf. Fábio M. Costa
(slides baseados em [Kurose&Ross2003])
Cap. 5: Camada de Enlace
Capítulo 5: A Camada de Enlace
Nossos objetivos: entender os princípios por
trás dos serviços da camada de enlace:
detecção e correção de erros
compartilhando um canal broadcast: acesso múltiplo
endereçamento da camada de enlace (endereço físico)
transferência de dados confiável, controle de fluxo: já visto!
instanciação e implementação de várias tecnologias da camada de enlace
Visão Geral: serviços da camada de enlace detecção de erros, correção protocolos de acesso múltiplo
e LANs endereçamento da camada de
enlace, ARP tecnologias específicas da
camada de enlace: Ethernet hubs, pontes, switches WLANs IEEE 802.11 PPP ATM
Cap. 5: Camada de Enlace
Camada de enlace: definindo o contexto
fluxo real de PDUsRoteador R1
Roteador R4
Roteador R3Roteador R3Roteador R2
protocolode enlace
Cap. 5: Camada de Enlace
dois elementos físicos fisicamente conectados: host-roteador, roteador-roteador, host-host
unidade de dados: quadro (frame)
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
M
M
M
M
Ht
HtHn
HtHnHl MHtHnHl
quadroenlacefísico
protocolode enlace
placa adaptadora
Camada de enlace: definindo o contexto
Cap. 5: Camada de Enlace
Serviços da Camada de Enlace Enquadramento, acesso ao enlace:
encapsula datagramas em quadros, acrescentando cabeçalho e “cauda” (trailer)
implementa acesso ao canal se o meio é compartilhado ‘endereços físicos’ usados nos cabeçalhos dos quadros para
identificar a fonte e o destino dos quadros • diferente do endereço IP !
Entrega confiável entre dois equipamentos fisicamente conectados: já aprendemos como isto deve ser feito (capítulo 3)! raramente usado em enlaces com baixa taxa de erro (fibra
ótica e alguns tipos de par trançado) enlaces sem-fio (wireless): altas taxas de erro
• Q: por que prover confiabilidade fim-a-fim e na camada de enlace?
Cap. 5: Camada de Enlace
Serviços da Camada de Enlace (cont.) Controle de Fluxo:
limitação da taxa de transmissão entre transmissor e receptor
Detecção de Erros: erros causados pela atenuação do sinal e por
ruídos. o receptor detecta a presença de erros:
• avisa o transmissor para reenviar o quadro perdido
Correção de Erros: o receptor identifica e corrige o(s) bit(s) com
erro(s) sem recorrer à retransmissão
Cap. 5: Camada de Enlace
Implementação: Camada de Enlace
implementado no “adaptador” ex., cartão de rede PCMCIA, placa Ethernet
PCI tipicamente inclui: RAM, chips DSP, interface
com barramento do host (PCI), e interface com o enlace (ex.: UTP)
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
M
M
M
M
Ht
HtHn
HtHnHl MHtHnHl
quadroenlacefísico
protocolode enlace
placa adaptadora
Cap. 5: Camada de Enlace
Detecção de ErrosEDC= bits do Código de Detecção e Correção de Erros (redundância)D = Dados protegidos pela verificação de erros, pode incluir os campos de cabeçalho
• A detecção de erros não é 100% confiável!• protocolos podem deixar passar alguns erros, mas isto é raro• Quanto maior o campo EDC melhor é a capacidade de detecção e correção de erros
Cap. 5: Camada de Enlace
Verificação de ParidadeParidade com um único Bit:Detecta erro de um único bit
Paridade Bi-dimensional:Detecta e corrige erros de um único bit
0 0sem erros erro de
paridade
erro de 1 bitcorrigível
erro deparidade
bit deparidade
Cap. 5: Camada de Enlace
Checksum da Internet
Sender: trata o conteúdo de
segmentos como seqüências de números inteiros de 16 bits
checksum : adição (soma em complemento de um) do conteúdo do segmento
transmissor coloca o valor do checksum no campo checksum do UDP/TCP
Receptor: computa o checksum do
segmento recebido verifica se o checksum
calculado é igual ao valor do campo checksum: NÃO - erro detectado SIM - não detectou erro.
Mas talvez haja erros apesar disso. Mais detalhes mais tarde…
Objetivo: detectar “erros” (ex. bits trocados) num segmento transmitido (nota: usado apenas na camada de trasnporte – para o payload)
Cap. 5: Camada de Enlace
Verificação de Redundância Cíclica
encara os bits de dados, D, como um número binário escolhe um padrão gerador de r+1 bits, G objetivo: escolhe r bits de CRC, R, tal que
<D,R> é divisível de forma exata por G (módulo 2) receptor conhece G, divide <D,R> por G. Se o resto é
diferente de zero: erro detectado! pode detectar todos os erros em seqüência (erros em
rajada) com comprimento menor que r+1 bits largamente usado na prática (ATM, HDLC)
padrão de bits
fórmulamatemática
bits de dados a enviar
Cap. 5: Camada de Enlace
Exemplo de CRCDesejado:
D*2r XOR R = nGequivalente a:
D*2r = nG XOR R equivalente a: se nós dividimos
D*2r por G, buscamos resto R
R = resto[ ]D*2r
G
Cap. 5: Camada de Enlace
Enlaces de Acesso Múltiplo e ProtocolosTrês tipos de enlaces: ponto-a-ponto (cabo único, ex. PPP, SLIP) broadcast (cabo ou meio compartilhado; ex,
Ethernet, Wavelan, 802.11, etc.)
switched (ex., switched Ethernet, ATM, etc.)
Cap. 5: Camada de Enlace
Protocolos de Acesso Múltiplo canal de comunicação único e compartilhado duas ou mais transmissões pelos nós: interferência
apenas um nó pode transmitir com sucesso num dado instante de tempo
protocolo de múltiplo acesso: algoritmo distribuído que determina como as estações
compartilham o canal; isto é, determinam quando cada estação pode transmitir
comunicação (de controle) sobre o compartilhamento do canal deve utilizar o própro canal!
o que procurar em protocolos de múltiplo acesso: • síncrono ou assíncrono• informação necessária sobre as outras estações• robustez (ex., em relação a erros do canal) • desempenho
Cap. 5: Camada de Enlace
Protocolos de Acesso Múltiplo
tese: as pessoas usam protocolos de múltiplo acesso o tempo todo
classe pode ”descobrir" protocolos de múltiplo acesso usado por pessoas protocolo multiacesso 1: protocolo multiacesso 2: protocolo multiacesso 3: protocolo multiacesso 4:
Cap. 5: Camada de Enlace
Protocolos MAC: uma taxonomia
Três grandes classes: Particionamento de canal
dividem o canal em pedaços menores (compartimentos de tempo, freqüência)
aloca um pedaço para uso exclusivo de cada nó
Acesso Aleatório permite colisões “recuperação” das colisões
Passagem de Permissão compartilhamento estritamente coordenado para
evitar colisões
Objetivo geral: eficiente, justo, simples, descentralizado
Cap. 5: Camada de Enlace
Protocolos MAC com Particionamento de Canal: TDMA
TDMA: acesso múltiplo por divisão temporal acesso ao canal é feito por ”turnos" cada estação controla um compartimento (“slot”) de
tamanho fixo (tamanho = tempo de transmissão de pacote) em cada turno
compartimentos não usados são desperdiçados exemplo: rede local com 6 estações: 1, 3 e 4 têm
pacotes, compartimentos 2, 5 e 6 ficam vazios
Cap. 5: Camada de Enlace
FDMA: acesso múltiplo por divisão de freqüência o espectro do canal é dividido em bandas de freqüência cada estação recebe uma banda de freqüência tempo de transmissão não usado nas bandas de freqüência
é desperdiçado Ex.: rede local com 6 estações: 1, 3 e 4 têm pacotes, as
bandas de freqüências 2, 5 e 6 ficam vazias
bandas
de f
reqüênci
a tempo
Protocolos MAC com Particionamento de Canal: FDMA
1
2
3
4
5
6
Cap. 5: Camada de Enlace
Particionamento de Canal (CDMA)
CDMA (Acesso Múltiplo por Divisão de Códigos) um código único é atribuído a cada usuário, isto é, o código
define o particionamento muito usado em canais de broadcast, sem-fio (celular, satélite,
etc.) todos os usuários usam a mesma freqüência, mas cada
usuário tem a sua própria maneira de codificar os dados. Esta codificaçaõ é definida pelo código que o usuário recebe (“chipping sequence”)
sinal codificado = (dados originais) X (chipping sequence) decodificação: produto interno do sinal codificado e da
seqüência de codificação (“chipping sequence”) permite que múltiplos usuários “coexistam” e transmitam
simultaneamente com mínima interferência (os códigos utilizados são ditos “ortogonais” entre si)
Cap. 5: Camada de Enlace
CDMA Codificação e Decodificação
transmissor
receptor
Cap. 5: Camada de Enlace
CDMA: interferência de dois transmissorestransmissores
receptor 1
Cap. 5: Camada de Enlace
Protocolos de Acesso Aleatório Quando o nó tem um pacote a enviar:
transmite com toda a taxa do canal R. não há uma regra de coordenação a priori entre os nós
dois ou mais nós transmitindo -> “colisão”, Protocolo MAC de acesso aleatório especifica:
como detectar colisões como as estações se recuperam das colisões (ex., via
retransmissões atrasadas)
Exemplos de protocolos MAC de acesso aleatório: slotted ALOHA ALOHA CSMA e CSMA/CD
Cap. 5: Camada de Enlace
Slotted Aloha
tempo é dividido em compartimentos de tamanho igual (= tempo de transmissão de um pacote)
nó com pacote pronto: transmite no início do próximo compartimento
se houver colisão: retransmite o pacote nos futuros compartimentos com probabilidade p, até que consiga enviar.
Compartimentos: Sucesso (S), Colisão (C), Vazio (E)
Cap. 5: Camada de Enlace
Eficiência do Slotted AlohaP: qual a máxima fração de compartimentos com
sucesso?R: Suponha que N estações têm pacotes para enviar
cada uma transmite num compartimento com probabilidade p
prob. sucesso de transmissão, S, é:
por um único nó: S= p (1-p)(N-1)
por qualquer um dos N nós
S = Prob (apenas um transmite) = N p (1-p)(N-1)
… escolhendo p ótimo quando N -> infinito ...
= 1/e = .37 quando N -> infinito
No máximo: uso docanal para envio dedados úteis: 37%do tempo!
Cap. 5: Camada de Enlace
ALOHA Puro (unslotted) unslotted Aloha: operação mais simples, não há
sincronização pacote necessita transmissão:
enviar sem esperar pelo início de um compartimento a probabilidade de colisão aumenta:
pacote enviado em t0 colide com outros pacotes enviados em [t0-1, t0+1]
Cap. 5: Camada de Enlace
Aloha Puro (cont.)P(sucesso por um dado nó) = P(nó transmite) .
P(outro nó não transmite em [t0-1,t0]) .
P(outro nó não transmite em [t0,t0+1])
= p . (1-p) . (1-p)
P(sucesso por um qualquer dos N nós) = N p . (1-p) . (1-p)
… escolhendo p ótimo quando n -> infinito ...
= 1/(2e) = .18
S =
vazã
o =
“goodput”
(
taxa d
e s
uce
sso)
G = carga oferecida = Np0.5 1.0 1.5 2.0
0.1
0.2
0.3
0.4
Pure Aloha
Slotted Alohaprotocolo limita a vazão efetivado canal!
Cap. 5: Camada de Enlace
CSMA: Carrier Sense Multiple Access
CSMA: escuta antes de transmitir: Se o canal parece vazio: transmite o pacote Se o canal está ocupado, adia a transmissão
CSMA Persistente: tenta outra vez imediatamente com probabilidade p quando o canal se torna livre (pode provocar instabilidade)
CSMA Não-persistente: tenta novamente após um intervalo aleatório
analogia humana: não interrompa os outros!
Cap. 5: Camada de Enlace
Colisões no CSMA
colisões podem ocorrer:o atraso de propagação implica que dois nós podem não ouvir as transmissões de cada outrocolisão:todo o tempo de transmissão do pacote é disperdiçado
arranjo espacial dos nós na rede
nota:papel da distância e do atraso de propagação na determinação da probabilidade de colisão.
espaço
tem
po
Cap. 5: Camada de Enlace
CSMA/CD (Detecção de Colisão)
CSMA/CD: detecção de portadora, deferência como no CSMA colisões detectadas num tempo mais curto transmissões com colisões são interrompidas, reduzindo
o desperdício do canal retransmissões persistentes ou não-persistentes
detecção de colisão: fácil em LANs cabeadas: medição da intensidade do
sinal, comparação dos sinais transmitidos e recebidos difícil em LANs sem fio: receptor desligado enquanto
transmitindo
analogia humana: o “bom-de-papo” educado
Cap. 5: Camada de Enlace
CSMA/CD detecção de colisãoespaço
tem
po
detecção de colisão/tempo
de parada
Cap. 5: Camada de Enlace
Protocolos MAC com Passagem de PermissãoProtocolos MAC com particionamento de canais:
compartilham o canal eficientemente quando a carga é alta e bem distribuída
ineficiente nas cargas baixas: atraso no acesso ao canal. A estação consegue uma banda de 1/N da capacidade do canal, mesmo que haja apenas 1 nó ativo!
Protocolos MAC de acesso aleatório eficiente nas cargas baixas: um único nó pode usar
todo o canal cargas altas: excesso de colisões
Protocolos de passagem de permissãobuscam o melhor dos dois mundos!
Cap. 5: Camada de Enlace
Protocolos MAC com Passagem de Permissão Polling: nó mestre “convida”
os escravos a transmitirem um de cada vez
Mensagens Request to Send e Clear to Send
problemas: polling overhead latência ponto único de falha
(mestre)
Token passing: controla um token passado de
um nó a outro seqüencialmente.
mensagem de token problemas:
token overhead latência ponto único de falha (token)
Cap. 5: Camada de Enlace
Protocolos de ReservaPolling distribuído: O tempo é dividido em compartimentos (“slots”) começa com N compartimentos de reserva, mais curtos
tempo do compartimento de reserva é igual ao atrso de propagação fim-a-fim do canal
estação com mensagem a enviar faz uma reserva reserva é vista por todas as estações
depois dos compartimentos de reserva ocorre a transmissão das mensagens ordenadas pelas reservas e pelas prioridades de
transmissão
reserva mensagens
Cap. 5: Camada de Enlace
Sumário dos protocolos MAC
Como se faz com um canal compartilhado? Particionamento de canal, no tempo, por
freqüência ou por código• Divisão temporal, divisão por código, divisão por
freqüência Particionamento aleatório (dinâmico),
• ALOHA, S-ALOHA, CSMA, CSMA/CD• detecção de portadora: fácil em alguns meios físicos
(cabos) e difícil em outros (wireless)• CSMA/CD usado em redes Ethernet
Passagem de permissão• polling a partir de um nó central, passagem de token
Cap. 5: Camada de Enlace
Tecnologias de LANCamada de enlace até agora:
serviços, detecção de erros/correção, acesso múltiplo
A seguir: tecnologias de redes locais (LAN) endereçamento Ethernet hubs, pontes, switches 802.11 PPP ATM
Cap. 5: Camada de Enlace
Endereços de LAN e ARP
Endereços IP de 32-bit: endereços da camada de rede usados para levar o datagrama até a rede de
destino (lembre-se da definição de “rede IP”)
Endereço de LAN (ou MAC ou físico): usado para levar o datagrama de uma interface
física a outra fisicamente conectada com a primeira (isto é, na mesma rede)
Endereços MAC com 48 bits (na maioria das LANs) gravado na memória fixa (ROM) do adaptador de rede
Cap. 5: Camada de Enlace
Endereços de LAN e ARPCada adaptador numa LAN tem um único endereço de LAN
Cap. 5: Camada de Enlace
Endereços de LAN (cont.)
A alocação de endereços MAC é administrada pelo IEEE O fabricante compra porções do espaço de endereço
MAC (para assegurar a unicidade – duas placas de rede não podem ter o mesmo endereço MAC)
Analogia: (a) endereço MAC: semelhante ao número do RG (b) endereço IP: semelhante a um endereço postal endereçamento MAC é plano (não estrut.) =>
portabilidade é possível mover uma placa de LAN de uma rede para
outra sem reconfiguração de endereço MAC endereçamento IP “hierárquico” => NÃO portável
depende da rede na qual se está ligado
Cap. 5: Camada de Enlace
Relembrando a discussão sobre roteamento
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
Começando em A, dado que o datagrama está endereçado para B (endereço IP):
procure rede.endereço de B, encontre B em alguma rede, no caso igual à rede de A
camada de enlace envia datagrama para B dentro de um quadro da camada de enlace
endereçoMAC de B
end. MACde A
end. IPde A
end. IPde B
dados IP
datagramaquadro
endereço de origeme destino do quadro
endereço de origeme destino do pacote
Cap. 5: Camada de Enlace
ARP: Address Resolution Protocol(Protocolo de Resolução de Endereços)
Cada nó IP (Host, Roteador) numa LAN tem um módulo e uma tabela ARP
Tabela ARP: mapeamento de endereços IP/MAC para alguns nós da LAN
< endereço IP; endereço MAC; TTL> < ………………………….. >
TTL (Time To Live): tempo depois do qual o mapeamento de endereços será esquecido (tipicamente 20 min)
Questão: como determinaro endereço MAC de Bdado o endereço IP de B?
Cap. 5: Camada de Enlace
Protocolo ARP Estação A conhece o endereço IP da estação B, e
quer aprender o endereço físico de B A envia em broadcast um pacote ARP de consulta
contendo o endereço IP de B todas as máquinas na LAN recebem a consulta
ARP
B recebe o pacote ARP, responde a A com o seu (de B) endereço de camada física
A armazena os pares de endereço <IP--físico> até que a informação se torne obsoleta (esgota o tempo de vida) soft state: informação que desaparece com o
tempo se não for re-atualizada
Cap. 5: Camada de Enlace
Roteamento para outra LAN
caminho: roteamento de A para B via R
Na tabela de roteamento no Host de origem (A), encontra-se o roteador 111.111.111.110 (p. ex., rota default)
Na tabela de ARP na origem (A), encontra o endereço MAC E6-E9-00-17-BB-4B
A
RB
Cap. 5: Camada de Enlace
A cria o pacote IP com origem A, destino B A usa ARP para obter o endereço de camada física de R
correspondente ao endereço IP 111.111.111.110 A cria um quadro Ethernet com o endereço físico de R como
destino; o quadro Ethernet contém o datagrama IP de A para B A camada de enlace de A envia o quadro Ethernet A camada de enlace de R recebe o quadro Ethernet R remove o datagrama IP do quadro Ethernet e verifica que ele se
destina a B (que está na mesma rede que a segunda interface d R)
R usa ARP para obter o endereço físico de B R cria quadro contendo o datagrama de A para B e o envia para B
A
RB