redes de computadoresredes de computadores · lógica física aplicação transporte rede lógica...

61
Artur Arsenio Redes de Computadores 2010/2011 Departamento de Engenharia Informática 1 Redes de Computadores Redes de Computadores Camada Rede

Upload: ledan

Post on 08-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

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