67
Redes de Computadores 4.1 Camada de Rede Serviços da camada de rede Circuitos virtuais Datagramas Funcionamento de um encaminhador (“router”) Camada de rede na Internet: o protocolo IP Princípios de encaminhamento: selecção de um caminho Encaminhamento hierárquico Encaminhamento na Internet intra domínio inter domínio Encaminhamento “multicast” Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6 Mobilidade Redes de Computadores 4.2 Funções da camada de rede Objectivo : transporte de pacotes do computador origem ao computador destino os protocolos da camada de rede existem em todos os computadores terminais e todos os nós intermédios Funções importantes determinação do caminho: rota seguida pelos pacotes da origem ao destino. Algoritmos de encaminhamento comutação: copiar os pacotes de uma entrada do nó (“router”) para a saída apropriada estabelecimento de chamada: algumas arquitecturas exigem o estabelecimento de uma ligação entre origem e destino antes da comunicação de dados (“call setup”) network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical application transport network data link physical

Camada de Rede - fenix.tecnico.ulisboa.pt · • execução de algoritmos/protocolos de encaminhamento (RIP, OSPF, BGP) • comutação de datagramas das ligações de entrada para

  • Upload
    vanngoc

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Redes de Computadores 4.1

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.2

Funções da camada de redeObjectivo:

transporte de pacotes do computador origem ao computador destino

– os protocolos da camada de rede existem em todos os computadores terminais e todos os nós intermédios

Funções importantes

• determinação do caminho: rota seguida pelos pacotes da origem ao destino. Algoritmos de encaminhamento

• comutação: copiar os pacotes de uma entrada do nó (“router”) para a saída apropriada

• estabelecimento de chamada: algumas arquitecturas exigem o estabelecimento de uma ligação entre origem e destino antes da comunicação de dados (“call setup”)

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

Redes de Computadores 4.3

Modelo de serviços da camada de rede

Qual deve ser o modelo de serviçosno transporte de pacotes da origem para o destino?

• Largura de banda garantida?

• Preservação do intervalo de tempo entre pacotes (eliminação do “jitter”)?

• Entrega sem perdas?

• Entrega na ordem?

• Envio de informação de congestionamento para a fonte?

? ??Circuito Virtual

oudatagrama?

Característica maisimportante do serviço

prestado pela camada de rede:

Redes de Computadores 4.4

Circuitos Virtuais

• Estabelecimento de um caminho (chamada) antes da transmissão de dados e correspondente acção de desligar cada chamada.

• Cada pacote transporta o identificador do circuito virtual (não inclui necessariamente a identificação do computador destino)

• Cada nó, no caminho origem-destino, mantém o estado de cada ligação

• Para cada circuito virtual podem ser reservados recursos ao longo do caminho, incluindo largura de banda e memória nos nós

o caminho entre origem e destino “assemelha-se” a um circuito telefónico tradicional

Redes de Computadores 4.5

Circuitos Virtuais12 22 32

1 23

Número do VC

Número dainterface

Interface de entrada # do VC de entrada Interface de saída # do VC de saída

1 12 3 222 63 1 18 3 7 2 171 97 3 87… … … …

Tabela de expedição

Os Routers guardam informação do estado de cada ligação

Redes de Computadores 4.6

Protocolos de sinalização em circuitos virtuais

• Protocolos usados para estabelecer, manter e terminar um circuito virtual

– ATM, frame-relay, X.25

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

1. Initiate call 2. incoming call

3. Accept call4. Call connected5. Data flow begins 6. Receive data

Redes de Computadores 4.7

Redes de datagramas (Internet)

• Não há estabelecimento de ligação ao nível da camada de rede

• Os nós não guardam informação sobre ligações extremo a extremo– o conceito de ligação não existe ao nível da camada de rede

• Os pacotes são tipicamente encaminhados pelo identificador do computador de destino

– pacotes entre o mesmo par origem-destino podem seguir caminhos diferentes

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

1. Send data 2. Receive data

Redes de Computadores 4.8

Rede de datagramas

Endereços de Destino Interface de saída

11001000 00010111 00010000 00000000até 0

11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000até 1

11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000até 2

11001000 00010111 00011111 11111111

Outros 3

Tabela de expedição

Redes de Computadores 4.9

Rede de datagramas

Prefixo Interface de saída11001000 00010111 00010 0 11001000 00010111 00011000 111001000 00010111 00011 2

Outros 3

11001000 00010111 00011000 10101010

Exemplos:

11001000 00010111 00010110 10100001 Qual a interface de saída para os endereços?

O maior prefixo do endereço na tabela determina a interface de saída

Redes de Computadores 4.10

Modelos de serviços na camada de rede

Arquitecturade rede

Internet

ATM

ATM

ATM

ATM

Modelode serviço

best effort

CBR

VBR

ABR

UBR

Banda

nenhuma

taxaconstantetaxagarantidataxa mínimanenhuma

Perdas

não

sim

sim

não

não

Ordem

não

sim

sim

sim

sim

Tempo

não

sim

sim

não

não

Informação deCongestionamento

não

não aplicável

não aplicável

sim

não

Garantia ?

• Para a Internet estão a ser definidos novos modelos de serviços: Intserv, Diffserv

Redes de Computadores 4.11

Datagramas versus circuitos virtuais

Internet• troca de dados entre computadores

– serviço “elástico”; a eliminação do “jitter” não era importante

• terminais “inteligentes” (computadores)– os terminais podem adaptar-se,

implementar controlo de erros e recuperar de situações de erro

– o interior da rede pode ser simples reservando a complexidade para os extremos

• tipos diferentes de ligações físicas com– diferentes características

– dificuladade em fornecer um serviço uniforme

ATM• evoluiu a partir da rede

telefónica

• conversação humana: – eliminação do “jitter” muito

importante, grandes exigências de fiabilidade

– necessidade de garantia de qualidade de serviço

• sistemas terminais “estúpidos”– aparelho de telefone tradicional

– complexidade introduzida no interior da rede

Redes de Computadores 4.12

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.13

Arquitectura de um nó (“router”)

Duas funções fundamentais:• execução de algoritmos/protocolos de encaminhamento (RIP, OSPF, BGP)

• comutação de datagramas das ligações de entrada para as ligações de saída

Redes de Computadores 4.14

Funções dos portos de entrada

Comutação descentralizada:• dado o endereço de destino de um datagrama, determinar

o porto de saída consultando a tabela de encaminhamento na memória local

• objectivo: completar todas as tarefas ao ritmo de chegada da ligação

• se os datagramas chegam mais depressa que o ritmo de envio para a malha de comutação existe um fila de espera

Camada Física:nível do bit

Camada de ligação de dados:

e.g., Ethernet

Redes de Computadores 4.15

Fila de espera no porto de entrada

• Se a malha de comutação é mais lenta que os portos de entrada combinados podem surgir filas de espera na entrada

• Bloqueio “Head-of-the-Line (HOL)”: o datagrama na primeira posição da fila impede outros de serem encaminhados para uma saída

• surgem atrasos e perdas

Redes de Computadores 4.16

Funções dos portos de saída

• É necessário o armazenamento (“Buffering”) quando os datagramas chegam da malha a um ritmo maior que a largura de banda de saída

• Disciplina de serviço: escolhe o datagrama, de entre os que estão na fila, que é transmitido a seguir (FCFS, WFQ)

Redes de Computadores 4.17

Fila de espera no porto de saída

• A fila de espera do porto de saída pode introduzir Atraso e Perdas

Redes de Computadores 4.18

Arquitecturas de comutação

Redes de Computadores 4.19

Comutação através da memória“routers” de primeira geração:

• cada pacote é copiado para a memória pela única CPU do sistema

• velocidade limitada pela largura de banda de acesso à memória (2 passagens pelo “bus” do sistema por datagrama

InputPort

OutputPort

Memory

System Bus

“routers” modernos:

• o processador de entrada consulta a tabela e copia para memória partilhada (Exemplo: Cisco Catalyst 8500).

Redes de Computadores 4.20

Comutação através de um “bus”

• Cada datagrama é transmitido da memória do porto de entrada para a memória do porto de saída através de um “bus”

• velocidade de comutação limitada pela largura de banda do “bus”

• Exemplo: Cisco 1900 (“bus” de 1 Gbps) -suficiente para o acesso de médias empresas àInternet

Redes de Computadores 4.21

Comutação através de uma malha

• Ultrapassa as limitações impostas pelo “bus”

• Redes inicialmente propostas para interligar processadores num ambiente multiprocessador, redes de Banyan

• estruturas avançadas: fragmentação de datagramas em pacotes de tamanho fixo dentro da malha de comutação.

• Exemplo Cisco 12000: pode comutar dezenas de Gbps através da sua malha de comutação

Redes de Computadores 4.22

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.23

Camada de rede na Internet

Tabela deencaminhamento

Funções da camada de rede:

Protocolos de encaminhamento•sel. de caminhos•RIP, OSPF, BGP

Protocolo IP•endereçamento•formato dos datagramas•manuseamento

Protocolo ICMP •erros•sinalização

Camada de transporte: TCP, UDP

Camada de ligação de dados

Camada física

Camadade rede

Redes de Computadores 4.24

Endereçamento IP

• Endereço IP: identificador de 32 bits para uma “interface” de um nó(“router”) ou computador

• “interface”: ligação entre um computador/nó e o canal físico

– tipicamente um nó tem várias “interfaces”

– um computador tem muitas vezes apenas uma “interface”, mas pode ter mais

– os endereços IP estão associados às “interfaces”

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

223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 11

Redes de Computadores 4.25

Endereçamento IP

• Endereço IP:– parte de rede (bits de maior

ordem) - “network part”

– parte de computador (bits de menor ordem) - “host part”

• Uma rede do ponto de vista do protocolo IP é

– um conjunto de “interfaces”com o mesmo número da parte de rede

• podem comunicar entre elas sem intervenção de um nóencaminhador (“router”)

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

Sistema constituído por 3 redes IP (para os endereços IP começados por 223, os primeiros 24 bits são o endereço de rede)

LAN

Redes de Computadores 4.26

Endereçamento IP

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.2223.1.2.1

223.1.2.6

223.1.3.2223.1.3.1

223.1.3.27

223.1.1.2

223.1.7.2

223.1.7.1223.1.8.2223.1.8.1

223.1.9.1

223.1.9.2

Sistema interligadoconstituído por 6 redes IP

Redes de Computadores 4.27

Endereçamento IP

0 network host

10 network host

110 network host

1110 multicast address

A

B

C

D

classe1.0.0.0 a127.255.255.255

128.0.0.0 a191.255.255.255

192.0.0.0 a223.255.255.255

224.0.0.0 a239.255.255.255

32 bits

Endereçamento em classes (“class-full”):

Redes de Computadores 4.28

Endereçamento IP

• Endereçamento em classes: – uso ineficiente do espaço de endereçamento

– e.g., a atribuição de uma rede de classe B reserva espaço para cerca de 65000 computadores

• CIDR: “Classless InterDomain Routing”– a parte de rede do endereço tem comprimento arbitrário

– formato do endereço: a.b.c.d/x, onde x é o número de bits da parte de rede do endereço

11001000 00010111 00010000 00000000

networkpart

hostpart

200.23.16.0/23

Redes de Computadores 4.29

Obtenção de endereços IP

Redes (“network portion”):• atribuição de parte do espaço de endereçamento do fornecedor do

serviço Internet (ISP):

Bloco do ISP 11001000 00010111 00010000 00000000 200.23.16.0/20

Organização 0 11001000 00010111 00010000 00000000 200.23.16.0/23

Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23

Organização 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….

Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Redes de Computadores 4.30

Endereçamento hierárquico

“Send me anythingwith addresses beginning 200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us“Send me anythingwith addresses beginning 199.31.0.0/16”

200.23.20.0/23Organization 2

...

...

O endereçamento hierárquico permite a publicação eficiente da informação de encaminhamento:

Redes de Computadores 4.31

Endereçamento hierárquico

O fornecedor de serviços ISPs-R-Us publica um caminho específicopara “Organization 1”

“Send me anythingwith addresses beginning 200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us“Send me anythingwith addresses beginning 199.31.0.0/16or 200.23.18.0/23”

200.23.20.0/23Organization 2

...

...

Redes de Computadores 4.32

Obtenção de blocos de endereços

A instituição ICANN “Internet Corporation for Assigned Names and Numbers” é responsável por

– atribuir endereços

– gerir o “Domain Name System - DNS”

– atribuir nomes de domínios e gerir conflitos

• 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 Internet Addresses Registry”

– RIPE NCC “Reseaux IP Europeans”

Redes de Computadores 4.33

Datagrama IP: da origem ao destino

miscfields

sourceIP addr

destIP addr data

datagrama IP:

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

• No que respeita aos campos de endereço origem e destino o datagrama não é alterado desde a origem ao destino

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

Tabela de encaminhamento em A

Redes de Computadores 4.34

Datagrama IP: da origem ao destino

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

Da origem A (223.1.1.1)

ao destino B (223.1.1.3)

• consulta a tabela de encaminhamento com a parte de rede do endereço de B

– B está na mesma rede que A

• a camada de ligação de dados envia, dentro da sua trama, o datagrama directamente a B

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

miscfields 223.1.1.1 223.1.1.3 data

Redes de Computadores 4.35

Datagrama IP: da origem ao destino

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

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

Da origem A (223.1.1.1)

ao destino E (223.1.2.2)

• consulta a tabela de encaminhamento com a parte de rede do endereço de E

– E não está na mesma rede que A

– caminho para E passa pelo nó (“router”) 223.1.1.4

• camada de ligação de dados envia trama para 223.1.1.4 contendo o datagrama

• datagram chega a 223.1.1.4

• continua…..

miscfields 223.1.1.1 223.1.2.2 data

Redes de Computadores 4.36

Datagrama IP: da origem ao destino

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

Do “router” 223.1.1.4

ao destino E (223.1.2.2)

• consulta a tabela de encaminhamento com a parte de rede do endereço de E

– E está na mesma rede que a “interface”223.1.2.9 do “router”

• camada de ligação de dados associada à “interface” 223.1.2.9 do “router”envia trama para 223.1.2.2 contendo o datagrama

• datagrama chega a 223.1.2.2

miscfields 223.1.1.1 223.1.2.2 data network router Nhops interface

223.1.1 - 1 223.1.1.4

223.1.2 - 1 223.1.2.9

223.1.3 - 1 223.1.3.27

Dest. next

Redes de Computadores 4.37

Formato do datagrama IP

ver length

32 bits

data (variable length,typically a TCP

or UDP segment)

16-bit identifier

Internetchecksum

time tolive

32 bit source IP address

IP protocol versionnumber

header length(bytes)

max numberremaining hops

(decremented at each router)

forfragmentation/reassembly

total datagramlength (bytes)

upper layer protocolto deliver payload to

head.len

type ofservice

“type” of data flgsfragment

offsetupperlayer

32 bit destination IP address

Options (if any) E.g. timestamp,record routetaken, specifylist of routers to visit.

Redes de Computadores 4.38

Fragmentação e reagrupamento em IPv4

• As ligações da rede têm um tamanho máximo para as tramas da camada de ligação de dados (MTU “max. transfer size”)

– em ligações diferentes há diferentes MTUs

• datagramas IP grandes podem ser divididos (“fragmentados”) dentro da rede

– um datagrama passa a ser vários datagramas

– são reagrupados apenas no destino

– existem campos no cabeçalho IP que são usados para identificar e ordenar os fragmentos

fragmentação: in: 1 datagramaout: 3 datagramas

reagrupamento

Redes de Computadores 4.39

Fragmentação e reagrupamento em IPv4

ver length

32 bits

data

16-bit identifier

Internetchecksum

time tolive

32 bit source IP address

head.len

type ofservice

flagsfragment

offsetupperlayer

32 bit destination IP address

Options (if any)

0xx Reserved

x0x May Fragment

x1x Do Not Fragment

xx0 Last Fragment

xx1 More Fragments (fragflag)

This 13-bit field indicates the position of a particular fragment's data in relation to the first byte of data (offset 0).

This 16-bit field contains a unique number used to identify the frame and any associated fragments for reassembly

Redes de Computadores 4.40

Fragmentação e reagrupamento em IPv4

ID=x

offset=0

fragflag=0

length=4000

ID=x

offset=0

fragflag=1

length=1500

ID=x

offset=185

fragflag=1

length=1500

ID=x

offset=370

fragflag=0

length=1040

Um datagrama transforma-se em vários datagramas mais pequenos

Redes de Computadores 4.41

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.42

Encaminhamento

Representação da rede por grafos:

• os encaminhadores (“routers”) são os nós do grafo

• as ligações físicas são os arcos do grafo

– custo da ligação: atraso, distância em km, nível de congestionamento

Objectivo: determinar “bons”caminhos na rede (sequências de

nós) entre a origem e o destino

A

ED

CB

F

2

2

13

1

1

2

53

5

Caminho “bom”:– tipicamente o caminho de menor

custo

Redes de Computadores 4.43

Classificação dos algoritmos de encaminhamentoInformação global ou

descentralizada?Global:

• todos os nós conhecem completamente a topologia e o custo das ligações

• algoritmos de estado das ligações(“link state” algorithms)

Descentralizada:

• cada nó conhece os que lhe estão ligados directamente e os custos associados a essas ligações

• processo de cálculo iterativo por troca de informação com os vizinhos

• algoritmos de vector de distâncias(“distance vector” algorithms)

Estáticos ou dinâmicos?Estáticos:

• os caminhos mudam lentamente no tempo

Dinâmicos:

• os caminhos mudam rapidamente– modificação periódica

– modificação sempre que se alterem os custos das ligações ou a topologia

Redes de Computadores 4.44

Um algoritmo de encaminhamento “Link -State”

Algoritmo de Dijkstra• topologia da rede e custos das

ligações conhecidos por todos os nós– consegue-se através da difusão da

informação sobre o estado das ligações (“link state broadcast”)

– todos os nós têm a mesma informação

• calcula o menor custo desde um nó(fonte) até cada um dos restantes

– produz a tabela de encaminhamentopara esse nó

• iterativo: depois de k iterações, conhece o menor custo para k destinos

Notação:

• c(i,j): custo da ligação do nó ipara o nó j; o custo é infinito se os nós não são vizinhos

• D(v): valor actual do custo da origem para o destino v

• p(v): penúltimo nó no caminho da origem para o nó v

• N: conjunto de nós para os quais já se conhece o caminho de menor custo

Redes de Computadores 4.45

Passo012345

NA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A 2,A 2,A

D(C),p(C)5,A 4,D 3,E 3,E

D(D),p(D)1,A

D(E),p(E)infinito

2,D

D(F),p(F)infinito infinito

4,E 4,E 4,E

Algoritmo de Dijkstra: exemplo

A

ED

CB

F

2

2

13

1

1

2

53

5

Redes de Computadores 4.46

Algoritmo de Dijkstra

1 Initialization:2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v) 6 else D(v) = infty 7 8 Loop9 find w not in N such that D(w) is a minimum 10 add w to N 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N

Redes de Computadores 4.47

Algoritmo de Dijkstra: discussãoComplexidade do algoritmo: n nós

• em cada iteração: é necessário avaliar todos os nós, w, que não estão em N

• n(n+1)/2 comparações: O(n2)

• em implementações mais eficientes: O(n logn)

O algoritmo pode conduzir a oscilações:

• e.g., se custo da ligação = tráfego transportado

A

D

C

B1 1+e

e0

e

1 1

0 0

A

D

C

B2+e 0

001+e 1

A

D

C

B0 2+e

1+e10 0

A

D

C

B2+e 0

e01+e 1

initially… recompute

routing… recompute … recompute

Redes de Computadores 4.48

Algoritmo de vector de distâncias - DV

iterativo:• actualizações contínuas até que não haja troca de informação entre nós

• termina automaticamente

assíncrono:• cada nó actualiza a sua informação em instantes independentes dos outros nós

distribuído:

• cada nó comunica apenas com os seus vizinhos directos

Estrutura das tabelas de distância• existe uma tabela em cada nó

• uma linha para cada nó destino

• uma coluna para cada nó vizinho directo

• exemplo: no nó X, para o nó destino Y via nó vizinho Z:

D (Y,Z)X

distância de X aY, via Z

c(X,Z) + min {D (Y,w)}Z

w

=

=

Redes de Computadores 4.49

Exemplo de tabela de distâncias

A

E D

CB7

8

1

2

1

2

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

ECusto ao nó destino via

dest

ino

D (C,D)E

c(E,D) + min {D (C,w)}D

w== 2+2 = 4

D (A,D)E

c(E,D) + min {D (A,w)}D

w== 2+3 = 5

D (A,B)E

c(E,B) + min {D (A,w)}B

w== 8+6 = 14

loop!

loop!

Redes de Computadores 4.50

Tabela de expedição

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

ECusto ao nó destino via

dest

ino

A

B

C

D

A,1

D,5

D,4

D,2

Ligação de saída, custo

dest

ino

Tabela de distâncias Tabela de expedição

Nó E

A

E D

CB7

8

1

2

1

2

Redes de Computadores 4.51

Funcionamento do algoritmo de vector de distâncias

espera por mudanças no custo de uma ligação local ou por mensagem de um vizinho

recalcula tabela de distâncias

se algum caminho de menor custo para um nó destino mudou, informa vizinhos

Em cada nó:

Iterativo

Assíncrono

Distribuído

Redes de Computadores 4.52

Funcionamento do algoritmo de vector de distâncias

1 Initialization: 2 for all adjacent nodes V: 3 D (*,V) = infty /* the * operator means "for all rows" */ 4 D (V,V) = c(X,V) 5 for all destinations, y 6 send min D (y,w) to each neighbor /* w over all X's neighbors */

XX

Xw

Em todos os nós, X:

Redes de Computadores 4.53

Funcionamento do algoritmo de vector de distâncias8 loop9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */14 /* note: d could be positive or negative */ 15 for all destinations y: DX(y,V) = DX(y,V) + d 16 17 else if (update received from V with destination Y) 18 /* shortest path from V to some Y has changed */19 /* V has sent a new value for its minwDV (Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: DX(Y,V) = c(X,V) + newval 22 23 if we have a new minwDX(Y,w) for any destination Y 24 send new value of minwDX(Y,w) to all neighbors 25 26 forever

Redes de Computadores 4.54

Vector de distâncias (DV): Exemplo

X Z

12

7

Y

D (Y,Z)X

c(X,Z) + min {D (Y,w)}w=

= 7+1 = 8

Z

D (Z,Y)X

c(X,Y) + min {D (Z,w)}w=

= 2+1 = 3

Y

Redes de Computadores 4.55

Vector de distâncias (DV): Exemplo

X Z

12

7

Y

Redes de Computadores 4.56

Vector de distâncias: alteração do custo de ligação

Alteração do custo de uma ligação:• nó detecta a alteração

• racalcula a tabela de distâncias

• se o custo de um caminho de menor custo se altera, informa os vizinhos

X Z

14

50

Y1

algoritmotermina“boas

notícias propagam-sedepressa”

Redes de Computadores 4.57

Vector de distâncias: alteração do custo de ligação

Alteração no custo de uma ligação:• boas notícias propagam-se depressa

• más notícias propagam-se devagar -problema de “contagem para infinito”!

X Z

14

50

Y60

algoritmocontinua

Redes de Computadores 4.58

Vector de distâncias: “poisoned reverse”

Se Z encaminha para X via Y:• Z diz a Y que a sua distância a X é infinito

(asssim Y nunca encaminha para X via Z)

• Será que isto resolve completamente o problema da “contagem para infinito”?

X Z

14

50

Y60

algoritmotermina

Redes de Computadores 4.59

Comparação dos algoritmos LS e DV

Complexidade das mensagens• LS: com n nós e E ligações, cada nó

envia O(nE) mensagens

• DV: troca de mensagens apenas entre nós vizinhos

Velocidade de convergência• LS: o algoritmo (em cada nó)

converge em O(n2) comparações– pode conduzir a oscilações

• DV: tempo de convergência varia– podem criar-se circuitos fechados

– problema da contagem para infinito

Robustez: mau funcionamento dos nós

• LS:– cada nó pode difundir erradamente os

custos das ligações

– cada nó calcula a sua tabela de expedição

• DV:– cada nó pode difundir erradamente o

custo de um caminho

– a tabela de cada nó é usada pelos restantes

• este erro propaga-se a toda a rede

Redes de Computadores 4.60

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.61

Encaminhamento hierárquico

Escala (milhões de destinos)• não se podem memorizar todos em

cada tabela de encaminhamento!

• A troca de informação para a construção das tabelas esgotaria a capacidade da rede!

Autonomia administrativa• internet = rede de redes

• cada instituição/organização/empresa tem o direito de usar mecanismos de encaminhamento próprios

Até aqui considerámos que:

• todos os nós são idênticos

• a rede é “plana”

Pelo menos dois problemas:

Redes de Computadores 4.62

Encaminhamento hierárquico

Organização de nós em regiões autónomas, “autonomous systems” (AS)

• nós especiais em cada AS

• utilizam um protocolo de encaminhamento intra-AS com todos os nós desse AS

• são responsáveis pelo encaminhamento para destinos fora desse AS– utilizam um protocolo de encaminhamento inter-AS com os restantes nós “gateway”

Nós “gateway”

utilizam o mesmo protocolo de encaminhamento “intra-AS”Nós no mesmo AS

Nós em diferentes ASpodem utilizar diferentes protocolos de encaminhamento intra-AS

Redes de Computadores 4.63

Encaminhamento Intra-AS e Inter-AS“Gateways”:

- usam encaminhamento inter-AS entre eles;- usam encaminhamento intra-AS com os nós do seu AS.

encaminhamentointer-AS, intra-ASna “gateway” A.c

Camada de rede

Camada de ligação de dados

Camada física

a

b

b

aaC

A

Bd

A.a

A.c

C.bB.a

cb

c

Redes de Computadores 4.64

Encaminhamento Intra-AS e Inter-AS

Host h2

a

b

b

aaC

A

Bd c

A.a

A.c

C.bB.a

cb

Hosth1

Encamin. Intra-AS dentro do AS A

Encamin.Inter-ASentre A e B

Encamin. Intra-ASdentro do AS B

• Veremos adiante protocolos de encaminhamento intra-AS (RIP, OSPF, IGRP) e inter-AS (BGP) usados na Internet

Redes de Computadores 4.65

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.66

Encaminhamento na Internet

• A Internet é constituída por Sistemas Autónomos “Autonomous Systems” (AS) interligados entre si.

• Existem 2 níveis de encaminhamento: – Intra-AS: cada administrador é responsável pela escolha do protocolo usado

– Inter-AS: protocolo único

Redes de Computadores 4.67

Hierarquia de AS’s na Internet

Nós fronteira Inter-AS (“exterior gateway”)

Nós interiores Intra-AS

Redes de Computadores 4.68

Encaminhamento Intra-AS

• Conhecidos como “Interior Gateway Protocols (IGP)”

• IGP’s mais comuns:

– RIP: “Routing Information Protocol” (2, RFC 2453 – Nov. 1998)

– OSPF: “Open Shortest Path First” (v2, RFC 2328 – Abril 1998)

– IGRP: “Interior Gateway Routing Protocol” (Cisco propr.)

Redes de Computadores 4.69

RIP (“Routing Information Protocol”)

• Algoritmo de vector de distâncias

• Incluído na distribuição de BSD-UNIX, 1982

• Métrica de distância: # de saltos (max = 15 saltos)

• Vectores de distância: trocados de 30 em 30 segundos via “Response Message” (também chamada mensagem de anúncio, “advertisement”)

• Cada anúncio: caminhos até um máximo de 25 destinos

Redes de Computadores 4.70

RIP (“Routing Information Protocol”)

Destination Network Next Router Num. of hops to dest.w A 2y B 2z B 7x -- 1…. …. ....

w x y

z

A

C

D B

Tabela de encaminhamento em D

. . .

. . .

A 5

Redes de Computadores 4.71

RIP: falha de uma ligação

Se não forem ouvidas mensagens de anúncio (“advertisement”) num período de 180s. da parte de um vizinho ele é declarado inexistente

1. caminhos que incluam esse vizinho são retirados da tabela

2. são enviadas mensagens de anúncio aos restantes vizinhos

3. os vizinhos por sua vez enviam novas mensagens se as suas tabelas tiverem mudado

– a falha é rapidamente propagada a toda a rede

Redes de Computadores 4.72

RIP: processamento de tabelas

• As tabelas de encaminhamento RIP são geridas por um processo na camada de aplicação chamado route-d (“daemon”)

• As mensagens de anúncio são enviadas periodicamente usando o protocolo de transporte UDP (porto 520)

Redes de Computadores 4.73

RIP: processamento de tabelasNó: giroflee.eurocom.fr

• Três redes classe C (LANs) directamente ligadas

• Nó para enviar todos os datagramas com endereços que não constam da tabela - “default router”

• Endereço multicast: 224.0.0.0

• Interface “Loopback”: 127.0.0.1

Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ ---------127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454

Redes de Computadores 4.74

OSPF (“Open Shortest Path First”)

• “open”: público

• Algoritmo de estado das ligações – disseminação de pacotes de estado das ligações (LS packet”)

– topologia conhecida em todos os nós

– cálculo dos caminhos usando o algoritmo de Dijkstra

• As mensagens OSPF de divulgação para toda a rede têm apenas uma entrada por cada nó vizinho

• As mensagens de divulgação são disseminadas por inundação

• O protocolo OSPF usa directamente o IP (protocolo 89).

Redes de Computadores 4.75

Características do OSPF

• Segurança: todas as mensagens OSPF são autenticadas (para impedir acessos não autorizados)

• Múltiplos caminhos: caminhos de igual custo para o mesmo destino podem ser mantidos (RIP permite apenas um)

• Métricas diferentes para a mesma ligação dependendo do tipo de serviço (campo TOS dos datagramas)

– e.g., ligação satélite com custo baixo para tráfego de melhor esforço e custos elevados para tráfego de tempo real

• Multicast: suporte integrado de uni/multicast– OSPF multicast (MOSPF) usa a topologia construída para OSPF unicast

• Hierarquia: OSPF suporta hierarquia de nós em domínios de grande dimensão

Redes de Computadores 4.76

Hierarquia no OSPF

• Hierarquia em dois níveis: area local, “backbone”.– anúncios do estado das ligações circulam apenas

numa área: cada nó tem conhecimento detalhado da área em que se insere;

– Cada nó conhece apenas a direcção para as redes noutras áreas.

• Nós de fronteira de área (“Area border routers”):conhecem as distâncias para as redes na sua área e anunciam para os restantes nós de fronteira de área.

• Nós do “backbone”: executam o protocolo OSPF apenas no conjunto dos nós do mesmo tipo.

Redes de Computadores 4.77

Encaminhamento Inter-AS

Redes de Computadores 4.78

BGP (“Border Gateway Protocol”)

• Standard de facto (4, RFC 4271 – Janeiro 2006 e também RFCs 1772, 1773)

• Protocolo de vector de caminhos (Path Vector Protocol):– Cada nó da fronteira de um AS (ou BGP router; ou exterior router) envia aos

seus pares, também nós de fronteira de outros AS’s, informação sobre a acessibilidade para as redes contidas nesse AS (colecção de prefixos CIDR);

– Os nós de fronteira vão coleccionando informação dos seus pares e preenchem as suas path vector tables, que especificam os caminhos (sequências de ASes para os vários destinos).

Redes de Computadores 4.79

BGP (“Border Gateway Protocol”)

Exemplo: Suponhamos que X é um nó fronteira de AS1 e W é um nó fronteira de AS2. O nó Xenvia a W o caminho que conhece de AS1 para um destino Z (em que Z é uma rede e o caminho será uma lista de AS’s):

Path (AS1, Z) = AS1, ASi , ASj , ASk ,…, Z

• W pode ou não escolher o caminho anunciado com base em:

– Custo

– Conveniências comerciais/políticas

– Critérios técnicos: evitar caminhos fechados

• Se W aceitar o caminho comunicado por X, então anuncia aos vizinhos:

Path (AS2, Z) = AS2, Path (AS1, Z)

• Um nó pode controlar o tráfego que encaminha escolhendo os anúncios que faz:

– e.g., se não quer encaminhar tráfego para Y → não anuncia nenhum caminho para Y

Redes de Computadores 4.80

BGP (“Border Gateway Protocol”)

• BGP – troca mensagens usando o protocolo TCP (porto 179)

• Mensagens BGP:– OPEN: inicia a ligação TCP e envia autenticação do emissor

– UPDATE: anúncio de caminhos

– KEEPALIVE: mantém uma ligação aberta na ausência de mensagens de UPDATE; usada para responder à mensagem OPEN

– NOTIFICATION: reporta erros em mensagens anteriores; usada para fechar uma ligação

Redes de Computadores 4.81

Porquê diferentes protocolos Inter- e Intra-AS

Considerações de Escala:• Encaminhamento hierárquico poupa espaço nas tabelas de expedição e

economiza mensagens de actualização das condições da rede

Considerações políticas:• Inter-AS: as administrações dos domínios querem controlar como e

por onde o seu tráfego é encaminhado através da internet.

• Intra-AS: não têm em geral requisitos de natureza política

Considerações de desempenho:• Inter-AS: interesses políticos podem prevalecer

• Intra-AS: critérios técnicos de velocidade e optimização de recursos

Redes de Computadores 4.82

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.83

Encaminhamento “multicast”• Multicast: entrega do mesmo pacote a um grupo de receptores

• A técnica Multicasting dá suporte, ao nível da camada de rede, a aplicações com múltiplos participantes: e.g., video on demand, whiteboard, interactive games, software distribution.

Múltiplas ligações ponto a ponto versus ligação “multicast”

Redes de Computadores 4.84

Endereços de grupo

• Endereços de grupo m-cast atribuídos a todos os participantes no grupo

• A Internet usa endereços da classe D para m-cast(224.0.0.0 - 239.255.255.255)

• A distribuição de endereços m-cast é gerida pelo protocolo IGMP (“Internet Group Management Protocol”)

Redes de Computadores 4.85

2 tipos de protocolos para “multicast”

• LAN-to-router– Internet Group Management Protocol (IGMP)

• router-to-router

IGMP

Rtr-2-rtr

– Core Based Trees (CBT)

– Source Based Trees

• Distance Vector Multicast Routing Protocol (DVMRP)

• Multicast Open Shortest Path First (MOSPF)

• Protocol Independent Multicast (PIM)

Redes de Computadores 4.86

Protocolo IGMP

• IGMP (Internet Group Management Protocol) operates between Router and local Hosts, typically attached via a LAN (e.g., Ethernet)

• IGMP uses IP directly (protocol 2)

• Router queries the local Hosts for m-cast group membership info

• Router “connects” active Hosts to m-cast tree via m-cast protocol

Redes de Computadores 4.87

Protocolo IGMP

• Hosts respond with membership reports– randomly delays response

• Host issues “leave-group” msg to leave– optional since router periodically polls anyway (soft state concept)

– “leave-group” causes immediate poll

Redes de Computadores 4.88

Tipos de mensagens IGMPIGMP Message type Sent by Purpose

membership query: general router query for current active multicast groups

membership query: specific router query for specific m-cast group

membership report host host wants to join goup

leave group host host leaves the group

Redes de Computadores 4.89

Encaminhamento “multicast” “router-to-router”• Problem: find the best (e.g., min cost) tree which

interconnects all the members (Steiner tree problem)

Redes de Computadores 4.90

Opções na construção de árvores

• CORE-BASED/SHARED TREE: single tree per group; the root (A) is the “CORE” or the “Rendez Vous”point; all messages go through the CORE

• SOURCE BASED TREE: each source (A, B) is the root of its own tree per group connecting to all the members

Redes de Computadores 4.91

Estado num nó (“router”)

To: 224.112.40.16

• What information must a router maintain to provide multicast?– Core-Based/Shared Tree: per interface, per-group

– Source-Rooted Tree: per-interface, per-group, and per-source!

Group Shared Tree

Y Y N

To: 224.112.40.16

Fr: 128.119.40.12

Fr: 128.8.17.134

Source Based Tree

Y Y NN Y N

Redes de Computadores 4.92

Árvore de fonte vs. Árvore partilhada

• Source-Rooted pros:– no single point-of-failure (the CORE)

– less centralization of traffic (around core)

– packet sent along shortest path to receiver

• Core-Based/Shared better:– one router entry per source-group pair

– trees often utilize fewer links (consider min. spanning tree vs. shortest path tree)

– (How do you advertise the core??)

– Explicit Join less traffic, but longer delay.

Redes de Computadores 4.93

Opções de sinalização

• The tree can be constructed with two options

– Receiver-initiated: receivers send messages to the source. The tree is formed by the path construction messages take to the source.

– Broadcast & Prune: a single node uses Reverse-Path Forwarding to broadcast the tree. Receivers prune back the tree when they don’t want the data.

A router that receives mcast packets buts has no mcast hosts sends a prune message to its upstream router.

Redes de Computadores 4.94

Árvore com ponto central (sinalização iniciada no receptor)

• Predefined CORE for given m-cast group (e.g., posted on web page)

• New members “join” and “leave” the tree with explicit join and leave control messages

• Tree grows as new branches are “grafted” onto the tree

Join

coreJoin

Join

Redes de Computadores 4.95

CBT (Core Based Tree)

• Group Shared Tree Protocol

• Upon a receiver join request, routers construct a path from the core toward that receiver

• Multicast transmissions traverse the tree (packets need not proceed through the CORE)

• Route maintenance:– downstream router issues ECHO-REQUEST

– upstream router refreshes link state and responds with ECHO-REPLY

core

A

B

C

Redes de Computadores 4.96

Árvores baseadas nas fontes

Reverse Path Forwarding

• Packets are forwarded to all neighbors.

• If a packet is received on a link that is not the shortest path back to the source host of the packet, drop it!

• Doesn’t prevent packets from being received twice, but more efficient than flooding.

Each source is the root of its own tree: the tree of shortest paths (least unicast-cost path tree )

Redes de Computadores 4.97

“Reverse Path Forwarding”

Redes de Computadores 4.98

“Pruning”

Redes de Computadores 4.99

Distance Vector Multicast Routing Protocol• DVMRP was the first m-cast protocol deployed on the Internet;

used in MBone (Multicast Backbone)

• Initially, the source broadcasts the packet to ALL routers (using Reverse Path Forwarding)

• Routers with no active Hosts (in this m-cast group) “prune” the tree; i.e., they disconnect themselves from the tree

• Recursively, interior routers with no active descendents self-prune after timeout (3 minutes in Internet) pruned branches “grow back”

• Problems: only few routers are mcast-able; solution: tunnels

Redes de Computadores 4.100

PIM - DM (Protocol Independent Multicast - Dense Mode)

• Similar to DVMRP– Default: reverse-path forward routing, with pruning/grafting strategies

– Routers that are not in the path of any group member send prune messages;

– Routers (that do not belong to the multicast group) but are in the path of new members send graft messages.

• Difference with DVMRP:– usage of underlying unicast routing tables makes protocol simpler (the

underlying unicast protocol may be a distance vector [RIP] or link state protocol [OSPF]).

Redes de Computadores 4.101

PIM - SM (Protocol Independent Multicast - Sparse Mode)

• Like CBT:– Default: router not joined to multicast group

– Initially, members join the “Shared Tree” centered around a Rendez-Vous Point (also called an RP)

• Difference: Packet first unicast to CORE, then dispersed

• Later, once the “connection” to the shared tree has been established, opportunities to connect DIRECTLY to the source are explored (thus establishing a partial Source Based tree)

core

A

B

C

Redes de Computadores 4.102

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.103

Camada de rede na Internet

Tabela deencaminhamento

Protocolos de encaminhamento• sel. de caminhos• RIP, OSPF, BGP

Protocolo IP• endereçamento• formato dos datagramas• manuseamento

Protocolo ICMP • erros• sinalização

Camada de transporte: TCP, UDP

Camada de ligação de dados

Camada física

Camadade rede

Redes de Computadores 4.104

Protocolo ICMP (“Internet Control Message Protocol”)

• Usado por computadores e nós (“routers”) para comunicação de controlo da camada de rede

– informação de erros (exemplos): “unreachable host”, “unreachable protocol”, ...

– pedido/resposta de eco (usado pelo comando ping)

• situa-se na camada de rede “acima” do IP:– as mensagens ICMP são inseridas (campo

de dados) dos datagramas IP

• mensagem ICMP:

Type Code description0 0 echo reply (ping)3 0 dest. network unreachable3 1 dest host unreachable3 2 dest protocol unreachable3 3 dest port unreachable3 6 dest network unknown3 7 dest host unknown4 0 source quench (congestion

control - not used)8 0 echo request (ping)9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header

type code 8 bytes do datagrama IP

RFC 792, Setembro 1981

http://www.iana.org/assignments/icmp-parameters

Redes de Computadores 4.105

Obtenção dinâmica de endereços IP

Endereço IP de uma interface individual (“host portion”):

• Atribuído pelo administrador do sistema e configurado manualmente

• DHCP: “Dynamic Host Configuration Protocol”: atribuição dinâmica de um endereço (“plug-and-play”):– RFC 1531, Outubro 1993

– http://www.ietf.org/html.charters/dhc-charter.html

Redes de Computadores 4.106

DHCP: motivação

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

BE

DHCP servidor

cliente DHCP: à chegadaprecisa obterum endereçodesta rede

Redes de Computadores 4.107

DHCP: cenário de utilização Servidor DHCP : 223.1.2.5 Cliente à

chegada

time

DHCP discover

src : 0.0.0.0, 68 dest.: 255.255.255.255,67yiaddr: 0.0.0.0transaction ID: 654

DHCP offer

src: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 654Lifetime: 3600 secs

DHCP request

src: 0.0.0.0, 68 dest:: 255.255.255.255, 67yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs

DHCP ACK

src: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs

1. Computador difunde a mensagem “DHCP discover”

2. Servidor DHCP responde com “DHCP offer”

3. Computador pede o endereço IP “DHCP request”

4. Servidor confirma endereço IP “DHCP ACK”

Redes de Computadores 4.108

Tradução de endereços de rede (NAT)

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

Rede local10.0.0/24

Internetpública

Os datagramas com fonte e destino nesta rede têmendereços 10.0.0/24

Todos os datagramas ao deixar a rede local têm o mesmo endereço IP

(NAT IP): 138.76.29.7,mas número de porto diferente

• Motivação: do ponto de vista do mundo exterior todos os elementos da rede local

usam apenas um endereço IP:

– não há necessidade de requisitar uma colecção de endereços da entidade competente; basta um endereço IP

– podem mudar-se os endereços na rede local sem notificar o mundo exterior

– pode mudar-se de ISP sem mudar os endereços da rede local e sem mudanças nos nós da rede exterior

– os elementos da rede local não são endereçáveis explicitamente a partir do mundo exterior contribuindo para um aumento de segurança.

NAT (“Network Address Translation”): Ideias básicas em RFC 1631, Maio 1994

Redes de Computadores 4.109

NAT - Implementação

Tarefas do encaminhador NAT:

– datagramas de saída: substituir (endereço IP de origem, porto #) de cada datagrama de saída por (endereço NAT IP, novo porto #)

. . . Os clientes/servidores remotos respondem usando como endereço de destino (endereço NAT IP, novo porto #).

– guardar (na tabela de tradução NAT) todos os pares (endereço IP de origem, porto #), (endereço NAT IP, novo porto #).

– datagramas de entrada: substituir (endereço NAT IP, novo porto #) no campo de endereço de destino de cada datagrama de entrada o valor correspondentena tabela de tradução NAT (endereço IP de origem, porto #).

Redes de Computadores 4.110

Tabela de tradução NATendereço público endereço privado

NAT - Implementação

10.0.0.1

10.0.0.2

10.0.0.3

S: 10.0.0.1, 3345D: 128.119.40.186, 80

1

10.0.0.4

138.76.29.7

138.76.29.7, 5001 10.0.0.1, 3345…… ……

S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4

S: 138.76.29.7, 5001D: 128.119.40.186, 802

S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3

Redes de Computadores 4.111

NAT - Implementação

• Campo de numeração de porto de 16 bits: – 216 = 65.536 ligações simultâneas com um único endereço!

Esta implementação do NAT é controversa:- os nós encaminhadores deviam processar apenas o que diz respeito ao nível de rede- viola o princípio de que o nível de transporte funciona estritamente extremo a extremo- a escassez de endereços deve ser resolvida por outros mecanismos (IPv6).

Redes de Computadores 4.112

IPv6 (“Next Generation Internet Protocol”, IPng)

• Motivação inicial: o espaço de endereços de 32 bits estaria completamente atribuído até 2008 (visão pessimista do início dos anos 90).

• Breve história: – Recomendado pelo “IPng Area Directors” do IETF em Toronto, Julho de

1994, RFC 1752, (“The Recommendation for the IP Next Generation Protocol”) .

– Recomendação aprovada pelo “the Internet Engineering Steering Group”em Novembro de 1994.

– O corpo principal do protocolo IPv6 é um “Draft Standard” do IETF

desde Agosto de 1998.

Redes de Computadores 4.113

Endereços IPv6

• Número de endereços (128 bits) disponíveis: 340.282.366.920.938.463.463.374.607.431.768.211.456, ou 665.570.793.348.866.943.898.599 por m2

• Exemplo de atribuições:

Reserva para Prefixo (binário) Fracção do total

Provider-Based Unicast Address 010 1/8

Multicast Addresses 1111 1111 1/256

Redes de Computadores 4.114

IPv6

• Motivações adicioniais:– o formato do cabeçalho pode ajudar a aumentar a velocidade de

processamento em cada nó

– o cabeçalho pode incluir campos especialmente dedicados para o fornecimento de QoS.

– podem introduzir-se novos tipos de endereço, e.g., “anycast”(encaminhamento, em cada momento, para o melhor de um conjunto de servidores replicados)

• Formato do datagrama IPv6: – cabeçalho de tamanho fixo, 40 byte

– fragmentação não permitida

Redes de Computadores 4.115

Cabeçalho dos pacotes IPv6

Priority: identifica a prioridade de um datagrama num fluxoFlow Label: identifica datagramas do mesmo fluxo (“flow”).

(o conceito de fluxo não está bem definido)Next header: identifica o protocolo que processa os dados

Redes de Computadores 4.116

Algumas mudanças em relação ao IPv4

• Checksum: campo removido para reduzir o tempo de processamento em cada nó

• Options: pode continuar a haver opções mas são tratadas do mesmo modo que um protocolo de nível superior (campo Next header)

• ICMPv6: nova versão do ICMP– novos tipos de mensagens, e.g. “Packet Too Big”

– funções de gestão de grupos (“multicast”)

Redes de Computadores 4.117

Transição IPv4 → IPv6

• Nem todos os nós podem ser modificados simultaneamente– impossibilidade de chegar a acordo para um dia e hora específicos

– Como funcionar na presença de nós heterogéneos IPv4/IPv6?

Duas abordagens possíveis:• Dual Stack: alguns nós com pilha dupla de protocolos (v6, v4) conseguem traduzir

um formato no outro

• Tunnelling: datagramas IPv6 transportados como “payload” em datagramas IPv4 em troços da rede que só suportam a versão 4.

Redes de Computadores 4.118

Pilha dupla (“dual stack”)

Redes de Computadores 4.119

Túnel (“tunneling”)

Redes de Computadores 4.120

Camada de Rede

• Serviços da camada de rede– Circuitos virtuais

– Datagramas

• Funcionamento de um encaminhador (“router”)

• Camada de rede na Internet: o protocolo IP

• Princípios de encaminhamento: selecção de um caminho

• Encaminhamento hierárquico

• Encaminhamento na Internet– intra domínio

– inter domínio

• Encaminhamento “multicast”

• Outros aspectos da camada de rede na Internet: ICMP, DHCP, NAT, IPv6

• Mobilidade

Redes de Computadores 4.121

Mobilidade

• Mobilidade do ponto de vista da camada de rede:

mobilidade nula grande mobilidade

Utilizador sempre com o mesmo ponto deacesso

Utilizador passando por vários pontos de acesso sem perder as ligações estabelecidas

Utilizador ligando-e/desligando-se da rede com DHCP.

Redes de Computadores 4.122

Mobilidade

“home network”: rede permanente do utilizador(e.g., 128.119.40/24)

“Permanent address”:endereço no “home network”, que pode sempre ser usado para aceder ao utilizador móvel, e.g., 128.119.40.186

“home agent”: entidade que executa funções de mobilidade no “home network” para manter o utilizador móvel acessível quando este está distante

wide area network

“correspondent”

Redes de Computadores 4.123

Mobilidade

“Care-of-address”: endereço no “visited network” (e.g., 79.129.13.2)

wide area network

“visited network”: rede onde está actualmente o utilizador móvel (e.g., 79.129.13/24)

“Permanent address”: permanece constante (e.g., 128.119.40.186)

“foreign agent”: entidade que executa funções de mobilidade no “visited network” para manter o utilizador móvel acessível .

“correspondent”: utilizador que pretende comunicar com o móvel

Redes de Computadores 4.124

Mobilidade: abordagens

• A cargo dos algoritmos de encaminhamento: os nós da rede são responsáveis por tornar conhecidos, pelos meios normais de troca de informação de encaminhamento, os endereços permanentes (“permanent adresses”) dos utilizadores móveis que em cada momento são capazes de atingir.– Tabelas de encaminhamento contêm o ponto de acesso actual de cada utilizador

móvel

– Não há necessidade de alterar os sistemas terminais

• A cargo dos sistemas terminais: – encaminhamento indirecto (“indirect routing”): a comunicação de um

correspondente para um utilizador móvel passa sempre por um agente na sua rede permanente (“home agent”) e só depois é enviada para a rede onde actualmente se situa.

– encaminhamento directo (“direct routing”): cada correspondente começa por obter o endereço actual do utilizador móvel com quem quer comunicar e envia directamente para a rede onde ele se encontra.

Redes de Computadores 4.125

Mobilidade: registo

Resultado:

• O “foreign agent” conhece o utilizador móvel na sua rede

• O “home agent” sabe a localização do utilizador móvel

wide area network

“home network”“visited network”

1

Utilizador móvel contacta o “foreign agent” quando entra no “visited network”

2

“foreign agent” contacta o “home agent” passando-lhe a informação da nova localização do utilizador

Redes de Computadores 4.126

Mobilidade por encaminhamento indirecto

wide area network

“homenetwork”

“visitednetwork”

3

2

41

correspondente endereça os datagramas para o endereço permanente do utilizador móvel

“home agent” intercepta os datagramas e envia-os para o “foreign agent”

“foreign agent” recebe os datagramas e envia-os para o utilizador móvel

Utilizador móvel responde directamente para o correspondente

Redes de Computadores 4.127

Encaminhamento indirecto: comentários

• Utilizador móvel usa dois endereços:– endereço permanente (“permanent address”): usado pelo correspondente

– endereço no ponto de acesso actual (“care-of-address”): usado pelo “home agent” para enviar datagramas para o utilizador móvel

• as funções do “foreign agent” podem ser executadas pelo próprio utilizador móvel

• encaminhamento em triângulo:

correspondente → “home-network” → utilizador móvel– muito ineficiente quando

correspondente e utilizador móvel

se encontram na mesma rede

Redes de Computadores 4.128

Envio de datagramas para o utilizador móvel

“Permanent address”: 128.119.40.186

“Care-of address”: 79.129.13.2

dest: 128.119.40.186

Datagrama enviado pelo correspondente

dest: 79.129.13.2 dest: 128.119.40.186

“home agent” → “foreign agent” dest: 128.119.40.186

“foreign-agent” → móvel

Redes de Computadores 4.129

Encaminhamento indirecto: mudança de rede

• Suponha-se que o utilizador móvel muda de rede visitada– regista-se com um novo “foreign agent”

– o novo “foreign agent” regista-se com o “home agent”

– o “home agent” aceita o novo “care-of-address” do utilizador móvel

– os datagramas continuam a ser enviados para o móvel (com o novo “care-of-address”)

• Mudança de rede visitada é transparente: as ligações em curso podem ser mantidas!

Redes de Computadores 4.130

Mobilidade por encaminhamento directo

wide area network

“homenetwork”

“visitednetwork”

4

2

41Correspondente pede e recebe o novo endereço do móvel

correspondente envia para o “foreign agent”

“foreign agent” recebe datagrama e envia para o móvel

Móvel responde directamente para o correspondente

3

Redes de Computadores 4.131

Mobilidade por endereçamento directo: comentários

• Resolvido o problema de endereçamento em triângulo

• Necessidade de execução de funções de mobilidade no correspondente: correspondente tem de obter o “care-of-address” através do “home agent”

– O que acontece se o utilizador móvel muda de rede visitada durante a ligação?

Redes de Computadores 4.132

Mobile IP

• RFC 3344 (Agosto 2002)

• Muitas das funções descritas atrás: – “home agents”, “foreign agents”, registo em “foreign-agents”, “care-of-

addresses”, endereçamento indirecto

• Alguns componentes da norma:– descoberta de agentes

– registo com o “home agent”

– endereçamento indirecto de datagramas

Redes de Computadores 4.133

Mobile IP: descoberta de agente

• “agent advertisement”: “foreign/home agents” anunciam o serviço por difusão de mensagens ICMP (typefield = 9)

RBHFMGV bits reserved

type = 16

type = 9 code = 0 checksum

router address

standard ICMP fields

mobility agent advertisement

extension

length sequence #

registration lifetime

0 or more care-of-addresses

0 8 16 24

R bit: registo obrigatório

H,F bits: home and/or foreign agent

Redes de Computadores 4.134

Mobile IP: exemplo de registo

visited network: 79.129.13/24 home agent

HA: 128.119.40.7 foreign agent

COA: 79.129.13.2 COA: 79.129.13.2

….

ICMP agent adv. Mobile agent MA: 128.119.40.186

registration req. COA: 79.129.13.2 HA: 128.119.40.7 MA: 128.119.40.186 Lifetime: 9999 identification:714 ….

registration req. COA: 79.129.13.2 HA: 128.119.40.7 MA: 128.119.40.186 Lifetime: 9999 identification: 714 encapsulation format ….

registration reply

HA: 128.119.40.7 MA: 128.119.40.186 Lifetime: 4999 Identification: 714 encapsulation format ….

registration reply

HA: 128.119.40.7 MA: 128.119.40.186 Lifetime: 4999 Identification: 714 ….

time