Redes de computadores - A Camada Prof. Hermes Moraes de enlace Slides adaptados do material fornecido pelo livro Computer networking; Kurose, Ross Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-2 Introdução Terminologia: ◼ ◼ mobile network Hosts e roteadores são nós Canais de comunicação entre dois nós adjacentes são links national or global ISP ▪ Links cabeados ▪ Links sem fio ◼ Pacote de camada 2 é chamado frame, e encapsula um datagram datacenter network Camada de enlace tem a responsa-bilidade de transferir datagramas de um nó para o nó adjacente enterprise network 5-3 Contexto da camada de enlace ◼ Datagramas transferidos por diferentes protocolos em diferentes links: Analogia da viagem ◼ Viagem de BH a São Paulo ▪ trem: BH a Lavras ▪ carro: Lavras a Varginha ▪ avião: Varginha a São Paulo ◼ ◼ Pessoa = datagrama “trecho” da viagem = link de comunicação Modo de transporte = protocolo de enlace Agente de viagens = algoritmo de roteamento ▪ Ex., Ethernet no primeiro enlace, frame relay no link intermediário e 802.11 no último link ◼ Cada protocolo de enlace provê diferentes serviços ▪ Ex., pode ou não ser oferecida uma transferência confiável ◼ ◼ 5-4 Serviços de camada de enlace ◼ “Enquadramento” e acesso ao meio: ▪ encapsula datagrama em um frame, adicionando cabeçalho e trailer (cauda) ▪ acesso ao meio de transmissão se este for compartilhado ▪ endereço “MAC” usado para identificação de origem e destino do frame ▪ diferente do endereço IP! ◼ Entrega confiável entre nós adjacentes ▪ normalmente usado em links com baixa taxa de erros (fibra, par trançado) ▪ Links sem fio apresentam alta taxa de erros ▪ Q: Por que confiabilidade no enlace e no transporte? 5-5 Mais serviços de camada de enlace ◼ Controle de fluxo: ▪ sincronismo entre os nós emissor e receptor ◼ Detecção de erros: ▪ erros causados por atenuação de sinal, ruídos. ▪ receptor detecta presença de erros: ◼ Correção de erros: ▪ receptor identifica e corrige erro(s) de bit sem necessidade de retransmissão ◼ Half-duplex e full-duplex ▪ com o half duplex, ambos os nós podem transmitir, mas não ao mesmo tempo 5-6 Onde a camada de enlace é implementada? ◼ ◼ em cada host c. de enlace implementada no “adaptador” (network interface card NIC) ▪ Placa ethernet, placa PCMCI , placa 802.11 ▪ É implementada ainda a camada física ◼ Combinação de hardware, software e firmware host schematic application transport network link cpu memor y host bus (e.g., PCI) controller link physical physical transmission network adapter card 5-7 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-8 Detecção de erros EDC = Error Detection and Correction bits (redundância) D = Dados protegidos por verificação de erros, pode incluir campos do cabeçalho ∙ Detecção de erros não é 100% confiável! ∙ alguns erros podem passar despercebidos. Isso é raro ∙ campos EDC maiores oferecem melhor detecção e correção de erros otherwise 5-9 Checagem de paridade Paridade simples: Paridade bidimensional: Detecta erros de um bit Detecta e corrige erros de um bit 0 0 5-10 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-11 Protocolos de múltiplo acesso Basicamente dois tipos de “links”: ◼ Ponto-a-Ponto ▪ PPP para acessos discados ▪ Ponto-a-ponto entre o switch ethernet e o host ◼ broadcast (“meio” compartilhado) ▪ “antiga” Ethernet ▪ HFC ▪ 802.11 shared wire (e.g., cabled Ethernet) shared RF (e.g., 802.11 WiFi) shared RF (satellite) humans at a cocktail party (shared air, acoustical) 5-12 Protocolos de múltiplo acesso ◼ ◼ Um único canal broadcast compartilhado Duas ou mais transmissões simultâneas por nós: interferência ▪ colisão se um nó recebe dois ou mais sinais ao mesmo tempo Protocolo de múltiplo acesso ◼ Algoritmo distribuído que determina como os nós compartilham o canal. Ex: determina quando um nó pode transmitir ◼ A comunicação sobre o compartilhamento do canal tem que utilizar o próprio canal! ▪ não há outro canal para coordenação 5-13 Protocolo de múltiplo acesso ideal Canal broadcast com uma taxa de R bps 1. Quando um nó quer transmitir, ele pode transmitir a R bps. 2. Quando M nós querem transmitir, eles podem transmitir a uma taxa média de R/M bps. 3. Totalmente descentralizado: ▪ Nenhum nó diferenciado para coordenar o processo ▪ Nenhum mecanismo de sincronização 4. Simples 5-14 Taxonomia para protocolos de múltiplo acesso Três grandes classes: ◼ Particionamento do canal ▪ divide o canal em “pedaços” menores (tempo, frequência, código) ▪ cada pedaço é alocado a um nó, exclusivamente ◼ Acesso aleatório ▪ o canal não é dividido, colisões são permitidas ▪ “recuperação” das colisões ◼ Definição de “turnos” ▪ cada nó possui o seu turno. Nós com mais a transmitir podem ter turnos maiores 5-15 Particionamento de canais: TDMA TDMA: time division multiple access ◼ ◼ ◼ ◼ accesso ao canal em “turnos" cada estação usa um turno de tamanho fixo turnos não usados ficam ociosos exemplo: 6 estações, 1,3,4 têm pacote a enviar, turnos 2,5,6 ociosos 6-slot frame 1 3 4 1 3 4 5-16 Particionamento de canais: FDMA FDMA: frequency division multiple access ◼ ◼ ◼ ◼ spectro do canal dividido em faixas de frequência cada estação usa apenas uma faixa faixas não utilizadas permanecem ociosas exemplo: 6 estações, 1,3,4 possuem pacotes, faixas 2,5,6 ociosas FDM cable frequency bands time 5-17 Protocolos de acesso aleatório ◼ Quando um nó tem pacotes a enviar ▪ transmite a uma taxa igual ao máximo do canal. ▪ a priori, não há coordenação entre os nós ◼ ◼ Dois ou mais nós transmitindo ➜ “colisão”, Protocolo MAC de acesso aleatório especifica: ▪ como detectar colisões ▪ como recuperar de colisões (ex., por meio de retransmissões) ◼ Exemplos de protocolos MAC aleatórios: ▪ slotted ALOHA ▪ ALOHA ▪ CSMA, CSMA/CD, CSMA/CA 5-18 Slotted ALOHA Hipóteses: ◼ ◼ ◼ ◼ ◼ todos os quadros do mesmo tamanho tempo dividido em slots de mesmo tamanho (tempo p/ transmitir 1 quadro) nós começam a transmitir apenas no começo de cada slot nós são sincronizados se 2 ou mais nós transmitem em um mesmo slot, todos os nós detectam a colisão Operação: ◼ quando o nó possui um quadro a enviar, ele o envia no próximo slot ▪ se não houve colisão: o nó pode enviar um novo quadro no próximo slot ▪ se há colisão: o nó retransmite o quadro nos próximos slots com probabilidade p, até que obtenha sucesso 5-19 Slotted ALOHA Pros ◼ apenas um nó ativo pode transmitir continuamente à taxa máxima do canal ◼ muito descentralizado: apenas os slots precisam ser sincronizados ◼ simples Cons ◼ colisões ◼ Slots ociosos ◼ sincronização de relógios 5-20 ALOHA Puro ◼ ◼ Mais simples, nenhuma sincronização se há quadro a transmitir ▪ transmiti-lo imediatamente ◼ probabilidade de colisão cresce: ▪ quadro enviado em t0 colide com outros frames enviados em [t0-1,t0+1] 5-21 CSMA (Carrier Sense Multiple Access) CSMA: ouvir antes de transmitir: Se o canal é percebido como ocioso: transmitir o quadro ◼ Se o canal é percebido como ocupado, adiar a transmissão ◼ Analogia: não interrompa os outros! 5-22 CSMA collisions Colisões ainda podem ocorrer: Atraso de propagação leva a um nó não “escutar” a transmissão do outro colisão: Todo o tempo de transmissão do pacote é perdido nota: Distância e atraso de propagação determinam a probabilidade de colisões 5-23 CSMA/CD (Collision Detection) CSMA/CD: ▪ Colisões são detectadas rapidamente ▪ Transmissões com colisão são abortadas, reduzindo o desperdício do canal ◼ Detecção de colisão: ▪ Fácil em LANs cabeadas: compara-se o sinal transmitido com o sinal recebido ▪ Difícil em LANs sem fio: sinal recebido é “amplificado” por transmissões locais ◼ Analogia: conversas educadas 5-24 CSMA/CD collision detection 5-25 Protocolos com turnos Protocolos com particionamento de canal: ▪ Eficiente e justo em cargas altas de transmissão ▪ Ineficiente em cargas baixas: atraso no acesso ao canal é de 1/N da banda, mesmo se apenas 1 nó estiver transmitindo! Protocolos de acesso aleatório ▪ Eficiente em cargas baixas: um único nó pode transmitir à taxa máxima do canal ▪ Cargas altas: muitas colisões Protocolos com definição de turnos Tentativa de unir o melhor dos dois mundos! 5-26 Protocolos com turnos Polling: ◼ Nó mestre “convida” nós escravos a transmitir no turno ◼ Normalmente utilizado com equipamentos “burros” ◼ Considerações: ▪ polling overhead data poll master data slaves ▪ latência ▪ ponto único de falha (master) 5-27 Protocolos com turnos Passagem de Token: token de controle passado de um nó a outro, sequencialmente. Considerações: token overhead latência ponto único de falha (token) T (nothing to send) T data 5-28 Sumário de protocolos MAC ◼ Particionamento de canal ▪ Divisão de tempo ou frequência ◼ Acesso aleatório (dinâmico), ▪ ALOHA, S-ALOHA, CSMA, CSMA/CD ▪ detecção de portadora: fácil em algumas tecnologias (cabo), difícil em outras (sem fio) ▪ CSMA/CD usado na Ethernet ▪ CSMA/CA usado em 802.11 ◼ Definição de turnos ▪ Polling, passagem de token ▪ Bluetooth, FDDI, IBM Token Ring 5-29 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-30 Endereço MAC e ARP ◼ Endereço IP: 32 bits ▪ endereço de camada de rede ▪ Usado para levar o datagrama à rede de destino ◼ MAC address (endereço físico, ou ethernet, ou de LAN): ▪ função: levar o quadro de uma interface a outra fisicamente conectada (mesma rede) ▪ Endereço MAC: 48 bits (para a maioria das LANs) ▪ Gravado em ROM, às vezes, configurável via software 5-31 Endereço MAC e ARP Cada adaptador na LAN, possui um endereço LAN diferente 1A-2F-BB-76-09-AD = adaptador LAN (cabeada ou sem fio) 71-65-F7-2B-08-53 Endereço broadcast= FF-FF-FF-FF-FF-FF 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 5-32 Endereço LAN (mais detalhes) ◼ ◼ ◼ ◼ Alocação administrada pelo IEEE Construtores compram porções de endereços MAC (para garantir unicidade) Analogia: (a) Endereço MAC: RG ou CPF (b) Endereço IP: endereço postal MAC é um endereço “plano” ➜ portável ▪ Uma mesma placa, com mesmo endereço MAC pode ser ligada em diversas LANs ◼ IP é hierárquico ➜ NÃO portável ▪ O endereço IP deve mudar de acordo com a rede em que se conecta 5-33 ARP: Address Resolution Protocol Pergunta: como determinar o endereço MAC de B, por meio de seu endereço IP? 137.196.7.78 1A-2F-BB-76-09-AD 137.196.7.23 137.196.7.14 ◼ ◼ Cada nó IP na LAN possui uma tabela ARP Tabela ARP: Mapeamentos IP/MAC < IP address; MAC address; TTL> ▪ TTL (Time To Live): tempo em que a “tradução” é válida (normalmente 20 min) LAN 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 137.196.7.88 5-34 Envio de datagramas ◼ Emissor encapsula o datagrama em um quadro físico, mapeia o endereço IP de destino em um endereço físico e faz a entrega por meio do hardware de rede. ◼ Encaminhamento direto ▪ Entrega entre dois dispositivos conectados diretamente ▪ É sempre o passo final de qualquer envio de datagrama ◼ Encaminhamento indireto ▪ É necessário dispositivo intermediário para fazer a entrega ▪ e.g. Envio ao roteador de saída (gateway) 5-35 Envio de datagramas 5-36 Envio de datagramas 5-37 Envio de datagramas 5-38 Protocolo ARP: LANs diferentes envio de datagrama de A para B via R assumindo que A sabe o endereço IP de B 88-B2-2F-54-1A-0F 74-29-9C-E8-FF-55 A E6-E9-00-17-BB-4B 111.111.111.111 1A-23-F9-CD-06-9B 222.222.222.220 222.222.222.222 B 111.111.111.110 111.111.111.112 222.222.222.221 R 49-BD-D2-C7-56-2A CC-49-DE-D0-AB-7D ◼ duas tabelas ARP no roteador R, uma para cada LAN a que o roteador se conecta 5-39 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-40 Ethernet Tecnologia para LANs cabeadas dominante: ◼ barata ◼ primeira tecnologia amplamente utilizada em LANs ◼ mais simples e barata que LANs com token ou ATM ◼ velocidade crescente: 10 Mbps – 10 Gbps Metcalfe’s Ethernet sketch 5-41 Topologia estrela ◼ Topologia em barramento popular nos anos 90 ▪ Todos os nós em um mesmo domínio de colisão ◼ Atualmente: topologia estrela ▪ Um switch centraliza toda a transmissão ▪ cada “link” se torna isolado dos demais (não há colisão entre os nós) bus: coaxial cable switched 5-42 Ethernet: sem conexão, não confiável ◼ Sem conexão: Não há apresentação entre os NICs (palcas de rede) emissor e receptor ◼ Não confiável: NIC receptor não envia ACKs ou NAKs NIC emissor ▪ Fluxo de datagramas passado para a camada de rede pode conter lacunas (datagramas faltando) ▪ Erros serão corrigidos se estiver sendo utilizado o TCP ▪ Caso contrário, a aplicação receberá a lacuna ◼ Protocolo MAC para a Ethernet: CSMA/CD 5-43 Algoritmo CSMA/CD para a Ethernet 4. Se o NIC detecta outra transmissão enquanto transmite (colisão), aborta camada de rede e cria um quadro e envia um sinal “jam” 1. NIC recebe datagrama da 2. Se o NIC percebe o canal ocioso, inicia a transmissão do quadro. Se percebe o canal ocupado, aguarda até canal ocioso, então transmite 5. Depois de abortar, o NIC entra em um exponential backoff: depois da n-ésima colisão, NIC escolhe K aleatoriamente {0,1,2,…,2n-1}. O NIC aguarda K·512 tempos de bit e retorna ao passo 2 3. Se o NIC transmite o quadro por completo sem detectar outra transmissão (colisão), o serviço está feito para aquele quadro! 5-44 Algoritmo CSMA/CD para a Ethernet Sinal Jam: garante que todos os transmissores perceberam a colisão; 48 bits Tempo de Bit: .1 microsec para redes de 10 Mbps ; para K=1023, o tempo de espera é de 50 msec Exponential Backoff: ◼ Objetivo: adaptar as tentativas de restransmissão à carga atual na rede ▪ Carga alta: espera aleatória tende a ser maior ◼ Primeira colisão: K de {0,1}; atraso é K· 512 ◼ Após segunda colisão : K de {0,1,2,3}… ◼ Após 10 colisões, K de {0,1,2,3,4,…,1023} 5-45 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-46 Hubs … repetidores de camada de física (“dispositivos burros”) : ▪ bits que chegam em um link saem em todos os outros links, na mesma taxa ▪ pode haver colisão entre pacotes de todos os nós ligados ao hub ▪ não há buffer de envio ou recepção ▪ no CSMA/CD com hub: os NICs detectam as colisões twisted pair hub 5-47 Switch ◼ Dispositivo de camada 2: mais inteligente que os hubs, possuem regras ativas ▪ armazena, encaminha quadros Ethernet ▪ examina endereço MAC dos quadros que chegam, selectivamente encaminha o quadro por um, ou mais, links de saída. CSMA/CD é utilizado para enviar os quadros ◼ Transparente ▪ os hosts não sabem da existência dos switches ◼ Plug-and-play e “auto aprendizado” ▪ switches não precisam ser configurados 5-48 Switch: permite múltiplas transmissões simultâneas ◼ ◼ ◼ Cada host possui uma conexão dedicada com o switch C’ Os switches fazem buffer de quadros Ethernet é utilizado em cada link, porém não há colisões; full duplex ▪ Cada link é um domínio de colisão independente ◼ A switching: A-para-A’ e B-para-B’ simultaneamente, sem colisões B 1 2 6 5 B’ 3 4 A’ C switch com 6 interfaces (1,2,3,4,5,6) ▪ Mas A-para-A’ e C-para-A’ não podem ocorrer simultaneamente 5-49 Tabela do Switch ◼ ◼ Q: como o switch sabe que A’ está ligado a interface 4, e que B’ está na interface 5? R: cada switch possui uma tabela, cada entrada: A C’ 1 ▪ (endereço MAC do host, interface para cada ◼ Se parece com uma tabela de roteamento! 2 6 host, ttl) ◼ B 5 B’ 3 4 A’ C Q: como as entradas são criadas e mantidas pelo switch? ▪ Algo como um protocolo de roteamento? 5-50 Switch: auto aprendizado ◼ O switch aprende que host pode ser alcançado por qual interface Source: A Dest: A’ ▪ quando um quadro é recebido, o switch “aprende” a localização do emissor ▪ grava a tupla emissor/localização na tabela A A’ A C’ B 1 2 6 5 MAC addr A interface 1 TTL 60 B’ Switch table (initially empty) 3 4 A’ C 5-51 Interconecção de switches S4 S1 S3 S2 A B C F D E I G H Q: enviando de A para G - como S1 sabe que deve encaminhar o pacote através de S4 e S3? R: auto aprendizado! (exatamente do mesmo jeito que o já ilustrado!) 5-52 Rede institutional 5-53 Switches vs. Roteadores ◼ Ambos são dispositivos “armazena-e-reenvia” ▪ roteadores: dispositivos de camada de rede (cabeçalho de rede) ▪ Switches: dispositivos de camada de enlace ◼ ◼ roteadores mantêm tabela de roteamento, implementam algoritmos de roteamento switches mantêm tabelas de switch, implementam filtros e algoritmos de aprendizado 5: DataLink Layer 5-54 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-55 Redes locais virtuais - VLAN ◼ O que acontece se: ▪ um usuário da CC muda para EE mas quer se manter conectado ao comutador CC? ◼ Único domínio de broadcast: ▪ Todo tráfego de broadcast cruza a rede toda. ▪ Eficiência muito ruim 5-56 Redes locais virtuais - VLAN ◼ Um comutador que suporta VLANs permite que diversas redes locais virtuais sejam executadas por meio de uma única infraestrutura física de uma rede local virtual. ▪ VLAN definida por porta ou MAC ▪ Isolamento de tráfego entre VLANs ▪ Portas podem ser atribuídas dinamicamente ▪ Repasse entre VLANs feito por roteamento 5-57 Redes locais virtuais - VLAN ◼ Conectando 2 VLANs em comutadores diferentes: Portas Trunc ◼ Quadro Ethernet original (no alto); quadro VLAN Ethernet 802.1Q-tagged (embaixo) 5-58 Multiprotocol Label Switching - MPLS ◼ Objetivo principal de agilizar o repasse de pacotes IP usando rótulos em camada de enlace ▪ Roteador habilitado para MPLS é denominado roteador de comutação de rótulos ▪ Ideia vinda dos circuitos virtuais (CV) ▪ Cabeçalho MPLS localizado entre os cabeçalhos de enlace e de rede 5-59 MPLS versus IP IP/MPLS entry router (R4) can use different MPLS routes to A based, e.g., on IP source address or other fields R 6 R 5 D R 4 R 3 A R 2 IP router IP/MPLS router R 1 ▪ IP routing: path to destination determined by destination address alone ▪ MPLS routing: path to destination can be based on source and destination address • flavor of generalized forwarding (MPLS 10 years earlier) • fast reroute: precompute backup routes in case of link failure 5-60 Camada de enlace ◼ ◼ ◼ ◼ ◼ Introdução e serviços Detecção e correção de erros Protocolos para controle de múltiplo acesso Endereçamento de camada de enlace Ethernet ◼ ◼ Switches Virtualização em redes − Vlan − ◼ MPLS Redes de datacenter 5-61 Redes de datacenter ◼ ◼ ◼ ◼ ◼ ◼ Nos últimos anos, empresas de Internet como Google, Microsoft, Facebook e Amazon construíram datacenters maciços. Cada datacenter tem sua própria rede do datacenter que interconecta seus hospedeiros e liga o datacenter à Internet. O custo de um grande datacenter é imenso, ultrapassando US$ 12 milhões por mês para um datacenter de 100 mil hospedeiros [Greenberg, 2009a]. As solicitações externas são direcionadas primeiro a um balanceador de carga, cuja função é distribuir as solicitações aos hospedeiros. Para escalar para dezenas a centenas de milhares de hospedeiros, um datacenter normalmente emprega uma hierarquia de roteadores e comutadores. Com um projeto hierárquico, é possível escalar um datacenter até centenas de milhares de hospedeiros. 5-62 Redes de datacenter 5-63 Redes de datacenter - multipath ▪ rich interconnection among switches, racks: • increased throughput between racks (multiple routing paths possible) • increased reliability via redundancy 9 10 11 12 two disjoint paths highlighted between racks 1 and 11 13 14 15 16 5-64 Redes de datacenter - load balancer Internet load balancer: application-layer routing Load balancer … … … … … … … … ▪ receives external client requests ▪ directs workload within data center ▪ returns results to external client (hiding data center internals from client) 5-65