fundamentos de redes de computadores -...

66
Fundamentos de Redes de Computadores Internet Protocol

Upload: lediep

Post on 16-Oct-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Fundamentos de Redes de Computadores

Internet Protocol

Internetworking

• LANs separadas e sem interoperabilidade

• Necessidade de um esquema que permitisse interligar várias tecnologias de rede em um todo coerente

• Objetivo: interligar diferentes tecnologias de rede oferecendo serviços universais de comunicação

• Resultado: abstração de alto-nível que oferece uma base para todas as decisões de projeto

Internetworking

FDDI DecNET

EthernetLANtastic

Token Ring

camada de abstraçãoaplicação

aplicação

Internetworking - Aplicação

• Oferecida em sistemas antigos• A aplicação “entende” os detalhes da rede e se

comunica com outra aplicação em outra rede• Novas funcionalidades de rede -> novas aplicações• Há duplicidade de código entre duas aplicações

Rede A Rede B

Aplicação X Aplicação X

Internetworking - Rede

• Oferece mecanismos que entregam pacotes da fonte ao destino

• Vantagens– Mapeamento direto no hardware -> eficiente

– Separação das atividades de comunicação das atividades de aplicação

– Mantém o sistema flexível, tornando possível a construção de protocolos de propósito geral

– Permite a mudança de código no nível de rede sem afetar as aplicações

Internetworking - Rede

Rede A Rede B

Aplicação X Aplicação Xabstração

• Oferecer uma interconexão de redes unificada e cooperativa que ofereça serviço de comunicação universal

• internet (com i minúsculo!)

Arquitetura da internet

• Como as redes são interconectadas de modo a formarem uma internet?R:duas redes só podem estar interconectadas por um computador que está ligado a ambas (mas isso não é suficiente)

• Computadores que interligam duas redes E passam pacotes de uma para outra são chamados de roteadores

Interconexão através de roteadores

• Roteadores oferecem um meio de interconectar redes, e não apenas máquinas!

“Em uma rede TCP/IP, roteadores oferecem a base

da interconexão entre redes físicas”

Todas as redes são iguais

• Do ponto de vista da rede internet, qualquer sistema capaz de transferir pacotes conta como uma única rede, independente da latência, vazão, tamanho de pacotes ou escala geográfica.

“Os protocolos TCP/IP tratam todas as redes de maneira igualitária. Uma

rede local Ethernet, o backbone da RNP ou um link ponto-a-ponto

são vistos como uma única rede”

internet TCP/IP – Visão usuário

Histórico InternetPaul Baran – “On Distributed Communications... (1960) – paper seminal

Histórico InternetPossível topologia da ARPANET – 1960 (Larry Roberts).

Histórico InternetTopologia ARPANET (ARPA/DoD) -1969

Hobbes' Internet Timeline Copyright (c)1993-2001 by Robert H Zakon

IMP: Internet Message Processor

Histórico InternetTopologia ARPANET (ARPA/DoD) – Abril 1971

Histórico InternetTopologia ARPANET (ARPA/DoD) – Setembro 1971

Histórico InternetTopologia ARPANET (ARPA/DoD) – 1973 e 1974

Histórico InternetTopologia ARPANET (ARPA/DoD) – Anos 80

Histórico Internet“Internet in a chip” (Agosto 1987)

Histórico Internet

Histórico InternetHoje a arquitetura da Internet é bem mais complicada...

ISP

ISPISP

ISP

ISP

ISP

ISP

ISP

ISP

NAP

UsuárioUsuário

Usuário

Usuário

Usuário

Usuário

UsuárioUsuário

ISP - Internet Service Provider

Acesso Discado

Acesso Dedicado

NAP - Network Access Point

Conteúdo

Histórico InternetCom milhões de hosts...

Histórico InternetE aplicações cada vez mais exigentes em termos de Qualidade deServiço (QoS - Quality of Service).

• Video sob-demanda

• Vídeo em tempo real

• Telefonia IP (VoIP)

• Transações Bancárias

• Videoconferências

• ...

Internet - Pressões

Internet

Aumento de carga e de usuários

NovasAplicações

Novas tecnologiasde computação e comunicação

Novaspolíticas

Internetworking with TCP/IP - Douglas Comer

Internet - Brasil

FAPESPhttp://registro.br

Backbone RNP (Rede Nacional de Pesquisas)http://www.rnp.br/backbone/

Estatísticas Link RJ - Miamihttp://www.rnp.br/operacao/trafego/internacional.html

Comitê Gestor da Internet - Brasilhttp://www.cg.org.br/

Exercícios

1) Diferencie internet e Internet.

2) Esboce a arquitetura de uma conexão discada a um provedor Internet.

3) Esboce a arquitetura de uma conexão dedicada a um provedor Internet.

4) Qual a principal vantagem da interconexão de rede (interneworking) do ponto de vista do usuário?

5) Para que serve um roteador?

6) Cite alguns problemas que estão sendo enfrentados pela Internet atual

Arquitetura InternetO software de uma internet (rede IP) é projetado tendo em

vista três camadas conceituais arranjadas em uma hierarquia:muito de seu sucesso baseia-se na robustez e flexibilidade

dessa hierarquia

Sistema de entrega connectionless

• Serviço fundamental: entrega de pacotes

• Não confiável– A entrega não é garantida (pacote pode ser perdido, duplicado,

atrasado ou entregue fora de ordem sem haver notificação)

• Não orientado à conexão (connectionless)– O pacote é tratado de maneira independente de todos os outros.

Uma sequência de pacotes de uma máquina para outra pode passar por caminhos diferentes

• Baseado no paradigma de “melhor esforço” (best-effort)– A rede faz o possível para entregar o pacote, não descartando

nenhum deles a não ser que seus recursos estejam sobrecarregados

O que está por trás do IP…

• Internet Protocol– Implementa o mecanismo de entrega de pacotes não-confiável, não

orientado à conexão e best-effort

• Define a unidade básica de transmissão– “datagrama” IP

• Realiza a função de roteamento– Escolha de qual rota o datagrama deve seguir

• Define regras que englobam a idéia de entrega não confiável de pacotes– Quando mensagens de erro devem ser geradas, as condições em

que pacotes são descartados, etc.

Datagrama IP• O datagrama IP é dividido em duas áreas: área de

cabeçalho (header) e área de dados.

• O header contém os endereços IP de origem e destino e um campo que identifica o conteúdo transportado na área de dados

Datagrama IP

Datagrama IP

Versão do protocolo IP. Versão corrente = 4 (IPv4). Qualquer software IP deve processar esse campo antes de processar o datagrama

Datagrama IP

Tamanho do header medido em palavras de 32 bits (4 bytes). Tamanho mais comum é 20 bytes (sem ip options e padding), o que significa HLEN = 5

Datagrama IP

Tamanho do datagrama IP medido em bytes, incluindo os bytes do header e do campo de dados. Tamanho máximo possível de um datagrama IP é, portanto, 65536 bytes (64KB).

Datagrama IP

Type of Service (TOS): Especifica como o datagrama deve ser manipulado. Esse campo é dividido em cinco sub-campos...

TOS (Type os Service)

low delay

high throughput

high reliability “dica” parao roteamento

000 - normal001010011100101110111 – controle de rede

Utilizadopara QoS(MPLS)

Encapsulamento IP• À medida que o datagrama move-se de uma rede para a

outra, ele deve ser encapsulado em frames de tamanhos distintos (dependentes da rede física)

Fragmentação IP

• Caso ideal– Todo o datagrama encapsulado em único quadro físico. (como

escolher o tamanho de datagrama ideal?)

• MTU (Maximum Transfer Unit)– MTU Ethernet: 1500 bytes/frame

– MTU proNET: 2044 bytes/frame

• O datagrama IP se “adapta” ao MTU das redes físicas através da fragmentação (divisão do datagrama em fragmentos)

Fragmentação IP

Roteador R1 fragmenta datagramas “grandes” enviados de A para B; R2 fragmenta datagramas

“grandes” de B para A

Fragmentação IP

Fragmentação IP• O tamanho dos fragmentos deve ser múltiplo de oito

• Usualmente o último fragmento é menor dos que os outros

• Os fragmentos devem ser “remontados” antes de serem entregues ao destino final

• O IP não limita os datagramas a um tamanho pequeno e nem garante que eles não serão fragmentados (a fragmentação e a montagem ocorrem automaticamente)

• Cada fragmento contém um header que duplica a maioria da informação (exceto por um bit no campo FLAGS)

Remontagem• A remontagem só acontece no sistema destino

• Desvantagens:– Se fragmentos são perdidos, o datagrama não pode ser

montado– Se um datagrama passa por uma rede de pequeno MTU, os

fragmentos permanecerão “pequenos” até o destino, mesmo que haja uma rede com MTU maior antes do destino (ineficiência)

• O destino dispara um timer quando ele recebe o fragmento inicial– Se o timer expira antes de todos os datagramas chegarem, a

máquina destino descarta os fragmentos sem processar o datagrama.

Controle dos Fragmentos

Número inteiro único que identifica o datagrama. Usado pelo sistema destino para identificar os fragmentos recebidos

Controle dos Fragmentos

Especifica o offset (deslocamento) dos dados carregados nesse datagrama em relação ao datagrama original (medido em bytes, iniciando em zero)

Controle dos Fragmentos

2 bits desse campo controlam fragmentação. Um deles define se o datagrama poderá ser fragmentado (do not fragment bit) e o outro define se os dados carregados são originários do meio do datagrama ou do fim (more fragment bit)

TTL (Time to Live)

Especifica quanto tempo, em segundo, o datagrama pode permanecer no sistema internet. Quando uma máquina injeta um datagrama na rede, ela configura um tempo máximo. Cada vez que um roteador processa um datagrama, ele decrementa em uma unidade esse contador. Se o contador for igual a zero, o datagrama é descartado.

Outros campos do datagrama

Análogo ao campo TYPE do frame Ethernet. O valor nesse campo especifica qual protocolo de alto nível está sendo transportado dentro do campo de dados do datagrama (esse valor é padronizado e pode ser obtido em http:///www.iana.org)

Outros campos do datagrama

Esse campo garante a integridade dos valores presentes no cabeçalho. O valor nesse campo é obtido tratando o cabeçalho como uma seqüência de inteiros de 16 bits, adicionando-os utilizando aritmética complemento de um e tirando o complemento de um do resultado (obs: utilizar valor = 0 no campo ao realizar a computação)

Outros campos do datagrama

Endereços IP de origem e destino do datagrama IP. Esses valores nunca mudam à medida que o datagrama é encaminhado pelos roteadores

Outros campos do datagrama

Representa o início da área de dados do datagrama. Seu tamanho dependerá do que estiver sendo enviado no datagrama.

Outros campos do datagrama

Utilizado para teste do protocolo. Todas as implementações padrão devem incluir esse campo. Pode-se gravar a rota de um pacote, forçar que um pacote seja enviado por uma determinada rota ou gravar o instante de tempo em que o pacote passou por cada roteador

Revisão

• Endereços IP são identificadores universais

• As redes TCP/IP formam uma rede virtual que utiliza os endereços IP para o envio/recebimento de pacotes

• Duas máquinas em uma dada rede física somente podem se comunicar se elas souberem o endereço físico de cada uma delas

• “Como um host (ou roteador) mapeia um dado endereço IP em um endereço físico quanto necessita enviar um pacote pela rede física?”

O Problema da Resolução de Endereços

A B

IPa IPb

MACa MACb

• Máquina A deseja enviar um pacote para a máquina B sabendo apenas IPb.

• Como a máquina A mapeia o endereço IPb para o endereço MACb?

O Problema da Resolução de Endereços

• Formalmente, é o problema de mapear endereços de alto nível para endereços físicos

• Algumas abordagens:– Manter tabelas de mapeamento entre endereços de alto nível e

endereços físicos em cada máquina

– Codificar os endereços físicos em endereços de alto nível

• Duas abordagens utilizadas no TCP/IP– Resolução por mapeamento direto (histórico)

– Resolução por mapeamento dinâmico (ARP)

Resolução por mapeamento direto

• Existe uma relação direta entre o endereço IP configurado na estação e o seu endereço físico, ou seja, MACa = f (IPa)

• Ex: Rede Token Ring proNET-10– O usuário pode escolher o endereço físico configurado na

estação

– Assim, o endereço físico escolhido pode possuir relação direta com o endereço IP da estação

– Endereço físico 3 para uma máquina que possui o endereço IP 192.5.48.3

– Resolução = extrair o host id do endereço IP

O Problema da Resolução de Endereços

A B

192.5.48.3 192.5.48.4

3 4

• Máquina A deseja enviar um pacote para a máquina B sabendo apenas IPb (192.5.48.4).

• MACb = f (192.5.48.4) = 4

• f = extrair o host id do endereço IP

Resolução por mapeamento direto

• Eficiente– Requer poucas instruções de máquina

• Fácil de manter– O mapeamento é realizado sem referência a nenhum banco

de dados externo

• Escalável– Novas máquinas podem ser adicionadas a rede sem

mudanças no perfil de tráfego (mapeamento intrínseco) e nem recompilação de código

• Versatilidade baixa– Inadequado para outras tecnologias (como a Ethernet) e

sujeita a erros de mapeamento

Resolução por mapeamento dinâmico

• Endereços Ethernet são formados por 48 bits e são “queimados” (associados) diretamente a uma dada placa de rede

• Quando uma placa de rede falha e há a necessidade de troca, o endereço físico da estação muda

• Além disso, é difícil que um endereço de 48bits possa ser codificado de uma maneira eficiente em um endereço IP de 32 bits

Resolução por mapeamento dinâmico

• Os projetistas do TCP/IP propuseram uma solução criativa para o problema da resolução de endereços para redes que possuem a capacidade de broadcast.

• Solução:– possibilitava a inclusão de novas máquinas sem

recompilação de código

– não necessitava da manutenção de um banco de dados centralizado

• ARP (Address Resolution Protocol) - RFC 826– protocolo de baixo nível que associa endereços IP a

endereços físico dinamicamente

ARP e RARP

Endereço IP de 32 bits

Endereço Ethernet de 48 bits

ARP RARP

Exercício: Imagine uma situação prática em que o RARP é utilizado.

ARP - Funcionamento

• Quando o host A quer resolver o endereço IPb, ele realiza um broadcast de um pacote especial (ARP request) que pergunta ao host que tem o IPb que responda com o seu endereço físico MACb

• Todos os hosts recebem a requisição mas APENAS o host B reconhece o seu endereço IP

• O host B envia uma resposta para A (ARP reply) que contém o seu endereço físico

• Quando A recebe a resposta, ele utiliza o endereço físico de B para enviar o pacote diretamente a B

ARP - Funcionamento

ARP Cache

• Para reduzir os custos de comunicação, cada host mantém uma tabela com os mais recentes mapeamentos realizados (ARP cache)

• Quando um host recebe um ARP reply, a sua tabela é atualizada com o novo mapeamento

• Quando um host quer enviar um pacote, ele sempre pesquisa em sua tabela o endereço IP que deseja mapear. Se existe o mapeamento, o host não necessita realizar o broadcast

• Tempo médio de permanência em cache: 20min

Encapsulamento ARP

Ethernet (14) ARP request/reply (28)

(frame type)0x0806

Formato pacote ARP

1 - Ethernet 0x0800 – IP (Qual protocolo se quer mapear)

1 – ARP request2 – ARP reply

• Os pacotes ARP não possuem um formato fixo, ao contrário dos outros protocolos

– Campo hard size (tamanho em bytes do endereço físico)

• 6 Ethernet

– Campo prot size (tamanho em bytes do protocolo)

• 4 IP

• O ARP pode ser utilizado para a resolução de endereços físico de diferentes tecnologias de rede

Formato pacote ARP

Refinamentos

• Se host A deseja falar com o host B, é provável que B deseje falar com A também– A pode enviar o seu endereço físico na requisição para que

B atualize a sua tabela

• Se A realiza um broadcast de sua requisição, então todas as máquinas podem atualizar suas tabelas com o mapamento de A

• Quando uma nova máquina é inserida na rede (ou quando há reboot), pode-se evitar ARPs de outras máquinas enviando-se via broadcast um ARP request de seu próprio endereço (gratuitous ARP)