07 - camada de rede - faculdade de computaçãoalbertini/2sem2014/redes/slides/07camadarede.pdf ·...

75
07 - Camada de Rede 8 de dezembro de 2014

Upload: dangdang

Post on 12-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

07 - Camada de Rede

8 de dezembro de 2014

Conteudo

Entrega de pacotes

Roteamento

Controle de congestionamento

2/62

Camada de Rede

I A camada de rede usa servicos da camada de enlace

I Dados dos protocolos da camada de rede sao encapsuladosnos datagramas (vem de telegrama)

I Uma unidade de dados da camada de rede e chamada de“pacote”

I A camada de rede liga diferentes redes

I Por meio da camada de rede e possıvel um host de uma hostenderecar outros de redes distintas

3/62

Recursos da Camada de Rede

I RecursosI Enderecos de redeI Identificadores de pontos finais de conexoesI Confirmacao de recebimentoI Notificacoes de erros

I Provenientes da camada de enlaceI Proprias da Camada de Rede

I Conexao de rede ponto-a-pontoI Parametros de qualidade de servico

I taxa de erro, disponibilidade, confiabilidade, banda, atraso

I Usuario deve fazer requisicao para usar recursos

4/62

Funcoes da Camada de Rede

I Roteamento e repasse de pacotes

I Multiplexacao de conexoes de rede em um mesmo enlace dedados

I Deteccao e Recuperacao de erros

I Sequenciamento de pacotes e controle de fluxo

I Selecao de servicos

I Gerenciamento da camada de rede

I Mapeamento de enderecos e transmissoes da camada deenlance em enderecos e transmissoes da camada de rede

5/62

Roteamento e repasse

I Conexoes de rede sao providas por entidades de rede emsistemas OSI e por sistemas abertos intermediarios queproveem o servico de repasse

I Sistemas abertos intermediarios podem usarI conexoes intermediarias de rede;I transmissao por conexoes de enlace eI meios fısicos distintos

I O caminho de repasses e importante para a comunicacaoresultante

I caminho deve considerar a qualidade de transmisao, custos eoutros

6/62

A Internet

Leased linesto Asia

A U.S. backbone

Leasedtransatlantic

lines

A European backbone

Nationalnetwork

Companynetwork

Ethernet

IP router

Mobilenetwork

WiMAX

Cable

Homenetwork

Regionalnetwork

Figura: A Internet e uma colecao interconectada de muitas redes(Tanembaum 5ed. Fig. 5-45)

7/62

Envio de pacotes: fragmentacao

I MTU - Maximum Transmission UnitI Unidade maxima de transmissao

I Fragmentacao e DefragmentacaoI Path MTU Discovery

I Descuberta do MTU do caminho

I Ethernet frame padrao 1500 bytes

1200 9001400

Pacote (com tamanho)

Fonte DestinoTentar 900Tentar 1200

Figura: Descuberta da unidade de transmissao de tamanho maximo

8/62

Camada de Rede segundo o OSI

I PropositoI Prover funcionalidades para modos de transmissao com e sem

conexao para entidades da camada de transporteI Estabeler, manter e terminar conexoes entre sistemas abertosI Promover troca de unidades de dados de servicos de redesI Prover independencia para transporte em relacao a repasse

(relay) e roteamento de pacotes

I Servico basicoI Comunicacao transparente entre entidades de transporte

I Servicos secundariosI Negociacao de qualidade de servico

9/62

Transmissao com e sem conexao

Funcao Com conexao Sem conexaoNegociacao de parametros sim naoConfiguracao do caminho sim nao

Enderecamento numero VC end. destinoSequenciamento sim nao

Qualidade de servco sim difıcilControle de congestionamento sim difıcil

Efeito de falhas circuito falha datagrama perdido

I Com conexoes: X.25, Frame Relay, ATM

I Sem conexoes: IP

10/62

Circuitos virtuais (CV)

I Caminho da origem aodestino comporta-se comoum circuito

I Cada parte do caminhovirtual (CV) e reservadacom antecipacao

I Uso de id do circuito em vezde endereco destino

I Recursos alocados =teoricamente mais previsıvel

I Roteadores precisam manterinformacoes sobre circuito

Tabela de circuitos de um roteadorEntrada CV in Saıda CV out

1 12 2 222 63 1 183 7 2 171 97 3 87

11/62

Redes de datagramas

I Em vez de reserva de recursos, polıtica do melhor esforcoI Em vez de id CV, usa endereco finalI Pacotes podem usar diferentes caminhos

A

B

C

D

E F

4

13

2

PPPLAN

A p/ 1,2,3Dest. Rota

A –B BC CD BE CF C

A p/ 4Dest. Rota

A –B BC CD BE BF B

CDest. Rota

A AB AC –D EE EF E

EDest. Rota

A CB DC CD DE –F F

12/62

Embate Circuitos vs. Datagramas

I Circuitos (telefonia): X.25, Frame Relay, ATM

I Datagramas (Arpanet): Internet Protocol (IP)I Embate entre ATM vs. IP

I Bellheads (ITU) vs. Netheads (IETF)I Bellheads: telefoniaI Netheads: internet

I Fracasso do ATM em manter qualidade de servico emambientes reais

I Domınio do IP

I Crescimento de tecnologias orientadas a conexao: MPLS eVLAN

13/62

ATM vs. IP

I EnderecamentoI Celulas ATM tem o id do circuito virtual e nao endereco final

I CobrancaI ATM: possıvel cobrar pelo uso de diferentes caminhosI IP: e mais facil cobrar uma tarifa fixa

I SobrecargaI ATM: se algum host no CV falha, conexao e perdidaI IP: se um roteador sofre sobrecarga, e facil usar outro

I Planejamento e aproveitamentoI ATM: melhor planejamento, oferecimento de garantiasI IP: melhor uso dos recursos, melhor esforco

I Uso da redeI ATM: proporcionalidade de largura de bandaI IP: fila simples (FIFO)

I DesempenhoI ATM: cam. fısica +rapida pois +simples: 5+48 = 53 bytesI Pacote IP: de 20+ 12/65516 = ate 65536 bytes

I IP RSVP (protocolo de transporte para reserva de recursos)

14/62

Repasse e roteamento

I Repasse e o envio para aproxima rede

I Roteamento envolve opreenchimento de tabelapara escolha de qual e amelhor proxima rede parachegar ao destino final

I RIP, OSPF, BGP

tabela de repasse localcabecalho dopacote

enlacesaıda

0100 30101 20111 21001 1

1

2

3

15/62

Roteamento

I Comutacao rapida de pacotesI Arquitetura de comutacao e escalonamento

I Roteamento em broadcast

I Roteamento em redes de dadosI Requisitos

I Corretude e SimplicidadeI Robustez

I Execucao por longo tempo, mesmo se houver falhas

I EstabilidadeI Escolha rapida de rotas que nao mudam com frequencia

I Equidade (fairness)I Exemplo: reduzir atraso medio de pacotes

I EficienciaI Exemplo: maximizar transmissao de saıda

16/62

Algoritmos de roteamento

I Algoritmos nao-adaptativosI Rotas calculadas com antecipacaoI Nao responde a falhas

I Algoritmos adaptativosI Rotas sao redefinidas de acordo com o uso da redeI Redefinicao periodica ou de acordo com mudancas na topologia

17/62

Tipos de roteamento

I Dentro de um sistema autonomo “interior gateway routingprotocol”

I Routing Information Protocol (baseado em vetor de distancias)I Open Shortest Path First (basedo no estado de enlaces)

I Entres sistemas autonomosI Border Gateway Protocol

18/62

Princıpio da otimalidade de Bellman

I Se J esta no caminho otimo entre I e K, entao o caminhoentre J e K e parte do caminho entre I e K

B

A

F

D EC

J

N

O

IH

G

L

M

K

(a)

B

A

F

D E

C

J

N

O

IH

G

L

M

K

(b)

Figura: Uma rede e uma arvore de caminhos otimos a partir do roteadorB (sink tree).

19/62

Algoritmo de menor caminho

I Menor caminhoI Numero de “hops”, isto e, transicoes entre roteadoresI Distancia geograficaI E outros...

I Algoritmos de menor caminhoI Dijkstra

I Conhecimento global da rede

20/62

Roteamento por um tecnica local: flooding

I Nao e possıvel obter conhecimento global da redeinstantaneamente

I Pacote de entrada e repassado a toda linha de saıda, excetopor onde veio

I Cada pacote tem um contador no cabecalhoI Contador e inicializado com valor do comprimento do caminho

ate destinoI Contador e decrementado a cada hopI Se contador=0, descartar pacote

I Se caminho nao e conhecido, inicializacao no pior caso e igualao diametro da rede

I Roteador que repassaram um pacote podem manter em umatabela e evitar repasse

I Ruim por usar muito recursos

I Bom por nao necessitar de confiabilidade de rede

I Sempre encontra menor caminho

21/62

Roteamento por vetor de distancias

I Tambem conhecido comoI Algoritmo de roteamento Bellman-Ford distribuıdoI Algoritmo de roteamento da Arpanet ate 1979I Internet: RIP e famılia

I Cada roteador mantem um vetor com distancias a cadadestino da rede

I A cada T segundos, roteador troca com cada vizinho umalista dos atrasos estimados para cada destino

22/62

A B C D

EF

G H

IJ K L

P/ABCDEFGHIJKL

A0

1225401423181721092429

I243618270720312000112233

H203119083019060014072209

K212836242240311922100009

J Linha08 A20 A28 I20 H17 I30 I18 H12 H10 I00 –06 K15 K

JAe

08

JIe

10

JHe

12

JKe

06

Vetores recebidos de vizinhos de J

Nova tabela de J

T (J,X ) =min{T (J,V )+T (V ,X )}

23/62

Problema da contagem para o infinito

I Convergencia e o ponto de definicao das melhores rotasI Roteamento por vetores de distancias tem convergencia lenta

I Resposta rapida as boas notıciasI Resposta lenta as mas notıcias

Calculo de distancia para A:

A B C D E

∞ ∞ ∞ ∞ Entra na rede

1 ∞ ∞ ∞ 1 troca

1 2 ∞ ∞ 2 trocas

1 2 3 ∞ 3 trocas

1 2 3 4 Converge

A B C D E

1 2 3 4 “A” falha

3 2 3 4 1 depois

3 4 3 4 2 depois

5 4 5 4 3 depois

5 6 5 6 Continua...

24/62

Roteamento pelo estado do enlace

I Em ingles, link state routingI Variantes atuais:

I DECnet/OSI Intermediate System-Intermediate System (IS-IS)I IEFT Open Shortest Path First (OSPF), baseado no IS-IS

I Cinco partes:

1. Descobrir seus vizinhos e aprender seus enderecos de rede2. Atribuir a distancia (metrica de custo) para cada vizinho3. Construir pacote para contar o que aprendeu4. Enviar esse pacote e receber pacotes similares de outros

roteadores5. Computar o caminho mais curto para cada outro roteador

I Cada roteador tem informacao completa da topologia, entaousar algoritmo de menores distancias de Dijkstra

25/62

Aprendizado de vizinhos e atribuicao de distancia

I Envio de pacote especial HELLO

I Vizinhos respondem com o seu proprio nome (deve ser unico)I Atribuir distancias

I Em LAN: distancia inversamente proporcional a largura debanda

I Em WAN: usar o atraso obtido com o tempo de viagem de idae volta

A

B

C

D E

F

G I

H

LAN

26/62

Construcao de pacote para contar o que aprendeu

I Pacotes de estado de enlaceI Contem:

I Identidade do transmissorI Numero de sequencia de 32 bitsI Idade (tempo de vida)I Lista de vizinhos

I Construcao periodica ou quando algo importante da redemuda

A

B C

D

FE

4

2

3

7

8

5

1

6

ASeq.

Idade

B 4

E 5

BSeq.

Idade

A 4

C 2

F 6

27/62

Distribuicao de pacotes de estado de enlace

I Funcionamento basico: floodingI Guarda pacotes recebidos em uma tabelaI Decrementa tempo de vida de pacotes periodicamenteI Descarta pacotes ja vistos (pela seq.) ou tempo 0I Ao receber novo pacote, espera por novos pacotes antes de

repassarI Par de flags por enlace (no exemplo, para A, C e F)

I Flags de envio: envio de pacote por aliI Flags de reconhecimento: reconhecimento por aliI Pacote vindo por A, e enviado para C e F e reconhecido em A

Fonte Seq. Idade A C F A C FA 21 60 0 1 1 1 0 0F 21 60 1 1 0 0 0 1E 21 59 0 1 0 1 0 1C 20 60 1 0 1 0 1 0D 21 59 1 0 0 0 1 1

Tabela: Buffer de pacotes para o roteador B. 28/62

A

B C

D

FE

4

2

3

7

8

5

1

6

BSeq.

Idade

A 4

C 2

F 6

Roteador B Envio ACKFonte Seq. Idade A C F A C F

A 21 60 0 1 1 1 0 0F 21 60 1 1 0 0 0 1E 21 59 0 1 0 1 0 1C 20 60 1 0 1 0 1 0D 21 59 1 0 0 0 1 1

I Se pacote chega de E por A e F , deve ser repassado para CI Se pacote para C chega de F antes de ser repassado, tabela e

alterada para ACK para F e nao enviar para F29/62

Computacao de novas rotas

I Esperar a tabela de pacotes de estado de enlace completar

I Usar algoritmo de menor caminho de Djkstra em cadaroteador

I Saıda do Djkstra indica o caminho para cada destino

30/62

Detalhes sobre roteamento por estado de enlace

I Uso de memoria e proporcional ao numero de destinos

I Custo computacional Djkstra para pesos positivosO((E + V ) logV ), onde E e o numero de enlaces e V onumero de destinos

I Base do IS-IS e OSPF

I Dependem de hardware confiavel

I Intolerante a falhas

31/62

Roteamento hierarquico

I Redes grandes tem muitos roteadores/destinosI Falta memoriaI Uso excessivo de CPU

I Delimitacao de regioes

Region 1 Region 2

Region 3 Region 5Region 4

1B

1A

1C

2A 2B

2C

5B 5C5A

5E5D

2D

4A

4B 4C

3A

3B

1B 1

1C 1

1B 2

1B 3

1B 3

1B 4

1C 3

1C 2

1C 3

1C 4

1C 4

1C 4

1C 5

1B 5

1C 6

1C 5

– –1A

1C

2A

2B

2C

2D

3A

3B

4A

4B

4C

5A

5B

5C

5D

5E

1B

Line HopsDest.

Full table for 1A

1A

1C

2

3

4

5

1B

Line HopsDest.

Hierarchical table for 1A

1B 1

1C 1

1B 2

1C 2

1C 3

1C 4

– –

Figure 5-14. Hierarchical routing.

32/62

Roteamento broadcast

I BroacastI Envio de pacote para todos os destinos

I TecnicasI Um pacote para cada destinoI FloodI Repasse pelo caminho reverso (reverse path forwarding)

I Somente aceita repasse se caminho e aquele que costuma virpacotes

I Arvore geradoraI Evita loops mas exige informacao global

33/62

Exemplo broadcast

I Transmissores e receptores1. Criar socket com socket()

2. Configurar socket com fcntl() e/ou setsockopt()

3. Fazer conexao com bind()4. No transmissor

I Enviar datagramas com sendto()

5. No receptorI Receber datagramas com recvfrom()

6. Ordem de bytes de redes: “maior” byte primeiro (big-endian)

1 s t r u c t s o c k a d d r i n {2 s a f a m i l y t s i n f a m i l y ; /∗ f a m ı l i a AF INET ∗/3 i n p o r t t s i n p o r t ; /∗ p o r t a em ordem de b y t e s

de r e d e s ∗/4 s t r u c t i n a d d r s i n a d d r ; /∗ e n d e r e c o i n t e r n e t ∗/5 } ;6 /∗ E s t r u t u r a de e n d e r e c o I n t e r n e t . ∗/7 s t r u c t i n a d d r {8 u i n t 3 2 t s a d d r ; /∗ end . em ordem de b y t e s

de r e d e s ∗/9 } ;

34/62

Exemplo broadcast: preparacao de estruturas do receptor

1 i n t main ( )2 {3 /∗ i n i c i a l i z a c a o do b u f f e r de r e c e p c a o de dados . ∗/4 c o n s t i n t MAXBUF=65536;5 c h a r b u f f e r [MAXBUF ] ;6 memset ( b u f f e r , 0 , MAXBUF) ; // < s t r i n g . h>78 /∗ i n i c i a l i z a c a o da e s t r u t u r a de e n d e r e c o i n t e r n e t . ∗/9 s t r u c t s o c k a d d r i n s o c k i n ; // <arpa / i n e t . h>

10 u n s i g n e d s o c k a d d r i n s i z e =s i z e o f ( s t r u c t s o c k a d d r i n ) ;11 memset(& s o c k i n , 0 , s o c k a d d r i n s i z e ) ;1213 /∗ p r e p a r a e n v i o UDP ∗/14 i n t sock = s o c k e t ( AF INET , // e n d e r e c o t i p o INET15 SOCK DGRAM, // p r o t o c o l o UDP16 IPPROTO UDP) ; // t i p o de UDP17 // . . . c o n t i n u a . . .

35/62

Exemplo broadcast: configuracao do socket receptor

1 /∗ o b t e r f l a g s de c o n f i g u r a c a o do f i l e d e s c r i p t o r . ∗/2 i n t f l a g s = f c n t l ( sock , F GETFL , 0) ; // < f c t n l . h>3 /∗ c o n f i g u r a c a o de comportamento nao b l o q u e a n t e . ∗/4 f c n t l ( sock , F SETFL , f l a g s | O NONBLOCK) ;56 /∗ c o n f i g u r a para p e r m i t i r m u l t i p l o s u s o s da p o r t a ∗/7 i n t o p t i o n v a l u e = 1 ;8 s e t s o c k o p t ( sock ,9 SOL SOCKET ,

10 SO REUSEADDR,11 &o p t i o n v a l u e , s i z e o f ( i n t ) ) ;1213 /∗ a s s o c i a a q u a l q u e r / t o d a s i n t e r f a c e s d i s p o n ı v e i s . ∗/14 // h t o n l = c o n v e r t e ordem de b y t e s do h o s t para t i p o

r e d e15 s o c k i n . s i n a d d r . s a d d r = h t o n l (INADDR ANY) ;1617 /∗ d e f i n e p o r t a de comunica c ao : 0 e a l e a t o r i o . ∗/18 s o c k i n . s i n p o r t = h t o n s (4000) ; // h t o n s ( 0 ) ;19 s o c k i n . s i n f a m i l y = AF INET ;20 // . . . c o n t i n u a . . .

36/62

Exemplo broadcast: ligacao e recepcao

1 b i n d ( sock , // l i g a e s t e s o c k e t . . .2 ( s t r u c t s o c k a d d r ∗)&s o c k i n , // . . . n e s t e e n d e r e c o3 s o c k a d d r i n s i z e ) ; // . . . com e s s e tamanho45 i n t i = 0 ;6 w h i l e ( i++ < 100) {7 r e c v f r o m ( sock , b u f f e r , MAXBUF,8 0 , // f l a g de t i p o de r e c e p c a o . 0 e padr ao .9 ( s t r u c t s o c k a d d r ∗)&s o c k i n ,

10 &s o c k a d d r i n s i z e11 ) ;12 p r i n t f ( ”(%d ) b u f f e r = %s \n” , i , b u f f e r ) ;13 s l e e p ( 1 ) ; // <u n i s t d . h>14 }15 }// f im do main

37/62

Exemplo broadcast: preparacao do transmissor

1 i n t main ( i n t argc , c h a r ∗ a r g v [ ] )2 {3 c h a r b u f f e r [MAXBUF ] ;4 /∗ i n i c i a l i z a c a o e s t r u t u r a do e n d e r e c o de r e d e . ∗/5 s t r u c t s o c k a d d r i n s o c k i n ;6 i n t s o c k a d d r i n s i z e = s i z e o f ( s t r u c t s o c k a d d r i n ) ;7 memset(& s o c k i n , 0 , s o c k a d d r i n s i z e ) ;89 /∗ c o n f i g u r a c a o de e n d e r e c o b r o a c a s t . ∗/

10 s o c k i n . s i n f a m i l y = AF INET ; /∗ p r o t o c o l o ∗/11 s o c k i n . s i n a d d r . s a d d r = h t o n l (−1) ; /∗ e n d e r e c o ∗/12 s o c k i n . s i n p o r t = h t o n s (4000) ; /∗ p o r t a ∗/1314 /∗ c r i a c a o do s o c k e t ∗/15 i n t sock = s o c k e t ( AF INET , SOCK DGRAM, IPPROTO UDP) ;16 i n t s o c k o p t i o n v a l u e = 1 ; // opc ao de b r o a d c a s t17 s e t s o c k o p t ( sock ,18 SOL SOCKET , SO BROADCAST,19 &s o c k o p t i o n v a l u e , s i z e o f ( i n t ) ) ;20 // c o n t i n u a . . .

38/62

Exemplo broadcast: transmissao

1 b i n d ( sock , ( s t r u c t s o c k a d d r ∗)&s o c k i n ,s o c k a d d r i n s i z e ) ;

23 i n t i = 0 ;4 w h i l e ( i++ < 100) {5 s p r i n t f ( b u f f e r , ” Oi %d\n” , i ) ;6 i n t b u f l e n = s t r l e n ( b u f f e r ) ;7 s e n d t o ( sock , // s o c k e t8 b u f f e r , b u f l e n , // mensagem9 0 , // f l a g s

10 ( s t r u c t s o c k a d d r ∗) &s o c k i n ,s o c k a d d r i n s i z e // e n d e r e c o

11 ) ;12 s l e e p ( 1 ) ;13 }14 }// f im main

39/62

Roteamento multicast

I MulticastI Envio de pacote para grupos de destinos (jogos, vıdeos)

I Criacao de grupos: uso de enderecos multicastI Transmissao pode depender da densidade do grupo

I Grupo e denso se muitos destino estao na mesma regiao darede

I Grupo nao e denso se destinos estao em regioes distintas

I TransmissaoI Broadcast com arvore geradora com podaI Quando roteador receber pacote multicast, mas nenhum de

seus hosts tiver interesse, envia pacote de podaI Necessario armazenamento de 1 arvore por grupo multicast

40/62

Exemplo multicast

I Multicast via UDPI Enderecos multicast estao entre 224.0.0.0 e 239.255.255.255

I Reservados: de 224.0.0.0 ate 224.0.0.255 (Local NetworkControl Block)

I Locais: de 239.0.0.1 ate 239.255.255.255

I Usaremos 239.0.0.1 para endereco do grupo

I Porta 6000

41/62

Exemplo multicast: preparacao

1 c o n s t i n t PORTA = 6 0 0 0 ; c h a r GRUPO[ 1 0 ] = ” 2 3 9 . 0 . 0 . 1 ” ;2 s t r u c t s o c k a d d r i n addr ; // s y s / s o c k e t . h3 s t r u c t i p m r e q mreq ; // n e t i n e t / i n . h4 c h a r mensagem [ 5 0 ] ;56 /∗ c o n f i g u r a c a o do s o c k e t ∗/7 i n t sock = s o c k e t ( AF INET , SOCK DGRAM, 0) ;8 memset ( ( c h a r ∗)&addr , 0 , s i z e o f ( addr ) ) ;9 addr . s i n f a m i l y = AF INET ;

10 addr . s i n a d d r . s a d d r = h t o n l (INADDR ANY) ; // arpa / i n e t . h11 addr . s i n p o r t = h t o n s (PORTA) ;12 // c o n t i n u a . . .

42/62

Exemplo multicast: transmissor

1 i n t i = 0 ;2 addr . s i n a d d r . s a d d r = i n e t a d d r (GRUPO) ;3 w h i l e ( i++ < 1000) {4 s p r i n t f ( mensagem , ” l o o p i = %d” , i ) ;5 p r i n t f ( ” e n v i a n d o \’% s \ ’ . ” , mensagem ) ;6 s e n d t o ( sock , mensagem , s i z e o f ( mensagem ) , 0 ,7 ( s t r u c t s o c k a d d r ∗) &addr , s i z e o f ( addr ) ) ;8 s l e e p ( 1 ) ;9 }

43/62

Exemplo multicast: receptor

1 i n t a d d r l e n = 0 ;2 /∗ r e c e p c a o ∗/3 b i n d ( sock , ( s t r u c t s o c k a d d r ∗) &addr , s i z e o f ( addr ) ) ;4 mreq . i m r m u l t i a d d r . s a d d r = i n e t a d d r (GRUPO) ;5 mreq . i m r i n t e r f a c e . s a d d r = h t o n l (INADDR ANY) ;6 s e t s o c k o p t ( sock , IPPROTO IP ,7 IP ADD MEMBERSHIP ,8 &mreq , s i z e o f ( mreq ) ) ;9

10 w h i l e ( 1 ) {11 r e c v f r o m ( sock , mensagem , s i z e o f ( mensagem ) ,12 0 , ( s t r u c t s o c k a d d r ∗) &addr , &a d d r l e n ) ;13 p r i n t f ( ”%s : mensagem r e c e b i d a = \”%s \”\n” ,

i n e t n t o a ( addr . s i n a d d r ) , mensagem ) ;14 }

44/62

Roteamento para hosts moveis

I Um host movel pode estar em diferentes lugares emmomentos distintos

I Para enviar pacote e necessario primeiro descobrir onde hostesta

I Nao e possıvel atualizar topologia toda vez que um host semove

I Objetivo: manter endereco de rede enquanto camadasinferiores mudam

I Suposicao simplificadora:I Cada host tem uma localidade de origem fixaI Sempre e possıvel enviar pacotes para essa localidadeI Um agente home atende pelo host na localidade de origemI Agente home repassa pacote para a localidade atual do host

movel

45/62

Roteamento para hosts moveis

TransmissorAgente noenderecohome

Dispositivo movel1:

avisa

ende

reco

atua

l

2: envia para endereco home

3:tu

nel

para

ende

reco

atua

l

4:responde

aotransm

issor

5:tunel para

enderecoatual

1. Enviar endereco atual para agente home

2. Fazer tunel para cuidador do endereco

3. No tunel a transmissao pode ser direta46/62

Comutacao rapida de pacotes

Pacoteschegando

Mecanismode

roteamento

Comutador

Escalonador

Pacotesredirecionados

I Um comutador de pacotes consiste deI Mecanismo de roteamento / tabela de consultaI Um escalonador/planejador de comutacoesI Malha de comutacao/switch (circuito de chaveamento)

I Mecanismo de roteamento consulta por endereco no pacotena tabela de roteamento e determina qual porta de saıdaenviar o pacote

I O pacote e marcado com uma tag indicando numero da portade saıda

I Roteador usa a tag para enviar o pacote na porta de saıda certa

47/62

Primeira geracao de roteadores

I Computador com multiplas interfaces de rede (line cards)I Usa Buffers de entrada e saıda para cada interfaceI CPU alterna atencao entre as interfaces e processa os pacotesI Desempenho e limitado pelo CPU e pela comunicacao entre

interfaces e CPUI Exemplos

I Pontes (bridges) Ethernet (camadas fısicas e enlace)I Junta dois segmentos de rede em uma so

48/62

Segunda geracao de roteadores

I As interfaces (line cards) fazem boa parte do processamentoI Consulta em tabela de roteamentoI Buffer de pacotesI Envio de pacotes para a porta apropriada

I Uso de barramento para comunicacao com CPU

I Vantagens: remocao de gargalos de CPU e memoria principal

I Desvantagem: desempenho limitado pela velocidade dobarramento

I ExemploI Roteador Cisco 7500 series (1984-1995)

49/62

Terceira geracao de roteadores

I Substituicao de barramentopor malha deroteamento/rede deinterconexao (circuitodedicado)

I Desempenho depende damalha de roteamento, masalivia gargalo debarramentos comuns

I Redes BanyaI Cisco 12000: comutacao

em 60Gbps

50/62

Multilayer Switch Cisco 6509: barramento compartilhado epor malha

Figura: ”Cisco 6509”by MrChrome (talk) (Uploads) - Own work by the original uploader. Licensed underCreative Commons Attribution 3.0 via Wikimedia Commons -http://commons.wikimedia.org/wiki/File:Cisco_6509.JPG#mediaviewer/File:Cisco_6509.JPG

51/62

Exemplo de roteador: Cisco 3745

52/62

Controle de congestionamento

I Pacotes demais na rede causam atrasos e perdasI Em colapso, pacotes podem

I perder utilidadeI ser retransmitidosI ser descartados

Inıcio docongestionamento

Colapso

Desejavel

Ideal

Carga oferecida(pacotes/segundo)

Car

gatr

ansm

itid

au

til

(pac

otes

/seg

un

do)

Capacidadeda rede

(0,0)

53/62

Controle de congestionamento

I Evitar congestionamento quando possıvel

I Roteadores com pouca memoria ou lentos podem causarcongestionamento

I Muita memoria em roteador lento pode causar colapso da rede

I Se uma parte da rede esta congestionada, rotas alternativaspodem ser afetadas

I Um bom controle de fluxo entre hosts e importante paraevitar congestionamento

I Um host de 100Gbps deve controlar envio para um host de1Gbps

I Solucao para controle de congestionamento e de fluxoI Contratar mais linhas de transmissaoI Ligar novos roteadoresI Fazer hosts irem mais devagar (pedir ou obrigar)I Planejar para trafego periodicoI Controle de admissao para trafego em circuitos

54/62

Explicit Congestion Notification (ECN)

I Notificacao explıcita de congestionamento

I Quando receptor percebe congestionamento, avisa transmissor

I Usado na Internet

I Dois bits do cabecalho IP para indicar congestionamento

I Roteador congestionado marca pacote

I Receptor avisa transmissor do congestionamento

Host Host

PacoteRoteadorcongestionado

Pacotemarcado

Noti�cação explícita de congestionamento

Sinal de congestionamento

55/62

Descarte de pacotes

I Load Shedding

I Para transmissao de arquivos: descarte dos mais recentes

I Para transmissao multimıdia: descarte dos mais velhos

I Marcacao de importancia/tipo do pacote

I Descarta de pacotes de acordo com a classe de importancia

I Opcao: descarte aleatorio

56/62

Qualidade de servico

Aplicacao Largura de banda Latencia Jitter PerdaEmail Baixa Baixa Baixa MediaWeb Media Media Baixa Media

Terminal remoto Baixa Media Media MediaVideoconferencia Alta Alta Alta Alta

Tabela: Exigencia de QoS

I Jitter: desvio padrao do tempo de entregaI Traffic shaping: modulacao do trafego

I Leaky Bucket Algorithm: taxa de saıda constante maxima(furo no balde)

I Balde representa buffer, se pacote nao cabe no balde edescartado

I Opcao: so enviar quando balde chegar em um determinadonıvel

I Possıvel fazer de acordo com aplicacao (exemplo BitTorrent)I http:

//broadband.mpi-sws.org/transparency/bttest.php57/62

A Internet

I Internet Protocol v4 e v6I Roteamento hierarquico em dois nıveis

I Open Shortest Path First (OSPF): Intra routingI Usa estado de enlaces

I Routing Information Protocol (RIP): Intra routingI Usa vetor de distancias

I Border Gateway Protocol (BGP): InternetworkingI Roteamento entre sistemas autonomosI Variante de vetor de distancias

I Network Address Translation

I Gerenciamento da camada de rede com ICMP

58/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4

Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4

Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.

Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.

Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.

Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.

Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IP

Flags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IP

Flags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.

Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.

Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.

Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:

I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.

Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.

Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.

Endereco IP do transmissor do pacote.

Endereco IP do destino do pacote.Indica lista de opcoes. Exemplos:I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.

Endereco IP do destino do pacote.

Indica lista de opcoes. Exemplos:I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes

59/62

Pacote IP0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

V=4 IHL DSCP ECN total length

identification flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP address

Destination IP address

Options

Se IHL > 5

Versao do Protocolo IP: IPv4Internet Header Length (IHL) – numero de palavras de 32 bits nocabecalho. Entre 5 e 15.Differentiated Services Code Point (DSCP) – Antigo Type of

Service. Definicao de qualidade de servico.Explicit Congestion Notification (ECN) – Permite notificacao de con-gestionamento sem descarte de pacote. Implementado conforme arede.

Tamanho total do pacote enviado em bytes. Mınimo 20, maximo65535 (2 palavras).

total length− IHL em bytes = bytes do fragmento

Identifica grupo de fragmentos de um unico datagrama IPFlags sao usados por Path MTU, traceroute, ICMP (ping):

I bit 0: reservado. deve ser igual a 0

I bit 1: Nao fragmentar.

I bit 2: Mais fragmentos.

Fragment Offset – Medido em blocos de 8 bytes. Especifica desco-lamento (offset) em relacao ao datagrama IP nao fragmentado. Pri-meiro fragmento tem deslocamento zero.

Time To Live – contador usado para roteamento. Evita transito depacotes antigos.Define o protocolo usado nos dados transportados pelo pacote. Verhttp://en.wikipedia.org/wiki/List_of_IP_protocol_numbers.Codigo de verificacao de erro. RFC 1071. Complemento de um dasoma por complemento de um do cabecalho.Endereco IP do transmissor do pacote.Endereco IP do destino do pacote.

Indica lista de opcoes. Exemplos:I Copiado - 1 bit - diz que opcoes sao copiadas p/ todos os fragmentos

I Classe de opcao - 2 bits - 0 indica controle, 2 “medicao e depuracao”

I Numero da opcao - 5 bits - especifica opcao

I Tamanho da opcao - numero de bits para especificar opcao

I Dados da opcao - com tamanho indicado anteriormente

I Hexadecimal 0x00 indica fim da lista de opcoes 59/62

Estrutura do IP header

1 s t r u c t i p h d r { // adaptado para somente BIG ENDIAN2 u 8 v e r s i o n : 4 ,3 i h l : 4 ;4 u 8 t o s ; // DSCP + ECN5 b e 1 6 t o t l e n ; // t o t a l l e n g t h6 b e 1 6 i d ; // i d e n t i f i c a t i o n7 b e 1 6 f r a g o f f ; // f l a g s + fragment o f f s e t8 u 8 t t l ; // t ime to l i v e9 u 8 p r o t o c o l ; // exemplo IPPROTO IP

10 sum16 check ; // h e a d e r checksum11 b e 3 2 s a d d r ; // end . or igem : i n e t a d d r ( ” 1 0 . 0 . 0 . 1 ” )12 b e 3 2 daddr ; // d e s t i n o : i n e t a d d r ( ” 1 0 . 0 . 0 . 2 ” ) ;13 /∗The o p t i o n s s t a r t h e r e . ∗/14 } ;

I u8 define 8 bits sem sinalI sum16 define 16 bits de checksumI be16, be32 sao inteiros big-endians sem sinal vistos de

forma bit-a-bit60/62

Internet Checksum

I Na Internet, UDP implementa verificacao de erros em software

I CRC e muito caro para softwareI Alternativa e a complemento de 1 da soma

I bom desempenho, facil de implementar

61/62

Complemento de 1 da soma

I Soma modulo-2 com carry-out (“vai um”)I Cada parte de 16 bits e somada

I Carry-out no bit mais significativo e somado no bit menossignificativo

I Faz o complemento de um

I O resultado do complemento de 1 da soma e enviado juntoaos dados

I Para deteccao de erro, compara-se com o complemento de 1da soma dos dados recebidos e o resultado do complementode 1 recebido.

62/62