Telecomunicações e Redes de Computadores 4 Nível de Ligação de Dados Prof. Paulo Lobato Correia IST, DEEC Área Científica de Telecomunicações
Objectivos Enquadramento Delimitação de tramas Endereçamento ao nível de ligação de dados Controlo de acesso ao meio Controlo de erros Controlo de fluxo Protocolos TRC Prof. Paulo Lobato Correia 2
Modelo TCP/IP: Nível N de Ligaçã ção o de Dados Aplicação HTTP Msg Aplicação Transporte TCP Msg Transporte Rede Pacote IP Rede Rede Dados Trama Ethernet Dados Dados Dados Físico Físico Físico Físico Cliente Comutador Ethernet Router Servidor TRC Prof. Paulo Lobato Correia 3
Nível de Ligação de Dados Rede X Ligação de dados Encaminhador Rede Z Rede Y Ligação de dados Encaminhador Ligação de dados TRC Prof. Paulo Lobato Correia 4
Nível de Ligação de Dados Responsável pela transferência de dados entre uma estação e um encaminhador (ou entre dois encaminhadores) que pertencem a uma mesma rede. Funções do nível de ligação de dados: Entrega de tramas nó-a-nó; Delimitação de tramas; Endereçamento; Controlo de erros; Controlo de fluxo; Controlo de acesso ao meio. TRC Prof. Paulo Lobato Correia 5
Ligação Nó-a-Nó TRC Prof. Paulo Lobato Correia 6
Delimitação de Tramas Ao nível de ligação de dados: Nível de Rede Pacote IP As tramas têm um cabeçalho (header) com informação de sincronização, de endereçamento e de controlo (tipo e número da trama); Nível de Ligação de Dados Nível Físico LD-H Pacote IP PacketIP LD-T Têm também um trailer com informação para controle de erros, e de sincronização. TRC Prof. Paulo Lobato Correia 7
Delimitação de Tramas É necessário inserir informação de sincronização para saber onde começa e termina cada transmissão. OLÁ, BOM DIA. 1 OLÁ, B QUANTO VOU CH OM DIA CUSTA EGAR D. O ARTI E TARD GO? E. 4 OLÁ, BQUANTOVOU CHOM DIA CUSTAEGAR D. O ARTIE TARDGO?E. 2 QUANTO CUSTA O ARTIGO? 3 X VOU CHEGAR DE TARDE. X 5 6 TRC Prof. Paulo Lobato Correia 8
Delimitação de Tramas: Stuffing Stuffing Os dados do nível de rede podem conter padrões binários iguais aos usados para sincronização (flags) no nível de ligação de dados: Há então que evitar que esses dados IP sejam erradamente tomados por uma flag; Para isso, se o padrão da flag aparecer nos dados é precedido, na trama de nível 2, por um padrão de enchimento (stuffing), de forma a evitar qualquer confusão. TRC Prof. Paulo Lobato Correia 9
Delimitação de Tramas: Stuffing Stuffing Exemplo: Delimitação de tramas usa a flag: 0111 1110; A operação de bit stuffing consiste em: Adicionar um 0 extra (b) depois de qualquer sequência de cinco 1s seguidos no campo de dados provenientes do nível de rede (a), de forma a evitar possíveis confusões com a flag. Na recepção procede-se à operação inversa (c). TRC Prof. Paulo Lobato Correia 10
Endereçamento O endereço físico da maioria das estações está impresso na placa de rede da estação (NIC Network Interface Card). Se mudar a placa de rede (ex.: avaria), o endereço físico também muda, requerendo que se reconfigure a ligação à rede. TRC Prof. Paulo Lobato Correia 11
Endereçamento Exemplos: Numa rede Ethernet, são usados endereços MAC com 48 bits: header Numa ligação PPP (tipicamente usada entre uma habitação e um ISP), são usados endereços com 8 bits: header trailer trailer TRC Prof. Paulo Lobato Correia 12
Endereçamento Endereço MAC (Ethernet): (48 bits = 6 octetos = 6x2 símbolos hexadecimais); MM-MM-MM-SS-SS-SS Número de endereços disponíveis: 2 48 = 281 474 976 710 656 Primeiros 3 octetos identificam fabricante (geridos por IEEE Registration Authority ), os outros 3 são um número de série atribuído pelo fabricante. TRC Prof. Paulo Lobato Correia 13
Endereçamento Para verificar o endereço MAC de um computador: > ipconfig /all TRC Prof. Paulo Lobato Correia 14
Endereçamento: Protocolo ARP É necessário obter o endereço físico da estação para entrega das tramas. Pode ser obtido a partir do endereço IP usando o protocolo ARP Address Resolution Protocol. TRC Prof. Paulo Lobato Correia 15
Controlo de Acesso ao Meio (MAC) Meio de comunicação é partilhado por várias estações. Protocolos de acesso ao meio (ou acesso múltiplo) coordenam a transmissão das várias estações: Protocolos de atribuição fixa: FDMA, TDMA, CDMA; Protocolos de atribuição dinâmica: Poll/Select, Passagem de testemunho. Protocolos de acesso aleatório: ALOHA, CSMA, CSMA/CD, CSMA/CA; TRC Prof. Paulo Lobato Correia 16
Protocolos de Atribuição Fixa Existem 3 técnicas básicas de repartir canais pelos utilizadores: FDMA Frequency Division Multiple Access cada utilizador ocupa uma sub-banda de frequências diferente durante a comunicação; TDMA Time Division Multiple Access cada utilizador tem acesso a toda a banda de frequências, sendo-lhe atribuído periodicamente um intervalo de tempo (time-slot), numa estrutura de tramas; CDMA Code Division Multiple Access cada utilizador tem acesso a toda a banda de frequências, durante todo o tempo, distinguindo-se pela utilização de códigos diferentes. TRC Prof. Paulo Lobato Correia 17
FDMA FDMA Frequency Division Multiple Access TRC Prof. Paulo Lobato Correia 18
TDMA TDMA Time Division Multiple Access TRC Prof. Paulo Lobato Correia 19
CDMA CDMA Code Division Multiple Access TRC Prof. Paulo Lobato Correia 20
Protocolos de Atribuição Dinâmica: Poll / Select Um computador central (primary) controla a actividade dos outros. ACK: Acknowledge NAK: Not Acknowledge NAK não tem informação para enviar. TRC Prof. Paulo Lobato Correia 21
Passagem de Testemunho Usado sobretudo em redes locais. TRC Prof. Paulo Lobato Correia 22
Protocolos de Acesso Aleatório: ALOHA Estações transmitem tramas ao ritmo do canal; Podem ocorrer colisões: Sobreposição de duas ou mais tramas; Em geral, as tramas envolvidas numa colisão são perdidas; Estação que envia uma trama para o canal: Se a trama for perdida, o nó agenda a retransmissão dessa trama para um instante futuro, escolhido aleatoriamente. retransmissão retransmissão t duração da colisão TRC Prof. Paulo Lobato Correia 23
Carrier Sense Multiple Access (CSMA) Estação escuta o canal antes de iniciar uma transmissão: 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, a estação transmite a trama logo que ele fique livre; CSMA não-persistente: Quando o canal está ocupado, a estação agenda a transmissão da trama para um tempo futuro, escolhido aleatoriamente; CSMA/CD: Estações envolvidas numa colisão interrompem as suas transmissões assim que detectam uma colisão; B Colisão D CSMA/CA: Pode haver estações escondidas ; A obstáculo C TRC Prof. Paulo Lobato Correia 24
Controlo de Acesso ao Meio Comparação de protocolos de atribuição dinâmica e acesso aleatório: Protocolos de atribuição dinâmica permitem melhor utilização do canal para tráfego elevado; Protocolos de acesso aleatório impõem atrasos menores com tráfego baixo; Protocolos de atribuição dinâmica requerem gestão central ou do testemunho; Protocolos de acesso aleatório têm que ser controlados contra comportamentos instáveis. TRC Prof. Paulo Lobato Correia 25
Porque há Erros de Transmissão? Origem Motivo Como prevenir Perda de Linha Tempestades, acidentes Ruído Branco Movimento dos electrões Aumentar nível do sinal Ruído Impulsivo Cross-talk Relâmpagos, alterações de tensão, ignição dos automóveis,... Bandas de guarda muito pequenas, ou fios muito próximos Isolar ou mover os fios Aumentar bandas de guarda, ou isolar ou mover os fios Eco Ligações de má qualidade Arranjar ou ajustar os equipamentos Atenuação Ruído de Intermodulação Intensidade do sinal decresce com aumento da distância Combinação de sinais com diferentes origens Usar repetidores ou regeneradores Isolar ou mover os fios Jitter Alteração de fase dos sinais Ajustar os equipamentos Distorção Harmónica Amplificação não linear na frequência Ajustar os equipamentos TRC Prof. Paulo Lobato Correia 26
Exemplos de Erros TRC Prof. Paulo Lobato Correia 27
Tipos de Erros Tipos de erros: Isolados: De rajada (burst): TRC Prof. Paulo Lobato Correia 28
Detecção de Erros Detecção de erros: Usa redundância bits adicionados para permitir detectar erro no receptor; TRC Prof. Paulo Lobato Correia 29
Detecção de Erros Métodos: Vertical redundancy check (VRC) um bit de paridade é adicionado a cada unidade de dados de forma a que o número total de 1s seja par (ou impar); Longitudinal redundancy check (LRC) um bloco de bits é dividido em linhas e adiciona-se uma linha redundante ao bloco completo; Cyclic redundancy check (CRC) é adicionado um conjunto de bits adicionais, calculado através da divisão por um polinómio gerador conhecido pelo emissor e pelo receptor. TRC Prof. Paulo Lobato Correia 30
Detecção de Erros: VRC Não detecta um número par de bits errados; É introduzido um overhead substancial; exemplo: 1/8 = 12.5% TRC Prof. Paulo Lobato Correia 31
Detecção de Erros: LRC TRC Prof. Paulo Lobato Correia 32
Detecção de Erros: CRC TRC Prof. Paulo Lobato Correia 33
Detecção de Erros: CRC Usa um polinómio gerador G(x), de grau n; Mensagem de m bits é interpretada como sendo um polinómio M(x) de grau inferior a m; Cálculo do CRC: Dividendo é x n.m(x); Divisor é G(x); Divisão módulo 2 ( ou exclusivo ) produz resto R(x), de grau inferior a n; A mensagem transmitida é T(x) = x n.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. TRC Prof. Paulo Lobato Correia 34
CRC: Exemplo 1101 (n = 3) G(x) = x 3 + x 2 + 1 (polinómio gerador) 1001 1010 (m=8) M(x) = x 7 + x 4 + x 3 + x 1 (mensagem) 100 1101 0000 x 3. M(x) = x 10 + x 7 + x 6 + x 4 (dividendo) 101 R(x) = x 2 + 1 (resto) 10011010101 T(x) = x 3. M(x) + R(x) = x 10 + x 7 + x 6 + x 4 + x 2 + 1 (mensagem transmitida incluindo CRC) 10011010000 1101 1101 11111001 1001 1101 1000 1101 1011 1101 1100 1101 0010 0000 0100 0000 1000 1101 101 TRC Prof. Paulo Lobato Correia 35
CRC: Exemplo (2) 1101 (n = 3) G(x) = x 3 + x 2 + 1 (polinómio gerador) 1001 1010 101 x 3.M(x)+R(x) = x 10 + x 7 + x 6 + x 4 + x 2 + 1 (mensagem recebida incluindo CRC) 000 R (x) = 0 (não há erros ou os erros não são detectados) 10011010101 1101 1101 11111001 1001 1101 1000 1101 1011 1101 1100 1101 0011 0000 0110 0000 1101 1101 000 TRC Prof. Paulo Lobato Correia 36
CRC: Propriedades Seja T(x) + E(x), a mensagem recebida, em que E(x) é o padrão de erros: Padrão de erros é detectado se e só se E(x) não for divisível por G(x); Erros simples são detectados se G(x) tiver mais do que um termo; Número ímpar de erros são detectados, se G(x) tiver x + 1 como factor; Rajadas de erros de comprimento inferior ou igual a n são detectadas, se G(x) tiver grau n e incluir o termo 1 (i.e., x 0 ); Rajadas de erros de comprimento n + 1 são detectadas com probabilidade 1 / 2 n 1, se G(x) tiver grau n e incluir o termo 1. TRC Prof. Paulo Lobato Correia 37
Forward Error Correction Forward error correction (FEC) usa códigos que contêm redundância suficiente para permitir a detecção e correcção de erros no receptor, sem requerer a retransmissão da mensagem. Exemplos: Código de Hamming: consegue detectar e corrigir erros de bit isolados. Há técnicas mais sofisticadas que são habitualmente utilizadas, tal como códigos de Reed-Solomon. Utilização habitual em ambientes com tempo de propagação elevado (exemplo: transmissão via satélite). Há implementações em hardware de técnicas FEC (exemplo: modem V.34). TRC Prof. Paulo Lobato Correia 38
Controlo de Erros: Stop-and and-wait ARQ Operação Stop-and-Wait: O emissor mantém uma cópia da última trama transmitida até receber uma confirmação (ACK) da sua correcta recepção pelo destinatário; Tanto as tramas de dados como as ACK são numeradas módulo 2 (isto é, sucessivamente 0 e 1); Uma trama de dados com número 0 é confirmada por um ACK com número 1 (indica o número da próxima trama de dados que espera); Em caso de ser detectado um erro, pode ser enviada uma confirmação negativa (NAK); Se ao fim de um intervalo de tempo pré-estabelecido (time-out) não tiver sido recebido o ACK, o emissor assume que a trama se perdeu ou chegou com erros e volta a enviá-la. ARQ Automatic repeat request TRC Prof. Paulo Lobato Correia 39
Stop-and and-wait TRC Prof. Paulo Lobato Correia 40
Stop-and and-wait: : Eficiência a > 1 a < 1 a = t t prop trama TRC Prof. Paulo Lobato Correia 41
Stop-and and-wait: : Eficiência t trama t prop t ack Mensagem de n tramas: Tempo de envio de uma trama: T = t + t + t + t + t + t F prop trama proc prop ack proc Tempo total de envio de dados: T = n D T F Admitindo que os tempos de processamento são desprezáveis e que o tempo de transmissão do ACK também é desprezável (trama de ACK é muito pequena), o tempo total de envio de dados é: T = n 2 t + t D ( ) prop trama A utilização (eficiência) da linha é: U = n n t trama ( 2 t + t ) 1+ 2 a prop trama = 1 com: a = t t prop trama tempo de p ropagação = tempo de t ransmissão da trama TRC Prof. Paulo Lobato Correia 42
Stop-and and-wait: : Eficiência Distância da ligação: d Velocidade de propagação no meio de transmissão: v transmissão via atmosfera: v=c transmissão através de meio guiado: v= 2 10 8 m/s Tempo de p ropagação = t prop = d v Comprimento da trama: L bits Ritmo de transmissão: R b bit/s Tempo de t ransmissão de trama = t = trama L R b Parâmetro a: a = R b d v L TRC Prof. Paulo Lobato Correia 43
Stop-and and-wait: : Eficiência Exemplo: R b = 1 Gbit/s L = 1 kbyte / trama t prop = 15 ms A eficiência de utilização é baixíssima! Embora o canal permita transmissão a 1 Gbit/s está a ser usado apenas a 267 kbit/s Protocolo stop-and-wait limita o uso dos recursos de transmissão t trama = 8.103 bit 1.10 9 bit/s 15 ms a = 8 μs 1 U = 1 + 2.1875 = 8 μs = 1875 = 0.00027 = 0.027% TRC Prof. Paulo Lobato Correia 44
Controlo de Erros: Janela Deslizante Stop-and-wait: só uma trama a ser enviada em cada instante de tempo; se a > 1: o protocolo stop-and-wait conduz a grande ineficiência. Solução: permitir que várias tramas estejam a viajar em simultâneo entre emissor e receptor janela deslizante. Requer maior espaço nos buffers (de emissão e recepção); Requer numeração das tramas (de dados e de ACK) a gama de numeração é limitada, pois estes números também tem de ser transmitidos. Usando k bits para numeração, a sequência de números disponíveis vai de 0 a N=2 k -1. Existe uma lista dos números de tramas que é permitido enviar (janela de emissão) e dos números de tramas que se está preparado para receber (janela de recepção). TRC Prof. Paulo Lobato Correia 45
Go-Back Back-N TRC Prof. Paulo Lobato Correia 46
Go-Back Back-N Emissor mantém uma janela deslizante de dimensão N j, isto é tem um máximo de N j tramas enviadas mas ainda não confirmadas; Emissor: N j Não confirmadas Já confirmadas Posições livres base próxima Janela deslizante no receptor tem dimensão 1; Quando o temporizador da trama i expira, o emissor reenvia-a, bem como todas as seguintes; ACKs são cumulativos. TRC Prof. Paulo Lobato Correia 47
Go-Back Back-N [0,5] 0 Exemplo: Dimensão da janela de emissão: N j = 6 Canal que não troca ordem de entrega de tramas; Tramas são numeradas módulo: N= N j +1 É possível efectuar controlo de fluxo através da cadência de envio dos ACKs; Dimensão máxima da janela: [1,6] [2,7] [3,8] [3,8] [3,8] [3,8] [4,9] [5,10] [6,11] [9,12] 1 2 3 4 5 6 3 4 5 6 7 8 9 ACK1 ACK2 ACK3 ACK3 ACK3 ACK3 ACK4 ACK5 ACK6 ACK7 N j N 1, com N = 2 k k número de bits usados para numeração de tramas TRC Prof. Paulo Lobato Correia 48
Go-Back Back-N: : Dimensão Máxima da Janela Exemplo: 8 identificadores disponíveis (k = 3), dimensão da janela: N j = 8 0 1 2 3 4 5 6 7 timeout 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 ACK 0 ACK 0 ACK 0 0 0 0 Caso normal (sem erros) Duplicação de 8 tramas Perda de 8 tramas TRC Prof. Paulo Lobato Correia 49
Selective Repeat Emissor e receptor usam ambos janelas deslizantes com dimensão N j : Quando o temporizador da trama i expira, o emissor reenvia apenas essa trama; A chegada de um ACK confirma todas as tramas anteriores; Existem também NAK para indicar tramas recebidas com erros. N j base próxima Emissor Não confirmadas Já confirmadas N j Posições livres base Receptor TRC Prof. Paulo Lobato Correia 50
Selective Repeat [0,5] 0 Exemplo: Dimensão da janela de emissão: N j = 6 1 2 3 4 ACK3 Canal não troca ordem de entrega de tramas [3,8] 5 6 Tramas são numeradas módulo N = 2 x N j [3,8] 3 7 É possível efectuar controlo de fluxo 8 ACK7 através da cadência de envio dos ACKs Dimensão máxima da janela: [7,12] [7,12] [9,14] 9 10 11 ACK9 N j N / 2 = 2 k-1, com N = 2 k k número de bits usados para numeração de tramas TRC Prof. Paulo Lobato Correia 51
Selective Repeat: Dimensão Máxima da Janela de Emissão Exemplo: 8 identificadores disponíveis (k = 3); dimensão da janela: N j = 5 timeout 0 1 2 3 4 espera: 0,1,2,3,4 0 1 ACK 5 espera: 5,6,7,0,1 aceita 0,1 como novas tramas: duplicação de tramas! TRC Prof. Paulo Lobato Correia 52
Janela Deslizante: Eficiência Há duas situações distintas: N j > 2a + 1 N j < 2a + 1 Transmissão contínua (não esgota janela) Transmissão descontínua (esgota janela) a = t t prop trama TRC Prof. Paulo Lobato Correia 53
Janela Deslizante: Transmissão Contínua Exemplo: Selective Repeat Numeração módulo N = 8 (Identificadores: 0, 1,... 7) Tamanho máximo da janela: N j = N/2 = 4 [0,3] N j... 0 1 2 3 4 5 6 7 0 ACK 1... A utilização (eficiência) da linha é: U =1 (considerando que todos os bits da trama são úteis) Nunca é necessário para à espera de um ACK. TRC Prof. Paulo Lobato Correia 54
Janela Deslizante: Transmissão Descontínua Exemplo: Selective Repeat Numeração módulo N = 8 (Identificadores: 0, 1,... 7) N j 0 1 2 3 ACK 1... Tamanho máximo da janela: N j = N/2 = 4 Admitindo que os tempo de processamento e de transmissão do ACK são desprezáveis, a utilização (eficiência) da linha é: 4 5 6 7 U = N j ttrama N j = 2 t + t 2 a+ 1 prop trama 0 1... (considerando que todos os bits da trama são úteis) TRC Prof. Paulo Lobato Correia 55
Janela Deslizante: Eficiência Transmissão contínua: U = 1 Transmissão descontínua: U = N j / (2.a+1) Dimensão típica das janelas: N j =7 ou N j =127 (ligações via satélite) Piggybacking melhora utilização da linha em ligações bidireccionais: Se uma estação tem dados e ACK para enviar, os ACKs são atrasados temporariamente e incluídos nas tramas de informação; ACK necessita só de alguns bits no cabeçalho da trama de informação, enquanto uma trama separada de ACK necessita de cabeçalho, ACK e FCS; Possível desvantagem: emissor declarar timeout se a espera pelo piggybacking for demasiado longa. TRC Prof. Paulo Lobato Correia 56
Controlo de Fluxo As técnicas de controlo de erros do tipo ARQ permitem simultaneamente efectuar controlo de fluxo, através da cadência de envio dos ACKs. TRC Prof. Paulo Lobato Correia 57