06 - Camada de Enlace de Dados 24 de novembro de 2014 Conteúdo Camada de Enlace de dados segundo OSI Subcamada de enlace lógico Transmissão confiável Subcamada de controle de acesso ao meio Protocolos de controle de acesso ao meio 2/55 Camada de Enlace de dados I Serviços I I Endereçamento Transmissão confiável I I I Controle de Acesso ao Meio I I Compartilhamento de canais broadcast Na camada de enlace são transmitidos datagramas I I Controle de fluxo Detecção e correção de erros Como é feito o enquadramento? Duas subcamadas I I Subcamada superior: Logical Link Control (LLC) Subcamada inferior: Media Access Control sub-layer (MAC) 3/55 Camada de Enlace de dados segundo OSI I Detecta e corrige erros da Camada Fı́sica I Provê funções básicas para comunicação de entidades da Camada de Rede I Permite a criação de circuitos de dados 4/55 Serviços para a Camada de Rede I Em modo de conexão I I I I I I I I Endereço de camada de enlace Conexão de enlace Notificação de erros Unidades de dados de serviços Identificadores de pontos de conexão Reset/Reinı́cio da comunicação Parâmetros de qualidade de serviço Em modo sem conexão I I I Endereço Transmissão de unidades de dados Especificação de parâmetros de qualidade de serviço 5/55 Endereços da camada de enlace de dados I Endereço I I I Entidades da Rede se identificam pelos endereços de Enlace No OSI, um endereço é único na camada de Enlace Conexão e PDU I I I I Camada de enlace permite comunicação sem conexão Tamanho da PDU pode ser limitado pelo meio fı́sico Camada de enlace fornece identificadores para entidades da camada de rede Notificação de erros I Quando não é possı́vel corrigir erro, camada de enlance avisa camada de rede 6/55 Parâmetros de qualidade de serviço I I Opcional A própria camada de Enlace pode determinar parâmetros de qualidade I I I I Tempo médio entre erros detectáveis mas não corrigı́veis Disponibilidade de serviços Demora de transmissão Capacidade de transmissão 7/55 Comunicação entre NICs I Lado emissor I I I Encapsula datagrama no quadro Inclui bits de verificação de erro e controle de fluxo Lado receptor I I I Procura de erros Verifica bits de controle de fluxo Extrai dados do datagrama e envia para camada superior 8/55 Subcamada de enlace lógico: Datagramas I Ideal: todo datagrama é enviado apenas 1 vez I I I Na ordem certa Com o conteúdo correto Camada de enlace inclui um cabeçalho e um sufixo ao conteúdo sendo transmitido cabeçalho I pacote de dados sufixo Como saber se isso é um datagrama? 0101001011101110010101001000101011 9/55 Enquadramento I Como determinar o inı́cio e o fim de datagramas? 0101001011101110010101001000101011 I I Aonde estão os dados? Abordagens: I I Enquadramento orientado a caracteres Contagem de tamanho I I Opção: tamanho fixo Protocolos orientados a bits (uso de flags) 10/55 Enquadramento orientado a caracteres ... SYN SYN STX header dados ETX CRC SYN I Mais usado de 1960 a 1975 I Código de caracteres padrões (ASCII ou EBCDIC) tem caracteres reservados para comunicação Comunicação é baseada nesses caracteres especiais I I SYN ... SYN 0x16 - Synchronous Idle I I I STX I ETX I I indica sincronia e ociosidade 00010110 indica inı́cio de texto indica fim de texto 11/55 Tabela ASCII 12/55 Problemas com enquadramento baseado em caracteres I Dependência ao código de caracteres I I Quadros deve ter um número inteiro de caracteres I I Como enviar dados binários? Número de bits deve ser múltiplo do número de bits de um caracter Erros em caracteres de controle são catastróficos I Erro em STX provoca perda do inı́cio do texto 13/55 Enquadramento baseado em campo de tamanho I Usar campo de cabeçalho para indicar o tamanho do quadro I I I I Limita tamanho dos quadro Problemas I I I Receptor conta até o fim do quadro para achar próximo quadro Campo de tamanho precisa usar log2 TAMMAX + 1 bits Difı́cil recuperar de erros Ressincronização após erro na contagem de tamanho Usado na DECnet (1975) 14/55 Quadros de tamanho fixo I Quadros têm tamanho sempre igual I Necessária sincronização na inicialização Problemas: I I I I I I Se tamanho dos dados não é múltiplo do tamanho do quadro Último quadro deve ter conteúdo parcialmente vazio Sincronia pode ser difı́cil Fragmentação e remontagem dos quadros pode ser difı́cil em taxas altas Exemplo: I I Padrões Asynchronous Transfer Mode (ATM) Frames com 53 bytes 15/55 Enquadramento orientado a bits I Uso de bits indicadores: flags I I Flag de inı́cio/fim não pode aparecer dentro do frame I I I I Flag: sequência de bits para indicar inı́cio e fim de quadro Comum usar como flag: 01111110 E usar para erro: 01111111...1110 < 16 bits Repetição de flag ou somente 1 indica estado ocioso Criado pela IBM (1970) I Synchronous Data Link Control (SDLC) 16/55 Justificação positiva ou Bit Stuffing (preenchimento de bits) I Na transmissão com enquadramento orientado a bits é comum perder sincronia após muitos bits 1s I Introdução de 0s para não perder sincronia (SDLC e USB) I SDLC usa flag com 6 bits 01111110 SDLC introduz um 0 a cada cinco bits 1s dos dados originais I I I I I garante que flag não aparece nos dados Original: 1111110111111111111101111110 Após preenchimento: 1111101011111011111011101111100 Remoção I I Remover todos 0 precedido de 011111 O zero precedido por 0111111, faz parte da flag 17/55 Erros de enquadramento I Todas as técnicas de enquadramento são sensı́veis a erros I I I I Um erro em um campo de tamanho faz o quadro terminar no lugar errado e o quadro seguinte pode ser perdido Erro nos caracters STX, ETX causam o mesmo problema Um erro em uma flag faz um quadro sumir ou um quadro inexistente aparecer Abordagem com flag é menos sensı́vel pois eventualmente uma flag aparece I Possı́vel eliminar quadros errôneos com detecção de erros 18/55 Técnicas de detecção de erros I Usado pelo receptor para determinar se quadro tem erros I Se quadro tem erros, receptor pede seu reenvio Técnicas de detecção de erros I I Verificação de paridade I I I Paridade de bit único Paridade múltipla (vertical ou horizontal) Verificação de redundância cı́clica (CRC) 19/55 Efetividade de técnicas de detecção de erros I Número mı́nimo de erros d para evitar detecção I I Habilidade de detecção de rajadas de erros (burst) I I Se ocorrerem menos que d erros, a detecção é garantida Tamanho máximo B da rajada de erros Probabilidade de reconhecer um bit errôneo como correto 20/55 Verificação de paridade de bit único I Adicionar um bit para paridade I bit é 1, se quadro tiver número ı́mpar de 1s bit é 0, caso contrário I Simplificação assumindo erros independentes I I P P(erro não detectado) = i par ki p i (1 − p)i k é o tamanho do quadro p é a probabilidade de erro de 1 bit 21/55 Paridade múltipla: horizontal e vertical 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 Verificação vertical I I I 1 0 0 0 1 0 Verificação horizontal 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 Bit de paridade é obtido para cada linha e coluna Se um número ı́mpar de erros estão em uma só coluna, cada erro pode ser detectado pelos bits de paridade das linhas Se ocorrem 4 erros em um quadrado, não é possı́vel detectar erros 22/55 Verificação de Erro Cı́clico (CRC) I Temos bits de dados: sK −1 , sK −2 , . . . , s0 I Representamos bits como um polinômio: s(x) = sK −1 x K −1 + sK −2 x K −2 + . . . s1 x 1 + s0 I Representamos o CRC com L bits como c(x) = cL−1 x L−1 + cL−2 x L−2 + . . . c1 x 1 + c0 I O quadro inteiro pode ser representado como polinômio f (x) = s(x)x L +c(x) = sK −1 x L+K −1 +. . .+s0 x L +cL−1 x L−1 +. . .+c0 I Por quê representação polinomial? I Para obter coeficientes ci de c(x) pela divisão de s(x)x L por um polinômio conhecido g (x) 23/55 Obtenção de c(x) I I I Temos si (dados) para i = 0, . . . , K − 1 Como computar ci (CRC) para i = 0, . . . , L − 1? I Seja g (x) = x L + gL−1 x L−1 + . . . + g 1x + 1 conhecido (gL = g0 = 1). então s(x)x L c(x) = Resto de divisão módulo 2 g (x) I Resulta em polinômio de grau L − 1 → L bits Exemplo: s = 101 (K=3) e g (x) = x 3 + x 2 + 1(L = 3) I I I s(x) =? s(x)x L =? Dividir s(x)x L por g (x) e obter resto. 24/55 Exemplo CRC I L=3 I s = 110101 I g (x) = x 3 + 1 I s(x) = x 5 + x 4 + x 2 + 1 I s(x)x L = x 8 + x 7 + x 5 + x 3 x8 + x7 + x5 + x3 = x5 + x4 + x + 1 x3 + 1 I c(x) = 0x 2 + 1x + 1(L = 3) → c = 011 110101 011 25/55 Como c(x) ajuda? I s(x)x L = g (x)z(x) + c(x) I s(x)x L + c(x) = g (x)z(x) + c(x) + c(x) | {z } 0 em módulo 2 I s(x)x L + c(x) = g (x)z(x) I f (x) = g (x)z(x) I I I Representação polinomial do quadro é múltipla de g (x) Assumir que f (x) foi recebido como y (x) Receptor recebe y (x) em Frame Check Sequence (FCS) e computa y (x) Resto g (x) I Se Resto 6= 0, então erro! 26/55 Implementação I A implementação é realizada com o operador XOR I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Polinômio: x 3 + x + 1 com coeficientes: 1011 11010011101100 1011 01100011101100 1011 00111011101100 1011 00010111101100 1011 00000001101100 1011 00000000110100 1011 00000000011000 1011 00000000001110 1011 00000000000101 101 00000000000000 000 <−− <−− 000 <−− <−− 000 d a d o s d e s l o c a d o s em 3 b i t s d i v i s o r /XOR resultado divisor ... 000 000 <−−− move p a r a o p r i m e i r o b i t 1 000 000 000 000 1 100 <−−− r e s t o ( 3 b i t s ) . 27/55 Verificação de código CRC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 I Processo similar ao da obtenção do CRC I Se resto for zero, não houveram erros. 11010011101100 100 <−−− d a d o s com CRC 1011 <−−− d i v i s o r 01100011101100 100 <−−− r e s u l t a d o 1011 <−−− d i v i s o r . . . 00111011101100 100 ...... 00000000001110 100 1011 00000000000101 100 101 1 −−−−−−−−−−−−−−−−−− 0 <−−− r e s t o 28/55 Erros não detectados I Assumir que erro é e(x) tal que y (x) = f (x) + e(x) I Então, I Teremos erros não detectados se e só se e(x) 6= 0 divisı́vel por g (x) Erros únicos (1 bit) são sempre detectados I I I y (x) g (x) = f (x) g (x) + e(x) g (x) por absurdo, assumir não detectado: e(x) = x i = g (x)z(x) para algum i uma vez que g (x) = x L + . . . + 1, multiplicando g (x) por qualquer z(x) 6= 0 não produz x i (deve produzir pelo menos 2 termos) 29/55 Frame Ethernet: Frame Check Sequence (FCS) Formato do Quadro Ethernet (IEEE 802.3-2012, seção 3.1.1): I Preâmbulo: 7 octetos 10101010... (codificação Manchester) I Start Frame Delimiter (SFD): 1 octeto 10101011 I MAC destino: 6 octetos I MAC original: 6 octetos I EtherType (comprimento/tipo): 2 octetos I Dados (payload): 46 a 1500 octetos I Frame Check Sequence (FCS): 4 octetos Polinômio CRC Ethernet: g (x) = x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1 30/55 Caracterı́sticas de erros de meios fı́sicos I I Muitos meios fı́sicos não são ideais Erros não são independentes I I são comuns erros consecutivos (burts) CRC consegue detectar sequências de erros consecutivos cujo número é menor que o grau do polinômio de detecção 31/55 Controle de erros por retransmissão I Reconhecimento positivo I I Reconhecimento negativo I I Aguardar confirmação de recebimento correto, senão retransmite Retransmite apenas se receber confirmação de recebimento errôneo Reconhecimento contı́nuo I Reconhecimento de até N quadros consecutivos 32/55 Subcamada de Controle de acesso ao meio: tipos de conexões I Conexões ponto-a-ponto I I I I Estrela Em malha Hierárquica Conexões em meio compartilhado (broadcast) I I I Radio difusão via satélite Hub – comunicação por barramento Centralizado em anel (token ring IEEE 802.5) 33/55 Protocolo de comunicação em broadcast idealizado I Quando um host quer transmitir, ele pode enviar na taxa R bit/s I Quando M hosts querem transmitir, cada um pode enviar na taxa R/M bit/s Totalmente descentralizado: I I I I Nenhum host especial para coordenar transmissões Nenhuma sincronização de relógios, intervalos Simples 34/55 Protocolos de controle de acesso ao meio: Conexões broadcast I Se todos tem direito ao acesso, quem vai acessar o meio? I I Abordagem aleatória Abordagem determinı́stica I I I Particionamento Revezamento Como tratar colisões? I O que acontece quando duas pessoas tentam falar ao mesmo tempo? 35/55 Protocolos de acesso ao meio I Time Division Multiple Access I I I Frequency Division Multiple Access I I I Cada usuário pode transmitir em uma faixa de frequências diferente Faixa não usada é perdida Code Division Multiple Acess (CDMA) I I Cada usuário tem um momento determinado para acessar o canal Intervalos não usados são perdidos Divisão por código (vetores ortogonais), um código por transmissor Acesso aleatório 36/55 Acesso aleatório I Quando host tem um pacote a enviar: I I I I Dois ou mais transmitindo juntos = colisão Um protocolo de Controle de Acesso ao Meio aleatório: I I I transmite na velocidade de dados R total do canal sem coordenação a priori entre os hosts como detectar colisões como recuperar-se de colisões Exemplos de protocolos de Controle de Acesso ao Meio Aleatório: I I ALOHA CSMA/CD 37/55 Protocolos de acesso ao meio: ALOHA puro 1. Transmitir quadro 2. Aguardar ACK por no máximo um perı́odo T. Se receber ACK, sucesso. 3. Se não recebe ACK, gerar novo perı́odo aleatório T 4. Esperar o perı́odo T e retransmitir quadro 38/55 Protocolo de acesso ao meio: ALOHA com slots I quadros sempre do mesmo tamanho I tempo dividido em intervalos de mesma duração, chamado de slots (tempo para enviar 1 quadro) I transmissão começa somente no inı́cio dos slots I hosts são sincronizados I se 2 ou mais transmitem no mesmo intervalo, todos percebem a colisão I quando host tem quadro a ser enviado, tenta transmissão no slot seguinte I I se não há colisão: host tenta enviar novo quadro no próximo slot se há colisão: host tenta probabilisticamente enviar em um próximo slot 39/55 ALOHA com slots I Vantagens: I I I I simplicidade um host pode transmitir na velocidade máxima do meio decentralização: sincronismo apenas nos slots Desvantagens: I I I Colisões frequentes, perda de slots Intervalos ociosos Necessário sincronia de relógio 40/55 CSMA I Carrier Sense Multiple Access (CSMA) I “Ouça antes de falar” I Somente transmite se meio está ocioso 41/55 CSMA: colisões I Colisões em CSMA ocorrem pois existe tempo de atraso de transmissão I I Dois podem iniciar a transmissão quase simultaneamente Se há colisão, o tempo de transmissão de um quadro inteiro é perdido 42/55 CSMA/CD ou CA I Collision Detection (CD) - IEEE 802.3 I I I I Capaz de comparar sinais transmitidos com recebidos Transmissões colididas são abortadas, reduzindo tempo perdido Mais fácil em meios com fio do que meios sem fio Collision Avoidance (CA) - IEEE 802.11 I I Evita colisão Se canal está ocupado, espera um tempo aleatório para próxima tentativa 43/55 Outros protocolos de acesso ao meio I Seleção (Polling) I I Mestre escolhe quem pode enviar Uso de permissões para envio (Token Ring) I I Quem tem o token, pode enviar Quando não usar mais o token, passa para o seguinte 44/55 Endereçamento: exemplo I OSI pede por identificador único na camada de enlace I Endereço MAC de NICs, IEEE 802 I Cada MAC consiste de 6 bytes MAC são únicos e atribuı́dos por fabricante I I I Armazenado em Hardware Possı́vel mudar em software 45/55 1 2 6 bytes 3 4 5 6 mais signi cante 6º byte 5º byte 4º byte 3º byte 2º byte 1º byte 1º octeto 2º octeto 3º octeto 4º octeto 5º octeto 6º octeto ou 3 bytes 3 bytes Identicador Único Organizacional Especíco ao Controlador da Interface de Rede (NIC) menos signi cante posição: 8 bits b8 b7 b6 b5 b4 b3 b2 b1 0: unicast 1: multicast 0: globalmente único 1: administrado localmente 46/55 Figura: Pacote do protocolo Address Resolution Protocol (ARP) sobre um frame Ethernet II 47/55 Endereçamento MAC e tabela ARP I Tabela de Address Resolution Protocol (ARP) I I I Conversão de endereço de meio fı́sico e endereço de camada superior “MAC address é o CPF e IP é o CEP” Se um host A quer falar com B, pergunta seu pelo seu MAC indicando endereço da camada superior 48/55 Ethernet I I I I I I Tecnologia LAN — IEEE 802.3 (1983) Camada fı́sica e camada de enlace Inı́cio com cabo coaxial de 10 Mbit/s Compartilhamento do meio CSMA/CD Praticamente todo ano, tecnologia teve atualizações Gerações futuras: IEEE 802.3ba2-2010, cat8, 100 Gb/s 49/55 I Até ≈1995, meio compartilhado I Hub – broadcast, sem buffering I Switch – isola hosts, com buffering 50/55 Quadro Ethernet I I I IEEE 802.3-2012 Packet Ethernet: camada fı́sica Frame Ethernet: camada de enlace bytes I Preâmb Flag 7 1 MAC MAC 802.1q Tipo dest src VLAN 6 6 4 2 Preâmbulo: repetições de 0x55 (menos significante primeiro) I I Flag - delimitador de ı́nicio de frame - 0xD5 0xD5 = 11010101b I CRC 42-1500 4 Intervalo Separador 12 Intervalo separador: estado ocioso para marcar fim de packet I 0x55 = 01010101b Payload .96ns para 100Gb/s, 96ns para 1Gb/s Tipo indica o protocolo encapsulado no payload 51/55 Ethernet I O cabeçalho do frame é conhecido como Ethernet II I Não oferece confiabilidade I Não oferece serviços de conexões Originalmente não usava subcamada LLC (Logical Link Control) I I I I IEEE 802.2 Subnetwork Acess Protocol (SNAP) permite transmitir informações em outras redes que não Ethernet MacOS usa 802.2 para o AppleTalk Protocolo de compartilhamento de meio: CSMA/CD sem slots 52/55 IEEE 802: Famı́lia de padrões para LAN e MAN Distâncias 1m 10m 100m 1km 10km 100km 1000km 10.000km Área metro quadrado sala prédio campus/bairro cidade paı́s continente planeta Tipo PAN LAN LAN LAN MAN WAN WAN Exemplo bluetooth IEEE 802.15.1 WiFi IEEE 802.11 IEEE 802.3 WiMAX IEEE 802.16 FDDI 802.6 WiMAX IEEE 802.16 Internet Personal Area Network (PAN), Local Area Network (LAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Body Area Network (BAN) – IEEE 802.15.6, Controller Area Network (CAN) – ISO 11898. IEEE 802 (http://www.ieee802.org/): padrões para LAN e MAN para redes com pacotes de tamanho variável. Camadas OSI 1 e 2. 53/55 Formas e gerenciamento de enlaces I Enlace ponto-a-ponto vs. multiponto I I I Gerenciamento de enlace I I I I I Estabelecimento Transferência de dados Encerramento Reinicialização Controle de fluxo – interromper temporariamente transmissão I I I Estações primárias (controladoras) Estações secundárias (recebem comandos) Quadro RR (receiver ready) Quadro RNR (receiver not ready) Bridging (LLC) I Agregação de segmentos de enlace (802.3 + 802.5) I I Shortest Path Bridging (IEEE 802.1aq) Spanning Tree Protocols (exemplo IEEE 802.1D) 54/55 Referências I Computer Networks (Tanembaum) I Computer Networking (Kurose) I Material didático L. Faina (Facom/UFU) I IEEE Standard for Ethernet (802.3-2012) I IEEE Standard for WirelessMAN-Advanced Air Interface for Broadband Wireless Access Systems (802.16.1) 55/55