Redes industriais Carlos Roberto da Silva Filho, M. Eng. Camada de Rede • Uma das principais funções da camada de rede são: repasse e roteamento; • Repasse: mover pacotes da entrada do roteador para a saída apropriada do roteador; • Roteamento: determinar rota seguida pelos pacotes da origem ao destino; Camada de Rede aplicação transporte rede enlace física 1. Envia dados aplicação transporte rede 2. Recebe dados enlace física Visão geral do Roteador • As duas funções principais do roteador: • Executar algoritmos/protocolo de roteamento (RIP, OSPF, BGP) • Repassar datagramas do enlace de entrada para saída; Roteamento e Repasse algoritmo de roteamento tabela de repasse local enlace saída valor cab. 0100 0101 0111 1001 3 2 2 1 valor no cabeçalho do pacote de chegada 1 0111 3 2 Camada de Rede • Funções na camada de rede do host e roteador: Camada de transporte: TCP, UDP Camada de rede protocolo IP •conversão de endereçamento •formato de datagrama •conversão manuseio de pacote prots. roteamento •seleção caminho •RIP, OSPF, BGP tabela de repasse protocolo ICMP •informe de erro •“sinalização” do roteador Camada de enlace Camada física Roteamento - Protocolos • Protocolos conhecidos como Interior Gateway Protocols (IGP); • Protocolos de roteamento intra-AS (sistemas autônomos) mais comuns: • RIP: Routing Information Protocol; • OSPF: Open Shortest Path First; • IGRP: Interior Gateway roteamento Protocol (proprietário da Cisco); RIP - Routing Information Protocol • • • • Algoritmo de vetor de distância; Incluído na distribuição BSD-UNIX em 1982; Métrica de distância: # de saltos (máx. = 15); Vetores de distância: trocados entre vizinhos a cada 30 s por meio de mensagem de resposta (também conhecida como anúncio); • Cada anúncio: lista de até 25 sub-redes de destino dentro do AS; RIP - Falha e Recuperação • Se nenhum anúncio for ouvido após 180 s --> vizinho/enlace declarado morto; • Rotas via vizinho invalidadas; • Novos anúncios enviados aos vizinhos; • Vizinhos por sua vez enviam novos anúncios (se não houver tabelas alteradas) • Informação de falha do enlace rapidamente (?) se propaga para rede inteira; Roteamento 3c 3a 3b AS3 2a 1c 1a 1d 2c 2b AS2 1b algoritmo de roteamento intra-AS AS1 algoritmo de roteamento inter-AS tabela de repasse - Tabela de repasse configurada por algoritmo de roteamento intra e interAS: - intra-AS: define entradas para destinos internos - inter-AS & intra-AS: definem entradas para destinos externos OSPF - Open Shortest Path First • • • • • • “open”: publicamente disponível; Usa algoritmo Link State (estado do link); Disseminação de pacote LS; Mapa de topologia em cada nó; Cálculo de rota usando algoritmo de Dijkstra; Anúncio OSPF transporta uma entrada por roteador vizinho; • Anúncios disseminados ao AS inteiro (com inundação); • Transportados nas mensagens OSPF diretamente por IP (em vez de TCP ou UDP); Formato do Datagrama IP Fragmentação • Enlaces de rede têm MTU – unidade máxima de transferência) – maior quadro possível. • Diferentes tipos de enlace, diferentes MTUs. • Grande datagrama IP dividido (“fragmentado”) dentro da rede; • Um datagrama torna-se vários datagramas; • Deve ser “reconstruído” apenas no destino; • Bits de cabeçalho IP usados para identificar, ordenar fragmentos relacionados; Fragmentação Fragmentação - exemplo Exemplo • datagrama de 4000 bytes • MTU = 1500 bytes 1480 bytes no campo de dados deslocamento = 1480/8 tam. ID fragflag desloc. = 4000 = x =0 =0 Um datagrama grande torna-se vários datagramas menores tam. ID fragflag desloc. = 1500 = x =0 =1 tam. ID fragflag desloc. = 1500 = x = 185 =1 tam. ID fragflag desloc. = 1040 = x = 370 =0 Endereço IP - CIDR • CIDR: Classless InterDomain Routing (roteamento interdomínio sem classes); • Parte de sub-rede do endereço de tamanho arbitrário; • Formato do endereço: a.b.c.d/x, onde x é # bits na parte de sub-rede do endereço; parte de sub-rede parte do hosp. 11001000 00010111 00010000 00000000 200.23.16.0/23 DHCP - Visão Geral • DHCP: Dynamic Host Configuration Protocol; • Objetivo: permitir que o hospedeiro obtenha dinamicamente seu endereço IP do servidor de rede quando se conectar à rede; • Pode renovar seu prazo no endereço utilizado; • Permite reutilização de endereços (só mantém endereço enquanto conectado e “ligado”); • Aceita usuários novos que queiram se juntar à rede; DHCP - Visão Geral • Visão geral do DHCP: • host broadcasts “DHCP discover” msg [optional] • servidor DHCP responde com msg “DHCP offer” [opcional] • hospedeiro requer endereço IP: msg “DHCP request” • servidor DHCP envia endereço: msg “DHCP ack”; DHCP - Visão Geral servidor DHCP: 223.1.2.5 Descoberta DHCP src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 Oferta DHCP src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs Solicitação DHCP tempo src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs cliente chegando DHCP - Visão Geral • O DHCP pode retornar mais do que apenas o endereço IP alocado na sub-rede: • Endereço do roteador do primeiro salto para o cliente; • Nome e endereço IP do servidor DNS; • Máscara de rede (indicando parte de rede versus host do endereço); Endereçamento IP • Como um ISP recebe bloco de endereços? • ICANN: Internet Corporation for Assigned Names and Numbers: • aloca endereços; • administra o DNS; • atribui nomes de domínio e resolve disputas; NAT – Motivação • Rede local usa apenas um endereço IP no que se refere ao mundo exterior; • Intervalo de endereços não necessário pelo ISP apenas um endereço IP para todos os dispositivos; • Pode mudar os endereços dos dispositivos na rede local sem notificar o mundo exterior; NAT – Motivação • Pode mudar de ISP sem alterar os endereços dos dispositivos na rede local; • Dispositivos dentro da rede local não precisam ser explicitamente endereçáveis ou visíveis pelo mundo exterior (uma questão de segurança); NAT – Visão Geral • NAT: Network Address Translation; restante da Internet rede local (p. e., rede doméstica) 10.0.0/24 10.0.0.1 10.0.0.4 138.76.29.7 todos os datagramas saindo da rede local têm mesmo endereço IP NAT de origem: 138.76.29.7, mas diferentes números de porta de origem datagramas com origem ou destino nesta rede têm endereço 10.0.0/24 para origem/destino (como sempre) NAT – Implementação • Implementação: roteador NAT deve: • Enviando datagramas: substituir (endereço IP de origem, # porta) de cada datagrama saindo por (endereço IP da NAT, novo # porta); • Clientes/servidores remotos responderão usando (endereço IP da NAT, novo # porta) como endereço de destino; NAT – Implementação • Lembrar (na tabela de tradução NAT) de cada par de tradução (endereço IP de origem, # porta) para (endereço IP da NAT, novo # porta); • Recebendo datagramas: substituir (endereço IP da NAT, novo # porta) nos campos de destino de cada datagrama chegando por (endereço IP origem, # porta) correspondente, armazenado na tabela NAT; NAT – Implementação NAT – Implementação Protocolos de Transporte • Oferecem comunicação lógica entre processos de aplicação rodando em hosts diferentes; • Protocolos de transporte rodam em sistemas finais; • Lado remetente: divide as msgs da aplicação em segmentos, passa à camada de rede; • Lado destinatário: remonta os segmentos em msgs, passa à camada de aplicação; • Mais de um protocolo de transporte disponível às aplicações: Internet: TCP e UDP; Protocolos de Transporte aplicação transporte rede enlace física aplicação transporte rede enlace física Protocolos de Transporte • • • • • • • • • Remessa confiável e em ordem: TCP; Controle de congestionamento; Controle de fluxo; Estabelecimento da conexão; Remessa não confiável e desordenada: UDP; Extensão sem luxo do IP pelo “melhor esforço”; Serviços não disponíveis: Garantias de atraso; Garantias de largura de banda; TCP – Visão Geral TCP – Visão Geral • • • • • • Ponto a ponto: Um remetente, um destinatário; Cadeia de bytes confiável, em ordem: Sem “limites de mensagem”; Paralelismo: Congestionamento TCP e controle de fluxo definem tamanho da janela; • Buffers de envio & recepção; TCP – Visão Geral • Dados full duplex: • Dados bidirecionais fluem na mesma conexão; • MSS: tamanho máximo do segmento; • Orientado a conexão: • Apresentação (troca de msgs de controle) inicia estado do remetente e destinatário antes da troca de dados; • Fluxo controlado: • Remetente não sobrecarrega destinatário; TCP – Visão Geral URG: dados urgentes (quase não usado) ACK: # ACK válido PSH: empurrar dados agora (quase não usado) RST, SYN, FIN: estab. conexão (comandos setup, teardown) soma de verificação da Internet 32 bits porta origem porta destino número sequência contagem por bytes de dados (não segmentos!) número reconhecimento compr. não UA P R S F cab. usado janela recepção soma verificação ponteiro dados urg. opções (tamanho variável) dados da aplicação (tamanho variável) # bytes destinatário pode aceitar Multiplexação e Demultiplexação multiplexação no remetente: demultiplexação no destinatário: entregando segmentos recebidos ao socket correto = socket aplicação transporte rede P3 colhendo dados de múltiplos sockets, envelopando dados com cabeçalho (usados depois para demultiplexação) = processo P1 P1 aplicação transporte P2 P4 aplicação transporte rede rede enlace enlace enlace física física física host 1 host 2 host 3 Sockets • Processo envia/recebe mensagens de/para seu socket; • Socket semelhante à porta; • Processo enviando empurra mensagem pela porta; • Processo enviando conta com infraestrutura de transporte no outro lado da porta, que leva a mensagem ao socket no processo receptor; Sockets hospedeiro ou servidor processo hospedeiro ou servidor controlado pelo desenvolvedor da aplicação processo socket socket TCP com buffers, variáveis Internet controlado pelo OS TCP com buffers, variáveis Multiplexação e Demultiplexação • Hospedeiro recebe datagramas IP; • Cada datagrama tem endereço IP de origem, endereço IP de destino; • Cada datagrama carrega 1 segmento da camada de transporte; • Cada segmento tem número de porta de origem, e porta de destino; • Hospedeiro usa endereços IP e números de porta para direcionar segmento ao socket apropriado; Multiplexação e Demultiplexação 32 bits # porta origem # porta destino outros campos de cabeçalho dados da aplicação (mensagem) formato do segmento TCP/UDP Multiplexação e Demultiplexação P1 P4 P5 P2 P6 P1P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 cliente IP: A DP: 80 S-IP: A D-IP:C SP: 9157 servidor IP: C DP: 80 S-IP: B D-IP:C cliente IP:B Aplicações de Rede • • • • • Web, e-mail, mensagem instantânea; Login remoto; Compartilhamento de arquivos P2P; Jogos em rede multiusuários; Clipes de vídeo armazenados em fluxo contínuo; • Redes sociais; • Voice over IP; • Vídeoconferência em tempo real; Aplicações de Rede aplicação transporte rede enlace física aplicação transporte rede enlace física aplicação transporte rede enlace física Arquitetura Cliente - Servidor • • • • • • • Servidor: Host sempre ligado; Endereço IP permanente; Server farms por expansão; Clientes: Comunicam-se com o servidor; Podem estar conectados intermitentemente; • Podem ter endereços IP dinâmicos; • Não se comunicam diretamente entre si; Arquitetura Cliente - Servidor cliente/servidor Arquitetura P2P • Nenhum servidor sempre ligado; • Sistemas finais arbitrários se comunicam diretamente; • Pares são conectados intermitentemente e mudam endereços IP; peer-peer • Altamente escalável, mas difícil de administrar; Arquitetura Híbrida • Skype: • Aplicação P2P voice-over-IP; • Servidor centralizado: achando endereço da parte remota; • Conexão cliente-cliente: direta; Arquitetura Híbrida • Mensagem instantânea: • Bate-papo entre dois usuários é P2P; • Serviço centralizado: detecção/localização da presença do cliente; • Usuário registra seu endereço IP com servidor central quando entra on-line; • Usuário contacta servidor central para descobrir endereços IP dos parceiros; Serviço de Transporte • Que tipo de serviço de transporte uma aplicação precisa? • Perda de dados: • algumas aplicações (ex.: áudio) podem tolerar alguma perda; • outras aplicações (ex.: transferência de arquivos) exigem transferência de dados 100% confiável; • Segurança: • Criptografia, integridade de dados,… Serviço de Transporte • Que tipo de serviço de transporte uma aplicação precisa? • Temporização: • algumas aplicações (ex.: telefonia na Internet jogos interativos) exigem pouco atraso para serem “eficazes”; • Vazão: • algumas apls. (p. e., multimídia) exigem um mínimo de vazão para serem “eficazes” • outras apls. (“apls. elásticas”) utilizam qualquer vazão que receberem; Serviço de Transporte Aplicação Perda de dados Vazão Sensível ao tempo transf. arquivos e-mail documentos Web áudio/vídeo tempo real áudio/vídeo armazenado jogos interativos Mensagem instantânea sem perda sem perda sem perda tolerante a perda elástica elástica elástica áudio: 5 kbps-1 Mbps vídeo:10 kbps-5 Mbps áudio: 5 kbps-1 Mbps vídeo:10 kbps-5 Mbps poucos kbps ou mais elástica não não não sim, centenas de ms tolerante a perda tolerante a perda sem perda sim, alguns seg sim, centenas de ms sim e não Web e HTTP • Página Web consiste em objetos; • Objeto pode ser: arquivo HTML, imagem JPEG, applet Java, arquivo de áudio,… • Página Web consiste em arquivo HTML básico que inclui vários objetos referenciados • Cada objeto é endereçável por um URL; • Exemplo de URL: • http://esportes.terra.com.br/futebol/estaduais/ nome do host nome do caminho HTTP – Visão Geral • HTTP: HyperText Transfer Protocol; • Protocolo da camada de aplicação da Web; • Modelo cliente/servidor; • Cliente: navegador que requisita, recebe, “exibe” objetos Web; • Servidor: servidor Web envia objetos em resposta a requisições; HTTP – Visão Geral PC rodando Explorer Servidor rodando servidor Web Apache Mac rodando Navigator HTTP – Visão Geral • Usa TCP: • Cliente inicia conexão TCP (cria socket) com servidor, porta 80; • Servidor aceita conexão TCP do cliente; • Mensagens HTTP (do protocolo da camada de aplicação) trocadas entre navegador (cliente HTTP) e servidor Web (servidor HTTP); • conexão TCP fechada; • HTTP é “sem estado”; • servidor não guarda informações sobre requisições passadas do cliente; HTTP – Visão Geral • Mensagem de requisição HTTP: formato geral Cache Web • Objetivo: satisfazer a requisição do cliente sem envolver servidor de origem: • Usuário prepara navegador: acessos à Web via cache; • Navegador envia todas as requisições HTTP ao cache; • Objeto no cache: cache retorna objeto; • Ou cache requisita objeto do servidor de origem, depois retorna objeto ao cliente; Cache Web servidor de origem servidor proxy cliente cliente Cache Web • Cache atua como cliente e servidor; • Normalmente, cache é instalado por ISP (da universidade, empresa, residencial); • Por que caching Web? • Reduz tempo de resposta à requisição do cliente, o tráfego no enlace de acesso de uma instituição; • Internet densa com caches: permite que provedores de conteúdo “fracos” remetam conteúdo efetivamente; FTP – Visão Geral • transfere arquivo de/para hospedeiro remoto • modelo cliente/servidor • cliente: lado que inicia transferência (de/para remoto) • servidor: hospedeiro remoto; conexão de controle TCP porta 21 cliente FTP conexão de dados TCP porta 20 servidor FTP FTP – Visão Geral • Cliente FTP contacta servidor FTP na porta 21, TCP é protocolo de transporte; • Cliente autorizado por conexão de controle; • Cliente navega por diretório remoto enviando comandos por conexão de controle; • Quando servidor recebe comando de transferência de arquivo, abre 2a conexão TCP (para arquivo) com cliente; • Após transferir um arquivo, servidor fecha conexão de dados; FTP – Visão Geral interface cliente de usuário FTP FTP usuário no hospedeiro transf. de arquivos sistema de arquivo local servidor FTP sistema de arquivo remoto DNS – Visão Geral • Como mapear entre endereço IP e nome? • Domain Name System – DNS: • Banco de dados distribuído implementado na hierarquia de muitos servidores de nomes; • Protocolo de aplicação: host, roteadores, servidores de nomes se comunicam para resolver nomes (tradução endereço/nome); • Função básica da Internet, implementada como protocolo em nível de aplicação; • Complexidade na “borda” da rede; Banco de Dados Distribuído Servidores DNS raiz servs. DNS com servs. DNS yahoo.com servs. DNS amazon.com servs. DNS org servs. DNS pbs.org servs. DNS edu servs. DNS servs. DNS poly.edu umass.edu Cliente quer IP para www.amazon.com: • Cliente consulta servidor raiz para achar DNS .com • Cliente consulta servidor DNS .com para obter DNS amazon.com • Cliente consulta servidor DNS amazon.com para obter endereço IP para www.amazon.com DNS – Protocolo • Servidores de domínio de alto nível (TLD) : • Responsáveis por: com, org, net, edu, ... e todos os domínios de país de alto nível: br, uk, fr, ca, jp. • A Network Solutions mantém servidores para TLD .com e a Educause para TLD .edu; • Servidores DNS com autoridade: são servidores da organização, provendo nome de host com autoridade a mapeamentos IP para os servidores da organização (ex.: Web, correio). • Podem ser mantidos pela organização ou ISP; DNS – Protocolo • Protocolo DNS: mensagens de consulta e resposta, ambas com algum formato de mensagem. cabeçalho da mensagem identificação: # de 16 bits para consulta; resposta usa mesmo # flags: consulta ou resposta recursão desejada recursão disponível resposta é com autoridade DNS – Protocolo campos de nome e tipo para uma consulta RRs na resposta à consulta registros para servidores com autoridade Informação adicional “útil” que pode ser usada