Nossas metas: Entender os princípios embutidos nos serviços da Capítulo 5: Camada de Enlace camada de enlace: Detecção e correção de erro Controle de acesso de enlaces compartilhados Endereçamento da camada de enlace Antônio Abelém Abelé[email protected] Tranferência confiável de dados e controle de fluxo: já feito! Instanciação e implementação de várias tecnologias usadas na camada de enlace 5: Camada de Enlace 5a-1 Camada de Enlace: Introdução “enlace” Algumas terminologias: Estações e roteadores são nós (pontes e comutadores também) Canais de comunicação que conectam nós adjacentes através de um caminho são enlaces: 5: Camada de Enlace 5a-2 Camada de enlace: contexto Datagrama transferido por diferentes protocolos através de diferentes enlaces: e.g., Ethernet no primeiro enlace, frame relay no enlace intermediário, 802.11 no último enlace. wired links wireless links Cada protocolo da camada de enlace fornece serviço diferente LANs O PDU é um quadro, que encapsula datagramas A camada de enlace tem a responsabilidade de transferir datagramas de um nó Para outro adjacente através de um enlace. 5: Camada de Enlace 5a-3 e.g., pode ou não fornecer confiabilidade através do enlace Analogia com transporte viagem de Castanhal para São Paulo carro: castanhal para Belém avião: Belém para Rio trem: Rio para São Paulo turista = datagrama segmento de transporte = enlace de comunicação modo de transporte = protocolo da camada de enlace agente de viagem = algoritmo de roteamento 5: Camada de Enlace 5a-4 Serviços da Camada de Enlace Enquadramento e acesso ao enlace: encapsula datagrama num quadro incluindo cabeçalho e cauda, implementa acesso ao canal se meio for compartilhado, ‘endereços físicos’ são usados em cabeçalhos de quadros para identificar origem e destino de quadros em enlaces multiponto Entrega confiável: Pouco usada em fibra óptica, cabo coaxial e alguns tipos de pares trançados devido a taxas de erro de bit muito baixas. Usada em enlaces de rádio, onde a meta é reduzir erros assim evitando a retransmissão fim a fim. 5: Camada de Enlace 5a-5 Implementação de Protocolo da Camada de Enlace Protocolo da camada de enlace é implementado totalmente no adaptador (p.ex., cartão PCMCIA). Adaptador tipicamente inclui: 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 meios compartilhados, 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. 5: Camada de Enlace 5a-7 Serviços da Camada de Enlace (mais) Controle de Fluxo: compatibilizar taxas de produção e consumo de quadros entre remetentes e receptores Deteção de Erros: erros são causados por atenuação do sinal e por ruído receptor deteta presença de erros receptor sinaliza ao remetente para retransmissão, ou simplesmente descarta o quadro em erro Correção de Erros: mecanismo que permite que o receptor localize e corrija o erro sem precisar da retransmissão 5: Camada de Enlace 5a-6 Enlaces e Protocolos de Múltiplo Acesso Dois tipos de enlace: (a) Ponto-a-ponto (um emissor, um receptor, p.ex. PPP) (b) Difusão (cabo ou meio compartilhado; p.ex., Ethernet tradicional, rádio, etc.) Começamos com enlaces com Difusão. Desafio principal: Protocolo de Múltiplo Acesso 5: Camada de Enlace 5a-8 Protocolos de Controle de Acesso ao Meio (MAC) Protocolo MAC: coordena transmissões de estações diferentes a fim de minimizar/evitar colisões. Tem 3 classes: (a) Particionamento do Canal (b) Acesso Randômico (c) “Revezamento” Meta: ser eficiente, justo, simples, descentralizado 5: Camada de Enlace 5a-9 Protocolos de Acesso Randômico Uma estação transmite aleatoriamente (ié, sem coordenação a priori entre estações) ocupando toda a capacidade R do canal. Se houver “colisão” entre as transmissões de duas ou mais estações, elas retransmitem depois de espera randômica O protocolo MAC de acesso randômico especifica como detetar colisões e como recuperar delas (através de retransmissões retardadas, por exemplo) Exemplos de protocolos MAC de acesso randômico: (a) SLOTTED ALOHA (b) ALOHA (c) CSMA e CSMA/CD 5: Camada de Enlace 5a-11 Protocolos de Particionamento do Canal TDMA (Multiplexação por Divisão de Tempo): canal dividido em N intervalos de tempo (“slots”), um para cada usuário; ineficiente com usuários de pouco demanda ou quando carga for baixa. FDMA (Multiplexação por Divisão de Freqüência): freqüência subdividida. 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é, particionamento do conjunto de códigos 5: Camada de Enlace 5a-10 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 tornar ocioso 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 podem detetar 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 5: Camada de Enlace 5a-12 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 consideravelmente o 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 locais de rádio (o receptor é desligado durante transmissão, para evitar 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ção para tempo de transmissão do pacote) 5: Camada de Enlace 5a-13 Protocolos MAC de “revezamento” Protocolos MAC de revezamento conseguem tanto justeza como acesso individual a toda a capacidade do enlace, ao custo de maior complexidade de controle (a) Polling: uma estação Mestre numa rede local “convida” em ordem as estações escravas a transmitir seus pacotes (até algum Máximo). Problemas: custo de Request to Send/Clear to Send, latência, ponto único de falha (Mestre) (b) Passagem de ficha de permissão: a ficha de permissão é passada seqüencialmente de estação a estação. É possível aliviar a latência e melhorar tolerância a falhas (numa configuração de barramento de fichas). Entretanto, procedimentos complexos para recuperar de perda de ficha, etc. 5: Camada de Enlace 5a-15 Protocolos MAC de “revezamento” Até aqui já vimos: Protocolos MAC de particionamento de canal (TDMA, FDMA e CDMA) podem compartilhar o canal eqüitativamente; porém, uma única estação não consegue usar toda a capacidade do canal Protocolos MAC de acesso randômico permitem que um único usuário utilize toda a capacidade do canal; entretanto, eles não conseguem compartilhar o canal de maneira justa (de fato, é comum observar a captura do canal) Também existem protocolos de “revezamento”... 5: Camada de Enlace 5a-14 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 5: Camada de Enlace 5a-16 Tecnologias de Rede Local Protocolos MAC usados em redes locais, para controlar acesso ao canal Anéis de fichas: IEEE 802.5 (Token Ring da IBM), para sala de computação, ou rede departamental, até 16Mbps; FDDI (Fiber Distributed Data Interface), para rede de Campus ou Metropolitana, até 200 estações, em 100Mbps. Ethernet: emprega o protocolo CSMA/CD; 10Mbps (IEEE 802.3), Fast E-net (100Mbps), Gigabit E-net (1,000 Mbps); de longe a tecnologia mais popular de rede local 5: Camada de Enlace 5a-17 Endereço físico (cont) Alocação de endereços MAC administrada pelo IEEE Um fabricante compra uma parte do espaço de endereços (para garantir unicidade) Analogia: (a) endereço MAC: como número do CPF (b) endereço IP: como endereço postal endereço MAC sem estrutura (flat)=> portabilidade endereço IP hierárquico NÃO é portátil (requer IP móvel) endereço MAC de difusão (broadcast): 1111………….1111 5: Camada de Enlace 5a-19 Endereços físicos e ARP Endereço IP: usado para levar o pacote à rede destino Endereço físico (ou MAC): usado para levar o pacote até o cartão de interface de rede local (cartão de adaptador) da estação de destino na rede local Endereço MAC de 48 bits (para a maioria das redes); queimado na ROM do adaptador 5: Camada de Enlace 5a-18 ARP: Address Resolution Protocol Cada nó IP (Estação, Roteador) na rede local possui módulo e Tabela ARP Tabela ARP (cache): mapeamento entre endereços IP/MAC para alguns nós na rede local < endereço IP; endereço MAC; TTL> < ………………………….. > TTL (Time To Live): temporizador, tipicamente alguns poucos minutos (<5) 5: Camada de Enlace 5a-20 ARP (cont) Roteando um pacote para outra rede local Nó A quer enviar pacote para endereço IP de destino XYZ na mesma rede local Nó de origem primeiro verifica se sua própria Tabela ARP contém o endereço IP XYZ Se XYZ não estiver na Tabela ARP, o módulo ARP difunde pacote ARP: < XYZ, MAC (?) > TODOS nós na rede local aceitam e inspecionam o pacote ARP Nó XYZ responde ao nó A com pacote ARP unicast (ponto a ponto) informando seu próprio endereço MAC : < XYZ, MAC (XYZ) > Endereço MAC de XYZ guardado na Tabela ARP Por exemplo, rotear pacote do endereço IP de origem <111.111.111.111> ao endereç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 5: Camada de Enlace 5a-21 Ethernet 5: Camada de Enlace 5a-22 Estrutura de Quadro Ethernet Muitíssimo difundida porque: Muito barata! R$30 para 100Mbps! A mais antiga das tecnologias de rede local Mais simples e menos cara que redes usando ficha ou ATM Acompanhou o aumento de velocidade: 10, 100, 1000 Mbps Muitas tecnologias E-net (cabo, fibra, etc). Mas todas compartilham características comuns Adaptador remetente encapsula datagrama IP (ou pacote de outro protocolo da camada de rede) num Quadro Ethernet que contém campos de Preâmbulo, Cabeçalho, Dados e CRC Preâmbulo: 7 bytes com o padrão 10101010 seguidos por um byte com o padrão 10101011; usado para sincronizar receptor ao relógio do remetente (relógios nunca são exatos, é muito provável que exista algum desvio entre eles) 5: Camada de Enlace 5a-23 5: Camada de Enlace 5a-24 Estrutura de Quadro Ethernet (cont) Cabeçalho contém Endereços de Destino e Origem e um campo Tipo Endereços: 6 bytes, o quadro é recebido por todos adaptadores numa rede local e descartado se não casar o endereço de destino com o do receptor Tipo: indica o protocolo da camada superior, usualmente IP, mas existe suporte para outros (tais como IPX da Novell e AppleTalk) CRC: verificado pelo receptor: se for detetado um erro, o quadro será descartado Codificação Manchester de Banda Básica Banda básica significa que não se usa modulação de portador; ao invés disto, bits são codificados usando codificação Manchester e transmitidos diretamente, modificando a voltagem de sinal de corrente contínuo Codificação Manchester garante que ocorra uma transição de voltagem a cada intervalo de bit, ajudando sincronização entre relógios do remetente e receptor 5: Camada de Enlace 5a-25 Tecnologias Ethernet: 10Base2 10=>10Mbps; 2=> comprimento máximo de segmento de menos de 200 metros; também chamada de “Cheapernet” Utiliza cabo coaxial fino (4mm) em topologia de barramento Repetidores são usados para interligar múltiplos segmentos (até 5 em qualquer caminho); um repetidor repete os bits escutados em uma interface para sua(s) outra(s) interface(s), ié, ele é apenas um dispositivo da camada física! 5: Camada de Enlace 5a-26 10BaseT e 100BaseT Taxas de transmissão de 10 e 100 Mbps; este último é chamado de “fast ethernet” T significa Par Trançado Usa concentrador (“hub”) ao qual os nós estão ligados por cabos individuais de 2 pares trançados, mostrando, portanto uma “topologia em estrela” Distância máxima do nó ao hub é de 100 metros Hub pode desligar da rede um adaptador falho (“jabbering”); 10Base2 não funcionaria se um adaptador não pára de transmitir no cabo Hub pode coletar informação e estatísticas de monitoramento para administradores da rede 100BaseT não usa codificação Manchester; usa 4B5B para maior eficiência 5: Camada de Enlace 5a-27 5: Camada de Enlace 5a-28 Gbit Ethernet Usa formato do quadro Ethernet padrão Admite enlaces ponto-a-ponto e canais de difusão compartilhados Em modo compartilhado, usa-se CSMA/CD; para ser eficiente, as distâncias entre os nós devem ser curtas (poucos metros) Os Hubs usados são chamados de Distribuidores com Buffers (“Buffered Distributors”) Full-Duplex em 1 Gbps para enlaces ponto-a-ponto ATM ATM (Asynchronous Transfer Mode) é a tecnologia de comutação e transporte da arquitetura RDSI-FL (Rede Digital de Serviços Integrados de Faixa Larga) Metas: acesso em alta velocidade para usuários comerciais e domésticos (155Mbps to 622 Mbps); suporte para serviços integrados (voz, dados, vídeo, imagem) Nota-se: o uso de enlaces ponto-a-ponto também foi estendido a 10Base-T e 100Base-T. 5: Camada de Enlace 5a-29 Circuitos Virtuais ATM Foco em capacidade para alocação de banda (diferente do melhor esforço do IP) Papel principal de ATM hoje: camada de enlace “comutada” para IP-sobre-ATM Transporte ATM utiliza circuitos virtuais: células (53 bytes) são transportadas em CVs em IP sobre ATM: CVs permanentes (PVCs) entre roteadores IP problema de escalabilidade: N(N-1) CVs entre todos os pares de roteadores IP 5: Camada de Enlace 5a-31 5: Camada de Enlace 5a-30 Circuitos Virtuais ATM (cont) CVs comutados (SVCs) são usados para conexões de curta duração Prós da abordagem de CVs ATM: Consegue garantir desempenho (QoS - qualidade de serviço) a uma conexão mapeada a um CV (banda, retardo, jitter) Contras da abordagem de CVs ATM: Suporte ineficiente para tráfego de datagramas; solução usando PVCs (um PVC entre cada par de estações) não é escalável; SVC introduz latência excessiva em conexões de duração muito curta Alto custo de processamento de SVCs 5: Camada de Enlace 5a-32 Mapeamento de Endereços ATM Interface do roteador (ao enlace ATM) possui dois endereços: os endereços IP e ATM. Para poder rotear um pacote IP através da rede ATM, o nó IP precisa realizar os seguintes passos: (a) inspecionar sua tabela de rotas para encontrar o endereço do próximo roteador IP (b) depois, usando tabela ATM-ARP, encontrar endereço ATM do próximo roteador (c) passar pacote (com endereço ATM) à camada ATM Agora, assume o controle a camada ATM layer: (1) determina a interface e CV em que enviar o pacote Camada Física de ATM Duas subcamadas Físicas: (a) Subcamada PMD (Physical Medium Dependent) (a.1) SONET/SDH: possui estrutura de quadros de transmissão (como um vasilhame carregando bits); • sincronização a nível de bit; • particionamento de banda (TDM); • diversas taxas de transmissão: OC1 = 51.84 Mbps; OC3 = 155.52 Mbps; OC12 = 622.08 Mbps (a.2) TI/T3 e E1/E3: possui estrutura de quadros de transmissão (antiga hierarquia de telefonia - PDH): 1.5 Mbps/ 45 Mbps e 2 Mbps/ 34 Mbps (a.3) sem estrutura: apenas células (em uso/ociosa) (2) se inexiste CV (para aquele endereço ATM) cria-se um SVC 5: Camada de Enlace 5a-33 Camada Física de ATM (cont) 5: Camada de Enlace 5a-34 Camada ATM Camada ATM responsável para transportar células através da rede ATM Segunda subcamada física (b) Subcamada TCS (Transmission Convergence Sublayer): ela adapta a subcamada PMD à camada de transporte ATM Funções da TCS: Geração do checksum do cabeçalho: CRC de 8 bits; ele protege cabeçalho de 4 bytes; permite corrigir erros de 1 bit. Delimitação da célula Com subcamada PMD “sem estrutura”, transmissão de células ociosas quando não há células de dados na fila para transmitir 5: Camada de Enlace 5a-35 Protocolo da camada ATM define formato do cabeçalho (5 bytes) da célula ATM; carga = 48 bytes; comprimento total da célula = 53 bytes 5: Camada de Enlace 5a-36 Camada ATM Camada de Adaptação ATM (AAL) VCI (ID de canal virtual): traduzido a cada novo enlace; PT (tipo de carga): indica o tipo de carga (p.ex. célula de gerenciamento) bit CLP (Prioridade de Perda de Células): CLP = 1 significa que a célula é de prioridade baixa, e pode ser descartada se roteador estiver congestionado byte HEC (Checksum de Erros no Cabeçalho) Camada de Adaptação ATM (AAL): “adapta” a camada ATM às camadas superiores (IP ou aplicações nativas de ATM) AAL é presente apenas nos sistemas terminais, e não em comutadores A camada AAL tem seus próprios campos de cabeçalho/cauda, transportados em células ATM 5: Camada de Enlace 5a-37 5: Camada de Enlace 5a-38 Camada de Adaptação ATM (AAL) [cont] Versões diferentes da camada AAL, de acordo com o serviço a ser transportado por ATM: AAL1: para serviços CBR (Taxa de Bits Constante) tais como emulação de circuitos AAL2: para serviços VBR (Taxa de Bits Variável) tais como vídeo MPEG AAL3/4, AAL5: para dados (p.ex., datagramas IP) Camada de Adaptação ATM (AAL) [cont] Duas subcamadas na AAL para dados: CPCS: (Common Part) Convergence Sublayer: encapsula carga (p.ex. datagrama IP) numa CPCS-PDU, com cabeçalho e/ou cauda. SAR: Subcamada de Segmentação/Remontagem: segmenta/remonta a CPCS (às vezes, até 65K bytes) em segmentos ATM de 48 bytes AAL3/4: segmento ATM tem cabeçalho+cauda de 4 bytes => apenas 44 bytes/célula de carga CPCS-PDU 5: Camada de Enlace 5a-39 5: Camada de Enlace 5a-40 Viagem de um Datagrama numa rede IP-sobre-ATM Na estação de origem: (1) camada IP traduz o endereço IP para o endereço ATM (using ATM-ARP); depois, passa o datagrama para AAL5 (2) AAL5 encapsula datagrama e segmenta CPCS-PDU em células; depois, passa estas células para a camada ATM Na rede, a camada ATM move células de comutador em comutador, seguindo uma CV pré-estabelecido Na estação destino, AAL5 remonta células para recuperar CPCS-PDU original, contendo datagrama; se CRC bom, datagrama é entregue para o protocolo IP. 5: Camada de Enlace 5a-41