Camada da ligação de dados - fenix.tecnico.ulisboa.pt · • Bit de paridade horizontal •...

24
1 Camada da ligação de dados 1 Camada da ligação de dados Serviços fornecidos pela camada de ligação de dados Detecção e correcção de erros Controlo de erros e de fluxo Acesso múltiplo e LANs Endereçamento na camada de ligação de dados Tecnologias 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 tramas Acesso múltiplo, medium access control (MAC) Controlo de erros Detecção de erros Correcção de erros Transferência fiável Controlo de fluxo Modo de transmissão: half-duplex; full-duplex rede dados físico aplicação transporte rede dados físico rede dados físico rede dados físico rede dados físico rede dados físico rede dados físico rede dados físico rede dados físico aplicação transporte rede dados físico

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

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

24

Camada da ligação de dados 47

IP sobre ATM

Circuitos virtuais permanentes entre pares de encaminhadores de entrada e saídaATM ARP• Cada encaminhador tem

um VC de difusão associado

• Existe um servidor de ARP e VC para alcançar esse servidor

EthernetLANs

ATM