Redes de ComputadoresRedes de Computadores · lógica física aplicação transporte rede lógica...
Transcript of Redes de ComputadoresRedes de Computadores · lógica física aplicação transporte rede lógica...
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica1
Redes de ComputadoresRedes de Computadores
Camada Rede
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica2 Camada de Rede
Camada Transporte - Reviso
Servios da camada de transporte Multiplexagem e desmultiplexagem Transporte no orientado ligao: UDP Princpios da transferncia fivel de dados Transporte orientado ligao: TCP
transferncia fivel de dados controlo do fluxo Gesto de ligaes
Principios do controlo do congestionamento Controlo de congestionamento do TCP
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica3 Camada de Rede
Camada Rede
Servios da camada de rede Circuitos virtuais Datagramas
Funcionamento de um encaminhador (router) Camada de rede na Internet: o protocolo IP Princpios de encaminhamento: seleco de um caminho Outros aspectos da camada de rede na Internet
DHCP, NAT, ICMP, IPv6 Encaminhamento hierrquico Encaminhamento na Internet
intra domnio inter domnio
Encaminhamento multicastObjectivos:
Entender os princpios em que se fundamentam os servios de rede seleco de caminhos, escalabilidade, como funciona um router. tpicos avanados: IPv6, instanciao e implementao na Internet
Objectivos:
Entender os princpios em que se fundamentam os servios de rede seleco de caminhos, escalabilidade, como funciona um router. tpicos avanados: IPv6, instanciao e implementao na Internet
Segue Capitulo 4 do livro de J.F Kurose e K.W. Ross
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica4 Camada de Rede
Camada de rede
ObjectivoTransporte de pacotes do sistema terminal de origem ao sistema terminal de destino os protocolos da camada de rede existem em todos ossistemas terminais e todos os ns intermdios (routers)
Funes importantes Determinao do caminho (routing): rota seguida pelos pacotes da
origem ao destino. Algoritmos de encaminhamento Comutao (forwarding): copiar os pacotes de uma entrada do n
(router) para a sada apropriada Estabelecimento de chamada: algumas arquitecturas exigem o
estabelecimento de uma ligao entre origem e destino antes da comunicao de dados (call setup)
redelgicafsica
redelgicafsica
redelgica fsica
redelgicafsica
redelgicafsica
redelgicafsica
redelgicafsica
redelgicafsica
aplicaotransporte
redelgicafsica
aplicaotransporte
redelgicafsica
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica5 Camada de Rede
Estabelecimento de Ligao
3 funo importante em algumas arquitecturas de rede:
ATM, frame relay, X.25
Antes dos datagramas flurem, dois hosts e routers intermedirios estabelecem uma ligao virtual
Servio de ligao das camadas de transporte e de rede:
Rede: entre dois hosts Transporte: entre dois processos
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica6 Camada de Rede
1
23
0111
valor no cabealhodo pacote que estA chegar
Algoritmo de encaminhamento
tabela de encaminhamento local
valor cabealho link sada
0100010101111001
3221
Encaminhamento de Pacotes
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica7 Camada de Rede
Largura de banda garantida? Preservao do intervalo de
tempo entre pacotes (eliminao do jitter)?
Entrega sem perdas? Entrega na ordem? Envio de informao de
congesto para a fonte?
Arquitecturade Rede
Internet
ATM
ATM
ATM
ATM
Modelo deservio
melhoresforo
CBR
VBR
ABR
UBR
Banda
nenhuma
taxaconstantetaxagarantidamnimagarantida
nenhuma
Perdas
no
sim
sim
no
no
Ordem
no
sim
sim
sim
sim
Tempo
no
sim
sim
no
no
Informaocongesto
no (inferidovia perdas)n.a. semcongestion.n.a. semcongestion.sim
no
Garantias ?
Modelos de servio da camada de rede
Qual o modelo de servios no transporte de pacotes da origem para o destino ?
O Modelo de servios da camada de rede define as caracteristicas do transporte de dados extremo a extremo entre dois terminais na rede entre os sistemas terminais emissor e receptor
Para a Internet esto a ser definidos novos modelos de servios: Intserv, Diffserv
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica8 Camada de Rede
Servios de Transporte e de Rede com e sem Ligao
Servio de ligao na camada de rede entre sistemas terminais Servio de ligao na camada transporte entre processos
A implementao de servios com ligao nas camadas de rede e de transporte so fundamentalmente diferentes
na camada de rede implementado no s nos sistemas terminais mas tambm nos routers no interior da rede
Caracterstica importantedo servio prestado pelacamada de rede:
Circuito Virtual?ou
Datagrama ?
Nas redes actuais, a camada de rede fornece ou servios de rede com ligao (Circuitos Virtuais - VC) ou sem ligao (Rede de Datagramas)
mas no ambos
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica9 Camada de Rede
Estabelecimento de um caminho (chamada) antes da transmisso de dados e correspondente aco de desligar cada chamada
Cada pacote transporta o identificador do circuito virtual no inclui necessariamente a identificao do computador destino
Cada n, no caminho origem-destino, mantm o estado de cada ligao
Para cada circuito virtual podem ser reservados recursos ao longo do caminho incluindo largura de banda e memria nos ns
O caminho entre origem e destino assemelha-se a um circuito telefnico tradicional
Circuitos Virtuais
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica10 Camada de Rede
Implementao de Circuito Virtual (VC Virtual Circuit)
Estabelecimento do Circuito Virtual Camada de rede determina o caminho entre emissor e
receptor Adiciona entrada em cada router ao longo do caminho
Determina o nmero do VC para cada ligao ao longo do caminho
Pacote que pertence a um VC contm o nmero do VC Nmero do VC deve ser trocado a cada ligao Porqu? Novo nmero do VC vem da tabela de encaminhamento
Transferncia de Dados no Circuito Virtual Terminao do Circuito Virtual
Sistema terminal informa a camada de rede que quer terminar o VC
Actualizao das tabelas dos routers ao longo do caminho (VC deixou de existir)
Circuito VirtualUm VC consiste em:
1. Caminho da origem para o destino
2. Nmeros (identificadores) de VC, um nmero para cada ligao ao longo do caminho
3. Entradas nas tabelas de encaminhamento dos routers ao longo do caminho
Um VC consiste em:1. Caminho da
origem para o destino
2. Nmeros (identificadores) de VC, um nmero para cada ligao ao longo do caminho
3. Entradas nas tabelas de encaminhamento dos routers ao longo do caminho
imaginem o esforo de rede para garantir que um nmero de VC era nico ao longo da rede...assim, apenas o router tem que garantir que nmeros de VC nas suas interfaces so nicos!
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica11 Camada de Rede
12 22 32
12
3
Nmero do VC
nmero dainterface
Interface de entrada # VC de entrada Interface de sada # VC de sada1 12 3 222 63 1 18 3 7 3 171 97 2 87
Tabela de expedio
Os Routers guardam informao do estado de cada ligao
Tabela de Encaminhamento
R1
R2
R3
R4Router R1
Routers Forwarding Table
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica12 Camada de Rede
Routers ao longo do caminho entre terminais esto envolvidos na criao do VC router actualiza tabela de encaminhamento (ao milisegundo) assim que criado um VC ou
que este terminado, criando ou eliminando entradas na tabela. cada router mantm estado sobre todos os VCs que passam por ele
Mensagens de Sinalizao (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 o
estado da ligao nas tabelas de encaminhamento) Protocolos de sinalizao (signaling protocols)
usados para trocar mensagens de sinalizao para estabelecer, manter e terminar um VC usados no ATM, frame-relay, X.25
aplicaotransporte
redeligaofsica
aplicaotransporte
redeligaofsica
1. inicia chamada 2. chegada de chamada
3. chamada aceite4. chamada completa5. comea fluxo de dados 6. dados recebidos
Protocolos de Sinalizao em VCs
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica13 Camada de Rede
Redes de Datagramas(modelo Internet)
No h estabelecimento de ligao na camada de rede
Ns no guardam estado das ligaes extremo a extremo
o conceito de ligao no existe ao nvel da camada de rede
Os pacotes so tipicamente encaminhados pelo identificador do computador de destino
2 pacotes entre o mesmo par origem-destino podem seguir caminhos diferentes
aplicaotransporte
redeenlacefsica
aplicaotransporte
redeenlacefsica
1. envia dados 2. recebe dados
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica14 Camada de Rede
Rede de Datagramas Tabela de encaminhamento
4 bilies de entradas possveis
4 bilies de entradas possveis
Faixa de Endereos de Destino Interface de Sada
11001000 00010111 00010000 00000000a 0
11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000a 1
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000a 2
11001000 00010111 00011111 11111111
Outros 3 Exemplo (PC)
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica15 Camada de Rede
Determinao da Interface de Sada
Prefixo Interface de Sada11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
caso contrrio 3
11001000 00010111 00011000 10101010
Exemplos: Qual a interface de sada para os endereos?
11001000 00010111 00010110 10100001
O maior prefixo do endereo na tabela determina a interface de sada
Interface 0
Interface 1
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica16 Camada de Rede
Internet troca de dados entre computadores
servio elstico, sem requisitos temporais estritos
a eliminao do jitter no era importante
terminais inteligentes (computadores) os terminais podem adaptar-se,
implementar controlo de erros e recuperar de situaes de erro
o interior da rede pode ser simples reservando a complexidade para os extremos (network edge)
tipos diferentes de ligaes fsicas com diferentes caractersticas dificuldade em fornecer um servio
uniforme
ATM evoluiu da rede telefnica conversao humana:
temporizao estrita, grandes exigncias de fiabilidade
eliminao do jitter muito importante
necessidade de garantia de qualidade de servio
sistemas terminais dumb Telefones tradicionais complexidade introduzida no
interior da rede
Datagramas vs Circuitos Virtuais
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica17 Camada de Rede
Servios da camada de rede Reviso
Servios da camada de rede Circuitos virtuais Datagramas
Funcionamento de um encaminhador (router) Camada de rede na Internet: o protocolo IP Princpios de encaminhamento
seleco de um caminho Outros aspectos da camada de rede na Internet
DHCP, NAT, ICMP, IPv6 Encaminhamento hierrquico Encaminhamento na Internet
intra domnio inter domnio
Encaminhamento multicast
Camada de Redeencaminhamento de pacotes
Modelos de servio da camada de rede
Servios de Transporte e de Rede com e sem Ligao
Circuitos Virtuais
Rede de Datagramas
Datagramas vsCircuitos Virtuais
Camada de Redeencaminhamento de pacotes
Modelos de servio da camada de rede
Servios de Transporte e de Rede com e sem Ligao
Circuitos Virtuais
Rede de Datagramas
Datagramas vsCircuitos Virtuais
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica18 Camada de Rede
Duas funes fundamentais execuo de algoritmos/protocolos de encaminhamento (RIP, OSPF, BGP) comutao de datagramas das ligaes de entrada para as ligaes de sada
Arquitectura de um N (Router)
Executa os protocolos de encaminhamento Mantm as tabelas de encaminhamento Executa as funes de gesto de rede
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica19 Camada de Rede
Comutao descentralizada: dado endereo de destino de um datagrama,
determinar o porto de sada consultando a tabela de encaminhamento na memria local
objectivo: completar todas as tarefas ao ritmo de chegada da ligao
se os datagramas chegam mais depressa que o ritmo de envio para a malha de comutao existe uma fila de espera
Camada fsica:recepo de bits
Camada de ligao de dados: e.g. Ethernet
Funes dos Portos de Entrada
Portos multiplos juntos numa scarta de hardware dentro do router
Mantm cpia da tabela de expedio - processador actualiza
encaminhamento descentralizado pelos vrios portos de entrada
Portos multiplos juntos numa scarta de hardware dentro do router
Mantm cpia da tabela de expedio - processador actualiza
encaminhamento descentralizado pelos vrios portos de entrada
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica20 Camada de Rede
Se a malha de comutao mais lenta que os portos de entradacombinados podem surgir filas de espera na entrada
Bloqueio Head-of-the-Line (HOL): o datagrama na primeira posioda fila impede outros de serem encaminhados para uma sada
surgem atrasos e perdas
Fila de Espera no Porto de Entrada
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica21 Camada de Rede
necessrio o armazenamento (Buffering) quando os datagramaschegam da malha a um ritmo maior que a largura de banda de sada
Disciplina de servio (scheduler): escolhe o datagrama, de entre os que esto na fila, que transmitido a seguir
FCFS: first come first served WFQ: Weighted fair queuing. Partilha o canal de sada de modo justo
entre as ligaes com pacotes a transmitir
Funes dos Portos de Sada
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica22 Camada de Rede
Fila de Espera no Porto de Sada
Utiliza buffers quando taxa de chegada atravs do comutador excede taxa de transmisso de sada
A fila de espera do porto de sada pode introduzir Atraso e Perdas devidas ao transbordo do buffer do porto de sada. se memria 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/2011
Departamento de Engenharia Informtica23 Camada de Rede
Arquitecturas de Comutao
Switch Fabric
atravs do Switching Fabric que os pacotes so efectivamente encaminhados de um porto de entrada para um porto de sada
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica24 Camada de Rede
routers de primeira gerao porto de entrada sinaliza processador da chegada de pacote usando interrupt cada pacote copiado para a memria pela nica CPU do sistema velocidade limitada pela largura de banda de acesso memria
2 passagens pelo bus do sistema por datagrama
MemriaPorto de
Entrada
Porto de
Sada
Bus do Sistema
routers modernos processador de entrada consulta a tabela e copia para memria partilhada
exemplo: Cisco Catalyst 8500
Comutaoatravs da Memria
Switch Fabric
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica25 Camada de Rede
Cada datagrama transmitido da memria do porto de entrada para a memria do porto de sada atravs de um bus
Apenas um pacote pode ser transportado pelo bus de cada vez
Velocidade de comutao limitada pela largura de banda do bus
Exemplo: Cisco 1900 (bus de 1 Gbps) -suficiente para o acesso de mdias empresas Internet
Comutao atravs de um bus
Switch Fabric
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica26 Camada de Rede
Comutao atravs de uma Malha
Ultrapassa as limitaes impostas pelo bus 2n buses ligam n portos de entrada a n portos de sada
Redes inicialmente propostas para interligar processadores num ambiente multiprocessador, redes de Banyan
Estruturas avanadas: fragmentao de datagramas em pacotes de tamanho fixo dentro da malha de comutao
Exemplo Cisco 12000: pode comutar dezenas de Gbps via a sua malha de comutao
Switch Fabric
Malha N-dimensional
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica27 Camada de Rede
Funcionamento de um encaminhador Reviso
Servios da camada de rede Circuitos virtuais Datagramas
Funcionamento de um encaminhador (router) Camada de rede na Internet: o protocolo IP Princpios de encaminhamento
seleco de um caminho Outros aspectos da camada de rede na Internet
DHCP, NAT, ICMP, IPv6 Encaminhamento hierrquico Encaminhamento na Internet
intra domnio inter domnio
Encaminhamento multicast
Arquitectura de um N de Encaminhamento
Portos de Entrada e Sada
Funes
Filas de espera
Arquitecturas de Comutao
Memria
Bus
Malha
Arquitectura de um N de Encaminhamento
Portos de Entrada e Sada
Funes
Filas de espera
Arquitecturas de Comutao
Memria
Bus
Malha
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica28 Camada de Rede
Tabela deencaminhamento
Protocolos de encaminhamentoseleco de caminhosRIP, OSPF, BGP
protocolo IPconvenes de endereosformato do datagramaconvenes de manuseio do pacote
protocolo ICMP reporta erros sinalizao
Camada de transporte: TCP, UDP
Camada de ligao de dados
Camada fsica
Camadade rede
Camada de Rede na Internet
Funes da camada de rede
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica29 Camada de Rede
ver comprimento
32 bits
dados (comprimento varivel, tipicamente um
segmento TCP ou UDP, ou mensagem ICMP)
ident. 16-bits
Internet checksum(apenas do header)
Time to live
endereo IP de origem 32 bits
n da verso do prot. IP
comprimento docabealho (bytes)
Datagramas no duram forever. n max de hops
q restam (decrementadoem cada router, 0=drop)
indica a posio de um fragmento de dados emrelao ao 1 byte dos dados (o qual tem offset 0)
comprimento total do datagrama (em bytes)
prot. camada superior ao qual entregar dados
(6 = TCP, 17 = UDP)
comp.cabealho
tipo deservio
definio de nveis de servio bits
incio (offset) do fragmento
Prot. camsuperior
endereo IP de destino 32 bits
Opes (se tiver, no usado no IPv6)
e.g. especificar lista de routers a visitar, marca
temporal timestamp, re-gistar caminho seguido
Formato do datagrama IPv4
nmero nico usado paraidentificar a trama e outrosfragmentos associadospara reagrupamento
Overhead com o TCP?
20 bytes do TCP
20 bytes do IP
= 40 bytes + overhead da camada aplicao
Flags (3-bits)
Para fragmentao/Reagrupamento
[RFC 791]
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica30 Camada de Rede
Fragmentao e Reagrupamento em IPv4
Comprimento mximo de datagramaIP 216 = 65535 bytes.
As ligaes da rede tm um tamanho mximo para as tramas da camada de ligao de dados
MTU max transfer size (e.g. 576 Bytes, 1500 Bytes na Ethernet)
ligaes diferentes tm MTUsdiferentes
Datagramas IPv4 grandes podem ser divididos (fragmentados) dentro da rede (mas no no IPv6)
um datagrama dividido em vrios datagramas num router
so reagrupados apenas no destino existem campos no cabealho IP que so usados para identificar e ordenar os fragmentos
reagrupamento
fragmentao entrada: um datagrama grandesada: 3 datagramas menores
dados
cabealho
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica31 Camada de Rede
Fragmentao e reagrupamentoem IPv4
ID=x
incio=0
bit_frag=0
compr=4000
ID=x
incio=0
bit_frag=1
compr=1500
ID=x
incio=185
bit_frag=1
compr=1500
ID=x
incio=370
bit_frag=0
compr=1040
Um datagrama transforma-seem vrios datagramas mais pequenos
Exemplo
Datagrama de 4000 bytes
MTU = 1500 bytes
1480 bytes de dados
incio =1480/8
3980 bytes de dados
Se 1 ou mais fragmentos se perdem, o datagrama incompleto descartado e no 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 must be). Call the number of 8 octet blocks in the first portion NFB (for Number of Fragment Blocks).
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica32 Camada de Rede
Endereamento IP: introduo
endereo IP - ID de 32 bits para interface da mquina ou n (router) total 232
interface: ligao entre mquina ou router e o canal fsico
router tpico tem vrias interfaces
mquina pode ter apenas 1 ou ter vrias interfaces
endereos IP esto associados s interfaces, no mquina ou router 223.1.3.1 = 11011111 00000001 00000011 00000001
223 1 13
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
Esta rede constituida por 3 redes IP
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica33 Camada de Rede
Redes e Subredes (Subnets) IP
Endereo IP parte da rede (bits de maior
ordem). Network prefix parte da mquina (bits de
menor ordem host part) Definio de sub(rede) IP (da
perspectiva do endereo IP) Conjunto de interfaces de
dispositivos com a mesma parte de rede nos seus endereos IP
podem comunicar entre elas sem interveno de um n encaminhador (router)
223.1.1.0/24223.1.2.0/24
223.1.3.0/24
Mscara da sub-rede (subnet mask): / 24
Para os endereos IP comeados por 223, os primeiros 24 bits so o endereo de rede
e.g. Ethernet LAN
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica34 Camada de Rede
desassociar cada interface do seu router, mquina
criar ilhas de redes isoladas
cada rede isolada uma sub-rede
Redes e Subredes IP Exemplo
Sistema interligado constitudo por 6 redes IP
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica35 Camada de Rede
Endereamento IP Endereamento em Classes
Classe A /8, Classe B /16, Classe C /24 Uso ineficiente do espao de endereamento
e.g., a atribuio de uma rede de classe B reserva espao para cerca de 65000 computadores (e organizao s precisa de 2000)
Classe C para apenas 28-2=254 mquinas (2 endereos reservados)
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica36 Camada de Rede
parte de mquina
Endereamento IP CIDR
CIDR: Classless InterDomain Routing parte de rede do endereo de comprimento arbitrrio formato de endereo: a.b.c.d/x, onde x nmero de bits na parte de
rede do endereo
11001000 00010111 00010000 00000000
partede rede
200.23.16.0/22
A uma organizao normalmente atribuido bloco de endereos adjacentes parte de rede comum X bits utilizada por routers para encaminhar pacotes para
qualquer dispositivo da organizao => maior eficincia, menor tamanho nas tabelas de encaminhamento
Parte de mquina (32-X): para diferenciar dispositivos dentro da organizao Podem ter ou no parte de subrede para routers dentro da organizao
Broadcast Address: 255.255.255.255 mensagem entregue em broadcast para todas as mquinas na rede
A uma organizao normalmente atribuido bloco de endereos adjacentes parte de rede comum X bits utilizada por routers para encaminhar pacotes para
qualquer dispositivo da organizao => maior eficincia, menor tamanho nas tabelas de encaminhamento
Parte de mquina (32-X): para diferenciar dispositivos dentro da organizao Podem ter ou no parte de subrede para routers dentro da organizao
Broadcast Address: 255.255.255.255 mensagem entregue em broadcast para todas as mquinas na rede
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica37 Camada de Rede
Obteno de bloco de endereos do ISP
Bloco do 11001000 00010111 00010000 00000000 200.23.16.0/20fornecedor
Organizao 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organizao 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organizao 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... .. . .
Organizao 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Recepo de uma parte do espao de endereos do ISP
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica38 Camada de Rede
mande-me qq coisacom endereos quecomeam com 200.23.16.0/20
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fornecedor A
Organizao 0
Organizao 7
Internet
Organizao 1
Fornecedor Bmande-me qq coisacom endereos quecomeam com199.31.0.0/16
200.23.20.0/23Organizao 2
.
.
.
.
.
.
Endereamento hierrquico permite publicar de forma eficiente informao sobre caminhos
Endereamento Hierrquico Agregao de Caminhos (ou de Endereos)
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica39 Camada de Rede
mande-me qq coisacom endereos quecomeam com /23 ou /22 ou /21
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fornecedor A
Organizao 0
Organizao 7 Internet
Organizao 1Fornecedor B
mande-me qq coisa com endereos que comeam com 199.31.0.0/16 ou 200.23.18.0/23
200.23.20.0/23Organizao 2
.
.
.
.
.
.
Endereamento IP Ineficincia resultante da quebra da hierarquia
O fornecedor de servios B publica um caminho especfico para Organizao 1
Menor eficinciaQual ser agora o anncio?
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica40 Camada de Rede
Endereos IP Obteno
Como uma mquina obtm um endereo IP? codificado pelo administrador num ficheiro
Windows: Painel de controle->Rede->Configurao>tcp/ip->propriedades UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: obtm endereo dinamicode um servidor plug-and-play
Como um fornecedor IP (ISP) consegue um bloco de endereos? ICANN: Internet Corporation for Assigned Names and Numbers
Alocao de endereos gesto dos servidores raiz DNS atribuio nomes de domnio, resoluo de conflitos
Actualmente h cinco instituies regionais
AfriNIC African Network Information Center
APNIC Asia Pacific Network Information Center
ARIN American Registry for Internet Number
LACNIC Latin American and Caribbean Internet Addresses Registry
RIPE NCC Reseaux IP Europeans
Actualmente h cinco instituies regionais
AfriNIC African Network Information Center
APNIC Asia Pacific Network Information Center
ARIN American Registry for Internet Number
LACNIC Latin American and Caribbean Internet Addresses Registry
RIPE NCC Reseaux IP Europeans
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica41 Camada de Rede
Datagrama IP: da origem ao destino
Datagrama IP
campos de endereoorigem e destino: o datagrama no alteradodesde a origem ao destino
datadest IP addr
sourceIP addr
Miscfields
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
B
E
Tabela de encaminhamento em B
2223.1.1.4223.1.3
2123.1.1.4223.1.2
1223.1.1
N de hops
Prximo Router
Rede de Destino
R
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica42 Camada de Rede
Datagrama IP: da origem ao destino- Exemplo 1
B consulta tabela de encaminhamento com a parte de rede do endereo de A
A est na mesma rede que B A camada de ligao de dados envia,
dentro da sua trama, o datagramadirectamente a A
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
B
E
datadest IP
223.1.1.1
source IP
223.1.1.3
Misc
fields
Da origem B: 223.1.1.3 ao destino A: 223.1.1.1
Tabela de encaminhamento em B
2223.1.1.4223.1.3
2123.1.1.4223.1.2
1223.1.1
N de hops
Prximo Router
Rede de Destino
R
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica43 Camada de Rede
Datagrama 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 endereo de E
E no est na mesma rede que B caminho para E passa por n 223.1.1.4
camada lgica envia trama para 223.1.1.4 contendo o datagrama
datagram chega ao router 223.1.1.4
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
B
E
datadest IP
223.1.2.2
source IP
223.1.1.3
Misc
fields
Tabela de encaminhamento em B
2223.1.1.4223.1.3
2223.1.1.4223.1.2
1223.1.1
N de hops
Prximo Router
Rede de Destino
Da origem B: 223.1.1.3 ao destino E: 223.1.2.2
R
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica44 Camada de Rede
Datagrama 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 endereo de E
E est na mesma rede que a interface223.1.2.9 do router
camada lgica associada interface223.1.2.9 do router envia trama para 223.1.2.2 contendo o datagrama
datagrama chega a 223.1.2.2
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
B
E
datadest IP
223.1.2.2
source IP
223.1.1.3
Misc
fields
Da origem B: 223.1.1.3 (atravs do router R 223.1.1.4) ao destino E: 223.1.2.2
223.1.3.27
223.1.2.9
223.1.1.4
Interface
Tabela de encaminhamento no router R
1
1
1
N de hops
Prximo Router
223.1.3
223.1.2
223.1.1
Rede de Destino
R
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica45 Camada de Rede
Camada de rede na Internet: o protocolo IP Reviso
Servios da camada de rede Circuitos virtuais Datagramas
Funcionamento de um encaminhador (router) Camada de rede na Internet: o protocolo IP Princpios de encaminhamento
seleco de um caminho Outros aspectos da camada de rede na Internet
DHCP, NAT, ICMP, IPv6 Encaminhamento hierrquico Encaminhamento na Internet
intra domnio inter domnio
Encaminhamento multicast
Camada de Rede na Internet
Formato do datagrama IPv4
Fragmentao e Reagrupamento em IPv4
Endereamento IPRedes e SubredesIP
Endereamento por classes
CIDR
Endereamento Hierrquico
Camada de Rede na Internet
Formato do datagrama IPv4
Fragmentao e Reagrupamento em IPv4
Endereamento IPRedes e SubredesIP
Endereamento por classes
CIDR
Endereamento Hierrquico
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica46 Camada de Rede
Encaminhamento
Objectivo determinar bons caminhos na rede (sequncias de ns) entre a origem e o destino
tipicamente o caminho de menor custo determinar caminho entre mquina de
origem e mquina de destino reduz-se ao problema de determinar caminho na rede entre o default router da origem e o defaultrouter do destino
Representao da rede por grafos os ns de encaminhamento (routers) so os ns do grafo as ligaes fsicas so os arcos do grafo
Custo da ligao: atraso, distncia em km, nvel de congestionamento
Relembrar: A abstrao com grafos til em outros contextos da rede Exemplo: P2P, onde N o conjunto dos pares e E o conj. das ligaes TCPRelembrar: A abstrao com grafos til em outros contextos da rede Exemplo: P2P, onde N o conjunto dos pares e E o conj. das ligaes TCP
2
2
13
1
1
2
53
5
z
yx
u
v w
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica47 Camada de Rede
Abstraco com grafos Custos
c(x,x) = custo da ligao (x,x)- e.g., c(w,z) = 5- custo poderia tambm ser 1- ou inversamente proporcional largura de banda ou ao congestionamento
Custo 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)
2
2
13
1
1
2
53
5
z
yx
u
v wN = conj. de routers = { u, v, w, x, y, z }E = conj. de ligaes ={ (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/2011
Departamento de Engenharia Informtica48 Camada de Rede
Classificao dos Algoritmos de Encaminhamento
Global todos os ns conhecem
completamente a topologia e o custo das ligaes
algoritmos de estado das ligaes (link state algorithms)
Descentralizada cada n conhece os que lhe esto
ligados directamente e os custosassociados a essas ligaes
processo de clculo iterativo portroca de informao com vizinhos
algoritmos de vector de distncias (distance vector algorithms)
Sensiveis ao traffic load? Load Sensitive
Os custos da ligao variamdinamicamente para reflectir o nvel de congesto da ligao
Alto custo => alg encaminhamentoescolhe caminhos volta do link
e.g. ARPAnet routing algorithm
Load Insensitive
Custo de ligao no reflecte nvelde congesto recente ou passado
usados actualmente
Sensiveis ao traffic load? Load Sensitive
Os custos da ligao variamdinamicamente para reflectir o nvel de congesto da ligao
Alto custo => alg encaminhamentoescolhe caminhos volta do link
e.g. ARPAnet routing algorithm
Load Insensitive
Custo de ligao no reflecte nvelde congesto recente ou passado
usados actualmente
Informao global / descentralizada?
Estticos ou dinmicos? Estticos
os caminhos mudamlentamente no tempo
Dinmicos os caminhos mudamrapidamente
modificao peridica
sempre que alterem custosdas ligaes ou a topologia
Estticos ou dinmicos? Estticos
os caminhos mudamlentamente no tempo
Dinmicos os caminhos mudamrapidamente
modificao peridica
sempre que alterem custosdas ligaes ou a topologia
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica49 Camada de Rede
Algoritmo de EncaminhamentoLink-State
topologia da rede e custos das ligaes conhecidos por todos osns
consegue-se atravs da difuso da informao sobre o estado das ligaes (link state broadcast)
e.g. OSPF routing protocol todos os ns tm a mesma informao
calcula o menor custo desde um n (fonte) at cada um dos restantes
produz a tabela de encaminhamento para esse n Iterativo
depois de k iteraes, conhece o menor custo para k ns de destinos
Algoritmo de Dijkstra
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica50 Camada de Rede
22
13
1
12
53
5
Z
YX
U
V W
Algoritmo de Dijkstra
Notao: c(i,j) custo da ligao do n i para o n j
o o custo infinito se os ns no so vizinhoso Bidireccionalidade: c(i,j)=c(j,i)
D(v) valor actual do custo da origem parao destino v
p(v) penltimo n no caminho actual de menor custo da origem para o n v
N conjunto de ns para os quais se conhece j o caminho de menor custo
1. Initialization:
2. N = {u} 3. for all nodes a 4. if a adjacent to u5. then D(a) = c(u,a) 6. else D(a) = infty
7. Loop
8. find b not in N such that D(b) is a minimum 9. add b to N10. 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 shortest
path 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 }
Cic
lo e
xecu
tad
o N
-1
ve
zes
(N m
en
os
a o
rig
em
)
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica51 Camada de Rede
Algoritmo de Dijkstra Exemplo
Step012345
N'u
uxuxy
uxyvuxyvw
uxyvwz
D(v),p(v)2,u2,u2,u
D(w),p(w)5,u4,x3,y3,y
D(x),p(x)1,u
D(y),p(y)
2,x
D(z),p(z)
4,y4,y4,y
22
13
1
1
2
53
5
Z
YX
U
V W
Selecciona-se arbitrariamente v ou y
vxywz
(u,v)(u,x)(u,x)(u,x)(u,x)
destino ligao
Tabela de encaminhamento resultante em u
Z
YX
U
V W
rvore de caminhos mnimos resultante originada em u
Caminhar para trs para reconstruir melhor caminho
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica52 Camada de Rede
Algoritmo de Dijkstra Discusso
Complexidade algoritmica (n ns sem contar com a origem) em cada iterao necessrio avaliar todos os ns w que no esto em N
1 iterao: verificar tos os n ns, 2 iterao: n-1, 3 iterao: n-2, ... n(n+1)/2 comparaes => complexidade no pior caso O(n2) implementaes mais eficientes possveis: O(n logn)
Passo 8 do algoritmo pode ser executado em tempo logaritmico de n
e.g. custo da ligao = trfego transportado (no exemplo, todos enviam para w)w
1 1+e
e0
e1 1
0 0
2+e 0
001+e 1
0 2+e
1+e10 0
2+e 0
e01+e 1
inicialmente recalcula caminhos recalcula recalcula
Algoritmo pode originar oscilaes
z x
y
w w w
z z z
y y y
x x x
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica53 Camada de Rede
Algoritmo de Vector de Distncias- Equao de Bellman-Ford
Equao de Bellman-Ford (programao dinmica)Definir
dx(y) := custo do caminho de menor custo entre x e yEnto
dx(y) = min {c(x,v) + dv(y) }
onde min tomado entre todos os vizinhos v de xv
v
Claramente, dv(z) = 5, dx(z) = 3, dw(z) = 3
min {c(u,v) + dv(z),c(u,x) + dx(z),c(u,w) + dw(z)} =min {2 + 5, 1 + 3, 5 + 3} = 4
A equao B-F diz que du(z) =2
21
3
1
1
2
53
5
Z
YX
U
V W
O n que leva ao custo mnimo o prximo passoao longo do caminho mais curto tab. de encaminhamento
Exemplo com Bellman-Ford
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica54 Camada de Rede
Algoritmo de Vector de DistnciasDV Distance Vector Algorithm
Cada n envia periodicamente a seu prprio vector de distncias (estimativa) para os vizinhos
Quando um n x recebe uma nova estimativa DV de um vizinho, actualiza o seu DV usando a eq. B-F:
Sob condies mnimas, naturais, a estimativa Dx(y) converge para o menor custo real dx(y)
Dx(y) = estimativa do menor custo entre x e yVector de distncias: Dx = [Dx(y): y N ]1. N x sabe o custo para cada vizinho v: c(x,v)2. N x mantm Dx = [Dx(y): y N ]3. N x mantm ainda os vectores de distncias dos seus vizinhos
Para cada vizinho v, x mantm
Dv = [Dv(y): y N ]
Definir
Dx(y) minv{c(x,v) + Dv(y)} p/ cada n y N
Idia bsica
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica55 Camada de Rede
Iterativo actualizaes contnuas at que no haja
troca de informao entre ns iterao local causada por
mudana do custo da ligao local mensagem do vizinho: mudana de caminho
de menor custo para algum destino termina automaticamenteAssncrono cada n actualiza a sua informao em
instantes independentes dos outros nsDistribudo cada n comunica apenas com os seus
vizinhos directos os vizinhos avisam os seus vizinhos, se
necessrio
Iterativo actualizaes contnuas at que no haja
troca de informao entre ns iterao local causada por
mudana do custo da ligao local mensagem do vizinho: mudana de caminho
de menor custo para algum destino termina automaticamenteAssncrono cada n actualiza a sua informao em
instantes independentes dos outros nsDistribudo cada n comunica apenas com os seus
vizinhos directos os vizinhos avisam os seus vizinhos, se
necessrio
espera por mudanas no custo de uma ligao local ou por mensagem de um vizinho
recalcula tabela de distncias
se mudou o caminho de menor custo para qualquer destino, informa vizinhos
Em cada n
Funcionamento do Algoritmo de Vector de Distncias
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica56 Camada de Rede
Implementao do Algoritmo de Vector de Distncias
Initialization
1 for all destinations y in N:/* if y is not a neighbor
then c(x,y)= */2 DX(y) = c(x,y) 3 for each neighbor v 4 Dv(y) =
5 for each neighbor v6 send distance vector DX
= [DX(y): y in N] to v
Em todos os ns. Comeando por X...
7 loop 8 wait 9 until x gets a link cost change c(x,w) to neighbor w10 or until x receives Dw(y) update from neighbor w
11 for each y in N:12 DX(y) = minv { c(x,v) + Dv(y) } 13 if DX(y) changed for any destination y 14 send distance vector DX = [DX(y): y in N] to all
neighbors v
15 forever
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica57 Camada de Rede
x y z
xyz
0 2 7 o
rigem
custo para
origem
origem
x y zxyz
0 2 3
origem
custo parax y z
xyz
0 2 3
origem
custo para
x y z
xyz
x y z
xyz
0 2 7origem
x y z
xyz
0 2 3
origem
x y z
xyz
0 2 3
origem
x y z
xyz
0 2 7
origem
x y z
xyz
7 1 0
2 0 1
2 0 17 1 0
2 0 17 1 0
2 0 13 1 0
2 0 13 1 0
2 0 1
3 1 02 0 1
3 1 0
tempo
x z12
7
y
tabela
n
xta
bela
n
yta
bela
n
z
Dx(y)=min{c(x,y)+Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
Algoritmo de Vector de Distncias Exemplo
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica58 Camada de Rede
Vector de Distncias: Alterao (decremento) do custo de uma ligao
n detecta mudana no custo da ligao local
actualiza tabela de distncias se mudou o Distance Vector, avisa aos vizinhos
X Z
14
50
Y1
1. No tempo t0, y detecta a mudana no custo da ligao, actualiza o seu DV e informa os vizinhos.
2. No tempo t1, z recebe a actualizao de y e actualiza a sua tabela. Calcula o novo menor custo para x e envia o seu DV para os
vizinhos.3. No tempo t2, y recebe a actualizao de z e actualiza a sua tabela.
Os custos mnimos de y no mudam e portanto y no envia nenhuma mensagem para z.
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica59 Camada de Rede
Vector de Distncias: Alterao (incremento) no custo de uma ligao
Mudana no custo das ligaes boas notcias chegam logo
ms notcias demoram para chegar
44 iteraes antes do algoritmo estabilizar
problema 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 distncia para x infinita (para que y no encaminhe para x via z)
Isto no resolve completamente o problema da contagem ao infinito
X Z
14
50
Y60
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica60 Camada de Rede
Comparao dos algoritmos Link-State (LS) e Distance-Vector (DV)
Complexidade das mensagens LS: com n ns e E ligaes, cada
n envia O(nE) mensagens DV: troca de mensagens apenas
entre ns vizinhos
Velocidade de convergncia LS: o algoritmo (em cada n)
converge em O(n2) comparaes pode conduzir a oscilaes
DV: tempo de convergncia varia Podem-se criar circuitos fechados problema da contagem para infinito
Robustez mau funcionamento dos ns
LS: cada n pode difundir errada-
mente os custos das ligaes cada n calcula a sua tabela
de encminhamento DV:
cada n pode difundir errada-mente o custo de um caminho
a tabela de cada n usada pelos restantes
erros propagam-se a toda a rede
Artur ArsenioRedes de Computadores 2010/2011
Departamento de Engenharia Informtica61 Camada de Rede
Princpios de encaminhamento seleco de um caminho
Servios da camada de rede Circuitos virtuais Datagramas
Funcionamento de um encaminhador (router) Camada de rede na Internet: o protocolo IP Princpios de encaminhamento
seleco de um caminho Outros aspectos da camada de rede na Internet
DHCP, NAT, ICMP, IPv6 Encaminhamento hierrquico Encaminhamento na Internet
intra domnio inter domnio
Encaminhamento multicast
Encaminhamento Abstraco com grafos
Classificao dos algoritmos de encaminhamento
Algoritmo de encaminha-mento Link-State
Exemplo e discusso
Algoritmo de Dijkstra
Algoritmo de Vector de Distncias
Equao de Bellman-Ford
Funcionamento do Algoritmo
Implementao e exemplos
Alterao do custo de ligao
Comparao dos algoritmos Link-State e Distance-Vector
Encaminhamento Abstraco com grafos
Classificao dos algoritmos de encaminhamento
Algoritmo de encaminha-mento Link-State
Exemplo e discusso
Algoritmo de Dijkstra
Algoritmo de Vector de Distncias
Equao de Bellman-Ford
Funcionamento do Algoritmo
Implementao e exemplos
Alterao do custo de ligao
Comparao dos algoritmos Link-State e Distance-Vector