Camadas de Enlace e Rede Local
transparências baseadas no livro“Computer Networking: A Top-Down Approach Featuring the
Internet”James Kurose e Keith Ross
http://occawlonline.pearsoned.com/bookbind/pubbooks/kurose-ross1/
Capítulo 5: Camada de EnlaceNossos objetivos:❒ entender os princípios por
trás dos serviços da camadade enlace:
❍ detecção de erros,correção
❍ compartilhando um canal broadcast: acesso múltiplo
❍ endereçamento da camadade enlace
❍ transferência de dadosconfiá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❍ PPP
Camada de enlace: definindo o contexto
fluxo real de PDUsRoteador R1
Roteador R4
Roteador R3Roteador R3Roteador R2
protocolode enlace
❒ dois elementos físicos fisicamente conectados:❍ host-roteador, roteador-roteador, host-host
❒ unidade de dados: quadro (frame)
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
MMMM
Ht
HtHnHtHnHl MHtHnHl
quadroenlacefísico
protocolode enlace
placa adaptadora
Camada de enlace: definindo o contexto
Serviços da Camada de Enlace❒ Enquadramento, acesso ao enlace:
❍ encapsula datagramas em quadros, acrescentando cabeçalhos e 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 (Cam. Transp.)!❍ raramente usado em enlaces com baixa taxa de erro
(fibra, alguns tipos de par trançado)❍ enlaces sem-fio (wireless): altas taxas de erro
• Q: porque prover confiabilidade fim-a-fim e na camada de enlace?
Serviços da Camada de Enlace (cont.)❒ Controle de Fluxo:
❍ limitação da 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 bit com
erro(s) sem recorrer à retransmissão
Implementação: Camada de Enlace
❒ implementado no “adaptador” ❍ ex., placa PCMCIA, placa Ethernet ❍ tipicamente inclui: RAM, chips DSP, interface
com barramento do host, e interface do enlace
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
MMMM
Ht
HtHnHtHnHl MHtHnHl
quadroenlacefísico
protocolode enlace
placa adaptadora
Implementação de Protocolo da Camada de Enlace
❒ Protocolo da camada de enlace é implementado totalmente no adaptador (p.ex., cartão PCMCIA). Adaptador tipicamenteinclui: RAM, circuitos de processamento digital de sinais, interface do barramento do computador, e interface do enlace
❒ Operações envio do adaptador: encapsula (coloca número de sequência, info de realimentação, etc.), inclui bits de deteção de erros, implementa acesso ao canal para meioscompartilhados, coloca no enlace
❒ Operações recebe do adaptador : verificação e correção de erros, interrompe computador para enviar quadro para a camada superior, atualiza info de estado a respeito de realimentação para o remetente, número de seqüência, etc.
Delimitação de quadros- Solução 1: enviar caracter adicional com tamanho do quadro
- Inconveniente: perda ou deturpação deste caracter
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6
contadores de caracteres
quadro1 (5 car.) quadro2 (5 car.) quadro3 (8 car.)
(a)
5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6(b)
erro contador de caracteres
Delimitação de quadros
- Solução 2: Usar seqüências especiais de caracteres ASCII para delimitar quadro
- inicio:
- DLE (Data Link Escape, ASCII 10H) + STX (Start of Text, ASCII 02H)
- Fim:
- DLE + ETX (End of Text, ASCII 03H)
- Caso seqüência DLE+ETX contida na parte de dados: emissor adiciona um DLE após cada DLE encontrado e receptor remove => caracter de transparência
DLE STX A B DLE C DLE ETX
DLE STX A B DLE C DLE ETXDLE
(a)
(b)
Delimitação de quadros- Solução 3: em protocolos orientados a bits, usar seqüência especial de
bits para delimitar quadro
- Seqüência mais usual: 0111 1110
- Se esta seqüência estiver presente nos dados: emissor insere um 0 após cada 5 bits 1 consecutivos e receptor remove (bitstuffing) => bit de transparência
bit de transparência
0 1 1 0 1 1 1 1 1 1 1 1 0 1
0 1 1 0 1 1 1 1 1 1 1 1 0 1 0
(a)
(b)
Detecção de ErrosEDC= Bits de Detecção e Correção de Erros (redundancia)D = Dados protegidos pela verificação de erros, pode incluir os campos decabeçalho
• A detecção de erros não é 100% confiável!• protocolos podem deixar passar alguns erros, mas é raro• Quanto maior o campo EDC melhor é a capacidade de detecção ecorreção de erros
Verificação de ParidadeParidade com Bitúnico:Detecta erro de um únicobit
Paridade Bi-dimensional:Detecta e corrige erros de um único bit
0 0
sem erros erro deparidade
erro de 1 bit corrigível
erro deparidade
bit deparidade
FEC – Forward Error Correction
Métodos de “Checksum”❒ Checksum “Internet”: Remetente considera dados como
compostos de inteiros de 16 bits; soma todos os campos de 16 bits (usando aritmética de complemento de um) e acrescenta a soma ao quadro; o receptor repete a mesma operação e comparao resultado com o checksum enviado com o quadro.
❒ Códigos de Redundância Cíclica (Cyclic Redundancy Codes):
❍ Dados considerados como a seqüência de coeficientes de um polinômio (D)
❍ É escolhido um polinômio Gerador, (G), (=> r+1 bits)❍ Divide-se (módulo 2) o polinômio D*2r por G. Acrescenta-se
o resto (R) a D. Observa-se que, por construção, a nova seqüência <D,R> agora é exatamente divisível por G
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 CRC bits, 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 (burst errors) com
comprimento menor que r+1 bits❒ largamente usado na prática (ATM, HDCL)
padrão de bits
fórmulamatemática
bits de dados a enviar
Exemplo de CRC
Implementação de CRC (cont)
❒ Remetente realiza em tempo real por hardware a divisão da seqüência D pelo polinômio G e acrescenta o resto R a D
❒ O receptor divide <D,R> por G; se o resto for diferente de zero, a transmissão teve erro
❒ Padrões internacionais de polinômios G de graus 8, 12, 15 e 32 já foram definidos
❒ A ARPANET utilizava um CRC de 24 bits no protocolo de enlace de bit alternado
❒ ATM utiliza um CRC de 32 bits em AAL5 ❒ HDLC utiliza um CRC de 16 bits
Protocolos Elementares
❒ Protocolo Simplex sem restrições❒ Protocolo Simplex Pare-e-Espere (Stop-
and-wait)❒ Protocolo Simplex para um canal com ruído
Protocolo Simplex sem restrições❒ Transmissão num único sentido❒ O nível de rede está sempre pronto para
transmitir e receber❒ O tempo de processamento é ignorado❒ Buffers infinitos❒ Canal de comunicação perfeito
Protocolo Simplex sem restrições
Transmissor ReceptorEnlace
Protocolo Simplex Pare-e-Espere (Stop-and-wait)❒ Os buffers não são infinitos❒ O tempo de processamento não é ignorado❒ O transmissor não envia outra mensagem
até que a anterior tenha sido aceita como correta pelo receptor
❒ Embora o tráfego de dados seja simplex, há fluxo de quadros em ambos os sentidos
Protocolo Simplex Pare-e-Espere
Transmissor ReceptorEnlace
Protocolo Simplex para um Canal com Ruído (I)
Transmissor ReceptorEnlace
X(erro)
Detectado erro.Quadro ignorado
Liga timer
Estoura timer
Desliga timer
Religa timer
Protocolo Simplex para um Canal com Ruído (II)
Transmissor ReceptorEnlace
Liga timer
Estoura timer
X(erro)
DUPLICATA!Desliga timer
Religa timer
SOLUÇÃO: Números deSeqüência
Protocolo Simplex para um Canal com Ruído (III)
❒ Os quadros são numerados seqüencialmente❒ O tx transmite um quadro❒ O rx envia uma quadro de reconhecimento
se o quadro for recebido corretamente, caso contrário, há um descarte e é aguardada uma retransmissão
❒ Quadros não reconhecidos são retransmitidos (temporização)
Protocolos de Janela Deslizante
❒ Transmissão de dados em ambos sentidos❒ Utilizam a técnica de carona (piggybacking)❒ Possui janelas para transmissão e recepção
❍ Janela de transmissão• números de seqüência habilitados para transmissão
❍ Janela de recepção• números de seqüência habilitados para recepção
❒ Os quadros são mantidos na memória para possível retransmissão
Janela Deslizante de tamanho 1
Inicialmente Após a tx do1o. quadro
Após a rx do1o. quadro
Após a rx do1o. Reconhe-
cimento
Protocolos com Pipelining
❒ A janela de tamanho 1 compromete a eficiência para❍ longo tempo de trânsito (ida e volta)❍ alta largura de banda❍ comprimento de quadro curto
Protocolos com Pipelining
❒ Solução:❍ Deixar o transmissor transmitir até w quadros
(sem receber o reconhecimento do primeiro) antes de ser bloqueado.
❍ Devemos escolher w de modo que o transmissor possa transmitir quadros por um tempo igual ao de trânsito, antes de encher a janela
Protocolos com Pipelining
❒ O que fazer se um quadro no meio da janela for danificado ou perdido?
❒ Abordagens:❍ Volte a n (Go Back n)❍ Retransmissão Seletiva (Selective Reject)
Protocolos com Pipelining
❒ Volte a n❍ O receptor descarta os quadros seguintes ao
errado❍ O transmissor identifica que houve erro, com
estouro da temporização sem que tenha recebido um reconhecimento
❍ Ineficiente se a taxa de erros for alta
Janela de recepção !!!! 1
Protocolos com Pipelining
❒ Retransmissão seletiva❍ O nó armazena os quadros corretos que
chegarem após o com erro. O transmissor retransmite apenas o com erro.
❍ Ao receber o quadro que faltava, o nó entrega os diversos quadros já recebidos rapidamente e envia um reconhecimento do quadro de ordem mais alta
❍ Necessita de maior quantidade de memória no nó
Janela de recepção !!!! maior que 1
Protocolo Volte a n
Alternativa: quadro correto fora da seqüência dispara atransmissão de um quadro de NAK antecipando o inícioda retransmissão dos quadros.
Protocolo com Retransmissão Seletiva
Exemplo de Protocolo de Enlace
❒ HDLC (High-level Data link Control)❍ É uma evolução do protocolo SDLC (Synchronous
Data Link Control) desenvolvido pela IBM ❍ Padronizado pela ISO❍ O ITU-T modificou o HDLC para o seu LAPB
(Link Access Procedure Balanced) utilizado no X.25
Formato do Quadro para Protocolos Orientados a Bits
Flags
Endereço: usado paraidentificar terminais emcanais multiponto ou para distinguir comandosde respostas.
Controle: inclui nos. de seqüência,reconhecimentos, etc.
Dados: de comprimentovariável.
CRC-CCITT
Campo de Controle
Quadro de Informação:
Quadro de Supervisão:
Quadro Não Numerado:
Quadros de Supervisão
❒ Tipo 0: quadro de reconhecimento positivo (RR - Receive Ready)
❒ Tipo 1: quadro de reconhecimento negativo (REJ - REJect)
❒ Tipo 2: quadro de reconhecimento (RNR -Receive Not Ready)
❒ Tipo 3: quadro de rejeição seletiva (SREJ -Selective Reject)
Quadros Não Numerados
❒ DISC (DISConnect)❒ SNRM (Set Normal Response Mode)❒ SABM (Set Asynchronous Balanced Mode)❒ FRMR (FRaMe Reject)❒ UA (Unnumbered Acknowledgment)
Subcamada de Acesso ao Meio
❒ Controle de acesso a um meio físico compartilhado entre múltiplas estações
Enlaces e Protocolos de Múltiplo AcessoTrês tipos de enlace:
(a) Ponto-a-ponto (um cabo único)(b) Difusão (cabo ou meio compartilhado;
p.ex., Ethernet, rádio, etc.)(c) Comutado (p.ex., E-net comutada, ATM,
etc)
Começamos com enlaces com Difusão. Desafio proncipal: Protocolo de Múltiplo Acesso
Protocolos para Meios de Múltiplo Acesso❒ 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 instantede 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 sobre o compartilhamento do canal deve utilizar oprópro canal!
Protocolos de Controle de Acesso ao Meio (MAC)❒ Protocolo MAC: coordena transmissões de
estações diferentes a fim deminimizar/evitar colisões. Tem 3 classes:(a) Particionamento do Canal(b) Acesso Randômico(c) “Revezamento”
❒ Meta: ser eficiente, justo, simples, descentralizado
Protocolos de Particionamento do Canal
❒ TDM (Multiplexação por Divisão de Tempo): canal dividido em N intervalos de tempo (“slots”), um para cada usuário; ineficientecom usuários de pouco demanda ou quando carga for baixa.
❒ FDM (Multiplexação por Divisão de Freqüência): freqüênciasubdividida.
❒ CDMA (Múltiplo Acesso por Divisão por Código): explora esquema de codificação de espectro espalhado
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 disperdiçados❒ exemplo: rede local com 6 estações: 1,3,4 têm pacotes,
compartimentos 2,5,6 ficam vazios
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 ❒ exemplo: rede local com 6 estações: 1,3,4 têm pacotes, as bandas
de freqüência 2,5,6 ficam vaziasba
ndas
defr
eqüê
ncia tempo
Protocolos MAC com Particionamento de Canal: FDMA
Particionamento do Canal com CDMA❒ CDMA (Múltiplo Acesso por Divisão por Código): explora
esquema de codificação de espectro espalhado - DS (Direct Sequence) ou FH (Frequency Hopping)
❒ “código” único associado a cada canal; ié, partitionamento do conjunto de códigos
❒ Mais usado em canais de radiodifusão (celular, satélite, etc)❒ Todos usuários compartilham a mesma freqüência, mas cada
canal tem sua própria seqüência de “chipping” (ié, código)❒ Seqüência de chipping funciona como máscara: usado para
encodificar o sinal❒ sinal encodificado = (sinal original) X (seqüência de chipping)❒ decodificação: produto interno do sinal encodificado e a
seqüência de chipping (observa-se que o produto interno é a soma dos produtos componente-por-componente)
❒ Para fazer CDMA funcionar, as seqüências de chipping devemser mutuamente ortogonais entre si (i.é., produto interno = 0)
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
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)
CSMA (Carrier Sense Multiple Access)❒ CSMA: escuta antes de transmitir. Se deteta que o canal está
sendo usado, adia transmissão.
❒ CSMA persistente: tenta novamente assim que se tornarocioso o canal (isto pode provocar instabilidade)
❒ CSMA não persistente: tenta novamente depois de intervalo randômico
❒ Note: colisões ainda podem ocorrer, pois duas estações podemdetetar o canal ocioso ao mesmo tempo (ou, melhor, dentro de uma janela de “vulnerabilidade” = retardo ida e volta entre as duas estações envolvidas)
❒ No caso de colisão, é desperdiçado todo o tempo de transmissão do pacote
❒ Analogia humana: não interrompa os outros!
CSMA/CD (Detecção de Colisão)
CSMA/CD: detecção de portadora, diferimento 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
CSMA/CD (Deteção de Colisões)
❒ CSMA/CD: escuta do meio e adiamento como em CSMA. Entretanto, colisões detetadas rapidamente, em poucos“intervalos de bit”.
❒ Transmissão é então abortada, reduzindo consideravelmenteo desperdício do canal.
❒ Tipicamente, é implementada retransmissão persistente❒ Deteção de colisões é fácil em rede locais usando cabo
(p.ex., E-net): pode-se medir a intensidade do sinal na linha, detetar violações do código, ou comparar sinais Tx e Rx
❒ Deteção de colisões não pode ser realizada em redes locaisde rádio (o receptor é desligado durante transmissão, paraevitar danificá-lo com excesso de potência)
❒ CSMA/CD pode conseguir utilização do canal perto de 100% em redes locais (se tiver baixa razão de tempo de propagaçãopara tempo de transmissão do pacote)
❒ Analogia humana: o “bom-de-papo” educado
Protocolos MAC com Passagem dePermissã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!" Determinismo
Protocolos MAC com Passagem dePermissão
Polling:❒ nó mestre “convida” os
escravos a transmitiremum 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 sequencialmente.❒ mensagem token❒ problemas:
❍ token overhead ❍ latência❍ ponto único de falha (token)
Sumário de protocolos MAC❒ O que se pode fazer com um meio compartilhado?
❍ Particionamento do canal, por tempo, freqüência ou código• TDMA, FDMA, CDMA, WDMA (wave division)
❍ Particionamento randômico (dinâmico), • ALOHA, S-ALOHA, CSMA, CSMA/CD
❍ Revezamento• polling de um nó central, passagem de ficha de permissão
❒ Para satélites, é difícil detetar se o canal está ocupado (se o canal está transportando um sinal): ALOHA
❒ Em rede locais, deteção do portador é mais fácil, (mas não é perfeita): CSMA
❒ Melhor se existe Deteção de Colisões (CSMA/CD)❒ 802.3 (Ethernet) é CSMA/CD
Tecnologias de Rede Local
❒ Protocolos MAC usados em redes locais, para controlaracesso ao canal
❒ Anéis de fichas: IEEE 802.5 (Token Ring da IBM), para salade computação, ou rede departamental, até 16Mbps; FDDI (Fiber Distributed Data Interface), para rede de Campus ouMetropolitana, até 200 estações, em 100Mbps.
❒ Ethernet: emprega o protocolo CSMA/CD; 10Mbps (IEEE 802.3), Fast E-net (100Mbps), 56Gigabit E-net (1,000 Mbps); de longe a tecnologia mais popular de rede local
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 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 aprimeira (isto é, na mesma rede)
❒ Endereços MAC com 48 bits (na maioria das LANs) gravado na memória fixa (ROM) do adaptador derede
Endereços de LAN e ARPCada adaptador numa LAN tem um único endereço de LAN
Endereços de LAN (mais)
❒ 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)❒ Analogia:
(a) endereço MAC: semelhante ao número do CPF(b) endereço IP: semelhante a um endereço postal
❒ endereçamento MAC é “flat” => 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
ARP: Address Resolution Protocol(Protocolo de Resolução de Endereços)
❒ Cada nó IP (Host, Roteador) numa LAN tem um módulo euma tabela ARP
❒ Tabela ARP: mapeamento deendereços IP/MAC para alguns nós da LAN
< endereço IP; endereço MAC; TTL>< ………………………….. >
❍ TTL (Time To Live): tempodepois do qual o mapeamentode endereços será esquecido(tipicamente 20 min)
Questão: como determinaro endereço MAC de Bdado o endereço IP de B?
Protocolo ARP❒ A conhece o endereço IP de B, 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 a temporização) ❍ soft state: informação que desaparece com o
tempo se não for re-atualizada
Roteando um pacote para outra rede local
❒ Por exemplo, rotear pacote do endereço IP de origem <111.111.111.111> aoendereço de destino <222.222.222.222>
❒ Na tabela de rotas na origem, encontra roteador 111.111.111.110❒ Na tabela ARP na origem, tira endereço MAC E6-E9-00-17-BB-4B, etc