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 - 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”
Histórico InternetTopologia ARPANET (ARPA/DoD) -1969
Hobbes' Internet Timeline Copyright (c)1993-2001 by Robert H Zakon
IMP: Internet Message Processor
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 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
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• 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 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
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)