Camada da ligação de dados - fenix.tecnico.ulisboa.pt · • Bit de paridade horizontal •...
Transcript of Camada da ligação de dados - fenix.tecnico.ulisboa.pt · • Bit de paridade horizontal •...
1
Camada da ligação de dados 1
Camada da ligação de dados
Serviços fornecidos pela camada de ligação de dadosDetecção e correcção de errosControlo de erros e de fluxo Acesso múltiplo e LANsEndereçamento na camada de ligação de dadosTecnologias da camada de ligação de dados• Ethernet, IEEE 802.3• Token ring (IEEE 802.5)• IEEE 802.1D• IEEE 802.11• PPP• ATM
Camada da ligação de dados 2
Serviços da camada de ligação de dados
Delimitação de tramasAcesso múltiplo, mediumaccess control (MAC)Controlo de erros• Detecção de erros• Correcção de erros• Transferência fiável
Controlo de fluxoModo de transmissão: half-duplex; full-duplex
rede dadosfísico
aplicação transporte
rede dados físico rede
dadosfísico
rede dadosfísico
rededadosfísico
rede dadosfísico
rede dadosfísico
rede dadosfísico
rede dadosfísico
aplicação transporte
rede dados físico
2
Camada da ligação de dados 3
Implementação da camada de ligação de dados
Funcionalidade implementada em cartas; Network Interface Cards (NICs) • RAM• DSP• Interface com o
barramento no nó • Interface com a ligação• Exemplos: PCMCIA;
Ethernet
Interface de barramento
Interface de ligação
Bar
ram
ento
I/O
do
nó
Camada da ligação de dados 4
Detecção de erros
Protecção dos dados e cabeçalho das tramas Introdução de bits de redundância nas tramas para detecção de errosMétodos de detecção de erros• Bit de paridade• Paridade a duas dimensões• Soma de verificação (checksum)• Código cíclico de verificação (Cyclic Redundancy Check
Code, CRC)
Há sempre a possibilidade de haver erros não detectados
3
Camada da ligação de dados 5
Detecção de erro por paridade
Bit de paridadeDetecta um número ímpar de bits errados
Paridade a duas dimensões• Bit de paridade horizontal• Palavra de paridade na vertical
Corrige um bitGarante a detecção de um máximo de três bits errados
0111000110101011 110101 111110 0
01110 100101 0
Camada da ligação de dados 6
Código cíclico de verificação
Polinómio gerador de grau rMensagem de m bits é interpretada como sendo um polinómio M(x) de grau inferior a mCálculo do CRC• Dividendo é xr M(x)• Divisor é G(x)• Divisão módulo 2 produz resto R(x), de grau inferior a r• Mensagem transmitida é T(x) = xr M(x) + R(x)• Notar que T(x) é divisível por G(x)
Detecção de erros• Se a mensagem recebida for divisível por G(x) então não há
erros detectáveis
4
Camada da ligação de dados 7
CRC: exemplo
M(x) = x7 + x4 + x3 + x1
G(x) = x3 + x2 + 1
x3 M(x) = x10 + x7 + x6 + x4
R(x) = x2 + 1
x3 M(x) + R(x) = x10 + x7 + x6 + x4 + x2 + 1
1101
10011010
10011010000
101
10011010101
10011010000 11011101 11111001
10011101
100011011011110111001101
001000000100000010001101
101
Camada da ligação de dados 8
CRC: propriedadesMensagem recebida é T(x) + E(x), em que E(x) é o padrão de errosPadrão de erros é detectado se e só se E(x) não é divisível por G(x)Erros simples são detectados, se G(x) tiver mais do que um termoNúmero ímpar de erros são detectados, se G(x) tiver x + 1 como factor Rajadas de erros de comprimento inferior ou igual a r são detectadas, se G(x) tiver grau r e incluir o termo 1Rajadas de erros de comprimento r + 1 só não são detectadas com probabilidade 1 / 2 r – 1, se G(x) tiver grau r e incluir o termo 1
5
Camada da ligação de dados 9
CRC: implementação em hardware
CRC é fácil de implementar em hardware recorrendo a registos de deslocamento (RD)
dadosG(x) = x3 + x2 + 1
1xx2
XOR XOR
FFFF FF
Camada da ligação de dados 10
Acesso múltiplo
Meio de comunicação partilhado entre vários nósProtocolos de acesso múltiplo coordenam a transmissão de tramas dos vários nósProtocolos de atribuição fixa• TDMA• FDMA• CDMA
Protocolos de acesso aleatório• ALOHA• CSMA; CSMA/CD
Protocolos de atribuição dinâmica• Passagem de testemunho
6
Camada da ligação de dados 11
ALOHANós transmitem as tramas ao débito do canalColisão• Sobreposição de duas ou mais tramas na recepção• Em geral, todas as tramas envolvidas numa colisão são
perdidasNó envia uma trama para o canal• Se a trama for perdida, o nó calendariza a retransmissão da
trama para um instante futuro, escolhido aleatoriamente
Tempo na recepção
retransmissãoretransmissão
duração da colisão
Camada da ligação de dados 12
Processo de Poisson
Processo de Poisson de parâmetro g• Média de g acontecimentos por unidade de tempo
Número de acontecimentos num qualquer intervalo de duração t é dado por uma distribuição de Poisson
Intervalos entre acontecimentos sucessivos são dados por variáveis aleatórias i.i.d. com distribuição exponencial negativa
P{ k chegadas } = ( gt )k
k!e -gt
P{ tempo entre acontecimentos sucessivos > t } = e -gt
7
Camada da ligação de dados 13
ALOHA: modelo
Tramas com L bitsCanal de R bits/sProcesso de Poisson de parâmetro g descreve a geração de tramas, novas mais retransmissõesTaxa média de chegada de tramas por tempo de transmissão de tramas é G = gL/RUma colisão de tramas destrói todas as tramas nela envolvidas Pretende-se determinar a utilização do canal, S
Camada da ligação de dados 14
ALOHA: utilização
Probabilidade de uma trama ser recebida com sucesso
Utilização do canal
Utilização máxima do canal
P{ trama recebida com sucesso } = e –2G
S = Ge –2G
Smax = 1/( 2e ) = 18 %
Período vulnerável: uma outra trama transmitida neste período destrói a trama de teste
8
Camada da ligação de dados 15
ALOHA sincronizado
Tempo dividido em slotsEstações iniciam uma transmissão no início de uma slotUtilização do canal
Utilização máxima do canal
Nó 1
Nó 2
Nó 3
S = Ge –G
Smax = 1/e = 36 %
Camada da ligação de dados 16
Carrier Sense Multiple Access (CSMA)
Nó escuta o canal antes de iniciar a transmissão de uma trama• Se o canal estiver ocupado, adia a transmissão da trama • Se o canal estiver livre, inicia de imediato a transmissão da
trama
CSMA persistente• Quando o canal está ocupado, o nó transmite a trama logo
que ele fique livre
CSMA não-persistente• Quando o canal está ocupado, o nó calendariza a
transmissão da trama para daí a um tempo futuro, escolhido aleatoriamente
9
Camada da ligação de dados 17
Colisões em CSMAColisões devidas ao atraso de propagação entre estaçõesTramas envolvidas numa colisão são perdidasDuração da colisão depende sobretudo da trama maior
A B C
Camada da ligação de dados 18
CSMA/Collision Detect (CSMA/CD)
Nós envolvidos numa colisão abortam as suas transmissões assim que detectam uma colisão• Melhor utilização do
canal do que CSMA
Detecção de colisões• Fácil em redes cabladas• Difícil em redes sem fios
A B C
Detecção da colisão
Detecção da colisão
10
Camada da ligação de dados 19
Protocolos de atribuição dinâmica
Testemunho circula entre os nósNó detém o testemunho• Tem acesso exclusivo ao canal• Pode transmitir um número máximo, pré-acordado, de tramas• Depois de usar o canal tem que passar o testemunho ao próximo nó
Protocolos de atribuição dinâmica vs. protocolos de acesso aleatório• Protocolos de atribuição dinâmica permitem uma melhor utilização do
canal• Protocolos de acesso aleatório impõem atrasos menores em cargas
baixas• Protocolos de atribuição dinâmica requerem gestão do testemunho• Protocolos de acesso aleatório têm que ser controlados contra
comportamentos instáveis
Camada da ligação de dados 20
Endereçamento em LANs
Endereços IP, camada de rede• Servem para expedir um datagrama com destino numa
qualquer rede IP• Hierárquicos• Não são portáveis• 32 bits
Endereços físicos (ou endereços MAC), camada da ligação de dados• Servem para expedir uma trama com destino na mesma
rede IP• Horizontais• Portáveis• 48 bits
11
Camada da ligação de dados 21
Expedição de tramas
A consulta uma tabela para fazer a tradução (Endereço IP, Endereço MAC)A encapsula o datagrama numa trama MAC
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4
A
B
IPorigem
IP destino
MAC destino
MACorigem
1A-23-F9 CD-06-9B
5C-66-AB 90-75-B1
1A-23-F9-CD-06-9B
5C-66-AB-90-75-B1
Endereço IP Endereço MAC Tempo
223.1.1.3 1A-23-F9-CD-06-9B 20:15
223.1.1.4 E6-E9-00-17-BB-4B 22:32
E6-E9-00-17-BB-4B
Camada da ligação de dados 22
Address Resolution Protocol (ARP)
A sabe o endereço IP de B e pretende saber o seu endereço MACA difunde uma trama ARP de interrogação contendo o endereço IP de B• Trama é recebida por todas as interfaces na LAN
B reconhece o seu endereço IP na trama ARP de interrogação e responde a A com uma trama ARP de resposta que contem o seu endereço MAC• B fica a saber o par (Endereço IP de A, Endereço MAC de A)
A recebe a trama ARP de resposta e guarda em memória o par (Endereço IP de B, Endereço MAC de B) Os pares (Endereço IP, Endereço MAC) são datados
12
Camada da ligação de dados 23
Diagrama temporal
A
E
R
A R EARP
interrogação
ARP interrogação
ARP resposta
ARP resposta
Trama de dados
Trama de dados
Camada da ligação de dados 24
Ethernet: anatomia das tramas
Preambulo: 7 bytes, cada da forma 10101010, seguido do byte 10101011Endereços: Bit I/G; organização; sérieTipo: chave de desmuliplexagemDados: MTU entre 46 e 1500 bytes; enchimentoCRC: x32+ x26+ x23+ x22+ x16+ x12+ x11+ x10+ x8+ x7+ x5+ x4+ x2+ x+1
PreambuloEnd.
destinoEnd.
origem Tipo Dados CRC
8 6 6 2 46-1500 4
13
Camada da ligação de dados 25
Ethernet: acesso ao meio
Canal livre durante 96 bits• Transmite trama
Detecta colisão• Aborta transmissão• Reforça colisão durante 32 bits• Espera k x 512 bits
Recuo binário exponencial truncado• Na n-ésima colisão, o nó escolhe aleatoriamente para k um
número natural entre 0 e 2min(n, 10) –1
Camada da ligação de dados 26
Ethernet: tecnologias
10BASE2 (802.3a-1985)• Cabo coaxial fino• Distância máxima sem repetidores é 185 m
10BASE-T (802.3i-1990), 100BASE-T (802.3u-1995)• Pares entrelaçados• Nós estão fisicamente ligados a hubs • Distância máxima do nó ao hub é 100 m
100BASE-FX • Como 100BASE-TX mas os cabos são em fibra óptica
1000BASE-T (802.3ab-1999)• Usada sobretudo em modo full-duplex
A distância máxima de um domínio de colisão é de 256 bits para ofuncionamento correcto do CSMA/CD
14
Camada da ligação de dados 27
Anel de testemunho: anatomia das tramas
SD e ED delimitam a tramaAC (Access Control)• Contem o bit de testemunho • Bits de reserva, prioridade e monitorização
FC (Frame Control)FS (Frame Status)• Indica, por exemplo, se o destino recebeu a trama
End. destino
End. origem CRC
6 6 4111 1
FCACSD EDFSDados
111
EDACSD
1
Camada da ligação de dados 28
Anel de testemunho: acesso ao meio
Testemunho tem que caber no anelNó pode enviar trama quando reconhece o testemunhoNó que envia trama é que a retira do anelNó que envia a trama repõe o testemunho• Após envio• Após recepção
15
Camada da ligação de dados 29
Hubs e comutadores
Hubs• Repetidores: aumento a distância máxima entre nós• Interligação de segmentos num único domínio de colisão
Hubs inteligentes• Capacidade de gestão e monitorização de portos
Hubs com capacidade de armazenamento• Ligações full-duplex • Armazenamento de tramas, não há colisões
Comutadores, pontes• Filtragem de e expedição selectiva de tramas• Aprendizagem de endereços, transparência• Algoritmo de árvore abrangente (802.1D)
Camada da ligação de dados 30
Comutadores: filtragem, expedição e aprendizagem
recebe trama <ED, EO, Trama> no porto pif EO in tab(q) para algum q
retira EO de tab(q)adiciona EO a tab(p)if ED not in tab(p)
if ED in tab(q) para algum qenvia <ED, EO, Trama> por q
elsefor all x != p
envia <ED, EO, Trama> por x
Filtragem
Expedição selectiva
Aprendizagem
EO– endereço origemED– endereço destinotab(p)– tabela de endereços
associados ao porto p
16
Camada da ligação de dados 31
Interligação de comutadoresMúltiplos caminhos entre nós aumenta fiabilidade Múltiplos caminhos podem gerar ciclos e um número exponencial de cópiasOrganização dos comutadores numa árvore abrangenteComo determinar uma árvore abrangente?• Escolhendo um nó raíz e
usando vector distância Como determinar o nó raíz?• Por eleição distribuída
comutador
comutador
hub hub hub
Camada da ligação de dados 32
Algoritmo de árvore abrangente
comutador
comutador
hub hub hubhub
9.0.99
20 hub 51 9.1.51comutador
9.1.20
porto raízporto designadoporto bloqueado
Bridge Protocol Data Unit (BPDU)• ID da raíz• Distância até à raíz• ID do comutador
17
Camada da ligação de dados 33
Encaminhadores vs. comutadores
Ambos são dispositivos de store-and-forwardEncaminhadores• Camada de rede• Encaminhamento baseado em caminhos mais curtos• Altera os endereços MAC das tramas que os atravessam• Protecção contra tempestades de difusão
Comutadores• Camada de ligação de dados• Encaminhamento suportado em árvore abrangente• Não alteram os endereços MAC das tramas que o
atravessam• Não protegem contra tempestades de difusão
Camada da ligação de dados 34
Redes sem fios IEEE 802.11
IEEE 802.11b• 2.5 GHz• Até 11 Mbps• DSSS
IEEE 802.11g• 2.5 GHz• Até 54 Mbps• DSSS/OFDM
IEEE 802.11a• 5 Ghz• Até 54 Mbps• OFDM
18
Camada da ligação de dados 35
Arquitecturas
Rede ad hocRede estruturada
Camada da ligação de dados 36
IEEE 802.11: CSMA/CA
Canal livre durante DIFS• Transmite trama• Espera pelo ACK
Canal ocupado• Escolhe aleatoriamente um
período de tempo • Transmite depois do canal ter
estado livre durante esse período de tempo
Não recepção do ACK• Recuo binário exponencial
truncado
A B
ACK
DIFS
SIFS
19
Camada da ligação de dados 37
Nós escondidos
Nós A e C não se conseguem escutar mutuamenteB está ao alcance de A e CTransmissão de A não inibe transmissão de C e vice-versaCSMA degenera em ALOHA puro!
obstáculo
Colisão
A
B
C
D
Camada da ligação de dados 38
RTS-CTS
Mini-trama Request-to-Send• Contém tamanho da trama
de dados • Inibe nós na vizinhança da
origemMini-trama Clear-to-Send• Contém tamanho da trama
de dados• Inibe nós na vizinhança do
destinoTrama de dados ACK obstáculo
A
B
C
D
RTSCTSTrama de dadosACK
20
Camada da ligação de dados 39
Point to Point Protocol (PPP)
Ligação entre dois nós• Ex: ligação ao ISP via interface série e modem
Formatação das tramas• Delimitação de tramas e justificação da informação • Detecção de erros
Protocolo de controlo da ligação• Manutenção ligação• Negociação de parâmetros
Protocolos de controlo da camada de rede• Várias camadas de rede são suportadas• Negociação de parâmetros, ex: Endereço IP,
Camada da ligação de dados 40
PPP: anatomia das tramas
Delimitador: 01111110Endereço: 11111111Controlo: 00000011Protocolo: chave de desmultiplexagem, • Ex: PPP-LCP, IP, IPCP
FCS: Sequência de verificação
Del. Del.End. Proto.Cont. FCSDados
2 ou 41 ou 2
21
Camada da ligação de dados 41
Justificação de byte
Dados podem conter o padrão do delimitador, 01111110Nos dados, o padrão do delimitador deve ser precedido por um byte de escape, 01111101Nos dados, o padrão do byte de escape também deve ser precedido por outro byte de escape
01011101 00101011 01111110 11010101 01111101 00001000
01011101 00101011 01111101 01111110 11010101 01111101 01111101 00001000
Camada da ligação de dados 42
Delimitação de tramas
Hipóteses• Sinalização binária• Comunicação orientada ao byte• N bytes de dados
Justificação de byte• Byte FD – delimitador de trama; byte ES - escape (FD diferente de
ES)• Trama mais longa: 2 x N• Dados uniformes: 1.0078125 x N
Campo comprimento da trama• Byte IN - canal inactivo; byte SD - início de trama (IN diferente de
SD); L bytes para representar o comprimento da trama• Trama: L + N• Comprimentos uniformes: L + 2L - 1 + 0.5
22
Camada da ligação de dados 43
Asynchronous Transfer Mode (ATM)
Objectivo inicial• Arquitectura para comunicação entre aplicações• Suporte a aplicações com qualidade de serviço• Tecnologia ATM até à estação de trabalho
Realidade actual• IP sobre ATM• ATM é visto como uma camada da ligação de dados • ATM é usado sobretudo em redes dorsais
Características• Tecnologia de circuitos virtuais • Pacotes de tamanho fixo, denominados células• Não há controlo de erros entre comutadores ATM • Suporte a vários modelos de tráfego: CBR, VBR, ABR, UBR
Camada da ligação de dados 44
Arquitectura
Camada ATM adaptation layer (AAL)• Sub-camada de convergência (CPCS)• Sub-camada de segmentação e reconstrução (SAR)
Camada ATMCamada PHY• Sub-camada de convergência (TC)• Sub-camada dependente do meio (PMD)
AAL AAL
ATM ATM ATM ATM
PHY PHY PHY PHY
Comutador ATM
Comutador ATM
Sistema terminal
Sistema terminal
Aplicação AplicaçãoCamada
IPCamada
IP
23
Camada da ligação de dados 45
Anatomia de uma célula ATM
Virtual Circuit Identifier (VCI)• Na realidade, existe dois identificadores de circuito virtual, VPI e
VCIPayload Type (PT)• Indica o tipo de dados contido na célula
Cell-Loss Priority (CLP)• Usando pela origem para diferenciar entre tráfego de alta e baixa
prioridadeHeader Error Checksum (HEC)• Calculado apenas sobre o cabeçalho
VCI PT
CLP
HEC dados
28 3 1 8 384 bits
Camada da ligação de dados 46
AAL 5
Enchimento• Número de bytes na CPCS-PDU tem que ser múltiplo de 48
Comprimento • Dos dados, sem enchimento
Terceiro bit do campo PT da célula ATM assinalado a 1 • Fim da CPCS-PDU
Dados
1-65535
Comp. CRC
4 2
SAR-PDU Célula ATM
3o bit do PT
CPCS-PDUEnch.
0-47