Roteamento Referência: Slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro “Redes de Computadores e a Internet – Uma abordagem topdown”, segunda e terceira edições Alterações nos slides, incluindo sequenciamento, textos, figuras e novos slides, foram realizadas conforme necessidade Funções Da Camada De Rede Transportar pacotes entre os sistemas finais da rede A camada de rede deve ter uma entidade em cada sistema final ou roteador da rede aplicação transporter ede enlace fisica rede enlace fisica rede enlace fisica 3 funções importantes: Determinação de caminhos: rota escolhida pelos pacotes entre a origem e o destino. Algoritmos de roteamento Comutação: mover pacotes entre as portas de entrada e de saída dos roteadores rede enlace fisica Estabelecimento de conexão: algumas arquiteturas de rede exigem o estabelecimento de circuitos virtuais antes da transmissão de dados rede enlace fisica rede enlace fisica rede enlace fisica rede enlace fisica rede enlace fisica aplicação transporte rede enlace fisica Modelo Do Serviço De Rede Q: como escolher um modelo de serviço para o canal transportando pacotes da origem ao destino? Banda-passante garantida? Preservação dos intervalos entre pacotes? Entrega sem perdas? Entrega em ordem? Realimentação de informação de congestionamento? Nível mais geral de abstração na camada de rede ? ? ? circuito virtual ou datagrama Circuitos Virtuais (VC) “A ligação entre a origem e o destino emula uma ligação telefônica” Orientado ao desempenho A rede controla a conexão entre a origem e o destino Estabelecimento da conexão deve proceder o envio de dados. Liberação da conexão após os dados. Cada pacote transporte um identificador do CV, não transporta o endereço completo do destino Cada roteador na rota mantém informação de estado para conexão que passa por ele. A conexão de camada de transporte envolve apenas os sistemas finais A banda passante e os recursos do roteador podem ser alocados por VC Controle de Qualidade de Serviço por VC Circuitos Virtuais: Sinalização Usado para estabelecer, manter e encerrar Circuitos Virtuais Usados em ATM, Frame-Relay e X-25, mas não na Internet aplicação transporte 5. Inicia Fluxo de dados 4. Call connected rede enlace 1. Call Request fisica 6. Recebe Dados aplicação 3. Accept call transporte rede 2. incoming call enlace fisica Redes Datagrama: o modelo da Internet Não existem conexões na camada de transporte Não há informação de estado de conexão nos roteadores Não existe conexão na camada de rede Pacotes tipicamente transportam o endereço de destino Pacotes para o mesmo destino podem seguir diferentes rotas aplicação transporte rede enlace 1. Envia dados fisica aplicação transporte rede 2. Recebe dados enlace fisica Datagrama versus Circuito Virtual Internet Dados trocados entre ATM Originário da telefonia computadores Conversação humana: Serviço elástico, requisitos Tempos estritos, de atraso não críticos exigências de Sistemas finais inteligentes confiabilidade Podem adaptar-se, realizar Necessário para serviço controle e recuperação de garantido erros A rede é simples, a Sistemas finais “burros” complexidade fica nas pontas Telefones Muitos tipos de enlaces Complexidade dentro da Características diferentes rede Difícil obter um serviço uniforme Roteamento Protocolo de Roteamento 5 OBJ: determinar “bons” caminhos (seqüência de roteadores) através da rede da fonte ao destino. 2 A Algoritmos de roteamento são descritos por grafos: Nós do gráfo são roteadores Arestas do grafo são enlaces Custo do enlace: atraso, preço ou nível de congestionamento B 2 1 D 3 C F 1 3 1 5 E 2 “bons” caminhos: tipicamente corresponde aos caminhos de menor custo caminhos redundantes Classificação dos Algoritmos de Roteamento Informação global ou descentralizada Global: Todos os roteadores tem informações completas da topologia e dos custos dos enlaces algoritmos “Link state” Descentralizada: Roteadores só conhecem informações sobre seus vizinhos e os enlaces para eles Processo de computação interativo, troca de informações com os vizinhos algoritmos “Distance vector” Estático ou Dinâmico? Estático: As rotas mudam lentamente ao longo do tempo Dinâmico: As rotas mudam mais rapidamente Atualizações periódicas Podem responder a mudanças no custo dos enlaces Algoritmo Link-state Algoritmo de Dijkstra’s Topologia de rede e custo dos enlaces são conhecidos por todos os nós. Implementado via “link state broadcast” Todos os nós têm a mesma informação Computa caminhos de menor custo de um nó (fonte) para todos os outros nós Fornece uma tabela de roteamento para aquele nó Convergência: após k iterações, conhece o caminho de menor custo para k destinos. Notação: C(i,j): custo do enlace do nó i ao nó j. Custo é infinito se não houver ligação entre i e j D(v): valor atual do custo do caminho da fonte ao destino V P(v): nó predecessor ao longo do caminho da fonte ao nó v, isto é, antes do v N: conjunto de nós cujo caminho de menor custo é definitivamente conhecido Exemplo: Algoritmo de Dijkstra’s Passo 0 1 2 3 4 5 início N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinito infinito 2,A 4,D 2,D infinito 2,A 3,E 4,E 3,E 4,E 4,E 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 Algoritmo “Distance Vector” Iterativo: Continua até que os nós não troquem mais informações. Self-terminating: Não há sinal de parada Assíncrono: Os nós não precisam trocar informações simultaneamente! Distribuído: Cada nós se comunica apenas com os seus vizinhos, diretamente conectados Estrutura de Dados da Tabela de Distância Cada nó tem sua própria tabela Linha para cada possível destino Coluna para cada roteador vizinho Exemplo: no nó X, para destino Y via vizinho Z: X D (Y,Z) distância de X to = Y, via Z como prox. salto Z = c(X,Z) + minw{D (Y,w)} A Tabela de Distâncias Gera a Tabela de Roteamento custo através de E A B D A 1 14 5 A A,1 B 7 8 5 B D,5 C 6 9 4 C D,4 D 4 11 2 D D,2 Tabela de distância Enlace de saída, cost destino destino D () Tabela de Roteamento Roteamento Vetor-Distância: Resumo Iterativo, assíncrono: cada iteração local é causada por: Mudança de custo dos enlaces locais Mensagem do vizinho: seu caminho de menor custo para o destino mudou Distribuído: Cada nó notifica seus vizinhos apenas quando seu menor custo para algum destino muda Vizinhos notificam seus vizinhos e assim por diante Cada nó: espera por mudança no custo dos enlaces locais ou mensagem do vizinho recalcula tabela de distância se o caminho de menor custo para algum destino mudou, notifica vizinhos Comparação dos Algoritmos LS e VD Complexidade LS: com n nós, E links, o(ne) mensagens enviadas DV: trocas somente entre vizinhos Tempo de convergência varia Tempo de convergência LS: algoritmo o(n**2) exige o(ne) msgs Pode ter oscilações DV: tempo de convergência varia Podem haver loops de roteamento Problema da contagem ao infinito Robustez: o que acontece se um roteador funciona mal? Ls: Nós podem advertir custos incorretos para os enlaces. Cada nó calcula sua própria tabela de roteamento Dv: Nó pode advertir caminhos com custo incorreto Tabela de cada nó é usada por outros • Propagação de erros pela rede Roteamento Hierárquico Problemas do mundo real roteadores não são todos idênticos as redes não são “flat” na prática Escala: com 50 milhões de destinos: Autonomia Administrativa Não é possível armazenar Cada administração de rede todos os destinos numa única tabela de rotas! As mudanças na tabela de rotas irão congestionar os enlaces! Internet = rede de redes pode controlar somente o roteamento na sua própria rede Roteamento Hierárquico Agrega roteadores em regiões, “sistemas autônomos ” (AS) Roteadores no mesmo AS rodam o mesmo protocolo de roteamento Protocolo de roteamento “Intra-as” Roteadores em diferentes AS podem rodar diferentes protocolos de roteamento roteadores de borda Roteadores de interface de um AS Rodam protocolos de roteamento intra-as com os outros roteadores do AS Também responsáveis por enviar mensagens para fora do AS Rodam protocolo de roteamento inter-as com outros roteadores de borda Roteamento Intra-as and Inter-as C.b a C Roteadores de Borda B.a A.a b A.c d A a b c a c B b •realizam roteamento interAS entre si •realizam roteamento intraAS com outros roteadores do mesmo AS Camada de rede Roteamento inter-AS, intra-AS no roteador A.c Camada de enlace Camada fisica Roteamento Intra-AS e Inter-AS roteamento Inter-AS entre A e B B.a C.b a Host h1 C b A.a A.c a d c b A roteamento Intra-AS dentro AS A a c B Host h2 b roteamento IntraAS dentro do AS B A camada de rede da Internet Entidade de rede em roteadores ou hosts: Camada de Transporte: TCP, UDP Camada de Rede protocolo IP •endereçamento •formato dos datagramas •tratamento de pacotes Prot. de roteamento •escolha de caminhos •RIP, OSPF, BGP tabela de rotas protocolo ICMP •aviso de erros •sinalização de rotas Camada de enlace Camada física Endereçamento IP: Introdução endereço IP: identificador de 32-bits para interfaces de roteadores e hosts Interface: conexão entre roteador ou host e enlace físico 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 Roteador tem tipicamente múltiplas interfaces Hosts podem ter 223.1.3.2 223.1.3.1 múltiplas interfaces endereços IP são associados com interfaces, não com o host ou com o roteador 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 Endereçamento IP Endereço IP: parte de rede (bits mais significativos) parte de Host part (bits menos significativos) O que é uma rede? (na prespectiva do endereço) Interfaces de dispositivos com a mesma parte de rede no endereço IP Podem fisicamente se comunicar sem o auxílio de um rotedor 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 LAN 223.1.3.1 223.1.3.2 rede consistindo de 3 redes IP (para endereços IP começando com 223, os primeiros 24 bits são o endereço de rede ) Endereçamento IP Como encontrar as redes Separe cada interface de roteadores e hosts Criar ilhas de redes isoladas Técnica de nuvens 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 Sistema com seis redes interconectadas 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 Endereços IP endereçamento “class-full”: class A 0 rede B 10 C 110 D 1110 1.0.0.0 to 127.255.255.255 host rede 128.0.0.0 to 191.255.255.255 host rede host multicast address 32 bits 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 Endereçamento IP: CIDR Endereçamento “Classful”: Uso ineficiente do espaço de endereçamento, exaustão do espaço de endereços E.G., rede de Classe B aloca endereços para 65K hosts, mesmo se só existem 2000 hosts naquela rede CIDR: classless interdomain routing A porção de endereço de rede tem tamanho arbitrário Formato do endereço: a.B.C.D/x, onde x é o número de bits na parte de rede do endereço parte de rede parte de host 11001000 00010111 00010000 00000000 200.23.16.0/23 Como obter um endereço IP Hosts : Endereço fixo: definido pelo administrador DHCP: dynamic host configuration protocol: permite a atribuição dinâmica de endereços IP Host envia (broadcast) mensagem “DHCP discover” DHCP server responde com mensagem “DHCP offer” Host pede endereço IP com mensagem : “DHCP request” DHCP server envia endereço com a mensagem: “DHCP ack” Endereçamento Hierárquico: agregação de rotas O endereçamento hierárquico permite uma propagação de rotas mais eficiente: Organização 0 200.23.16.0/23 Organização 1 “Me envie qualquer coisa com endereço começando por 200.23.16.0/20” 200.23.18.0/23 Organização 2 200.23.20.0/23 Organização 7 . . . . . . Fly-By-Night-ISP Internet 200.23.30.0/23 ISPs-R-Us “Me envie qualquer coisa com endereço começando por 199.31.0.0/16” Roteamento Hierárquico:rotas mais específicas ISPs-R-Us tem uma rota mais específica para a organização 1 Organização 0 200.23.16.0/23 Organização 2 200.23.20.0/23 Organização 7 . . . . . . “Me envie qualquer coisa com endereço começando por 200.23.16.0/20” Fly-By-Night-ISP Internet 200.23.30.0/23 ISPs-R-Us Organização 1 200.23.18.0/23 “Me envie qualquer coisa com endereço começando por 199.31.0.0/16 ou 200.23.18.0/23” Como obter um endereço IP... Q: Como o ISP obtém seu bloco de endereço? A: ICANN: internet corporation for assigned names and numbers Aloca endereços Gerencia DNS Atribuí nomes de domínios e resolve disputas Formato do Datagrama IP versão do Protocolo IP tamanho do header (bytes) Classe de serviço número máximo de saltos (decrementado em cada roteador) Protocolo da camada superior com dados no datagrama 32 bits ver head. type of len service lenght fragment 16-bit identifier flgs offset time to protoInternet col live checksum tamanho total do datagrama (bytes) para fragmentação/ remontagem 32 bit endereço IP de origem 32 bit endereço IP de destino Opções (se houver) data (tamanho variável , tipicamente um segmento TCP ou UDP) Ex. timestamp, registro de rota lista de roteadores a visitar. IP Fragmentação e Remontagem enlaces de rede têm MTU (max.transfer size) - corresponde ao maior frame que pode ser transportado pela camada de enlace. tipos de enlaces diferentes possuem MTU diferentes (ethernet: 1518 bytes) datagramas IP grandes devem ser divididos dentro da rede (fragmentados) fragmentação in: um datagrama grande out: 3 datagramas menores um datagrama dá origem a vários datagramas “remontagem” ocorre apenas no destino final O cabeçalho IP é usado para identificar e ordenar datagramas relacionados reassembly Roteamento na Internet A Internet consiste de Sistemas Autônomos (AS) interconectados entre si: Stub AS: pequena corporação Multihomed AS: grande corporação (sem tráfego de trânsito) com mais de uma saída para a Internet Transit AS: provedor Dois níveis de roteamento: Intra-AS: o administrador é responsável pela definição do método de roteamento Inter-AS: padrão único (BGP) Hierarquia de AS Roteador de borda Inter-AS (exterior gateway) Roteador interno Intra-AS (gateway) Roteamento Intra-AS Também conhecido como Interior Gateway Protocols (IGP) IGPs mais comuns: RIP: Routing Information Protocol OSPF: ISIS: Open Shortest Path First Intermediate System to Intermediate System RIP ( Routing Information Protocol) Algoritmo do tipo vetor distância Incluso na distribuição do BSD-UNIX em 1982 Métrica de distância: # of hops (max = 15 hops) motivo: simplicidade Vetores de distância: trocados cada 30 sec via Response Message (também chamado advertisement, ou anúncio) Cada anúncio: indica rotas para até 25 redes de destino RIP Processamento da tabela de rotas As tabelas de roteamento do RIP são manipuladas por um processo de aplicação chamado routed (daemon) anúncios são enviados em pacotes UDP com repetição périódica OSPF (Open Shortest Path First) “open”: publicamente disponível Usa algoritmo do tipo Link State disseminação de pacotes LS Mapa topológico em cada nó usa algoritmo de Dijkstra’s para cálculo de rotas anúncios do OSPF transportam um registro para cada roteador vizinho Anúncios são distribuídos para todo o AS (via flooding) OSPF características avançadas Segurança: todas as mensagens do OSPF são autenticadas (para previnir intrusão de hackers); usa conexões TCP para as suas mensagens Múltiplos caminhos de mesmo custo são permitidos (o RIP só permite um caminho para cada destino) Para cada enlace podem ser calculadas múltiplas métricas uma para cada tipo de serviço (TOS) (ex, custo de enlace por satélite definido baixo para tráfego de “melhor esforço” e alto para serviços de tempo real) Integra tráfego uni- e multicast : Multicast OSPF (MOSPF) usa a mesma base de dados topológica do OSPF Hierarchical OSPF: dois níveis de roteamento para domínios grandes. OSPF Hierárquico Inter-AS routing Internet inter-AS routing: BGP BGP (Border Gateway Protocol): é o padrão de fato para uso na Internet Algoritmo Path Vector : similar ao protocolo Distance Vector cada Border Gateway envia em broadcast aos seus vizinhos (peers) o caminho inteiro (isto é a seqüência de ASs) até o destino Exemplo: Gateway X deve enviar seu caminho até o destino Z: Path (X,Z) = X,Y1,Y2,Y3,…,Z Internet inter-AS routing: BGP Suponha: roteador X envia seu caminho ao roteador parceiro W W pode escolher ou não o caminho oferecido por X critérios de escolha: custo, regras (não rotear através de AS rivais ), prevenção de loops. Se W seleciona o caminho oferecido por X, então: Path (W,Z) = w, Path (X,Z) Nota: X pode controlar o tráfego de entrada controlando as rotas que ele informa aos seus parceiros: ex., se X não quer rotear tráfego para Z, X não informa nenhuma rota para Z Internet inter-AS routing: BGP As mensagens do BGP são trocadas encapsuladas no TCP. mensagens BGP: OPEN: inicia a conexão TCP com um roteador parceiro e autentica o transmissor UPDATE: anuncia novo caminho (ou retira um velho) KEEPALIVE mantém a conexão viva em caso de ausência de atualizações; também reconhece mensagens OPEN NOTIFICATION: reporta erros nas mesnagens anteriores; também usado para encerrar uma conexão Porque os protocolos Intra- e Inter-AS são diferentes ? Políticas: Inter-AS: a administração quer ter controle sobre como seu tráfego é roteado e sobre quem roteia através da sua rede. Intra-AS: administração única: as decisões políticas são mais simples Escalabilidade O roteamento hierárquico poupa espaço da tabela de rotas e reduz o tráfego de atualização Performance: Intra-AS: preocupação maior é desempenho Inter-AS: regras de mercado podem ser mais importantes que desempenho Enfileiramento na Porta de Entrada Se a estrutura de comutação for mais lenta que a capacidade combinada das portas de entrada -> pode ocorrer filas nas portas de entrada Bloqueio Head-of-the-Line (HOL): datagramas enfileirados no início da fila bloqueiam aqueles que estão atrás na fila atrasos de filas e perdas são provocados pela saturação do buffer de entrada! Três tipos de estruturas de comutação Filas na porta de saída armazenamento quando a taxa de chegada pelo comutador excede a velocidade da linha de saída filas(atrasos) e perdas são provocados por um overflow do buffer da porta de saída!