Camadas de Enlace e Rede Local -...

Post on 04-Nov-2020

0 views 0 download

Transcript of Camadas de Enlace e Rede Local -...

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