4 1 camada rede 2010
Upcoming SlideShare
Loading in...5
×
 

4 1 camada rede 2010

on

  • 283 views

 

Statistics

Views

Total Views
283
Views on SlideShare
283
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

4 1 camada rede 2010 4 1 camada rede 2010 Presentation Transcript

  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática1Redes de ComputadoresRedes de ComputadoresCamada Rede
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática2 Camada de RedeCamada Transporte - RevisãoServiços da camada de transporteMultiplexagem e desmultiplexagemTransporte não orientado à ligação: UDPPrincípios da transferência fiável de dadosTransporte orientado à ligação: TCP– transferência fiável de dados– controlo do fluxo– Gestão de ligaçõesPrincipios do controlo do congestionamento– Controlo de congestionamento do TCP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática3 Camada de RedeCamada RedeServiços da camada de rede– Circuitos virtuais– DatagramasFuncionamento de um encaminhador (“router”)Camada de rede na Internet: o protocolo IPPrincípios de encaminhamento: selecção de um caminhoOutros aspectos da camada de rede na Internet– DHCP, NAT, ICMP, IPv6Encaminhamento hierárquicoEncaminhamento na Internet– intra domínio– inter domínioEncaminhamento “multicast”Objectivos:Entender os princípios em que se fundamentam os serviços de redeselecção de caminhos, escalabilidade, como funciona um router.tópicos avançados: IPv6, instanciação e implementação na InternetObjectivos:Entender os princípios em que se fundamentam os serviços de redeselecção de caminhos, escalabilidade, como funciona um router.tópicos avançados: IPv6, instanciação e implementação na InternetSegue Capitulo 4 do livro de J.F Kurose e K.W. Ross
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática4 Camada de RedeCamada de redeObjectivoTransporte de pacotes do sistema terminal deorigem ao sistema terminal de destino• os protocolos da camada de rede existem em todos ossistemas terminais e todos os nós intermédios (routers)Funções importantesDeterminação do caminho (“routing”): rota seguida pelos pacotes daorigem ao destino. Algoritmos de encaminhamentoComutação (“forwarding”): copiar os pacotes de uma entrada do nó(“router”) para a saída apropriadaEstabelecimento de chamada: algumas arquitecturas exigem oestabelecimento de uma ligação entre origem e destino antes dacomunicação de dados (“call setup”)redelógicafísicaredelógicafísicaredelógicafísicaredelógicafísicaredelógicafísicaredelógicafísicaredelógicafísicaredelógicafísicaaplicaçãotransporteredelógicafísicaaplicaçãotransporteredelógicafísica
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática5 Camada de RedeEstabelecimento de Ligação3ª função importante em algumas arquitecturas derede:– ATM, frame relay, X.25Antes dos datagramas fluírem, dois hosts e routersintermediários estabelecem uma ligação virtualServiço de ligação das camadas de transporte e derede:– Rede: entre dois hosts– Transporte: entre dois processos
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática6 Camada de Rede1230111valor no cabeçalhodo pacote que estáA chegarAlgoritmo deencaminhamentotabela de encaminhamento localvalor cabeçalho link saída01000101011110013221Encaminhamento de Pacotes
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática7 Camada de Rede• Largura de banda garantida?• Preservação do intervalo detempo entre pacotes(eliminação do “jitter”)?• Entrega sem perdas?• Entrega na ordem?• Envio de informação decongestão para a fonte?Arquitecturade RedeInternetATMATMATMATMModelo deserviçomelhoresforçoCBRVBRABRUBRBandanenhumataxaconstantetaxagarantidamínimagarantidanenhumaPerdasnãosimsimnãonãoOrdemnãosimsimsimsimTemponãosimsimnãonãoInformaçãocongestãonão (inferidovia perdas)n.a. semcongestion.n.a. semcongestion.simnãoGarantias ?Modelos de serviço da camada de redeQual o modelo de serviços no transporte de pacotes da origem para o destino ?O Modelo de serviços da camada de rede define as caracteristicas dotransporte de dados extremo a extremo entre dois terminais na rede• entre os sistemas terminais emissor e receptorPara a Internet estão a ser definidos novos modelos de serviços: Intserv, Diffserv
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática8 Camada de RedeServiços de Transporte e de Rede come sem LigaçãoServiço de ligação na camada de rede entre sistemas terminais– Serviço de ligação na camada transporte entre processosA implementação de serviços com ligação nas camadas de redee de transporte são fundamentalmente diferentes– na camada de rede é implementado não só nos sistemas terminaismas também nos routers no interior da redeCaracterística importantedo serviço prestado pelacamada de rede:Circuito Virtual?ouDatagrama ?Nas redes actuais, a camada de redefornece ou serviços de rede com ligação(Circuitos Virtuais - VC) ou sem ligação(Rede de Datagramas)– mas não ambos
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática9 Camada de RedeEstabelecimento de um caminho (chamada) antes da transmissãode dados e correspondente acção de desligar cada chamadaCada pacote transporta o identificador do circuito virtual– não inclui necessariamente a identificação do computador destinoCada nó, no caminho origem-destino, mantém o estado de cadaligaçãoPara cada circuito virtual podem ser reservados recursos ao longodo caminho incluindo largura de banda e memória nos nósO caminho entre origem e destino “assemelha-se” a umcircuito telefónico tradicionalCircuitos Virtuais
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática10 Camada de RedeImplementação de Circuito Virtual(VC – Virtual Circuit)Estabelecimento do Circuito Virtual– Camada de rede determina o caminho entre emissor ereceptorAdiciona entrada em cada router ao longo do caminho– Determina o número do VC para cada ligação ao longodo caminhoPacote que pertence a um VC contém o número do VCNúmero do VC deve ser trocado a cada ligação – Porquê?Novo número do VC vem da tabela de encaminhamentoTransferência de Dados no Circuito VirtualTerminação do Circuito Virtual– Sistema terminal informa a camada de rede que querterminar o VC– Actualização das tabelas dos routers ao longo docaminho (VC deixou de existir)Circuito VirtualUm VC consiste em:1. Caminho daorigem para odestino2. Números(identificadores)de VC, umnúmero paracada ligação aolongo do caminho3. Entradas nastabelas deencaminhamentodos routers aolongo do caminhoUm VC consiste em:1. Caminho daorigem para odestino2. Números(identificadores)de VC, umnúmero paracada ligação aolongo do caminho3. Entradas nastabelas deencaminhamentodos routers aolongo do caminhoimaginem o esforço de rede para garantir que um número de VCera único ao longo da rede...assim, apenas o router tem quegarantir que números de VC nas suas interfaces são únicos!
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática11 Camada de Rede12 22 32123Número do VCnúmero dainterfaceInterface de entrada # VC de entrada Interface de saída # VC de saída1 12 3 222 63 1 183 7 3 171 97 2 87… … … …Tabela de expediçãoOs Routers guardam informação do estado de cada ligaçãoTabela deEncaminhamentoR1R2R3R4Router R1Router’s Forwarding Table
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática12 Camada de RedeRouters ao longo do caminho entre terminais estão envolvidos na criação do VC– router actualiza tabela de encaminhamento (ao milisegundo) assim que é criado um VC ouque este é terminado, criando ou eliminando entradas na tabela.– cada router mantém estado sobre todos os VCs que passam por eleMensagens de Sinalização (“signaling messages”)– mensagens que sistemas terminais enviam para a rede para estabelecer ou terminar um VC– e mensagens trocadas entre routers para estabelecer um circuito virtual (para modificar oestado da ligação nas tabelas de encaminhamento)Protocolos de sinalização (“signaling protocols”)– usados para trocar mensagens de sinalização para estabelecer, manter e terminar um VC– usados no ATM, frame-relay, X.25aplicaçãotransporteredeligaçãofísicaaplicaçãotransporteredeligaçãofísica1. inicia chamada 2. chegada de chamada3. chamada aceite4. chamada completa5. começa fluxo de dados 6. dados recebidosProtocolos de Sinalização em VCs
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática13 Camada de RedeRedes de Datagramas(modelo Internet)Não há estabelecimento de ligação nacamada de redeNós não guardam estado das ligaçõesextremo a extremo– o conceito de “ligação” não existe ao nível dacamada de redeOs pacotes são tipicamente encaminhadospelo identificador do computador de destino– 2 pacotes entre o mesmo par origem-destinopodem seguir caminhos diferentesaplicaçãotransporteredeenlacefísicaaplicaçãotransporteredeenlacefísica1. envia dados 2. recebe dados
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática14 Camada de RedeRede de Datagramas– Tabela de encaminhamento4 biliões deentradas possíveis4 biliões deentradas possíveisFaixa de Endereços de Destino Interface de Saída11001000 00010111 00010000 00000000a 011001000 00010111 00010111 1111111111001000 00010111 00011000 00000000a 111001000 00010111 00011000 1111111111001000 00010111 00011001 00000000a 211001000 00010111 00011111 11111111Outros 3Exemplo (PC)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática15 Camada de RedeDeterminação da Interface de SaídaPrefixo Interface de Saída11001000 00010111 00010 011001000 00010111 00011000 111001000 00010111 00011 2caso contrário 311001000 00010111 00011000 10101010Exemplos: Qual a interface de saída para os endereços?11001000 00010111 00010110 10100001O maior prefixo do endereço na tabela determina a interface de saídaInterface 0Interface 1
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática16 Camada de RedeInternettroca de dados entre computadores– serviço “elástico”, sem requisitostemporais estritos– a eliminação do “jitter” não eraimportanteterminais “inteligentes” (computadores)– os terminais podem adaptar-se,implementar controlo de erros erecuperar de situações de erro– o interior da rede pode ser simplesreservando a complexidade para osextremos (network edge)tipos diferentes de ligações físicas com– diferentes características– dificuldade em fornecer um serviçouniformeATMevoluiu da rede telefónicaconversação humana:– temporização estrita, grandesexigências de fiabilidade– eliminação do “jitter” muitoimportante– necessidade de garantia dequalidade de serviçosistemas terminais “dumb”– Telefones tradicionais– complexidade introduzida nointerior da redeDatagramas vs Circuitos Virtuais
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática17 Camada de RedeServiços da camada de rede – RevisãoServiços da camada de rede– Circuitos virtuais– DatagramasFuncionamento de um encaminhador (“router”)Camada de rede na Internet: o protocolo IPPrincípios de encaminhamento– selecção de um caminhoOutros aspectos da camada de rede na Internet– DHCP, NAT, ICMP, IPv6Encaminhamento hierárquicoEncaminhamento na Internet– intra domínio– inter domínioEncaminhamento “multicast”Camada de Rede–encaminhamentode pacotesModelos deserviço dacamada de redeServiços deTransporte e deRede com e semLigaçãoCircuitos VirtuaisRede deDatagramasDatagramas vsCircuitos VirtuaisCamada de Rede–encaminhamentode pacotesModelos deserviço dacamada de redeServiços deTransporte e deRede com e semLigaçãoCircuitos VirtuaisRede deDatagramasDatagramas vsCircuitos Virtuais
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática18 Camada de RedeDuas funções fundamentaisexecução de algoritmos/protocolos de encaminhamento (RIP, OSPF, BGP)comutação de datagramas das ligações de entrada para as ligações de saídaArquitectura de um Nó (“Router”)• Executa os protocolos de encaminhamento• Mantém as tabelas de encaminhamento• Executa as funções de gestão de rede
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática19 Camada de RedeComutação descentralizada:dado endereço de destino de um datagrama,determinar o porto de saída consultando atabela de encaminhamento na memória localobjectivo: completar todas as tarefas aoritmo de chegada da ligaçãose os datagramas chegam mais depressaque o ritmo de envio para a malha decomutação existe uma fila de esperaCamada física:recepção de bitsCamada de ligação dedados: e.g. EthernetFunções dos Portos de Entrada• Portos multiplos juntos numa sócarta de hardware dentro do router• Mantém cópia da tabela deexpedição - processador actualiza• encaminhamento descentralizadopelos vários portos de entrada• Portos multiplos juntos numa sócarta de hardware dentro do router• Mantém cópia da tabela deexpedição - processador actualiza• encaminhamento descentralizadopelos vários portos de entrada
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática20 Camada de RedeSe a malha de comutação é mais lenta que os portos de entradacombinados podem surgir filas de espera na entradaBloqueio “Head-of-the-Line (HOL)”: o datagrama na primeira posiçãoda fila impede outros de serem encaminhados para uma saídasurgem atrasos e perdasFila de Espera no Porto de Entrada
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática21 Camada de RedeÉ necessário o armazenamento (“Buffering”) quando os datagramaschegam da malha a um ritmo maior que a largura de banda de saídaDisciplina de serviço (“scheduler”): escolhe o datagrama, de entre osque estão na fila, que é transmitido a seguir– FCFS: first come first served– WFQ: Weighted fair queuing. Partilha o canal de saída de modo justoentre as ligações com pacotes a transmitirFunções dos Portos de Saída
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática22 Camada de RedeFila de Espera no Porto de SaídaUtiliza buffers quando taxa de chegada através do comutador excede taxa detransmissão de saídaA fila de espera do porto de saída pode introduzir Atraso e Perdas– devidas ao transbordo do buffer do porto de saída.– se memória insuficiente, descartar pacote que chegou (drop-tail policy)– ou remover 1 ou mais pacotes já na fila de espera para dar lugar ao novo pacote
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática23 Camada de RedeArquitecturas de ComutaçãoSwitch FabricÉ através do “Switching Fabric” que os pacotes são efectivamenteencaminhados de um porto de entrada para um porto de saída
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática24 Camada de Rede“routers” de primeira geraçãoporto de entrada sinaliza processador da chegada de pacote usando interruptcada pacote é copiado para a memória pela única CPU do sistemavelocidade limitada pela largura de banda de acesso à memória– 2 passagens pelo “bus” do sistema por datagramaMemóriaPorto deEntradaPorto deSaídaBus do Sistema“routers” modernosprocessador de entrada consulta a tabela e copia para memória partilhada– exemplo: Cisco Catalyst 8500Comutaçãoatravés da MemóriaSwitch Fabric
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática25 Camada de RedeCada datagrama é transmitido da memóriado porto de entrada para a memória doporto de saída através de um “bus”Apenas um pacote pode ser transportadopelo “bus” de cada vezVelocidade de comutação limitada pelalargura de banda do “bus”Exemplo: Cisco 1900 (“bus” de 1 Gbps) -suficiente para o acesso de médiasempresas à InternetComutação através de um “bus”Switch Fabric
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática26 Camada de RedeComutação através de uma MalhaUltrapassa as limitações impostas pelo “bus”– 2n “buses” ligam n portos de entrada a n portos de saídaRedes inicialmente propostas para interligar processadoresnum ambiente multiprocessador, redes de BanyanEstruturas avançadas: fragmentação de datagramas empacotes de tamanho fixo dentro da malha de comutaçãoExemplo Cisco 12000: pode comutar dezenas de Gbps viaa sua malha de comutaçãoSwitch FabricMalha N-dimensional
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática27 Camada de RedeFuncionamento de um encaminhador –RevisãoServiços da camada de rede– Circuitos virtuais– DatagramasFuncionamento de um encaminhador (“router”)Camada de rede na Internet: o protocolo IPPrincípios de encaminhamento– selecção de um caminhoOutros aspectos da camada de rede na Internet– DHCP, NAT, ICMP, IPv6Encaminhamento hierárquicoEncaminhamento na Internet– intra domínio– inter domínioEncaminhamento “multicast”Arquitectura deum Nó deEncaminhamentoPortos deEntrada e Saída–Funções–Filas de esperaArquitecturas deComutação–Memória–“Bus”–MalhaArquitectura deum Nó deEncaminhamentoPortos deEntrada e Saída–Funções–Filas de esperaArquitecturas deComutação–Memória–“Bus”–Malha
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática28 Camada de RedeTabela deencaminhamentoProtocolos deencaminhamento•selecção de caminhos•RIP, OSPF, BGPprotocolo IP•convenções de endereços•formato do datagrama•convenções de manuseio do pacoteprotocolo ICMP• reporta erros• sinalizaçãoCamada de transporte: TCP, UDPCamada de ligação de dadosCamada físicaCamadade redeCamada de Rede na InternetFunções da camada de rede
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática29 Camada de Redever comprimento32 bitsdados(comprimento variável, tipicamente umsegmento TCP ou UDP, ou mensagem ICMP)ident. 16-bitsInternet checksum(apenas do header)Time toliveendereço IP de origem 32 bitsnº da versão do prot. IPcomprimento docabeçalho (bytes)Datagramas não duramforever. nº max de hopsq restam (decrementadoem cada router, 0=drop)indica a posição de umfragmento de dados emrelação ao 1º byte dosdados (o qual tem offset 0)comprimento total dodatagrama (em bytes)prot. camada superiorao qual entregar dados(6 = TCP, 17 = UDP)comp.cabeçalhotipo deserviçodefinição deníveis de serviço bitsinício (offset)do fragmentoProt. camsuperiorendereço IP de destino 32 bitsOpções (se tiver, não usado no IPv6)e.g. especificar lista derouters a visitar, marcatemporal timestamp, re-gistar caminho seguidoFormato do datagrama IPv4número único usado paraidentificar a trama e outrosfragmentos associadospara reagrupamentoOverhead com o TCP?20 bytes do TCP20 bytes do IP= 40 bytes +overhead dacamada aplicaçãoFlags (3-bits)Para fragmentação/Reagrupamento[RFC 791]
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática30 Camada de RedeFragmentação e Reagrupamentoem IPv4Comprimento máximo de datagramaIP é 216 = 65535 bytes.As ligações da rede têm umtamanho máximo para as tramas dacamada de ligação de dados– MTU “max transfer size” (e.g. 576Bytes, 1500 Bytes na Ethernet)– ligações diferentes têm MTUsdiferentesDatagramas IPv4 grandes podemser divididos (“fragmentados”)dentro da rede (mas não no IPv6)– um datagrama é dividido em váriosdatagramas num router– são reagrupados apenas no destino– existem campos no cabeçalho IPque são usados para identificar eordenar os fragmentosreagrupamentofragmentaçãoentrada: um datagrama grandesaída: 3 datagramas menoresdadoscabeçalho
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática31 Camada de RedeFragmentação e reagrupamentoem IPv4ID=xinício=0bit_frag=0compr=4000ID=xinício=0bit_frag=1compr=1500ID=xinício=185bit_frag=1compr=1500ID=xinício=370bit_frag=0compr=1040Um datagrama transforma-seem vários datagramas mais pequenosExemploDatagrama de 4000bytesMTU = 1500 bytes1480 bytesde dadosinício =1480/83980 bytes de dadosSe 1 ou mais fragmentos se perdem, odatagrama incompleto é descartado enão é passado à camada de transporte.[RFC 791] The data of the long datagram is divided into two portions on a 8 octet (64 bit)boundary (the second portion might not be an integral multiple of 8 octets, but the first mustbe). Call the number of 8 octet blocks in the first portion NFB (for Number of Fragment Blocks).
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática32 Camada de RedeEndereçamento IP: introduçãoendereço IP - ID de 32 bitspara interface da máquinaou nó (router) – total 232interface: ligação entremáquina ou router e ocanal físico– router típico tem váriasinterfaces– máquina pode ter apenas1 ou ter várias interfaces– endereços IP estãoassociados às interfaces,não à máquina ou router 223.1.3.1 = 11011111 00000001 00000011 00000001223 1 13223.1.1.1223.1.1.2223.1.1.3223.1.1.4 223.1.2.9223.1.2.2223.1.2.1223.1.3.2223.1.3.1223.1.3.27Esta rede é constituida por 3 redes IP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática33 Camada de RedeRedes e Subredes (Subnets) IPEndereço IP– parte da rede (bits de maiorordem). Network prefix– parte da máquina (bits demenor ordem – “host part”)Definição de sub(rede) IP (daperspectiva do endereço IP)– Conjunto de interfaces dedispositivos com a mesmaparte de rede nos seusendereços IP– podem comunicar entreelas sem intervenção de umnó encaminhador (“router”)223.1.1.0/24223.1.2.0/24223.1.3.0/24Máscara da sub-rede (subnet mask): / 24Para os endereços IP começados por 223,os primeiros 24 bits são o endereço de redee.g. Ethernet LAN
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática34 Camada de Rededesassociar cadainterface do seurouter, máquinacriar “ilhas” de redesisoladascada rede isolada éuma sub-redeRedes e Subredes IP – ExemploSistema interligado constituído por 6 redes IP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática35 Camada de RedeEndereçamento IP– Endereçamento em ClassesClasse A /8, Classe B /16, Classe C /24Uso ineficiente do espaço de endereçamento– e.g., a atribuição de uma rede de classe B reserva espaço para cerca de65000 computadores (e organização só precisa de 2000)– Classe C para apenas 28-2=254 máquinas (2 endereços reservados)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática36 Camada de Redeparte demáquinaEndereçamento IP – CIDRCIDR: Classless InterDomain Routing– parte de rede do endereço de comprimento arbitrário– formato de endereço: a.b.c.d/x, onde x é número de bits na parte derede do endereço11001000 00010111 00010000 00000000partede rede200.23.16.0/22A uma organização é normalmente atribuido bloco de endereços adjacentes– parte de rede comum X bits utilizada por routers para encaminhar pacotes paraqualquer dispositivo da organização => maior eficiência, menor tamanho nastabelas de encaminhamentoParte de máquina (32-X): para diferenciar dispositivos dentro da organização– Podem ter ou não parte de subrede para routers dentro da organizaçãoBroadcast Address: 255.255.255.255– mensagem entregue em broadcast para todas as máquinas na redeA uma organização é normalmente atribuido bloco de endereços adjacentes– parte de rede comum X bits utilizada por routers para encaminhar pacotes paraqualquer dispositivo da organização => maior eficiência, menor tamanho nastabelas de encaminhamentoParte de máquina (32-X): para diferenciar dispositivos dentro da organização– Podem ter ou não parte de subrede para routers dentro da organizaçãoBroadcast Address: 255.255.255.255– mensagem entregue em broadcast para todas as máquinas na rede
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática37 Camada de RedeObtenção de bloco de endereços do ISPBloco do 11001000 00010111 00010000 00000000 200.23.16.0/20fornecedorOrganização 0 11001000 00010111 00010000 00000000 200.23.16.0/23Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23Organização 2 11001000 00010111 00010100 00000000 200.23.20.0/23... ….. …. ….Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23Recepção de uma parte do espaço de endereços do ISP
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática38 Camada de Rede“mande-me qq coisacom endereços quecomeçam com200.23.16.0/20”200.23.16.0/23200.23.18.0/23200.23.30.0/23Fornecedor AOrganização 0Organização 7InternetOrganização 1Fornecedor B“mande-me qq coisacom endereços quecomeçam com199.31.0.0/16”200.23.20.0/23Organização 2......Endereçamento hierárquico permite publicar de forma eficiente informação sobre caminhosEndereçamento Hierárquico– Agregação de Caminhos (ou de Endereços)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática39 Camada de Rede“mande-me qq coisacom endereços quecomeçam com…/23 ou …/22 ou …/21”200.23.16.0/23200.23.18.0/23200.23.30.0/23Fornecedor AOrganização 0Organização 7 InternetOrganização 1Fornecedor B“mande-me qq coisa comendereços que começamcom 199.31.0.0/16 ou200.23.18.0/23”200.23.20.0/23Organização 2......Endereçamento IP – Ineficiênciaresultante da quebra da hierarquiaO fornecedor de serviços B publica um caminho específico para “Organização 1”Menor eficiência…Qual será agora o anúncio?
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática40 Camada de RedeEndereços IP– ObtençãoComo uma máquina obtém um endereço IP?codificado pelo administrador num ficheiroWindows: Painel de controle->Rede->Configuração>tcp/ip->propriedadesUNIX: /etc/rc.configDHCP: Dynamic Host Configuration Protocol: obtém endereço dinamicode um servidor“plug-and-play”Como um fornecedor IP (ISP) consegue um bloco de endereços?ICANN: Internet Corporation for Assigned Names and NumbersAlocação de endereçosgestão dos servidores raiz DNSatribuição nomes de domínio, resolução de conflitosActualmente há cinco instituições regionais– AfriNIC “African Network Information Center”– APNIC “Asia Pacific Network Information Center”– ARIN “American Registry for Internet Number”– LACNIC “Latin American and Caribbean InternetAddresses Registry”– RIPE NCC “Reseaux IP Europeans”Actualmente há cinco instituições regionais– AfriNIC “African Network Information Center”– APNIC “Asia Pacific Network Information Center”– ARIN “American Registry for Internet Number”– LACNIC “Latin American and Caribbean InternetAddresses Registry”– RIPE NCC “Reseaux IP Europeans”
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática41 Camada de RedeDatagrama IP: da origem ao destinoDatagrama IPcampos de endereçoorigem e destino: odatagrama não é alteradodesde a origem ao destinodatadest IPaddrsourceIP addrMiscfields223.1.1.1223.1.1.2223.1.1.3223.1.1.4 223.1.2.9223.1.2.2223.1.2.1223.1.3.2223.1.3.1223.1.3.27ABETabela de encaminhamento em B2223.1.1.4223.1.32123.1.1.4223.1.21223.1.1Nº dehopsPróximoRouterRede deDestinoR
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática42 Camada de RedeDatagrama IP: da origem ao destino- Exemplo 1B consulta tabela de encaminhamentocom a parte de rede do endereço de A– A está na mesma rede que BA camada de ligação de dados envia,dentro da sua trama, o datagramadirectamente a A223.1.1.1223.1.1.2223.1.1.3223.1.1.4 223.1.2.9223.1.2.2223.1.2.1223.1.3.2223.1.3.1223.1.3.27ABEdatadest IP223.1.1.1source IP223.1.1.3MiscfieldsDa origem B: 223.1.1.3 ao destino A: 223.1.1.1Tabela de encaminhamento em B2223.1.1.4223.1.32123.1.1.4223.1.21223.1.1Nº dehopsPróximoRouterRede deDestinoR
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática43 Camada de RedeDatagrama IP: da origem ao destino- Exemplo 2 (1º parte: da origem até o router)B consulta a tabela de encaminhamen-to com parte de rede do endereço de E– E não está na mesma rede que B– caminho para E passa por nó 223.1.1.4camada lógica envia trama para223.1.1.4 contendo o datagramadatagram chega ao router 223.1.1.4223.1.1.1223.1.1.2223.1.1.3223.1.1.4 223.1.2.9223.1.2.2223.1.2.1223.1.3.2223.1.3.1223.1.3.27ABEdatadest IP223.1.2.2source IP223.1.1.3MiscfieldsTabela de encaminhamento em B2223.1.1.4223.1.32223.1.1.4223.1.21223.1.1Nº dehopsPróximoRouterRede deDestinoDa origem B: 223.1.1.3 ao destino E: 223.1.2.2R
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática44 Camada de RedeDatagrama IP: da origem ao destino- Exemplo 2 (2º parte: do router até ao destino)R consulta a tabela de encaminhamen-to com parte de rede do endereço de E– E está na mesma rede que a “interface”223.1.2.9 do “router”camada lógica associada à “interface”223.1.2.9 do “router” envia trama para223.1.2.2 contendo o datagramadatagrama chega a 223.1.2.2223.1.1.1223.1.1.2223.1.1.3223.1.1.4 223.1.2.9223.1.2.2223.1.2.1223.1.3.2223.1.3.1223.1.3.27ABEdatadest IP223.1.2.2source IP223.1.1.3MiscfieldsDa origem B: 223.1.1.3 (através do router R 223.1.1.4) ao destino E: 223.1.2.2223.1.3.27223.1.2.9223.1.1.4InterfaceTabela de encaminhamento no router R111Nº dehopsPróximoRouter223.1.3223.1.2223.1.1Rede deDestinoR
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática45 Camada de RedeCamada de rede na Internet:o protocolo IP – RevisãoServiços da camada de rede– Circuitos virtuais– DatagramasFuncionamento de um encaminhador (“router”)Camada de rede na Internet: o protocolo IPPrincípios de encaminhamento– selecção de um caminhoOutros aspectos da camada de rede na Internet– DHCP, NAT, ICMP, IPv6Encaminhamento hierárquicoEncaminhamento na Internet– intra domínio– inter domínioEncaminhamento “multicast”Camada de Redena InternetFormato dodatagrama IPv4Fragmentação eReagrupamento emIPv4Endereçamento IP–Redes e SubredesIP–Endereçamentopor classes–CIDR–EndereçamentoHierárquicoCamada de Redena InternetFormato dodatagrama IPv4Fragmentação eReagrupamento emIPv4Endereçamento IP–Redes e SubredesIP–Endereçamentopor classes–CIDR–EndereçamentoHierárquico
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática46 Camada de RedeEncaminhamentoObjectivo – determinar “bons” caminhos narede (sequências de nós) entre a origem eo destino– tipicamente o caminho de menor custo– determinar caminho entre máquina deorigem e máquina de destino reduz-se aoproblema de determinar caminho na redeentre o default router da origem e o defaultrouter do destinoRepresentação da rede por grafos– os nós de encaminhamento (“routers”) são os nós do grafo– as ligações físicas são os arcos do grafoCusto da ligação: atraso, distância em km, nível de congestionamentoRelembrar: A abstração com grafos é útil em outros contextos da rede• Exemplo: P2P, onde N é o conjunto dos pares e E é o conj. das ligações TCPRelembrar: A abstração com grafos é útil em outros contextos da rede• Exemplo: P2P, onde N é o conjunto dos pares e E é o conj. das ligações TCP2213112535zyxuv w
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática47 Camada de RedeAbstracção com grafos – Custos• c(x,x’) = custo da ligação (x,x’)- e.g., c(w,z) = 5- custo poderia também ser 1- ou inversamente proporcional à largura de banda ou ao congestionamentoCusto do caminho (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)Algoritmo de encaminhamento- algoritmo que encontra o caminho de menor custo (e.g. entre u e z)Algoritmo de encaminhamento- algoritmo que encontra o caminho de menor custo (e.g. entre u e z)2213112535zyxuv wN = conj. de routers = { u, v, w, x, y, z }E = conj. de ligações ={ (u,v), (u,x), (u,w),(v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }Grafo: G = (N,E)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática48 Camada de RedeClassificação dos Algoritmos deEncaminhamentoGlobal– todos os nós conhecemcompletamente a topologia e ocusto das ligações– algoritmos de estado das ligações(“link state” algorithms)Descentralizada– cada nó conhece os que lhe estãoligados directamente e os custosassociados a essas ligações– processo de cálculo iterativo portroca de informação com vizinhos– algoritmos de vector de distâncias(“distance vector” algorithms)Sensiveis ao “traffic load”?Load Sensitive– Os custos da ligação variamdinamicamente para reflectir onível de congestão da ligaçãoAlto custo => alg encaminhamentoescolhe caminhos à volta do linke.g. ARPAnet routing algorithmLoad Insensitive– Custo de ligação não reflecte nívelde congestão recente ou passadousados actualmenteSensiveis ao “traffic load”?Load Sensitive– Os custos da ligação variamdinamicamente para reflectir onível de congestão da ligaçãoAlto custo => alg encaminhamentoescolhe caminhos à volta do linke.g. ARPAnet routing algorithmLoad Insensitive– Custo de ligação não reflecte nívelde congestão recente ou passadousados actualmenteInformação global / descentralizada?Estáticos ou dinâmicos?Estáticos– os caminhos mudamlentamente no tempoDinâmicos– os caminhos mudamrapidamentemodificação periódicasempre que alterem custosdas ligações ou a topologiaEstáticos ou dinâmicos?Estáticos– os caminhos mudamlentamente no tempoDinâmicos– os caminhos mudamrapidamentemodificação periódicasempre que alterem custosdas ligações ou a topologia
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática49 Camada de RedeAlgoritmo de Encaminhamento“Link-State”topologia da rede e custos das ligações conhecidos por todos osnós– consegue-se através da difusão da informação sobre o estado dasligações (“link state broadcast”)e.g. OSPF routing protocol– todos os nós têm a mesma informaçãocalcula o menor custo desde um nó (fonte) até cada um dosrestantes– produz a tabela de encaminhamento para esse nóIterativo– depois de k iterações, conhece o menor custo para k nós de destinosAlgoritmo de Dijkstra
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática50 Camada de Rede2213112535ZYXUV WAlgoritmo de DijkstraNotação:c(i,j) – custo da ligação do nó i para o nó jo o custo é infinito se os nós não são vizinhoso Bidireccionalidade: c(i,j)=c(j,i)D(v) – valor actual do custo da origem parao destino vp(v) – penúltimo nó no caminho actual demenor custo da origem para o nó vN’ – conjunto de nós para os quais seconhece já o caminho de menor custo1. Initialization:2. N’ = {u}3. for all nodes a4. if a adjacent to u5. then D(a) = c(u,a)6. else D(a) = infty7. Loop8. find b not in N’ such that D(b) is a minimum9. add b to N’10. update D(a) for all a adjacent to b and not in N’:11 D(a) = min( D(a), D(b) + c(b,a) )12 /* new cost to a is either old cost to a or known shortestpath cost to b plus cost from b to a */13 until all nodes in N’ (N’ = N)N = conj. de routers = { u, v, w, x, y, z }CicloexecutadoN-1vezes(Nmenosaorigem)
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática51 Camada de RedeAlgoritmo de Dijkstra – ExemploStep012345NuuxuxyuxyvuxyvwuxyvwzD(v),p(v)2,u2,u2,uD(w),p(w)5,u4,x3,y3,yD(x),p(x)1,uD(y),p(y)∞2,xD(z),p(z)∞∞4,y4,y4,y2213112535ZYXUV WSelecciona-se arbitrariamente v ou yvxywz(u,v)(u,x)(u,x)(u,x)(u,x)destino ligaçãoTabela de encaminhamento resultante em uZYXUV WÁrvore de caminhos mínimosresultante originada em uCaminhar para trás para reconstruir melhor caminho
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática52 Camada de RedeAlgoritmo de Dijkstra – DiscussãoComplexidade algoritmica (n nós sem contar com a origem)em cada iteração é necessário avaliar todos os nós w que não estão em N– 1ª iteração: verificar tos os n nós, 2ª iteração: n-1, 3ª iteração: n-2, ...n(n+1)/2 comparações => complexidade no pior caso O(n2)implementações mais eficientes possíveis: O(n logn)– Passo 8 do algoritmo pode ser executado em tempo logaritmico de ne.g. custo da ligação = tráfego transportado (no exemplo, todos enviam para w)w1 1+ee0e1 10 02+e 0001+e 10 2+e1+e10 02+e 0e01+e 1inicialmente … recalcula caminhos … recalcula … recalculaAlgoritmo pode originar oscilaçõesz xyw w wz z zy y yx x x
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática53 Camada de RedeAlgoritmo de Vector de Distâncias- Equação de Bellman-FordEquação de Bellman-Ford (programação dinâmica)Definirdx(y) := custo do caminho de menor custo entre x e yEntãodx(y) = min {c(x,v) + dv(y) }onde min é tomado entre todos os vizinhos v de xvvClaramente, dv(z) = 5, dx(z) = 3, dw(z) = 3min {c(u,v) + dv(z),c(u,x) + dx(z),c(u,w) + dw(z)} =min {2 + 5, 1 + 3, 5 + 3} = 4A equação B-F diz que du(z) =2213112535ZYXUV WO nó que leva ao custo mínimo é o próximo passoao longo do caminho mais curto➜ tab. de encaminhamentoExemplo com Bellman-Ford
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática54 Camada de RedeAlgoritmo de Vector de DistânciasDV – Distance Vector AlgorithmCada nó envia periodicamente a seupróprio vector de distâncias (estimativa) para os vizinhosQuando um nó x recebe uma nova estimativa DV de umvizinho, actualiza o seu DV usando a eq. B-F:Sob condições mínimas, naturais, a estimativa Dx(y)converge para o menor custo real dx(y)Dx(y) = estimativa do menor custo entre x e yVector de distâncias: Dx = [Dx(y): y є N ]1. Nó x sabe o custo para cada vizinho v: c(x,v)2. Nó x mantém Dx = [Dx(y): y є N ]3. Nó x mantém ainda os vectores de distâncias dos seus vizinhos– Para cada vizinho v, x mantémDv = [Dv(y): y є N ]DefinirDx(y) ← minv{c(x,v) + Dv(y)} p/ cada nó y ∊ NIdéia básica
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática55 Camada de RedeIterativoactualizações contínuas até que não hajatroca de informação entre nósiteração local causada por– mudança do custo da ligação local– mensagem do vizinho: mudança de caminhode menor custo para algum destinotermina automaticamenteAssíncronocada nó actualiza a sua informação eminstantes independentes dos outros nósDistribuídocada nó comunica apenas com os seusvizinhos directos– os vizinhos avisam os seus vizinhos, senecessárioIterativoactualizações contínuas até que não hajatroca de informação entre nósiteração local causada por– mudança do custo da ligação local– mensagem do vizinho: mudança de caminhode menor custo para algum destinotermina automaticamenteAssíncronocada nó actualiza a sua informação eminstantes independentes dos outros nósDistribuídocada nó comunica apenas com os seusvizinhos directos– os vizinhos avisam os seus vizinhos, senecessárioespera por mudanças nocusto de uma ligação local oupor mensagem de um vizinhorecalcula tabela de distânciasse mudou o caminho demenor custo para qualquerdestino, informa vizinhosEm cada nóFuncionamento do Algoritmo de Vectorde Distâncias
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática56 Camada de RedeImplementação do Algoritmo de Vectorde DistânciasInitialization1 for all destinations y in N:/* if y is not a neighborthen c(x,y)= ∞ */2 DX(y) = c(x,y)3 for each neighbor v4 Dv(y) = ∞5 for each neighbor v6 send distance vector DX= [DX(y): y in N] to vEm todos os nós. Começando por X...7 loop8 wait9 until x gets a link cost change c(x,w) to neighbor w10 or until x receives Dw(y) update from neighbor w11 for each y in N:12 DX(y) = minv { c(x,v) + Dv(y) }13 if DX(y) changed for any destination y14 send distance vector DX = [DX(y): y in N] to allneighbors v15 forever
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática57 Camada de Redex y zxyz0 2 7∞ ∞ ∞∞ ∞ ∞origemcusto paraorigemorigemx y zxyz0 2 3origemcusto parax y zxyz0 2 3origemcusto parax y zxyz∞ ∞∞ ∞ ∞x y zxyz0 2 7origem x y zxyz0 2 3origemx y zxyz0 2 3origemx y zxyz0 2 7origemx y zxyz∞ ∞ ∞7 1 0∞2 0 1∞ ∞ ∞2 0 17 1 02 0 17 1 02 0 13 1 02 0 13 1 02 0 13 1 02 0 13 1 0tempox z127ytabelanóxtabelanóytabelanózDx(y)=min{c(x,y)+Dy(y),c(x,z) + Dz(y)}= min{2+0 , 7+1} = 2Dx(z) = min{c(x,y) +Dy(z), c(x,z) + Dz(z)}= min{2+1 , 7+0} = 3Algoritmo de Vector de Distâncias– Exemplo
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática58 Camada de RedeVector de Distâncias: Alteração(decremento) do custo de uma ligaçãonó detecta mudança no custo da ligação localactualiza tabela de distâncias– se mudou o Distance Vector, avisa aos vizinhosX Z1450Y11. No tempo t0, y detecta a mudança no custo da ligação, actualiza oseu DV e informa os vizinhos.2. No tempo t1, z recebe a actualização de y e actualiza a sua tabela.• Calcula o novo menor custo para x e envia o seu DV para osvizinhos.3. No tempo t2, y recebe a actualização de z e actualiza a sua tabela.• Os custos mínimos de y não mudam e portanto y não envianenhuma mensagem para z.
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática59 Camada de RedeVector de Distâncias: Alteração (incremento)no custo de uma ligaçãoMudança no custo das ligaçõesboas notícias chegam logo– más notícias demoram para chegar44 iterações antes do algoritmo estabilizarproblema da “contagem ao infinito”!Adicionar “Poisoned Reverse” (reverso envenenado)Se z encaminha via y para chegar a x:– z informa para y que a sua distância para x é infinita (para que y nãoencaminhe para x via z)Isto não resolve completamente o problema da contagem ao infinitoX Z1450Y60
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática60 Camada de RedeComparação dos algoritmos Link-State (LS) e Distance-Vector (DV)Complexidade das mensagensLS: com n nós e E ligações, cadanó envia O(nE) mensagensDV: troca de mensagens apenasentre nós vizinhosVelocidade de convergênciaLS: o algoritmo (em cada nó)converge em O(n2) comparações– pode conduzir a oscilaçõesDV: tempo de convergência varia– Podem-se criar circuitos fechados– problema da contagem para infinitoRobustez– mau funcionamento dos nósLS:– cada nó pode difundir errada-mente os custos das ligações– cada nó calcula a sua tabelade encminhamentoDV:– cada nó pode difundir errada-mente o custo de um caminho– a tabela de cada nó é usadapelos restanteserros propagam-se a toda arede
  • Artur ArsenioRedes de Computadores 2010/2011Departamento de Engenharia Informática61 Camada de RedePrincípios de encaminhamento– selecção de um caminhoServiços da camada de rede– Circuitos virtuais– DatagramasFuncionamento de um encaminhador (“router”)Camada de rede na Internet: o protocolo IPPrincípios de encaminhamento– selecção de um caminhoOutros aspectos da camada de rede na Internet– DHCP, NAT, ICMP, IPv6Encaminhamento hierárquicoEncaminhamento na Internet– intra domínio– inter domínioEncaminhamento “multicast”Encaminhamento–Abstracção com grafos–Classificação dos algoritmosde encaminhamentoAlgoritmo de encaminha-mento “Link-State”–Exemplo e discussãoAlgoritmo de DijkstraAlgoritmo de Vector deDistâncias–Equação de Bellman-Ford–Funcionamento do Algoritmo–Implementação e exemplos–Alteração do custo deligaçãoComparação dos algoritmosLink-State e Distance-VectorEncaminhamento–Abstracção com grafos–Classificação dos algoritmosde encaminhamentoAlgoritmo de encaminha-mento “Link-State”–Exemplo e discussãoAlgoritmo de DijkstraAlgoritmo de Vector deDistâncias–Equação de Bellman-Ford–Funcionamento do Algoritmo–Implementação e exemplos–Alteração do custo deligaçãoComparação dos algoritmosLink-State e Distance-Vector