Fazer o

Transcrição

Fazer o
CENTRO UNIVERSITÁRIO DO TRIÂNGULO
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO
VERSÃO 6
ALESSANDRA BOAVENTURA RABELO
Uberlândia, Dezembro/1998
CENTRO UNIVERSITÁRIO DO TRIÂNGULO
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
ALESSANDRA BOAVENTURA RABELO
INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO
VERSÃO 6
Monografia apresentada ao Curso de Ciência da Computação do
Centro Universitário do Triângulo, como requisito básico à
obtenção do grau de Bacharel em Ciência da Computação, sob a
orientação do Prof. Henrique Barbosa Leite
Uberlândia, Dezembro/1998
INTERNET PROTOCOLO VERSÃO 4 PARA INTERNET PROTOCOLO VERSÃO 6
ALESSANDRA BOAVENTURA RABELO
Monografia apresentada ao Curso de Ciência da Computação do
Centro Universitário do Triângulo, como requisito básico à obtenção do
grau de Bacharel em Ciência da Computação.
Henrique Barbosa Leite, Msc.
(Orientador)
Marcos Rezende, Msc.
(Coordenador)
Marcelo Rodrigues de Sousa, Msc.
Aléx Dias, Msc.
(Avaliador)
(Avaliador)
Uberlândia, Dezembro/1998
SUMÁRIO
Resumo..........................................................................................................................................................
1. Introdução..........................................................................................................................................
2. Arquitetura Internetworking.............................................................................................
2.1 Breve história da Internet.......................................................................................................
2.2 Protocolos da Internet e seus padrões...........................................................................
2.3 Conceitos e aplicações da arquitetura internet.....................................................
2.4 Arquiteturas TCP/IP e as demais..........................................................................................
2.5 O Internet Protocol (IP).............................................................................................................
2.6 IP Riscos de Segurança...............................................................................................................
2.7 Conclusão..........................................................................................................................................
3. Endereçamento internet..........................................................................................................
3.1 Intercomunicabilidade.............................................................................................................
3.1.1 Centro de Informação de Rede...................................................................................................
3.2 Classes do endereçamento.....................................................................................................
3.2.1 Rede de Classe A...........................................................................................................................
3.2.2 Rede de Classe B...........................................................................................................................
3.2.3 Rede de Classe C...........................................................................................................................
3.2.4 Rede de Classe D...........................................................................................................................
3.2.5 Rede de Classe E...........................................................................................................................
3.3 Sub-redes.............................................................................................................................................
3.4 Endereços Unicast.........................................................................................................................
3.5 Endereços Multicast..................................................................................................................
3.6 Endereços Broadcasting...........................................................................................................
3.7 Desvantagens do Endereçamento IP.................................................................................
3.8 Conclusão..........................................................................................................................................
4. Protocolo IPv4..............................................................................................................................
4.1 Encapsulamento de datagrama........................................................................................
4.2 Unidade máxima de transmissão......................................................................................
4.3 Fragmentação e montagem do datagrama IP.........................................................
4.4 Roteamento de datagramas IP...........................................................................................
4.4.1 Inconvenientes das tabelas de roteamento..............................................................................
4.4.2 Internet Message Control Protocol ( ICMP )..........................................................................
4.4.2.1 Principais tipos de mensagens de erro........................................................................................
4.5 Conclusão..........................................................................................................................................
5. A nova versão do protocolo IP.........................................................................................
5.1 Objetivos da nova versão........................................................................................................
5.2 Tipos de endereços........................................................................................................................
5.2.1 Endereços Unicast........................................................................................................................
5.2.2 Endereços Anycast........................................................................................................................
5.2.3 Endereços Multicast.....................................................................................................................
5.3 Novo formato.................................................................................................................................
5.3.1 Formato da base do cabeçalho IPv6........................................................................................
5.3.2 Descrição dos campos..................................................................................................................
5.4 Novas Funcionalidades............................................................................................................
5.4.1 Autoconfiguração.........................................................................................................................
5.4.2 Qualidade de serviços..................................................................................................................
5.4.3 Prioridade......................................................................................................................................
5.5 Cabeçalhos de Extensão..........................................................................................................
5.5.1 Cabeçalhos Hop-by-Hop e destino............................................................................................
5.5.2 Cabeçalho de fragmentação.......................................................................................................
5.5.3 Cabeçalho genérico de roteamento..........................................................................................
5.5.4 Cabeçalho de roteamento tipo 0...............................................................................................
5.5.5 Segurança......................................................................................................................................
5.5.6 Autoconfiguração.........................................................................................................................
5.5.7 Autenticação..................................................................................................................................
5.5.8 Roteamento IPv6...........................................................................................................................
5.5.9 Suporte a serviços em tempo real..............................................................................................
5.5.10 Suporte a multiprotocolos e mobilidade...............................................................................
5.6 Protocolo de Controle de Mensagens Internet........................................................
5.7 Conclusão..........................................................................................................................................
6. Considerações para a migração.......................................................................................
6.1 Transição IPv4 / IPv6......................................................................................................................
6.2 Mecanismos desenvolvidos para a migração...........................................................
6.3 Conclusão..........................................................................................................................................
7. Conclusão.........................................................................................................................................
Bibliografia..........................................................................................................................................
Referências Bibliografias..........................................................................................................
Apêndice A................................................................................................................................................
Apêndice B................................................................................................................................................
Resumo
O Internet Protocol (IP) é um protocolo que faz a entrega de datagramas sem conexão, não garantindo a
entrega, nem a ordem de envio. Possibilita a comunicação entre máquinas completamente diferentes, ou
seja com hardwares e softwares distintos. O datagrama IP atual (IPv4), não necessita de conexão, não
possibilita qualquer garantia de entrega através de mecanismos internos. E apesar de não garantir a
segurança é o protocolo mais utilizado atualmente, adotado comercialmente por diversos ambientes e
aceito por vários seguimentos da sociedade. O crescimento exponencial apresentado pela rede Internet,
uma estrutura cliente-servidor muito robusta, leva seus projetistas a novos estudos para melhorar, oferecer
melhores serviços, novas tecnologias são incluídas e as antigas ou se adaptam a elas ou tornam-se
obsoletas. O uso da nova versão do protocolo (IPv6 - Internet Protocol Versão 6) é que dará suporte ao
crescimento da rede Internet, ao aumento das funcionalidades e a novas aplicações. E de certa forma
lança um enorme desafio, que é a interoperabilidade entre as duas versões, abrindo um vasto campo de
investigação e desenvolvimento tecnológico. O estudo de mecanismos e protocolos de endereçamento,
encaminhamento, qualidade de serviço, segurança e gestão é feito visando o funcionamento em ambientes
IPv6. A avaliação do desempenho e funcionalidade de diferentes soluções, a capacidade de acomodar o
crescimento das redes, o aumento do leque de aplicações, e a transição entre protocolos altamente
utilizados e novos e ainda em desenvolvimento, constitui um desafio técnico-científico que será, alvo de
uma grande e importante pesquisa científica e técnica internacional. Este trabalho tem como principal
objetivo mostrar o protocolo mais usado atualmente, e o seu possível sucessor.
1.
Introdução
“A comunicação é uma das maiores necessidades da sociedade humana desde os primórdios de sua
existência. Conforme civilizações se espalhavam, ocupando áreas cada vez mais dispersas
geograficamente, a comunicação a longa distância se tornava cada vez mais uma necessidade e um
desafio. Formas de comunicação através de sinais de fumaça ou pombos-correio foram as maneiras
encontradas por nossos ancestrais para tentar aproximar as comunidades distantes.” (Soares, Lemos e
Colcher, 1995).
Com o passar dos tempos o sistema de comunicação foi mudando, ou seja modernizando-se e atualmente a
mesma é feita de uma forma nunca imaginada pelos nossos ancestrais. Primeiro foram os telégrafos
utilizados no século XIX, que codificavam mensagens em cadeias de símbolos binários, e então eram
transmitidas manualmente por um operador através de um dispositivo gerador de pulsos elétricos. Desde esta
época a comunicação sofreu muita evolução dando origem a dispositivos como: telefone, rádio, televisão.
Esta evolução deu-se também de uma forma surpreendente, nos equipamentos de processamento e
armazenamento de informações. E a conjunção entre estas duas tecnologias - comunicação e processamento
de informação - abriu definitivamente as portas para as novas formas de comunicação existentes atualmente.
Com o advento da computação obteve-se muitas facilidades, que gerarão ao mesmo tempo grandes
dificuldades e limitações tecnológicas. Usávamos sistemas computacionais centralizados que
apresentavam uma grande dificuldade de interligação entre os diferentes ambientes.
A técnica de comunicação de dados a distância (teleprocessamento), veio para difundir as facilidades
computacionais, mas continuávamos com o problema de interligação entre as diversas tecnologias.
Temos dois aspéctos importantes no que diz respeito a evolução tecnológica, o primeiro foi o lançamento
do Personal Computer (PC), que contou na época com uma demanda de usuários surpreendente. O
segundo foi o advento das Redes Locais (LANs), que necessitavam de interconexão entre si ou entre
ambientes de grande porte. Em resposta as necessidades de comunicação e troca de dados, deu-se o inicio
ao projeto da Internet, pela Agência de Projetos e Pesquisas Avançadas de Defesa, que desenvolveu um
conjunto de protocolos para tratar informações transportadas, sem dependência do tipo de hardware,
dados roteados entre as redes e com transparência quanto ao tipo de aplicação.
Eis que surge então a tecnologia Internetworking, que veio com intuito de interconectar diversas redes
físicas, com diferentes características, de forma transparente e com uma arquitetura não proprietária.
Os protocolos responsáveis pela flexibilidade e operacionalidade da arquitetura são o TCP (Transmission
Control Protocol) e o IP (Internet Protocol), conhecidos como arquitetura TCP/IP, arquitetura atualmente
adotada comercialmente por vários ambientes como UNIX, NOVELL, WINDOWS NT, OS/2 e aceita pelos
vários segmentos da sociedade. Arquitetura esta que permite o compartilhamento de informações e
interligando milhares de organizações militares, educacionais, científicas e comerciais que compartilham
dados, correio eletrônico (e-mail), e outros serviços, fazendo com que muitas pessoas e organizações
dependam desta tecnologia. Com uma estrutura cliente-servidor (client-server) muito robusta,
especialmente em se tratando de WAN (wide-area network ou redes de longo alcance), inclui uma série
de padrões que especificam como os computadores vão se comunicar, cria convenções para a
interconexão de redes e para o roteamento através dessas conexões.
“A
implementação de redes corporativas nas empresas é um assunto complexo, devido à grande
quantidade de componentes e diversas tecnologias existentes. A escolha da melhor tecnologia, para
atender uma determinada necessidade, requer análises, projetos e testes daqueles que são responsáveis por
áreas tecnológicas. Considerando que a integração entre as empresas, através de redes de
telecomunicações aplicadas à informática, é fundamental no contexto atual de globalização de mercado.”
(Sousa, 1996). Com este trabalho tenho o objetivo de mostrar o protocolo mais usado atualmente para este
fim.
Na Internet, um mundo muito dinâmico, onde novas tecnologias são incluídas e as antigas ou se adaptam
a elas ou tornam-se obsoletas, o protocolo usado atualmente é o IPv4, que conseguiu acomodar todas as
mudanças, tornando-se cada vez mais popular.
Em 1991, membros do IETF (Internet Engineering Task Force), concluem que o crescimento exponencial
apresentado pela rede esgotaria em breve os endereços disponíveis. Deu-se o início dos estudos para
desenvolver um sucessor para o IPv4. Após avaliações são selecionados três possíveis candidatos, a partir
destas três propostas são selecionados os pontos positivos e gerarada a recomendação para a versão 6 do
IP. De lá para cá várias Drafts, RFCs foram publicadas, e já existem algumas implementadas ou em
funcionamento.
O fenômeno do crescimento exerce uma pressão muito grande e constante sobre a infra-estrutura da
Internet. Obrigando uma reestruturação, melhora de desempenho, segurança, facilidades para o usuário na
configuração e administração de redes. Com a implementação da nova versão do protocolo teremos mais
espaço de endereçamento, mais níveis de hierarquia, maior número de nodos endereçáveis, autoconfiguração destes nodos, compatibilidade e interoperabilidade com a antiga versão. Uma das
características obrigatórias para a implementação do novo protocolo é a chamada flexibilidade que
permite a inclusão de cabeçalhos de suporte para autenticação, integridade de dados e confiabilidade.
Estas características, possibilitam facilidades muito grandes no que se refere a implementações futuras.
A nova versão do protocolo reflete o amadurecimento da tecnologia de redes, e o novo protocolo tem em
vista uma verdadeira rede mundial com múltiplos usos. Acredita-se atualmente que o uso do novo
protocolo e uma reestruturação da Internet solucione boa parte dos problemas atualmente enfrentados
pelos usuários.
Estima-se que o processo de migração seja simples e claro para os usuários da rede. Mas quando
consideramos o número de usuários que dependem desta rede encontramos um ponto muito sério no que
diz respeito a migração. Notamos que o número de nodos conectados torna impossível e inviável uma
migração simultânea total, pois para que isto ocorra seria preciso que a rede ficasse totalmente fora do ar
por um determinado tempo. Os usuários não estão dispostos a este sacrifício, o que é totalmente
compreensível, se considerarmos que alguns dependem totalmente desta rede.
Fica mas fácil visualizar a migração ao considerarmos a compatibilidade disponibilizada pela nova
versão. Mas devemos considerar também que uma alteração no protocolo pode trazer problemas para as
aplicações pré existentes.
Solucionando-se estes problemas temos atualmente duas formas interessantes para a migração do
protocolo, que são: manter as duas versões e o uso de túneis de endereçamento. Roteadores e máquinas
podem atualizar seu protocolo, sem obrigar todos os usuários da rede a fazerem o mesmo. Com a única
restrição de que os servidores de DNS tenham sua versão atualizada antes.
A popularidade do atual protocolo pode trazer sérios problemas no que se refere a uma migração, pois
isto contribui para que uma substituição seja encarada como algo perigoso, ou seja podem ocorrer críticas,
ou até mesmo boicotes. Tem uma frase que reflete perfeitamente este sentimento: Se está funcionando,
não devíamos mudar. Espera-se que novas funcionalidades, facilidades e serviços venham para extinguir
estes pensamentos. Acredita-se que o chamado custo benefício tende a ser um bom estímulo para a
migração.
Benefícios como: suporte a bilhões de hosts, redução das tabelas de roteamento, possibilidade de
expansão (cabeçalhos de extensão), garantias de segurança (autenticação e privacidade), permissão de
multicast, autoconfiguração, permissão para que uma máquina mude de lugar fisicamente e não altere seu
endereço, criação do conceito de cabeçalhos opcionais, suporte a serviços em tempo real, etc.
A autoconfiguração é uma melhoria que deve ser levada em conta, pois ao possibilitar plug-and-play de
máquinas a nova versão minimiza a intervenção humana no processo de configuração da rede, o que serve
para minimizar ou até extinguir a possibilidade de ocorrência de erros. Esta autoconfiguração será de
grande importância no que diz respeito a computação móvel.
Este trabalho tem como objetivo mostrar a evolução sofrida pelo Protocolo Internet (IP), desde a sua
criação até os dias de hoje dando ênfase aos seus pontos fortes e fracos, bem como mostrando alterações
sofridas pelo mesmo. Mostra também o porque de uma nova versão que solucione problemas
relacionados às limitações encontradas. O que serve de suporte às grandes mudanças é acreditar que estas
serão válidas, não se pode melhorar se não tentamos. As mudanças seriam inúteis e incoerentes se não
estivéssemos dispostos a aceitá-las e adotá-las.
Este trabalho se encontra dividido em seis capítulos, sumarizados a seguir:
Capítulo 2 - Arquitetura Internetworking - Breve introdução a internet, seus protocolos e problemas
enfrentados.
Capítulo 3 - Endereçamento Internet - Modos de endereçamento de datagramas (pacotes) usados na
internet, dificuldades, facilidades, vantagens e desvantagens deste endereçamento.
Capítulo 4 - Protocolo IPv4 - Atual arquitetura adotada comercialmente por diversos ambientes e aceita
por vários seguimentos da sociedade, descrito detalhadamente.
Capítulo 5 - A nova versão do protocolo IP - Detalha o possível protocolo a substituir o atual, mostrando
que o custo benefício apresentado é favorável à migração.
Capítulo 6 - Considerações para a migração - Antes de se pensar em mudança devemos considerar alguns
fatores que são levantados neste capítulo.
2.
Arquitetura Internetworking
Este capítulo nos mostra uma breve história sobre a internet, os protocolos que a sustentam, seus pontos
fracos e fortes, o modo em que afetam a comunicação e a troca de dados e informações usando esta rede
que cresce de forma assustadora e requer uma atenção cada vez mais especial.
2.1
Breve história da Internet
Ao falarmos da história da Internet, temos que dar ênfase ao crescimento exponencial apresentado por
esta rede mundial, que tem levado diferentes segmentos da sociedade à obtenção de muitas facilidades e
ao mesmo tempo grandes dificuldades e limitações relacionadas a esta explosão de crescimento
tecnológico.
Inicialmente sistemas computacionais eram centralizados e havia uma grande dificuldade para interligar
os diferentes ambientes. Com o surgimento do teleprocessamento, técnica de comunicação de dados a
distância, obteve-se uma difusão das facilidades computacionais. Mas ainda encontrávamos uma grande
dificuldade para interligar divers[m1] as redes de teleprocessamento com seus diversos protocolos e
diferentes arquiteturas.
Um aspecto muito importante no que diz respeito a esta evolução tecnológica, foi o lançamento do
Personal Computer (PC), que contou com uma demanda de usuários surpreendente. Outro aspécto muito
importânte foi o advento das Redes Locais (LANs), que necessitavam de interconexão entre si ou entre
ambientes de grande porte. Em resposta as necessidades de comunicação e troca de dados, deu-se o início
do projeto da Internet, pela Agência de Projetos e Pesquisas Avançadas de Defesa (DARPA - Defence
Advanced Reserch Projects Agency, órgão do departamento de defesa dos EUA). O DARPA desenvolveu
um conjunto de protocolos para tratar informações transportadas, sem dependência do tipo de hardware,
dados roteados entre as redes e com transparência quanto ao tipo de aplicação.
Temos então o surgimento da tecnologia Internetworking (Internetting), que vem fazer a interconexão de
diversas redes físicas com características diferentes. Esta interconexão é feita de forma transparente ao
usuário, com especificações públicas e genéricas permitindo a implementação por vários fabricantes, ou
seja sem compromisso com fabricante específico (arquitetura não proprietária). Isto faz com que do ponto
de vista do usuário a Internet seja vista como um conjunto de softwares aplicativos que lhe possibilita a
comunicação com vários sistemas computacionais, sem se preocupar se são compatíveis ou não.
Os protocolos responsáveis pela flexibilidade e operacionalidade da arquitetura são o TCP (Transmission
Control Protocol) e o IP (Internet Protocol), conhecidos como arquitetura TCP/IP. Esta arquitetura é
atualmente adotada comercialmente por vários ambientes como UNIX, NOVELL, WINDOWS NT, OS/2 e
aceita pelos vários segmentos da sociedade, permitindo assim o compartilhamento de informações e
interligando milhares de organizações militares, educacionais, científicas e comerciais que compartilham
dados, correio eletrônico (e-mail), e outros serviços. O que faz com que atualmente muitas pessoas e
organizações dependam desta tecnologia. A mesma possui uma estrutura cliente-servidor (client-server)
muito robusta, especialmente em se tratando de WAN (wide-area network ou redes de longo alcance).
Incluindo uma série de padrões que especificam como os computadores vão se comunicar, cria
convenções para a interconexão de redes e para o roteamento através dessas conexões.
2.2
Protocolos da Internet e seus padrões
Protocolos e padrões da Internet são propostos através de iniciativas individuais de organizações ou
profissionais, que submetem suas propostas através de RFCs (Request for Comments - Pedido para
comentários). Estas RFCs passariam por um avaliação/estudo minucioso e de acordo com os resultados a
mesma poderia até virar um padrão. A primeira RFC considerada padrão foi a RFC733. Logo caso
tenhamos alguma idéia para melhorar o protocolo ou uma tecnologia nova para o beneficio desta rede
mundial, a Internet, devemos submeter a mesma como RFC, dependendo de diversos fatores isto pode ou
não se tornar um padrão adotado mundialmente. O órgão responsável pela moderação com relação ao
lançamento de RFCs é o RFCEditor. O Apêndice A mostra as RFCs mais usadas atualmente na Internet.
2.3
Conceitos e aplicações da arquitetura internet
Através da arquitetura TCP/IP são disponibilizados alguns serviços aos usuários. Possibilitando também o
uso de outras ferramentas que existem no mercado, não criando nenhuma restrição quanto ao uso. Alguns
dos serviços oferecidos estão relacionados abaixo, bem como seus objetivos:
a)
Correio eletrônico - tem como objetivo viabilizar o envio de mensagens para um usuário ou grupos
de usuários com interesses comuns, sinalizando ao destinatário a recepção de correspondência. O
principal aplicativo utilizado para executar este serviço em redes TCP/IP é o SMTP (Simple Mail
Transfer Protocol).
b)
Transferência de arquivos - quando se trata de arquivos pequenos e rápidas mensagens o próprio
correio se encarrega de enviá-las. Mais ao se transferir arquivos maiores pode-se usar FTP (File
Transfer Protocol), para o transporte, compatibilizando assim as diferentes aplicações e garantindo
integridade dos dados (tabelas de banco de dados, imagens, programas, etc.).
c)
Login remoto - para que uma máquina local conecte-se a uma outra remota, usa-se o telnet, que
estabelece uma sessão interativa entre as mesmas. Dando ao usuário a impressão de que o seu
terminal, faz parte do sistema remoto ao qual está conectado, como em uma conexão local, ou seja de
forma totalmente transparente para o usuário.
d)
Serviços internet a nível de transporte de rede
•
Serviços de entrega de dados sem conexão - entrega de mensagens através de rotas baseadas
no endereçamento implementado em cada segmento, sendo que a integridade dos dados não é
garantida em nenhum momento, ou seja um serviço sem qualidade, o que pode ser proporcionado
por ferramentas auxiliares, sem nenhuma restrição. A grande vantagem‚ para se usar esta
ferramenta é a simplicidade na interface com o hardware utilizado, representando uma alta
flexibilidade de uso em diversas plataformas de hardware diferentes. O IP é o protocolo
responsável por este serviço.
•
Serviços de transporte de dados confiáveis – este serviço é fornecido por um nível superior
(transporte), além de prestar este serviço deve também controlar fluxo de dados, estabelecer
conexões entre aplicações remotas, permitindo assim a troca de dados de maneira confiável. O
TCP é o responsável por estes serviços.
2.4
Arquiteturas TCP/IP e as demais
A unidade de transferência de dados (datagrama) pode ser encapsulada em diversos protocolos de nível
inferior (enlace do OSI e físico para a internet), com simplicidade na interface entre ambos o que gera
uma independência completa do IP com relação ao nível inferior. O IP provê um endereçamento distinto
(universal) para cada host conectado à internet, incluso ao datagrama e usado na escolha da melhor rota
entre origem e destino, ou seja um endereço único para cada nodo. Provê também a implementação de
um conjunto de facilidades para o usuário como correio eletrônico (SMTP - Simple Mail Transfer
Protocol), FTP (File Transfer Protocol), telnet, etc.
O TCP implementa um controle de fluxo entre diversas canalizações lógicas e respectivas aplicações,
bem como um controle de erros que implementa confirmações dos dados recebidos pelo destino.
O endereçamento internet visa interconectar redes virtualmente, mantendo transparência quanto a suas
finalidades, tipo de equipamento, modelo ou fabricante, mantendo o padrão e interoperalidade.
2.5
O Internet Protocol (IP)
O Internet Protocol é a base do Transmission Control Protocol/Internet Protocol (TCP/IP), ou seja um
conjunto de protocolos criados para possibilitar a comunicação entre computadores em ambientes de
redes locais e remotas. Para contactar outras máquinas usamos conexões IP que são controladas através
de endereços IP, ou melhor números únicos que identificam o nodo na rede. Conexões estas que
possibilitam qualquer máquina comunicar-se com outra, bastando para isto que exista um caminho entre
as duas.
O IP é sem dúvida o protocolo de rede mais usado por corporações, governos e Internet. Apoia várias
aplicações pessoais, técnicas, empresariais, de correio eletrônico e transferência de dados, voz e imagens.
O envio de datagramas IP não requer uma rota predefinida, o mesmo é redirecionado para um nodo mais
próximo do destino. Quando um nodo recebe um datagrama este verifica se ele próprio não é o destino,
após esta verificação o pacote é aceito ou redirecionado a um nodo mais próximo ainda do destino.
Procedimento este que se repete até que o destino seja encontrado, possibilitando assim o
redirecionamento no caso de recurso não disponível. No caso de datagramas com endereços locais, os
mesmos são diretamente entregues.
Ao trabalharmos com datagramas muito grandes deparamos com uma limitação, pois de acordo com o
hardware usado tem-se um tamanho máximo possível para transmissão (Maximum Transfer Unit MTU). Caso este tamanho seja excedido, o datagrama necessita ser fragmentado em pacotes menores,
possibilitando assim o seu envio. Um datagrama fragmentado sofre um reagrupamento dos fragmentos
quando chega ao destino, respeitando a ordem.
2.6
IP Riscos de Segurança
Atualmente o IP não se preocupa em cuidar, internamente de certas questões como: segurança,
autenticação, confiabilidade, etc. Quando se pensou inicialmente em uma rede com alcance mundial, não
se imaginava a explosão de crescimento, e nem a qualidade de serviço. Algumas funcionalidades são
oferecidas por ferramentas à parte, um exemplo são os firewalls. Soluções relacionadas com segurança de
protocolos baseados em IP, que se encontram disponíveis em larga escala no mercado. Atualmente, nesta
área temos dois tipos de soluções, as comerciais e as de uso livre. E mesmo contando com inúmeras
ferramentas para segurança disponíveis na internet, é difícil ou impossível manter os hackers a distância.
Um problema grave enfrentado nesta área é que da mesma forma que existem ferramentas que garantem a
segurança, existem produtos comerciais capazes de enganar (burlar) os softwares de segurança. Como
exemplo podemos citar o watcher (guarda de IP), que é capaz de capturar conexões IP. O uso deste
possibilita aos administradores (hackers) observar, encerrar e controlar (seqüestrar, monitorar) sessões de
Internet. O usuário é colocado em estado de espera permanente e o administrador (hacker) assume o
controle da conexão.
Outra situação perigosa enfrentada por todos os que usam a Internet é que, ao usarmos algum aplicativo e
por algum motivo necessitamos disponibilizar informações administrativas, contatos técnicos de
organizações com telefones, endereços eletrônicos (e-mail) e físicos, estamos ao mesmo tempo nos
protegendo e fornecendo informações preciosas aos hakers, que usam freqüentemente estes dados básicos
nos ataques as redes.
2.7
Conclusão
Esta rede chamada Internet, projetada para fazer uma comunicação quase que restrita, atualmente é de
acesso global e vem apresentando um enorme crescimento o que da origem a vários problemas. Um dos
problemas considerados críticos atualmente é que os endereços disponíveis estão a cada dia mas escassos,
este é discutido mas profundamente no próximo capítulo.
3.
Endereçamento internet
“O endereçamento internet visa interconectar Redes de forma virtual, com o cuidado de manter
transparência quanto a: finalidades, tipo do equipamento, modelo ou fabricante, desde que se mantenha o
padrão comum do endereçamento internet.” (Gasparini, 1993). Para um melhor entendimento tomaremos
como exemplo a atual versão usada (versão 4).
3.1
Intercomunicabilidade
A intercomunicabilidade (Serviço de Comunicação Universal), ou seja facilidade de se ter uma
comunicação de forma transparente entre vários Hosts de diferentes tipos, modelos e fabricantes, LANs,
WANS, Microcomputadores, etc. Para que isto ocorra faz-se necessário estabelecer regras e métodos
padronizados (protocolos), com eficiência comprovada e aceitação global. Hosts podem ser identificados
por nomes, endereços, ou rotas de acesso, por isto necessitamos classificar as identificações de forma
comum. O TCP/IP é um padrão de endereçamento compacto e eficiente que possibilita esta
intercomunicabilidade.
O IP um protocolo que não necessita de conexão, é configurado e parametrizado via software. A versão
atual define um string de 32 bits para endereçamento de cada HOST, cada campo pode assumir valores de
0 a 255 (o que corresponde a um byte do endereço IP na forma de bits). Um ponto básico neste tipo de
endereçamento é que cada HOST deve ter seu endereço único para qualquer tipo de comunicação, e este
deve ser conhecido pelos demais HOSTs envolvidos. O órgão que define este endereço de rede é o
chamado InterNIC, e o número do equipamento pelo administrador de rede responsável. Abaixo temos
um exemplo de endereço IP:
Figura 3.1.1 - Endereço IP
O IP consiste basicamente em NetID que identifica a rede que o HOST pertence, e o HOST ID que
identifica o HOST da rede. Portanto em se tratando de uma mesma rede todos os HOSTs tem o mesmo
NetID.
3.1.1
Centro de Informação de Rede
O Centro de informação de rede (Network Information Center - NIC), tem como objetivo assegurar a
intercomunicabilidade entre as diversas redes, evitando repetição de endereços bem como as suas
conseqüências delegando endereços IP aos vários usuários. Devemos padronizar os endereços IP através
do NIC para preservar a interoperabilidade com os vários sistemas e redes distintas.
3.2
Classes do endereçamento
As redes à serem conectadas tem tamanhos diferentes, podendo ser desde redes locais de computadores de
pequeno porte, até redes públicas interligando milhares de hosts. Para atender melhor as necessidades de
organizações, bem como aproveitar melhor os endereços disponíveis, dividiu-se endereços em classes, que
serão detalhadas a seguir.
3.2.1
Rede de Classe A
Nas redes de classe A, o primeiro byte varia em valor decimal de 1 à 126, sendo que cada rede tem a
capacidade de endereçar cerca de 16 milhões de hosts, 7 bits para NetID e 24 bits para HOST ID. Geralmente
usado em redes de grande porte, como universidades. Atualmente não existem mais endereços de classe A
disponíveis. Nesta classe o endereço da rede corresponde, somente ao primeiro byte. Temos então o
endereço IP 50.100.240.10, que corresponde à máquina 100.240.10 na rede 50.0.0.0. Abaixo temos um
esboço do que vem a ser um endereço de classe A:
O
8
16
24
31
O Fixo
Livre
Livre
Livre
Tabela 3.2.1.1 - Rede de Classe A
3.2.2
Rede de Classe B
Nas redes de classe B, os dois primeiros bytes variam em valor decimal de 128.1 à 191.255, sendo que cada
rede tem a capacidade de endereçar cerca de 65 mil hosts, 14 bits para Net ID e 16 bits para HOST ID.
Endereçamento geralmente usado em redes de médio à grande porte. Nesta classe o endereço da rede,
corresponde aos dois primeiros bytes. Temos então o endereço IP 150.80.20.200 que corresponde à
máquina 20.200 na rede 150.80.0.0. Abaixo temos um esboço do que vem a ser um endereço de classe B:
O
1 0
8
Fixo
16
Livre
24
Livre
31
Livre
Tabela 3.2.2.1 - Rede de Classe B
3.2.3
Rede de Classe C
Nas redes de classe C, os três primeiros bytes variam em valor decimal de 192.1 à 223.254.254, sendo que
cada rede endereça cerca de 254 hosts, 21 bits para Net ID e 8 bits para HOST ID. Nesta classe o endereço
da rede, corresponde aos três primeiros bytes. Temos então o endereço IP 192.200.135.75 que
corresponde à máquina 75 na rede 192.200.135.0. Abaixo temos um esboço do que vem a ser um
endereço de classe C:
O
8
1 1
o
Fixo
16
Livre
24
Livre
31
Livre
Tabela 3.2.3.1 - Rede de Classe C
3.2.4
Rede de Classe D
Nas redes de classe D, os quatro primeiros bytes variam em valor decimal de 223 à 239 para a classe D. O
endereço da rede corresponde aos quatro primeiros bytes. Utilizado para transmissão simultânea de
pacotes para um grupo multicast, que é um conjunto de um ou mais equipamentos identificados por um
endereço especial de destino (endereço multicast). Abaixo temos um esboço do que vem a ser um
endereço de classe D:
O
8
1 1
1
0
16
24
31
Multicast Address
Tabela 3.2.4.1 - Rede de Classe E
3.2.5
Rede de Classe E
Nas redes de classe E, o valor do primeiro byte é maior que 240, e estes endereçamentos estão reservados
para uso futuro. Abaixo temos um esboço do que vem a ser um endereço desta classe:
O
8
1 1
1
1
16
24
31
Uso futuro
Tabela 3.2.5.1 - Rede de Classe E
Obs.: Endereços 0.0.0.0 e 127.0.0.0, são reservados para funções especiais e nunca utilizados.
Com exceção do endereço de rede 127.0.0.0, que é utilizado para Loopback (facilidade de teste), ou seja
um datagrama com este endereço‚ é utilizado pelo HOST para testar sua interface de comunicação, o
mesmo retorna a origem antes de passar pela rede. As demais classes reservam seu último endereço para
Loopback. Endereços para Loopback vão ser melhor explicados mais para frente.
Esta divisão dos endereços IP em classes pode ser entendida mais claramente na tabela abaixo, que é
chamada Tabela Comparativa de Classes.
Classe
Endereços de rede
Endereços
de Exemplo
equipamentos
endereço
A
1-126 (*)
0.0.1-255.255.254 (**)
25.2.3.15
B
128-191.255
0.0.1-255.254 (**)
130.26.58.2
C
192.0.0-223.255.255
1-254 (**)
200.21.235.68
D
224.0.0.0-239.255.255.255 (***)
E
reservado para uso futuro
de
226.35.45.21
Tabela 3.2.5.1 - Tabela Comparativa de Classes.
(*) redes reservadas
0.x.x.x
usado para indicar que o endereço de origem é desconhecido.
127.x.x.x
reservado para endereço loopback (127.0.0.1 próprio equipamento)
(**) em cada rede existem endereços reservados:
x.0.0.0
indica a própria rede de classe A
x.x.0.0
indica a própria rede de classe B
x.x.x.0
indica a própria rede de classe C
x.255.255.255
broadcast da rede de classe A
x.x.255.255
x.x.x.255
broadcast da rede de classe B
broadcast da rede de classe C
(***) endereçamento de multicast
Em algumas organizações endereços da classe C não são suficientes, por causa do número de estações
oferecidas e já os de classe B seriam pouco utilizados. Este mesmo raciocínio pode nos levar a má
utilização de endereços da classe A isto porque não existem identificações para redes de pequeno e
médio porte.
3.3
Sub-redes
As sub-redes são necessárias nos casos onde temos que subdividir a rede em redes menores, um exemplo
muito claro a ser citado é o caso de endereços pertencentes à classe A, que tem a capacidade de endereçar
16 milhões de equipamentos, como montar e administrá-los? Geralmente quando temos um problema
muito grande, para resolver, dividimos o mesmo em pequenos módulos, transformando-o em vários
problemas menores. É exatamente isto que ocorre no caso de redes deste tamanho.
Para dividir uma rede em sub-redes criou-se a máscara de rede (subnet mask), que especificam quantos
bits são usados para: endereço de rede e endereço do equipamento. Além do endereço IP, cada máquina
tem uma máscara com o mesmo formato. No caso da não utilização de máscaras informa-se a default de
acordo com a classe da rede, conforme mostra a tabela abaixo.
Classe
Máscara
Número de Bytes Número de Bytes
de Rede
de Equipamento
A
255.0.0.0
1
3
B
255.255.0.0
2
2
C
255.255.255.0
3
1
Tabela 3.3.1 - Máscara default para classes de redes
Para entender melhor máscaras de redes, temos abaixo alguns exemplos de classes e suas devidas subredes.
1.
Se dividíssemos uma rede de classe A em 256 sub-redes teríamos:
rede:
15.0.0.0 com máscara 255.255.0.0
sub-redes: 15.0.0.0, 15.1.0.0, 15.2.0.0, 15.3.0.0, 15.4.0.0, ..., 15.255.0.0
2.
Se dividíssemos uma rede de classe C em 4 sub-redes teríamos:
rede:
200.254.29.0 com máscara 255.255.255.192
sub-redes:
200.254.29.0, 200.254.29.64, 200.254.29.128, 200.254.29.192
Analisemos também a tabela abaixo que relaciona as possíveis máscaras de rede, para a subdivisão de
uma rede classe C, mostrando o número de sub-redes, e o número de equipamentos que cada máscara
permite endereçar.
Máscara 255.255.255
0
128
192
224
240
248
252
Número de sub-redes
1
2
4
8
16
32
64
Número de endereços total
256
128
64
32
16
8
4
Número de endereços válidos
254
126
62
30
14
6
2
Tabela 3.3.2 - Subdivisão de uma rede, classe C
Levando-se em consideração o quadro acima, se dividíssemos uma rede de classe C em 6 sub-redes de 15
equipamentos. A solução seria usar a máscara 255.255.255.224 que divide uma rede de classe C em 8
sub-redes com até 30 endereços válidos cada.
Obs.:
A máscara pode ser representada com o número de bits que se pretende endereçar após o endereço IP
(endereço_IP/número_de_bits). Esta notação é conhecida como CIDR - Classless Inter-Domain Routing.
Exemplo:
Endereço IP:
200.245.235.65
3.4
Máscara:
255.255.255.0
ou
200.245.235.65/24
Endereço IP:
200.245.235.65
Máscara:
255.255.255.240 ou
200.245.235.65/28
Endereços Unicast
Um endereço unicast é usado para transmitir dados para um único destino, o mesmo identifica um
endereço de interface de rede específico. Logo os dados são enviados diretamente para a interface
associada ao endereço.
3.5
Endereços Multicast
Endereços multicast são usados para transferir datagramas para um grupo de hosts configurados como
membros de um grupo multicast e que possivelmente, encontram-se em sub-redes geograficamente
dispersas. Não é orientado a conexão, e não garante que o datagrama será entregue a todos os membros
do grupo, ou que vá chegar na mesma ordem relativa a outros datagramas.
A diferença de um datagrama IP unicast e um multicast é a presença de um endereço de grupo no campo
de endereço destino no cabeçalho IP. Ao invés de um endereço classe A, B, C, multicasting emprega um
endereçamento de classe D, com o formato (224.0.0.0 - 239.255.255.255).
Membros individuais podem associar-se ou deixar um grupo multicast a qualquer momento. Não
existindo nenhuma restrição, nem mesmo com relação de localização física ou número de membros nos
grupos. Um host pode ser membro de um ou mais grupos e para enviar mensagens para membros do
grupo não precisa ser membro do mesmo. Os grupos podem ser permanentes ou transientes e também ter
até zero no número de membros.
Endereços multicast tem seus quatro bits de maior ordem igual a 1110, seguido de um identificador de
grupos de 28 bits, e variam de 224.0.0.0 até 239.255.255.255.
O endereço base 224.0.0.0 não pode ser usado de modo algum, o bloco de endereços 224.0.0.1 …
224.0.0.255 são reservados para uso de roteadores e outros protocolos de baixo nível, que realizam tarefas
de manutenção e descoberta de topologias. Os grupos restantes de 224.0.1.0 … 239.255.255.255 são
designados a aplicações multicast ou permanecem disponíveis.
3.6
Endereços Broadcasting
O endereços broadcasting são maneiras de se mandar mensagens para todos os usuários da rede, isto é
feito preenchendo-se o HOST ID com bits 1. Embora esta seja uma poderosa ferramenta temos que tomar
cuidado, visto que qualquer sistema remoto pode enviar mensagens em broadcasting para qualquer rede.
Estas mensagens podem ocasionar congestionamentos insuportáveis na rede.
3.7
Desvantagens do Endereçamento IP
Uma das desvantagens mais claras de se usar o endereçamento IP é o que se refere ao deslocamento físico
do equipamento, que apresenta problemas, visto que o endereço IP refere-se à conexão com a rede e não
com o HOST. Logo quando queremos trocar o HOST de uma rede para outra devemos trocar seu
endereço. Este fato ocasiona um transtorno muito grande principalmente quando tratamos usuários de
HOSTs portáteis. Um computador portátil não podendo ficar conectado permanentemente à mesma rede,
não pode ter um endereço fixo, pois o mesmo identifica a localização física da rede.
Na escolha da classe de endereçamento, não temos como prever se a rede vai se expandir ou não. Por este
motivo ao se implantar uma rede as empresas não preocupam-se em nenhum momento com um possível
crescimento futuro, fato este que pode nos trazer sérios transtornos.
Tomemos como exemplo o caso de uma empresa X adota um endereço de classe C, pois que não se
esperava mais de 254 HOSTs, depois de um determinado tempo este número de HOSTs ultrapassa os 254.
Para resolver o problema desta empresa teríamos que mudar o endereçamento para a classe A ou B. Com
esta mudança supostamente fácil seria necessário mudar todos os endereços de máquinas e reaprender a
usá-los. Devemos levar em consideração também a complexidade do NetID, que aumenta
proporcionalmente com o crescimento da complexidade da rede. A administração da rede ficaria bem
mais complexa.
O caminho de um determinado datagrama endereçado ao HOST X da rede Y é especificado no endereço
IP, logo a eficiência desta comunicação esta diretamente ligada com este caminho definido. Ao
analisarmos este caminho verificamos que este é composto por vários endereços IP e a ausência ou
desconhecimento de certos endereços pode inviabilizar a comunicação.
3.8
Conclusão
As mudanças sofridas pelo protocolo IP conseguiram acomodar ou solucionar, mesmo que
temporariamente, os problemas visualizados diretamente relacionados com o protocolo. Um exemplo é o
que se refere a quantidade de endereços disponíveis, problema este que foi solucionado temporariamente
com a criação das classes de endereços, e que atualmente estão novamente perto de acabar. O capítulo a
seguir mostra mais detalhadamente a atual versão do protocolo usada, para que possamos entender melhor
a necessidade de uma nova versão.
4.
Protocolo IPv4
O protocolo IPv4, como já foi dito anteriormente é o principal protocolo adotado pela Internet. O
datagrama IP atual não necessita de conexão, e não garante a entrega através de mecanismos internos.
Mesmo não garantindo a segurança continua sendo o protocolo mais utilizado atualmente.
Atualmente um datagrama IPv4 contém campos que se encontram dispostos como mostrado na tabela
abaixo (Gonçalves e Niles, 1997):
VERS
HLEN
SERVICE TYPE
IDENTIFICATION
TIME TO LIVE
TOTAL LENGTH
FLAGS
PROTOCOL
FRAGMENT OFFSET
HEADER CHECKSUM
SOURCE IP ADDRESS
DESTINATION IP ADDRESS
IP OPTIONS (IF ANY)
PADDING
DATA
...
Tabela 4.1 - Datagrama IPv4
Descrição dos principais campos que compõem um datagrama IPv4.
Vers (versão) - com um tamanho de 4 bits, estabelece um acordo entre fonte, destino e qualquer Gateway
por onde o datagrama passa. Quando uma máquina recebe um datagrama com a versão incompatível com
a sua, descarta o mesmo para evitar interpretação errônea. Versão adotada atualmente do IP é a 4.
Hlen - com o tamanho de 4 bits é responsável por especificar o comprimento do cabeçalho do datagrama.
Total Length - com o tamanho de 16 bits, especifica o comprimento do datagrama IP em octetos (bytes),
incluindo cabeçalho e dados. Logo o tamanho máximo é 216 (65.535 octetos).
Service Type - com o tamanho de 8 bits, especifica a maneira de se lidar com o datagrama, e subdividi-se
em cinco campos. Apesar de que a maioria das máquinas (Hosts ou gateways) ignorarem este campo ele é
usado por algoritmos de roteamento na tomada de decisões. A disposição dos campos no Service Type é
mostrada na tabela a seguir:
Precedence
D
T
R
UNUSED
Tabela 4.2 - Campos do Service Type
♦
Precedence - três primeiros bits indicam precedência do datagrama, e o valor 0 indica uma
precedência normal e o valor 7 indica controle de rede, permitindo assim aos remetentes a
priorização da transmissão de datagramas.
♦ Bit D - quando setado (1), solicita o mínimo de atraso na transmissão.
♦ Bit T - quando setado, solicita alto throughput na transmissão.
♦ Bit R - quando setado, solicita alta confiabilidade.
Redes podem não atender os pedidos dos bits D, T, R por uma impossibilidade operacional (tráfego,
volume, velocidade, etc.), os bits setados não significam regras e sim sugestões que podem ser ou
não obedecidas.
Identification - com o tamanho de 16 bits, número único para cada datagrama, permite ao destinatário
saber a que datagrama pertence o fragmento. A cada datagrama gerado copia-se o contador para o
identification e incrementa o contador, garantindo assim que cada datagrama enviado tenha um número
diferente.
Flags - contém 3 bits, e cada um com uma função para controle de fragmentação.
•
Flag setado com: 1 sem fragmentação, ou seja com restrição à fragmentação.
•
Flag setado em 2 significa que o fragmento pertence ao meio do datagrama, e 3 que o
fragmento é o último. Estes flags são utilizados na remontagem do datagrama original.
•
O primeiro fragmento‚ sinalizado com o campo fragment offset setado com 0.
Fragment Offset - tamanho de 13 bits usados para identificar a posição original do fragmento.
Time To Live (TTL) - tamanho de 8 bits e contém o tempo que o datagrama permanece na rede, este
campo é decrementado cada vez que passa por uma máquina em cada segundo. Caso o campo seja zerado
o datagrama é descartado, e é gerado uma mensagem ao seu criador.
Protocol - tamanho de 8 bits, especifica o protocolo usado para gerar a informação contida nos dados. Por
exemplo UDP ou TCP.
Header Checksum - tamanho de 16 bits, usado para garantir a integridade dos dados contidos no
cabeçalho IP. Não garante a integridade dos dados.
Source IP Address - tamanho de 32 bits, endereço de origem. É dividido em dois componentes NetID e
HostID, cujos valores dependem da classe utilizada.
Destination IP Address - tamanho de 32 bits, endereço de destino. É dividido em dois componentes
NetID e HostID, cujos valores dependem da classe utilizada.
IP Options - tamanho variável e o campo não é obrigatório. Pode existir apenas um octeto ou vários sendo
que não há separação entre eles. Todas as operações São precedidas de um octeto que compõe o código
da operação.
Padding - com o tamanho de 8 bits é usado como complemento do campo options.
Data - possui um tamanho variável e múltiplo de 8 bits e contém os dados.
4.1
Encapsulamento de datagrama
O limite atual do datagrama é de 216 ou seja 65.535 octetos. Este limite pode ser aumentado em versões
futuras de acordo com a demanda tecnológica, mas existe o limite dos frames que deve ser respeitado. O
ideal é termos o tamanho do datagrama compatível com o tamanho do campo dados do frame garantindo
assim o transporte do mesmo de forma distinta, aumentando a eficiência da transmissão. Ao carregarmos
um datagrama em um frame estamos encapsulando o mesmo (Gonçalves e Niles, 1997). A seguir temos
uma tabela mostrando este encapsulamento.
Campo de dados
Cabeçalho Físico
Datagrama IP (cabeçalho IP + Dados)
FRAME
Tabela 4.1.1 - Encapsulamento de datagramas
4.2
Unidade máxima de transmissão
Devemos assumir um formato único como Tamanho Máximo de Transferência (Maximum Transfer unit MTU), tal que o datagrama sempre utilize um único frame. Ao tamanho máximo de transferência damos
o nome de unidade máxima de transmissão. A situação ideal para a transmissão de um datagrama através
da rede está no encapsulamento do mesmo.
Como o protocolo TCP/IP tem como objetivo a transparência dos protocolos de níveis inferiores e o
projetista ou usuário da rede não devem preocupar-se com o tamanho do datagrama, deve-se deixar que a
fonte escolha o tamanho de acordo com as necessidades e a rede fragmente-os e reagrupe-os conforme as
necessidades apresentadas pelos nodos por onde o mesmo vai passar até chegar ao seu destino.
4.3
Fragmentação e montagem do datagrama IP
A arquitetura TCP/IP foi projetada para interligar redes com as mais diversas tecnologias, logo o tamanho
máximo dos datagramas varia de acordo com a tecnologia usada. Por isto faz-se necessário a
fragmentação de datagramas muito grandes, ou que excedam o tamanho máximo aceito pela máquina.
Estes fragmentos são transmitidos e remontados ao chegar ao destino.
Tomemos um HOST A que trabalha com MTU (Maximum Transfer Unit) de 1400 octetos, e envia um
datagrama ao HOST B, e o Gateway fragmenta o mesmo em 3 partes conforme mostra a figura abaixo
(Gonçalves e Niles, 1997). A fragmentação de datagramas é mostrado nas figuras abaixo:
Cabeçalho
dados 1
dados 2
dados 3
IP
600 octetos
600 octetos
200 octetos
Tabela 4.3.1 - Datagrama a ser fragmentado
Cabeçalho
dados 1
fragmento 1
600 octetos
Tabela 4.3.2 - Primeiro Fragmento (offset 0)
Cabeçalho
dados 2
fragmento 2
600 octetos
Tabela 4.3.3 - Segundo Fragmento (offset 600)
Cabeçalho
dados 3
fragmento 3
200 octetos
Tabela 4.3.4 - Terceiro Fragmento (offset 1200)
A maior parte do cabeçalho é replicado, exceto os campos Flags, Fragment Offset, sendo que o primeiro
serve para indicar se houve ou não fragmentação e caso exista o segundo auxilia na remontagem
indicando posição no datagrama original.
Temos algumas desvantagens com a fragmentação de datagramas:
•
Uma máquina com MTU (Maximum Transfer Unit) de capacidade maior, após a
fragmentação será subtilizada em sua capacidade de vazão de dados.
•
Depois de receber o primeiro fragmento, o destinatário inicializa um temporizador e vai
decrementando o tempo, quando ele se esgotar e se faltar algum fragmento que não tenha
chegado ainda, descarta-se os recebidos.
•
A probabilidade de perda de datagrama aumenta ao utilizar-se de fragmentação, isto fica
bem claro se pensarmos que ao invés de um datagrama seriam vários.
4.4
Roteamento de datagramas IP
Mesmo quando se trata de envio de datagramas para uma máquina que se encontra na mesma rede é
necessário uma tabela para decidir a interface a ser usada. O roteamento de um datagrama pode ser direto,
viabiliza a comunicação entre Hosts alocados em uma mesma rede física ou indireto, conexão entre dois
Hosts alocados em redes distintas.
No roteamento indireto cada Gateway processa o datagrama, define a rota, encapsula o mesmo no frame
da rede que utilizar para envio ao próximo Gateway. Tendo em vista este processo podemos deparar com
um loop de roteamento, e o campo TTL (Time To Live) do datagrama tem por função impedir que um
datagrama circule na rede eternamente. A cada roteador que o datagrama passa o TTL (Time To Live) é
decrementado, e quando atinge zero envia uma mensagem de erro para a origem.
4.4.1
Inconvenientes das tabelas de roteamento
Temos dois inconvenientes graves das tabelas de roteamento um deles é o caminho único, e o outro é se
algum destino se encontra fora do ar. No primeiro caso datagramas gerados de uma fonte A para um
destino B, vai sempre seguir o mesmo caminho sem se preocupar com as múltiplas opções, atrasos,
Throughput, etc. E no segundo caso só saberemos se o Host de destino está operacional ou não quando o
último Gateway tenta enviar o datagrama, e o Gateway final tem que enviar uma mensagem para a fonte
(origem).
4.4.2
Internet Message Control Protocol ( ICMP )
A necessidade de interpretar as mensagens de erro deu origem a este protocolo, e embora este protocolo
opere sobre o IP, ele é parte indispensável e integrante do mesmo. Devido a natureza do endereçamento
IP, só é possível enviar mensagens de erros à origem.
4.4.2.1
Principais tipos de mensagens de erro
Echo Request: geralmente implementado como comando ping, a máquina que recebe deve responder
Echo Reply. Esta é uma importante ferramenta para depuração.
Source Quench: mecanismo para avaliação de congestionamentos, opera principalmente em redes de
velocidades diferentes. Como pacotes excedentes normalmente são armazenados em memória, quando os
mesmos estão esgotando, a perda de pacotes é evitada envidando-se uma mensagem orientando à origem
para diminuir a taxa de transmissão. Quando a máquina origem para de receber estas mensagens ela pode
voltar a operar normalmente.
Source Route Failed (Redirect): permite alteração na tabela de saída de datagramas da máquina, somente
usada entre roteadores e máquinas para informar a saída mais indicada da rede.
Unreachable Destinations: gerada sempre que há impossibilidade de entrega do datagrama.
Time Exceeded For a Datagram: gerado sempre que o TTL (Time To Live) chegar a zero.
4.5
Conclusão
Conhecendo melhor o IP, um protocolo aceito comercialmente por diversos seguimentos da sociedade,
seus pontos fortes e fracos, para que possamos expressar melhor a favor da migração. O próximo capítulo
mostra o protocolo que deve se tornar a nova versão usada na internet. Protocolo este que vai tornar a
Internet uma verdadeira rede mundial.
5.
A nova versão do protocolo IP
A Internet é um mundo muito dinâmico, novas tecnologias são incluídas e as antigas ou se adaptam a elas
ou tornam-se obsoletas, a nova versão herda da atual algumas características interessantes, e o resto é
deixado de lado. A versão usada atualmente, ou seja IPv4, conseguiu acomodar todas as mudanças,
tornando-se cada vez mais popular, mesmo não tendo sido projetada para dar suporte a uma rede
universal, isto contribui para que uma possível atualização seja considerada criticada, e até mesmo sujeita
a boicotes.
Em 1991, membros do IETF (Internet Engineering Task Force), notando que o crescimento exponencial
apresentado pela rede levaria a um esgotamento dos endereços disponíveis ao final do ano de 1994. Isto
se as tabelas de roteamento não esgotassem toda a capacidade dos hardwares de roteamento da época. Foi
então adotado o CIDR (Classes Inter-Domain Routing), que consistia em dar blocos de endereços de
classe C contíguos a regiões do planeta, estas regiões dividiam seus endereço em blocos menores, mais
contíguos, até que todas as redes tivessem seus endereços.
Através do uso de máscara de rede, que é usada pelo roteador no endereçamento de todo um bloco de
endereços o que sem dúvida diminui a tabela de roteamento. Atualmente uma parte do endereço IP
identifica uma rede específica na inter-rede e a outra identifica um host dentro da mesma. Um endereço
IP identifica uma conexão à inter-rede, logo um gateway conectado a n redes tem n endereços IP, um
para cada conexão. Esta solução encontrada resolveria o problema no momento, uma solução definitiva e
sólida teria que ser projetada. Deu-se então início a esforços para escolher um sucessor para o IPv4, várias
equipes começaram então a pesquisar em paralelo. Em 1993 o IESG (Internet Engineering Steering
Group), cria um grupo de trabalho, o IPngWG (IP next Generation working group) para investigar as
várias propostas e recomendações aplicáveis à nova versão do protocolo IP. Este grupo selecionou três
possíveis candidatos, depois de estudá-los decidiu por selecionar os pontos positivos dos três e gerar a
recomendação para a versão 6 do IP em novembro de 1994. A versão 5 já havia sido alocada para o
protocolo ST (stream), protocolo experimental para suportar serviços em tempo real em paralelo com o
IP. De lá para cá várias Drafts, RFCs foram publicadas, e já se tem algumas implementadas ou em
funcionamento.
Desde a introdução do TCP/IP, para o ARPANET (criada em 1969 pelo ARPA - Advanced Research
Projects Agency - órgão do departamento de defesa dos EUA), em 1973, ao qual até o momento se
encontravam conectados 250 sites e 750 computadores, com especificações públicas e genéricas,
permitindo a implementação por diversos fabricantes, com o passar dos anos a internet tem crescido
tremendamente e encontram-se conectados hoje mais de 60 milhões de usuários no mundo. Atuais
projetos estimam a existência de centenas de milhares de sites e milhões de computadores conectados. O
fenômeno do crescimento exerce uma pressão muito grande e constante sobre a infra-estrutura da
Internet. Obrigando uma reestruturação, melhora de desempenho, segurança, facilidades para o usuário na
configuração e administração de redes.
Com a nova versão do protocolo teremos mais espaço de endereçamento (de 32 para 128 bits), mais
níveis de hierarquia, maior número de nodos
endereçáveis, auto-configuração destes nodos,
compatibilidade e interoperabilidade com a antiga versão. Alguns campos do cabeçalho IPv4 foram
mantidos como opcionais, ou retirados para diminuir o tempo de processamento, ou retirada de funções
não muito interessantes ou obsoletas. Ao analisarmos a situação friamente a tendência é pensar que
quanto maior o tamanho do cabeçalho maior será o tempo de processamento, o que na realidade não é
uma verdade, apesar do endereço IPv6 ser 4 vezes maior que o IPv4, seu cabeçalho é somente 2 vezes
maior, e o tempo de processamento pode ser até menor.
A nova versão implementa também a flexibilidade de inclusão de opções no cabeçalho, possibilitando a
inclusão de extensões. Permite a inclusão de cabeçalhos de suporte para autenticação, integridade de
dados e confiabilidade. Esta é uma das características obrigatórias para a implementação do novo
protocolo.
Outra capacidade foi adicionada para permitir que, ao transmitir um pacote fosse possível a escolha de um
fluxo especial para o mesmo, ou seja uma qualidade de serviço. Esta opção nos permite dar mais
prioridade a um pacote que por exemplo tenha transmissão continua em relação a um que não tem este
fluxo. Podemos dizer que o IPv6 é composto de dois cabeçalhos o básico e os opcionais. Em um exemplo
poderíamos ter dois datagramas um contendo dados de vídeo conferência (mais prioritário) e outro
contendo um documento texto (menos prioritário).
Os 16 octetos disponíveis com a nova versão do protocolo IP, nos daria cerca de
340.282.366.920.938.463.463.374.607.431.768.211.456
endereços
possíveis,
o
que
nos
daria
665.570.793.348.866.943.898.599 endereços por metro quadrado da superfície do planeta. Levando em
consideração que o aproveitamento dos endereços não é total teríamos aproximadamente cerca de 1564
endereços por
metro quadrado e em uma estimativa otimista onde teríamos cerca de
3.911.873.538.269.506.102 endereços por metro quadrado.
A nova versão nos possibilitara levar um laptop para todos os locais desejados e lá conectá-lo a rede.
Além de laptops e desktops, há inúmeros dispositivos que usamos em rede como: Personal Data
Assistants (PDA), telefones móveis com capacidade de processamento de dados e máquinas de escritório
como copiadoras. Bem como novos dispositivos que são lançados no mercado a cada dia, aumentando o
leque de produtos, indo do escritório à residência e que podem ser conectados a rede. Cada dispositivo
deste necessita de um endereço IP e vai poder se autoconfigurar com ajuda de um roteador local IPv6 ao
qual estiver conectado. Não haverá necessidade de alteração de endereço IP toda vez que trocarmos de
provedor.
A nova versão reflete o amadurecimento da tecnologia de redes, tendo em vista que a mesma não só
acrescenta características a anterior como também descarta as que se revelaram desnecessárias ou
obsoletas. O novo protocolo tem em vista uma verdadeira rede mundial com múltiplos usos.
Outra mudança muito importante é que endereços são alocados de forma hierárquica para nomear nodos,
sistema este que garante nodos com maior autoridade para subdivisão de endereços e distribuição para os
nodos de mais baixa autoridade, e estes podem subdividirem e assim por diante, até que todos nodos
tenham seus endereços alocados. Não existe uma alocação central, mas temos endereços com um prefixo
diferenciado destinados aos provedores de rede. Falaremos mais detalhadamente sobre o assunto nos
próximos tópicos.
5.1
a)
Objetivos da nova versão
Suporte a bilhões de hosts conseguido através da expansão do espaço de endereçamento e uma
hierarquia mais versátil.
b) Redução da tabela de roteamento.
c)
Possibilidade de expansão do protocolo, viabilizado pela inclusão de cabeçalhos de extensão
opcionais no cabeçalho base.
d) Simplificação do cabeçalho, diminuindo o tempo de processamento na análise dos mesmos, por
parte de roteadores e hosts.
e)
Garantia de segurança (autenticação e privacidade), com relação a versão anterior.
f)
Inclusão de um campo de suporte a mecanismos de controle de qualidade de serviço.
g)
Permissão de multicasting, através de especificação de escopos de sessões multicasting.
h)
Melhorias no roteamento, inclusive no que se refere a hosts móveis.
i)
Permissão para máquinas mudarem fisicamente de lugar sem alterar o endereço IP.
j)
Possibilidade de autoconfiguração ( plug-and-play ).
k) Inclusão de um novo tipo de endereçamento chamado Anycast .
l)
Coexistência das duas versões, ou seja possibilidade de comunicação entre uma máquina com
IPv4 e outra com IPv6.
5.2
Tipos de endereços
O IPv6 tem a capacidade de endereçar 3.4 x 1038 nodos . Abandona totalmente o conceito de classes de
endereços, e baseia-se nos prefixos do IPv4 com alterações nas suas funções. A tabela abaixo mostra estes
prefixos, do IPv6, sua alocação e as frações de endereçamento (Gonçalves e Niles, 1997).
Prefixo
Alocação
Frações de endereçamento
0000 0000
Reservado ( incluindo IPv4 )
1/256
0000 0001
não usado
1/256
0000 001
Reservado para OSI, NSAP
1/128
0000 010
Reservado para Novel, NetWare IPX
1/128
0000 011
não usado
1/128
0000 1
não usado
1/32
0001
não usado
1/16
001
não usado
1/8
010
Provider-based unicast
1/8
011
não usado
1/8
100
Geographic-based unicast
1/8
101
não usado
1/8
110
não usado
1/8
1110
não usado
1/16
1111 0
não usado
1/32
1111 10
não usado
1/64
1111 110
não usado
1/128
1111 1110 0
não usado
1/512
1111 1110 10
Link Local Use
1/1024
1111 1110 11
Site Local Use
1/1024
1111 1111
Multicast
1/256
Tabela 5.2.1 - Prefixos IPv6
Atualmente temos duas formas de transição IPv4 para IPv6. A primeira garante aos hosts e roteadores um
túnel IPv6 para datagramas com infra-estrutura IPv4, este tipo de endereço é chamado IPv4 compatível
com endereços IPv6. Endereços com noventa e seis zeros seguido pelo endereço IPv4. A Segunda forma
são endereços de mapeamento IPv4 que tem 80 zeros no início, e são reservados para suportar
endereçamento a antiga versão. Os 16 bits seguintes suportarão datagramas IPv6 que trafeguem em uma
estrutura ainda baseada em IPv4.
Duas porções são reservadas para encapsulamento de protocolos que não são IP, como OSI, NSAP
(Network Service Access Point) e Novel IPX (Internal Packet e Xchange).
Aos provedores de acesso à internet (provider-based) é‚ reservada uma grande parcela do espaço de
endereçamento, permitindo uma divisão hierárquica para distribuição dos endereços. O formato do
endereço baseado em provedor permite uma distribuição flexível a cada nível da hierarquia da
administração de endereços, apoiando a alta demanda dos mesmos. A tabela abaixo mostra esta
distribuição de endereços.
3
n bits
m bits
x bits
y bits
x-y bits
Registry ID
Provider ID
Subscriber ID Sbnet ID Interface ID
bits
010
Tabela 5.2.2 - Divisão para distribuição de endereços
Os primeiros três bits identificam o prefixo e o próximo campo identifica o registro de um provedor
especifico na internet, que é indicado pelo provedor ID. Já o campo subscriber ID identifica os assinantes
daquele provedor. O Sbnet ID serve para identificar uma sub-rede, uma ligação física específica. O último
campo, interface ID identifica a interface ligada na rede (host).
No prefixo geographic-based, os provedores não alocam grandes espaços, este indica a posição
geográfica da rede.
Endereços de uso local (link e site) usados localmente, para que as máquinas possam se autoconfigurar ao
serem conectadas. O formato do link local, e do site local são mostrados nas tabelas abaixo:
10 bits
n bits
118-n bits
1111111010
0
Interface ID
Tabela 5.2.3 - Formato do link local
10 bits
n bits
m bits
118-n-m bits
1111111010
0
Subnet ID
Interface ID
Tabela 5.2.4 - Formato do site local
Em se tratando de link local e site local o campo Interface ID deve ser único e o Subnet ID serve para
identificar uma sub-rede dentro de um domínio. Este tipo de endereçamento é útil para construção de
intranets, onde pode construir uma rede baseada em TCP/IP sem se ter endereços alocados.
5.2.1
Endereços Unicast
Endereços unicast identificam uma interface única, o uso do mesmo garante que o pacote é enviado
diretamente para a interface associada ao endereço. Temos vários tipos de endereços unicast:
a)
Global Provider-based, (baseado no provedor global), provê endereçamento global a todos os hosts
conectados. É um endereçamento globalmente utilizado, e seu plano inicial de alocação baseia-se no
CIDR (Classless InterDomain Routing). Para identificação possui um prefixo de 3 bits (010) e cinco
campos:
registry ID: registro da parte alocada ao provedor
provider ID: identifica um provedor específico
subscriber ID: identifica os assinantes conectados a um provedor
infrasubscriber: parte utilizada por cada assinante
b)
Unspecified, identifica a ausência de um endereço e não deve ser usado em nenhum nodo
(0:0:0:0:0:0:0:0 ou "::"), estações ainda não inicializadas ou seja que ainda não sabem seu endereço,
podem fazer uso destes.
c)
Loopback, endereçamento utilizado somente quando um nodo envia uma mensagem para si
mesmo (0:0:0:0:0:0:0:1 ou "::1"), esta mensagem nem mesmo chega a rede.
d)
IPv4-based (baseado em IPv4), ou seja endereço IPv6 com um endereço IPv4 embutido. Para
isto inclui-se um prefixo nulo (96 bits zero) a um endereço IPv4 (::172.16.25.32), este tipo de
endereço foi incluído como mecanismo de transição para hosts e roteadores que tutelarem pacotes
IPv6 sobre roteamento IPv4. Para hosts sem suporte IPv6 foi definido outro tipo de endereço (IPv4mapped IPv6) da forma: ::FFFF:172.16.25.32.
e)
NSAP (Network Service Access Point), são utilizados em sistemas OSI, com 121 bits e
identificados pelo prefixo 0000001.
f)
IPX (Internal Packet e Xchange), utilizado em redes Netware e Novel, com 121 bits e
identificados pelo prefixo 0000010.
g)
Link-local, definido para uso interno num único link, ou seja para endereçamento com um
vínculo único (rede física) ou subnetwork (subrede), identificado por um prefixo de 10 bits
(1111111010), estações que poderão utilizar um endereço link-local são as não configuradas, as com
endereço provider-based, ou as com um site-local.
h)
Site-local, este de tipo endereçamento é definido para uso interno em organizações que não vão
acessar a internet, e identificados pelo prefixo de 10 bits (1111111011). Os roteadores não podem
repassar pacotes cujos endereços origem sejam endereços site-local.
Com o uso da nova versão teremos 12,5% do espaço total de endereçamento IPv6, reservado a endereços
que serão distribuídos geograficamente (geographic-based).
5.2.2
Endereços Anycast
Endereços anycast identificam um grupo de interfaces com nodos diferentes, os pacotes com este tipo de
endereçamento são enviados para a um único destino. Destino este que é geralmente o mais próximo de
acordo com a medida de distância do protocolo de roteamento. O que torna este caminho mais eficiente
pois o próprio endereço pode especificar os nodos intermediários sem precisar de um roteador para a
determinação da rota a ser seguida.
Endereços anycast são alocados a partir de endereços unicast, usando um dos seus tipos de formatos. Um
endereço atribuído a mais de um nodo deve ser configurado para tornar-se anycast. Inicialmente este
endereço será pouco utilizado. Não pode ser usado como endereço de origem de um pacote IPv6, nem ser
configurado num host IPv6, deve ser associado apenas a roteadores. Este tipo de endereço será bastante
útil para uma busca rápida de um determinado servidor ou serviço. Podemos por exemplo definir um
grupo de servidores de nomes configurados com um endereço anycast; o host acessará o servidor de
nomes mais próximo utilizando este endereço.
Endereços anycast são usados principalmente por um conjunto de roteadores:
a) pertencentes a um provedor de internet particular
b) pertencentes a uma sub-rede particular
c) que provê a entrada de roteadores em um domínio particular.
5.2.3
Endereços Multicast
Endereços multicast são usados para transferir datagramas para um grupo de hosts configurados como
membros de um grupo multicast, possivelmente, encontram-se em sub-redes geograficamente dispersas.
Quando se envia um datagrama a um endereço multicast, o protocolo entrega o mesmo a todas as
interfaces identificadas pelo endereço. No caso do IPv4 para se ter as funcionalidades do multicast
precisava implementar-se túneis MBONE, com a nova versão todos os hosts e roteadores deverão suportar
multicasting. Estes endereços tem o seguinte formato (Gonçalves e Niles, 1997):
8 bits
4 bits
4 bits
112 bits
11111111
flags
scop
group ID
Tabela 5.2.3.1 - Formato de endereços multicast
Os oito primeiros bits indentificam o prefixo, os próximos três bits estão reservados para uso futuro, e o
quarto bit é usado da seguinte forma:
0 - endereço permanente
1 - endereço provisório alocado temporariamente por terceiros.
Scop - limita o escopo do grupo dentro da rede, organização, etc... O escopo E indica todo o planeta, F
reservado para indicar a galáxia ou sistema solar. Os valores setados nestes campos são os mostrados na
tabela abaixo, com seu devido uso:
0
reservado
1
nodo-local
2
link-local
3
não usado
4
não usado
5
site-local
6
não usado
7
não usado
8
organização-local
9
não usado
A
não usado
B
não usado
C
não usado
D
global
E
reservado
Tabela 5.2.3.2 -Formato do link local
Obs.: O IPv6 não implementa endereçamento broadcast, pois o mesmo é substituído perfeitamente pelo
multicast.
Exemplos de endereços multicast:
5.3
FF02::0
/
FF02::FFFF
Novo formato
Um aspécto muito importante do novo formato é que endereços IPv6 estão relacionados com a interface e
não com o nodo como era o caso da versão 4. Um endereço unicast se refere a uma única interface, que
pode estar relacionada com vários endereços de quaisquer tipos. A figura abaixo mostra o novo formato,
simplificado do protocolo IPv6.
Cabeçalho
Cabeçalho
..........
Cabeçalho
Dados...
Base
Extensão 1
Extensão N
Tabela 5.3.1 - Formato IPv6
O IPv6 acaba definitivamente com as classes de endereços possibilitando um método mais simples de
auto-configuração. Temos três maneiras de representação do endereço IPv6.
a)
A forma mais usada é‚ x:x:x:x:x:x:x:x, onde x são números hexadecimais, o endereço esta
dividido em oito pares de 16 bits.
Exemplo:
1080:0000:0000:0000:0008:0800:200C:417A
47CD:1234:4422:6633:AC04:0044:A008:0124
Somente 15% de toda a capacidade de endereçamento está previamente alocada, o restante,
ou seja 85%‚ é destinado ao uso futuro. Desta forma teremos longas seqüências de bits 0,
que podem ser substituídos pela string "::", esta substituição só pode ser feita uma única vez,
como mostramos no exemplo abaixo (Gonçalves e Niles, 1997).
Endereço
Forma completa
Forma simplificada
Unicast
1080:0:0:0:8:800:200C:417A
1080::8:800:200C:417A
Multicast
FF01:0:0:0:0:0:0:43
FF01::43
Loopback
0:0:0:0:0:0:0:1
::1
Unspecified 0:0:0:0:0:0:0:0
::
Tabela 5.3.1 - Exemplos de representação de formas de endereçamentos
c)
A terceira opção e mais conveniente para ambientes mistos com nodo IPv4 e IPv6,
x:x:x:x:x:x:d.d.d.d, onde x são números hexadecimais com 16 bits e d são números decimais com 8
bits, referentes à representação padrão bem conhecida do IPv4. Temos um exemplo abaixo (Gonçalves
e Niles, 1997).
Forma completa
Forma simplificada
0:0:0:0:0:0:192.168.20.30
::192.168.20.30
0:0:0:0:0:0:200.205.14.10
::100.205.14.10
0:0:0:0:0:0:251.168.179.10 ::251.168.179.10
Tabela 5.3.2 - Exemplos de formas de representação de endereços IPv4.
5.3.1
Formato da base do cabeçalho IPv6
A tabela abaixo mostra como estão dispostos os campos do cabeçalho no novo formato do IPv6
(Gonçalves e Niles, 1997).
VERS
FLOW LABEL
PLAYLOAD LENGTH
Next Header
SOURCE ADDRESS
DESTINATION ADDRESS
Tabela 5.3.1.1 - Cabeçalho IPv6
Hop Limit
5.3.2
Descrição dos campos
Um datagrama IPv6 tem um cabeçalho base e zero ou mais cabeçalhos de extensão seguido dos dados. O
mesmo é composto apenas de seis campos que estão descritos abaixo:
Version: tamanho de 4 bits, indica a versão do protocolo.
Priority: tamanho de 4 bits, identifica a prioridade.
Flow label: tamanho de 24 bits, informações de caminho associando a prioridade e velocidade ao
datagrama para os roteadores, qualidade de serviço.
Playload length: tamanho de 16 bits, identifica o tamanho do datagrama, excluindo-se o cabeçalho,
limitado a 64 kbytes como o IPv4.
Next header: tamanho de 8 bits, indica a existência de um ou mais cabeçalhos encadeados e seu tipo. A
tabela abaixo mostra os valores setados no campo e seu significado.
Valor
Significado
00
Não tem cabeçalhos de extensão
01
Descarte o datagrama
10
descarte o pacote mesmo que o endereço de destino venha a ser
um endereço de multicast, envie uma mensagem de erro ICMP,
codifique 2, para o pacote mensagem. Endereço fonte, apontando
ao Tipo de Opção não reconhecido.
11
descarte o pacote caso o endereço de destino não seja um
endereço multicast, envie uma mensagem de erro ICMP,
codifique 2, para o pacote mensagem. Endereço fonte, apontando
ao Tipo de Opção não reconhecido.
Tabela 5.3.2.1 - Next Header
Hop limit: tamanho de 8 bits, indica o número máximo de hosts que o datagrama pode passar antes de ser
descartado. Quando o valor atinge 0 o pacote é descartado. Não tem relação com limite de tempo para
permanência em um roteador.
Source address: tamanho de 128 bits, indica o endereço de origem do datagrama.
Destination address: tamanho de 128 bits, indica o endereço de destino do datagrama. Este nem sempre é
o endereço final. Pode indicar um endereço intermediário.
Em se tratando da nova versão do Internet Protocol, as modificações mais consideráveis são tamanho
fixo do cabeçalho, não necessitando assim da checagem de cabeçalho e remoção dos procedimentos de
segmentação. Ao analisar percebe-se que a cada salto de um pacote IPv6, os roteadores não precisam se
preocupar com o cálculo do tamanho do cabeçalho (fixo) e nem com tarefas de fragmentação que são
realizadas pelos hosts, o que aumenta substancialmente o desempenho dos roteadores. Alguns elementos
opcionais podem ser obtidos através dos cabeçalhos de extensão (extension headers), anexados ao
cabeçalho principal.
5.4
Novas Funcionalidades
Esta nova versão apresenta funcionalidades muito importantes para um posterior desenvolvimento,
crescimento, facilidade de operação, popularidade. Tem como principal objetivo tornar a Internet uma
rede mundial, com múltiplos e infinitos usos.
A intensa utilização da Internet para tráfego de informações sensíveis, como números de cartão de
crédito, correspondência oficial de empresas e acesso a informações sigilosas, tais como saldos bancários,
entre outras aplicações, demandaram a criação de mecanismos especiais para segurança no tráfego de
pacotes IP (Internet Protocol). Juntamente com isso, são cada vez mais usuais e poderosos os
computadores portáteis, do tipo laptop, onde seus proprietários conservam valiosas informações sem as
quais não tomam certas decisões, como compra e venda de aviões, por exemplo. O suporte para a
mobilidade a nível IP passa então a ser uma necessidade para todos os nós, móveis ou não, de maneira
transparente, eficiente e segura para seus usuários. Conexões a nível de transporte devem ser mantidas, e
não prescindir de alterações na configuraçao do nodo.
5.4.1
Autoconfiguração
A autoconfiguração permite a operação plug-and-play, ou seja, assim que se instala uma estação numa
rede Netware, automaticamente é associado um endereço IP à sua interface de rede. A necessidade de
configuração manual vai ser quase que totalmente eliminada, minimizando a possibilidade de ocorrências
de erro, pois a interferência humana na configuração será eliminada. Com esta mudança as máquinas vão
poder mudar de rede com mais facilidade.
Podemos ter duas formas de um host se autoconfigurar usando IPv6
a) statefull: quando há um servidor de configuração, com o qual o host se comunica.
b) stateless: o host constrói seu endereço IP a partir do seu endereço de interface de rede, que é único
e com base no seu endereço de placa mãe. Para descobrir o prefixo a ser usado temos mais duas
formas: no caso de redes não conectadas podemos usar prefixo local e quando se tratar de redes
conectadas o roteador da rede deve informar aos hosts o prefixo da mesma.
O suporte a mobilidade eficiente, necessita da criação de dispositivos seguros que permitam que o
roteamento seja feito em função da localização do nodo, e não pelo endereço de sua sub-rede original.
Solução disponibilizada na nova versão do DHCP (DHCPV6).
5.4.2
Qualidade de serviços
A qualidade de serviço (Quality of Service - QoS), são características e soluções para que uma rede
entregue os datagramas de uma forma satisfatória. Estas características estão diretamente ligadas a largura
de banda e atraso. A QoS possibilitou o aumento de aplicativos multimídia, pois as mesmas requerem
segurança e performance nas transmissões, caso contrário haveriam perdas como espera, qualidade, ou
cortes, no que se refere aos usuários. Infelizmente mesmo com a QoS, os caminhos percorridos pelos
pacotes podem apresentar níveis mais baixos de protocolos, e com o manuseio podem ocorrer perdas,
atrasos, cortes. Isto ocorre pois para chegar ao destino os datagramas passam por vários ou nenhum nodos
que o examinam e o redirecionam, e é neste momento que podem ocorrer os problemas, um datagrama
pode ser corrompido e nunca mais redirecionado.
Muitas aplicações suportam este tipo de serviço, mas quando se trata de aplicações multimídia
envolvendo vídeo e/ou voz, o tráfego tem que ser constante e sem perdas, caso contrário a mensagem
pode ser perdida. O maior desafio aqui é manter o alto desempenho e disponibilidade da rede.
Os campos Flow Label e Priority existentes no cabeçalho da nova versão servem para identificar os
datagramas que precisam de atenção especial. Estes campos foram criados especialmente para facilitar o
desenvolvimento de protocolos para controle de trafego em tempo real como o RSVP (Resource
Reservation Protocol), protocolo de reserva de seleção na internet, permitindo a implementação de
aplicações multimidia e com integração de serviços de dados, voz e vídeo em tempo real, aplicações que
requerem alta velocidade de transmissão. Várias das novas aplicações requerem um acesso diferenciado
para roteamento e alocação de recurso genérico de dados e aplicações.
O uso do efetivo do campo Flow Label poderá aumentar a performance do datagrama, o que pode ser
afetado por exigências de serviços especiais dos roteadores ao longo do caminho. Esta exigências podem
serem referentes a prioridade, estado de espera (delay), largura de banda, etc. Todos os datagramas devem
ter estas informações para assegurar este serviço com relação aos roteadores intermediários. Tal fato é
claramente explicado pelo fato de que na transmissão de vídeos devemos limitar o trafego ou evitar
congestionamento na rede.
Podemos citar como exemplo de QoS, o campo Flow Label, 24 bits que podem ser usados para identificar
um fluxo de dados (uma conexão ou circuito virtual). Os fluxos podem ser de dois tipos, o orientado que
demanda muitos pacotes e o não orientado que não demanda muitos pacotes. O uso deste campo não é
explicitamente definido, acredita-se que um fluxo orientado necessita mais prioridade que o não
orientado. Dentro de cada categoria haveria um identificador de fluxo que iria sugerir o tratamento para
aquele caso, mostrados na tabela abaixo (Gonçalves e Niles, 1997).
Tráfego orientado
Tráfego não orientado
FTP
DNS
Telnet
SMTP
HTTP
NTP
Multimidia
POP
SNMP
Tabela 5.4.2.1 - Identificador de fluxo
Com o uso do IPv6, em um fluxo podem estar uma ou múltiplas conexões TCP, e uma única aplicação
pode gerar um fluxo único (páginas de textos) ou múltiplos fluxos (audio/video conferência). Pacotes
compartilham Flow Label, caminho, recurso, descartam exigências, importância e segurança. E o Flow
Label é definido antes da transmissão, e pode melhorar a performance identificando os pacotes que
necessitam de um tratamento especial. Esta performance pode ser afetada no início da migração, isto é
explicado quando temos servidores IPv6 servindo de túnel para endereços IPv4.
O RSVP (Resource Reservation Protocol) é um protocolo fim-a-fim compatível com o TCP/IP capaz de
acomodar as mudanças e prover serviços de qualidade especiais para aplicações multimídia e outros, e ao
mesmo tempo conviver com a atual estrutura.
Componentes do RSVP:
•
remetente - o remetente faz com que o receptor saiba se há dados a serem enviados e a qualidade
de serviço requerida.
•
receptor - o receptor envia uma advertência aos hosts e roteadores para que os mesmos possam se
preparare para a chegada dos dados.
•
hosts ou roteadores - os roteadores ou hosts tem como objetivo por de lado todos os recursos
formais.
Após estas etapas o remetente pode enviar a mensagem (datagrama).
Principais conceitos contidos no RSVP:
•
fluxo - o fluxo é caracterizado por tráfego de um remetente e um ou mais receptores, identificado
no cabeçalho IPv6 pelo flow label. Antes de enviar o fluxo, o remetente envia uma mensagem
destinada ao receptor, contendo o IP de origem, o de destino e um flowspec. Este flowspec é composto
por taxa e atraso de saltos de fluxo, que é a QoS requerida pelo fluxo. O caminho percorrido pela
mensagem é roteado do receptor para o host e roteadores ao longo do mesmo.
•
reservas - o receptor provê o caminho percorrido pela mensagem, e é responsável por fazer a
reserva, permitindo assim maior flexibilidade no controle de fluxo multicast. O modelo baseado no
receptor permite uma solução distribuída que possibilita os receptores fazer reservas para controle de
suas necessidades.
•
modelo baseado no receptor - modelo que permite uma solução distribuída que habilita os
receptores heterogêneos a fazerem reservas necessárias.
•
protocolos baseados no receptor - este protocolo é mais eficaz quando se trata de redes
heterogêneas. Também serve para assegurar reservas para redes móveis ou alterada que continua
considerando a reserva, o RSVP incorpora uma aproximação de estado chamada suave. Termo usado
por caminhos RSVP e reservas são consideradas tentativas, isto é, se o fluxo não é recebido em um
determinado tempo o recurso é liberado.
5.4.3
Prioridade
Identifica a prioridade de um datagrama com relação a outros de mesma origem. Todos os pacotes de um
fluxo têm que ter a mesma prioridade, logo estes dois campos têm que ser usados em conjunto. O uso
efetivo deste recurso dá-se quando a rede está congestionada.
Valores de 0 à 7 lidam com transmissões (geralmente TCP) e podem ser retardadas em caso de
congestionamento. Valores de 8 à 15 são aplicações com tráfego constante e um atraso significaria perda
de informações. Abaixo temos uma tabela de valores e o seu significado (Gonçalves e Niles, 1997).
Valor
Significado
0
Tráfego não caracterizado
1
Filler trafic (usnet news)
2
Transferência de dados automática (mail)
3
Reservado
4
Transferência de dados em blocos interativa (FTP,NFS,HTTP)
5
Reservado
6
Tráfego interativo (Telnet, X)
7
Tráfego de protocolos de controle (SNMP), tráfego sem controle
de congestionamento, tráfego de real time.
8
Datagramas com mais possibilidades de serem descartados. (vídeo)
7 à 14 Aplicações com tráfego constante
15
Datagramas com mais possibilidades de serem descartados. (áudio)
Tabela 5.4.3.1 - Prioridades de execução
5.5
Cabeçalhos de Extensão
A nova versão tem um cabeçalho fixo e outros extras, que são opcionais usados de acordo com a
necessidade, tornando a versão genérica e eficiente. Estes cabeçalhos são mecanismos de suporte a
fragmentação, autenticação, etc.
O protocolo codifica estas informações em cabeçalhos separados (independentes), ou seja temos um
cabeçalho básico que é obrigatório e vários cabeçalhos de extensão que são opcionais. Estes cabeçalhos
estão dispostos da seguinte forma: cabeçalho base + cabeçalho de extensão + dados. Levando em
consideração que os cabeçalhos de extensão podem ter de zero a n ocorrências. Os cabeçalhos básicos
tem um campo Next Header que identifica a existência de um ou mais cabeçalhos encapsulados.
No caso de um datagrama apresentar cabeçalhos de extensão, recomenda-se que os mesmos sigam a
ordem abaixo.
I.
II.
cabeçalho IPv6 básico
cabeçalho com opções Hop-by-Hop
III.
cabeçalho com opções de destino, que significa o primeiro destino do datagrama e os
demais são dados pelo cabeçalho de roteamento.
IV.
V.
cabeçalho de roteamento
cabeçalho de fragmentação
VI.
cabeçalho de autenticação
VII.
encapsulating security playload header
VIII. cabeçalho de destino
IX.
cabeçalho de camada superior
Nos próximos tópicos teremos uma explicação mais detalhada de alguns destes cabeçalhos de extensão.
5.5.1
Cabeçalhos Hop-by-Hop e destino
Os cabeçalhos Hop-by-Hop e destination (destino) carrega informações importantes, isoladas e simples,
que por si só não necessitam de um cabeçalho de extensão especifico. Informações estas usadas por
nodos intermediários, ou seja os que estão entre o nodo origem e o destino. Portanto todos os nodos ao
longo do caminho percorrido pelo datagrama vão examinar este cabeçalho. Este cabeçalho se encontra
dividido da seguinte forma (Gonçalves e Niles, 1997).
8 bits
8 bits
n bits
Type
Lenght
Value
Tabela 5.5.1 - Cabeçalho hop-by-hop e destination
Type identifica o tipo de opção, caso o tipo de opção contenha dados, então o tamanho dos dados é
armazenado no Lenght e o valor no Value. Os cinco bits de mais baixa ordem em type indicam opção, e o
terceiro bit de mais alta ordem indica se os dados da opção podem mudar durante o trajeto do pacote.
Caso algum nodo não reconheça a opção os dois bits de mais alta ordem indicam a ação a ser tomada
(Gonçalves e Niles, 1997).
Bit
Ação
00
Ignore esta opção, continue o processamento de cabeçalhos
01
Descarte datagrama, mas não envie mensagem ICMP
10
Descarte datagrama, e envie mensagem ICMP para a origem
11
Descarte datagrama, e envie mensagem ICMP para a origem se o
destino não for endereço multicast.
Tabela 5.5.2 - Valores assumidos pelo campo type
5.5.2
Cabeçalho de fragmentação
A fragmentação é usada como forma de transmissão de datagramas muito grandes, ou seja com tamanho
maior que o permitido (MTU - Maximum Transfer Unit - unidade máxima de transmissão), permitido
pela rede utilizada. Esta é toda feita na origem do datagrama, que realiza um Path MTU discovery
(descoberta de MTU mínimo) identificando assim o tamanho dos fragmentos. O tamanho do fragmento
deve ser múltiplo de 8 octetos, e conter um cabeçalho, este deve indicar se há ou não outro fragmento
pertencente ao mesmo datagrama. Todo datagrama é fragmentado na origem e remontado no destino,
usando as informações contidas no campo flag do cabeçalho. Este cabeçalho se encontra disposto nos
seguintes campos.
a) Next Header (8 bits): indica o próximo cabeçalho
b) Reserved (8 bits): reservado para uso futuro
c) Fragment Offset (13 bits): indica a ordem do fragmento
d) Res (2 bits): reservado para uso futuro
e) M Flag (1 bit): indica se há mais fragmentos (1), ou se é o último (0)
f)
Identification (32 bits): identificação do pacote original; que deve ser única durante a transmissão
Um problema que pode ocorrer é que em alguns casos os datagramas podem ser fragmentados e
montados durante a transmissão, quando isto ocorre um novo datagrama é montado com o outro sendo
encarado como dado. Espera-se que esta situação não ocorra com freqüência. Caso isto aconteça com
freqüência a performance apresentada pela rede será altamente prejudicada.
5.5.3
Cabeçalho genérico de roteamento
O cabeçalho genérico de roteamento contém uma lista de um ou mais nodos intermediários pelos quais o
datagrama deve passar em sua rota desde a origem até o destino. Os cabeçalhos de roteamento começam
com um bloco de 32 bits que estão dispostos em 4 campos, com tamanho de 8 bits cada.
a) Next Header (8 bits): identifica o próximo cabeçalho
b) Header extension length (8 bits): identifica o tamanho do cabeçalho em unidades de 64 bits, não
incluindo o próprio cabeçalho
c)
Routing type (8 bits): identifica um tipo de roteamento, onde o datagrama segue um caminho e se
ao longo deste se o destino não for encontrado, o datagrama é descartado
d) Segments left (8 bits): número de nodos intermediários que devem ser visitados antes do destino
5.5.4
Cabeçalho de roteamento tipo 0
O cabeçalho de roteamento tipo 0 é definido por 8 bits reservados, inicializados com zero na transmissão
e ignorados na recepção, e 24 bits de strict/loose campos Bit Map, usados para a tomada de decisão. Os
bits são numerados da esquerda para a direita, cada um corresponde a um hop, indicando se o próximo
destino deve ser um vizinho deste (1 = strict) ou não (0 = loose).
O campo strict é o endereço de destino do cabeçalho IPv6 no pacote original e identifica um vizinho. E o
campo loose é usado quando o endereço de destino inicial não é um vizinho nem um endereço multicast.
Quando se usa roteamento do tipo 0, o destino é o último endereço e a origem o primeiro endereço listado
no cabeçalho de roteamento.
5.5.5
Segurança
Com o crescimento da Internet exige-se, cada vez mais, segurança na transmissão e recepção dos dados.
Até agora a segurança era oferecida somente com a adição de aplicações auxiliares e ou serviços extras.
Para a nova versão foram projetados mecanismos de proteção, encapsulamento, um diferencial que vêm
para garantir a segurança autenticação, criptografia e qualidade de serviço. Opções que podem ser usadas
em conjunto ou separadamente, de acordo com a necessidade do usuário. Ou seja a segurança é
disponibilizada em vários níveis, tendo em vista que usuários e aplicações diferentes tem necessidades de
segurança distintas. Quando encontramos o valor 50 setado no Next Header, identificamos a utilização do
cabeçalho de segurança.
Uma palavra-chave quando se fala em segurança é a associação, ou seja relacionamento unidirecional
entre transmissor e receptor. Quando dois nodos de uma conexão vão transmitir, são necessárias duas
associações, cada uma identificada por um endereço de destino e um Security Parameter Index (SPI),
presente nos cabeçalhos destinados a segurança.
Geralmente parâmetros que definem uma associação de segurança são algoritmos de autenticação e/ou
criptografia e sua (s) chave (s).
O encapsulamento do IP nos permite a autenticação dos dados encapsulados no pacote IP, através do
algoritmo de criptografia DES (Data Encryption Standard). A autenticação garante a integridade dos
dados e o encapsulamento provê a integridade e confidencialidade do datagrama. Estes mecanismos
utilizam o conceito de associação de segurança entre transmissor e receptor, que devem concordar com
uma chave secreta e com parâmetros relacionados à segurança, conhecidos somente pelos membros da
associação.
5.5.6
Autoconfiguração
Ao se instalar uma estação cliente em uma rede, um endereço IP será automaticamente gerado para a
mesma. Característica também chamada stateless autoconfiguration, presente na nova versão para
eliminar a necessidade de configuração manual das estações de rede. Permite que nodos gerem endereços
únicos, concatenando o endereço da conexão local e um número seqüencial de interface interna.
Para fazer o controle de grandes redes os administradores podem usar o chamado stateful
autoconfiguration, opção disponibilizada pela DHCPv6. Permite que servidores dinâmicos destinem
endereços únicos a computadores que solicitem o mesmo, estes adquirem estes endereços com base em
um banco de dados central.
5.5.7
Autenticação
A autenticação assegura ao destinatário que os dados IP são realmente do remetente indicado no endereço
de origem, e que o conteúdo foi entregue sem modificações. O acesso ao pacote é negado se o remetente
não é reconhecido e aceito caso contrário, garantindo assim que o conteúdo do pacote não foi alterado ao
longo do caminho percorrido. Garante a integridade e a autenticação dos dados de um datagrama IP,
porém não garante a confidência das informações. O valor 51 no Next Header identifica a autenticação.
Esta é composta conforme mostramos a seguir.
•
Length (8 bits): tamanho do campo de dados em palavras de 32 bits
•
Reserved (16 bits): reservado para uso futuro
•
Security parameters index (32 bits): identifica uma associação de segurança para o datagrama, se
não existe nenhuma associação de segurança este campo é setado com valor zero.
•
5.5.8
Authenticacation data (variável): dados, em palavras de 32 bits
Roteamento IPv6
Inicialmente a nova versão necessitava solucionar três problemas básicos: escassez de números de rede,
explosão das tabelas de roteamento e escassez de endereços globais de rede. Os 128 bits do IPv6,
resolvem a escassez de números e de endereços globais de rede. Para resolver o problema da explosão das
tabelas de roteamento precisamos agregar várias entradas de rota, criar um domínio de rota, o que implica
em uma criação de uma hierarquia para os endereços.
O roteamento IPv6 é baseado nos cabeçalhos descritos anteriormente, principalmente no tipo 0. Temos
uma lista de nodos por onde o datagrama deve passar até chegar ao seu destino. Um exemplo disto esta
descrito abaixo.
Considerando uma rede, onde o Host1 quer enviar uma mensagem ao Host2. A lista dos
cabeçalhos de roteamento deve conter, de forma simples: H1, H2. A resposta teria o cabeçalho H2,
H1. Se o Host1 resolvesse enviar a mensagem passando por um provedor teríamos: H1, P1, H2 e
a resposta seria H2, P1, H1. Em uma rede complexa os caminhos podem ser requeridos através de
endereços anycast, após a descoberta do MTU (Maximum Transfer Unit) mínimo desejado.
A performance está diretamente relacionada com a rota percorrida pelo datagrama, e sendo que o tráfego
na rede esta cada dia mais intenso, os roteadores precisam executar suas funções e processos de envio de
datagramas cada vez mais rapidamente. Tráfego este que vem aumentando tanto pelo aumento do número
de usuários e dos serviços oferecidos, principalmente quando se trata de serviços gráficos. Apesar da nova
versão ter um cabeçalho bem maior que a atual, quando consideramos que não temos o checksum do
cabeçalho e o uso de cabeçalhos opcionais melhora consideravelmente a performance. Além de que os
opcionais não são checados ao longo do caminho, e são bem mais fáceis de serem adicionados tornando a
nova versão bem mais flexível. O fato do cabeçalho IPv6 ter menos campos que o IPv4, aumenta
consideravelmente a velocidade da transmissão, apesar da existência dos cabeçalhos de extensão. O que é
explicado pelo fato de que a maioria destes não são examinados ou processados pelos roteadores ao longo
do caminho percorrido pelo datagrama. O que torna o header IPv6 mais simples, flexível e rápido.
A velocidade das LANs, VANs e MANs também aumentaram em centenas de megabits por segundo, e
com a possibilidade de aumento desta velocidade para gigabits por segundo em um futuro bem próximo.
Mesmo assim roteadores precisam executar suas funções de processo e envio de datagramas IP bem mais
rápido a cada dia.
A fragmentação somente será feita no host de origem, reduzindo assim o trabalho dos hosts
intermediários e aumentando a performance, pois a cada nodo que o datagrama passa o mesmo não
precisa ser montado e refragmentado novamente. Quando todos os nodos estiverem com a nova versão do
MTU (Maximum Transmission Units - unidade máxima de transmissão) será padronizada em 576 bytes
ou maior que isto para todos os hosts.
O IETF (Internet Engineering Task Force), juntamente com outras organizações, tem feito um esforço
enorme com relação a melhoria de performance do IPv6. Estão sendo desenvolvidos algoritmos de
mapeamento de endereços IPv6 e outros ambientes, provendo assim uma comunicação sem restrições
entre roteadores e sub-redes.
5.5.9
Suporte a serviços em tempo real
A atual versão encontra sérios problemas relacionados ao tempo de resposta e qualidade de serviço,
problemas estes que serão solucionados, ou seja minimizados com o uso da nova versão.
O fluxo (flow) é uma seqüência de pacotes de uma determinada origem para um determinado destino
(unicast e multicast), a origem requer um tratamento especial pelos roteadores.
Os campos priority e flow label, foram criados principalmente para facilitar o desenvolvimento de
protocolos para controle de tráfego em tempo real, permitindo assim a implementação de uma internet
com aplicações multimidia, com integração de dados, voz e vídeo em tempo real.
5.5.10
Suporte a multiprotocolos e mobilidade
O IPv6 suportará automaticamente o tráfego de redes OSI e de rede Netware/Novel. E uma grande parcela
do endereço se encontra reservada para uso futuro. Posição esta que poderá ser ocupada por protocolos
que se tornem padrões no futuro.
O suporte à comunicações móveis, ainda se encontra em estudo, para que no estabelecimento inicial de
uma sessão, um host IPv6 descubra dinamicamente através de um agente central, localizado na estação
móvel.
5.6
Protocolo de Controle de Mensagens Internet
O Protocolo de Controle de Mensagens Internet (ICMP - Internet Control Message Protocol), está sendo
totalmente revisado/reestruturado para suportar as alterações do Internet Protocolo. O ICMPv6 são usados
por nodos IPv6, para informar os erros encontrados no processamento de datagramas, ou em outras
funções na Internet. O ICMPv6 é parte integrante do IPv6 e deve ser implementado por todo nodo que use
esta versão.
Todas as mensagens tem um formato geral que inclui um tipo, um código, um checksum e um corpo de
tamanho variável. Estas mensagens se encontram divididas em dois grupos, ou seja, mensagens de erro e
de informação. Mensagens de erro são aquelas onde o tipo é setado de 0 à 127, e as mensagens que tem o
tipo setado de 128 à 255. Abaixo mostramos uma tabela contendo alguns códigos de erros, e seus
significados para um melhor entendimento (Gonçalves e Niles, 1997).
Tipo
Descrição
1
Destination Unreachable
2
Packet Too Bif
3
Time Exceeded
4
Parameter Problem
128
Echo Request
129
Echo Reply
130
Group Membership Query
131
Group Membership Report
132
Group Membership Termination
133
Router Solicitation
134
Router Advertisement
135
Neighbor Solicitation
136
Neighbor Advertisement
137
Redirect
Tabela 5.6.1 Mensagens de erro
Na nova versão cada código tem uma função especial, abaixo citaremos algumas:
•
Os códigos 133, 134, 135,136 e 137 são usados na descoberta de vizinhos e em procedimentos de
autoconfiguração.
•
O código 128 e o 129 define o equivalente da função PING (ou seja verifica se o servidor esta no
ar).
•
5.7
Os códigos 130, 131 e 132 são usados em procedimentos de membros de grupos.
Conclusão
Considerando que a atual versão do protocolo IP apresenta problemas e limitações, apresentamos uma
nova versão, que reflete o amadurecimento da tecnologia de redes, visto que a nova versão do protocolo
acrescenta características a atual e descarta as que se tornaram desnecessárias ou obsoletas. Tendo em
vista uma verdadeira rede mundial com múltiplos usos. O próximo capítulo tem como objetivo resaltar os
pontos a serem considerados no momento da migração, bem como as maneiras disponíveis para se fazer a
mesma.
6.
Considerações para a migração
Há pouco mais de um ano as estimativas sobre a complementação foram de 70% do projeto concluídas
até 1997. Estima-se que o processo de migração ao final de 1998. (news generation - v 1).
Espera-se que a interoperabilidade e a compatibilidade entre as duas versões minimize os impactos
trazidos pela mudança. Muitos nodos necessitam de manter uma compatibilidade com a antiga versão por
um bom tempo. As aplicações existentes vão ter que sofrer uma reestruturação visando suportar as
mudanças ocorridas no protocolo. Estas tem que serem capazes de suportar as duas versões sem
restrições. Permitindo uma internet totalmente operante durante o processo de migração, e depois do
mesmo.
Administradores de redes precisam ficar familiarizados com as alterações sofridas pelo protocolo para
garantir assim uma transição clara e simples aos usuários.
É necessário que se siga uma ordem na hora da migração, ou seja, é como se considerássemos a Internet
como uma árvore. Onde os nodos que devem ser migrados primeiro são os de menor ordem. Com isto
temos os servidores de DNS como os primeiros a serem migrados.
6.1
Transição IPv4 / IPv6
Até o presente momento todos concordam que a migração trará vários benefícios e tornará a internet
realmente uma rede global. O número de nodos conectados à Internet atualmente torna impossível e
inviável a migração total, seria preciso parar toda a rede por um determinado tempo. Nenhum usuário está
disposto a esperar o tempo necessário para uma migração total, o que é totalmente compreensível,
levando-se em consideração que várias pessoas e empresas dependem totalmente desta rede. Por isto
levantou-se a possibilidade de migração nodo a nodo.
Um grande desafio a ser enfrentado, desafio este que fica mais tranqüilo quando levamos em conta a
compatibilidade embutida na nova versão. Apesar disto devemos considerar que alterações no protocolo
podem trazer problemas para as aplicações existentes, estas devem migrar ou até mesmos serem
implementadas novamente para que seja assegurada uma transição clara e sem problemas.
A primeira palavra chave neste processo é a interoperação, ou seja, as duas versões devem poder
permanecer na rede simultaneamente, se comunicando e endereçando. A segunda palavra é facilidade,
deve ser fácil a atualização (upgrade) de softwares da versão 4 para a versão 6. Esta facilidade deve ser
oferecida para todos os usuários independente do mesmo ser um administrador de rede, técnico ou
usuário final.
Podemos também optar pela implementação do TCP/IP com pilha dupla (IPv4 , IPv6), nos hosts e
roteadores. A possibilidade de autoconfiguração deve ajudar muito, pois elimina a intervenção humana na
configuração do sistema. Apesar da nova versão ter sido totalmente reestruturada ela mantém
características da atual. Podemos citar como exemplo o fato da nova versão suportar endereços com
versão 4. Temos também o fato de que endereços IPv6 podem ser encapsulados em endereços IPv4,
garantindo assim a comunicação entre as duas versões, pelo menos enquanto elas coexistirem.
A compatibilidade entre as versões e o conhecimento global da atual versão pode levar alguns usuários a
encararem com receio a atualização de versão. Receio este que aumenta quando tomamos conhecimento
que todos nós, direta ou indiretamente dependemos deste recurso que é a Internet. Mas como a nova
versão apresenta benefícios que excedem o custo da migração, isto nos leva a crer que todos vão querer
migrar. Considerando que a migração afetará milhões de dispositivos de rede, fica bem claro para todos
que haverá um período estendido de coexistência das duas versões. Coexistência esta já considerada no
desenvolvimento da nova versão.
Devem ser incluídos recursos para que pacotes IPv6 trafeguem em redes IPv4, e pacotes IPv4 trafeguem
em redes IPv6, permitindo que organizações com IPv4, tenham a opção de não migrarem para o IPv6,
bem como as com IPv6 tenham as melhorias oferecidas, sem perder a comunicação com as redes que
ainda não migraram.
Outras questões muito importantes a serem observadas na migração são: planejamento e alocação de
endereços, requisitos de software, requisitos de hardware, velocidade das ligações (links), recursos
financeiros, etc. As alterações sofridas pelo novo protocolo são bem significativas, e já era de se esperar
um impacto sobre os demais padrões usados na internet. Estima-se que mais de 50% dos padrões usados
precisará de revisão para o convívio com a nova versão. Os novos projetos e propostas de padrões (PSProposed Standard) também estão sendo afetados. Revisões estão sendo feitas em textos PS (Proposed
Standard), protocolos, formatos de pacotes. Em muitos casos chega-se a conclusão que não haverá
nenhum problema, e em outros são feitos os ajustes necessários para a migração.
Roteadores e máquinas devem ter seus programas de rede trocados, sem obrigar que todos os usuários do
mundo tenham que mudar ao mesmo tempo. O único pré-requisito é que servidores de DNS tenham sua
versão trocada antes. Quando as máquinas sofrerem atualizações os roteadores podem manter seus
endereços IPv4, nodos IPv6 devem comunicar com nodos IPv6 mesmo que a estrutura entre eles seja
IPv4.
6.2
Mecanismos desenvolvidos para a migração
Foram criados dois mecanismos de transição permitindo assim uma garantia de flexibilidade aos
administradores de redes, com relação a como e quando a migração vai ser feita nos hosts e roteadores.
Dual-stack: nodos IPv6 devem ter, inicialmente duas pilhas TCP/IP internas (versão 4 e versão 6),
através do campo versão o protocolo decide qual irá ser usada. Esta opção permite a comunicação entre
nodos já atualizados com IPv6 e nodos IPv4, bem como realizar roteamento de pacotes a nodos que
usem somente o IPv4. Se considerarmos que atualmente a maioria dos routers usados pelas várias
empresas já apoiam atualmente múltiplos protocolos, esta solução não deve ser crítica. Muitas
Workstations usam uma combinação de protocolos IPv4, IPX (Internal Packet e Xchange), Apple Talk,
NetBIOS, SNA, DECnet, e outros protocolos. Logo a inclusão de mais um não é um ponto crítico.
Tunneling: consiste em transmitir um datagrama IPv6 como pacote de dados de um datagrama IPv4,
permitindo a comunicação com nodos que só aceitam IPv4. A rede IPv4 é vista como um túnel, o
endereço do nodo final deste túnel é o endereço de destino do datagrama. O pacote IPv6 trafega
normalmente até o seu destino, neste caso o nodo final deve ter a pilha que suporte endereços IPv6.
6.3
Conclusão
Com o objetivo de resaltar os fatores que devem ser considerados na migração, evitando assim surpresas
desagradáveis, discutimos as soluções oferecidas, para que a migração seja feita de maneira transparente e
objetiva, não causando mais transtornos que os absolutamente necessários ou inevitáveis.
7.
Conclusão
O IP é um protocolo que faz a entrega de datagramas sem conexão, o mesmo não garante que os
datagramas chegarão ao destino e nem que serão recebidos na mesma ordem que foram enviados. Sendo
que a característica muito forte deste é a possibilidade de comunicação entre máquinas completamente
diferentes, ou seja com hardwares e softwares distintos.
O crescimento exponencial apresentado pela rede chamada Internet, uma estrutura cliente-servidor muito
robusta, leva seus projetistas a novos estudos para melhorar e oferecer melhores serviços a este mundo,
que se mostra muito dinâmico onde, novas tecnologias são incluídas e as antigas ou se adaptam a elas ou
tornam-se obsoletas. O protocolo usado atualmente, ou seja, IPv4 conseguiu acomodar todas as
mudanças, tornando-se cada vez mais popular. Mas temos que considerar que o fenômeno do crescimento
exerce uma pressão enorme e constante sobre a infra-estrutura da Internet, obrigando uma reestruturação,
melhora de desempenho, segurança, facilidades para o usuário na configuração e administração de redes.
E um problema ainda mas grave é que os endereços disponíveis se esgotariam muito brevemente, isto se
as tabelas de roteamento não esgotassem a capacidade dos hardwares de roteamento antes.
Com a nova proposta de versão do protocolo (IPv6), teremos mais espaço de endereçamento, mais níveis
de hierarquia, maior número de nodos endereçáveis, auto-configuração destes nodos, compatibilidade e
interoperabilidade com a antiga versão. A mudança de 4 para 16 octetos, vem para permitir o
endereçamento de mais de um bilhão de hosts. A chamada flexibilidade é uma das características
obrigatórias para a implementação do novo protocolo permitindo a inclusão de cabeçalhos de suporte para
autenticação, integridade de dados e confiabilidade, e também facilitando implementações futuras. Esta
versão reflete o amadurecimento da tecnologia de redes, e o novo protocolo tem em vista uma verdadeira
rede mundial com múltiplos usos. Acredita-se atualmente que o uso do novo protocolo e uma
reestruturação da Internet solucione boa parte dos problemas atualmente enfrentados pelos usuários.
Estima-se que o processo de migração seja simples e claro para os usuários da rede. Fica mas fácil
visualizar a migração ao considerarmos a compatibilidade encontrada na nova versão, mas devemos
considerar que uma alteração no protocolo pode trazer problemas para as aplicações existentes. Outro
problema que pode ser enfrentado diz respeito a popularidade do atual protocolo, que pode trazer sérios
problemas no que se refere a uma migração, pois isto contribui para que uma substituição seja encarada
como algo perigoso, ou seja podem ocorrer críticas, ou até mesmo boicotes. O que se espera é que as
novas funcionalidades, facilidades e serviços venham para extinguir estes pensamentos. Acredita-se que o
chamado custo benefício seja um bom estímulo a migração.
Percebe-se agora que com a adoção do novo protocolo muita coisa irá mudar: nova terminologia, novas e
muitas características interessantes, novo processo de roteamento, etc. Para se continuar trabalhando
satisfatoriamente com esta rede, uma adaptação a esta nova tecnologia será em breve inevitável. Devemos
começar a pensar neste fato em breve, pois pelo que pudemos perceber ao longo deste trabalho, as
mudanças não param e se nós não nos adaptarmos a elas estamos fora, sem ao menos uma possibilidade
de segunda chance.
Depois de todas estas questões levantadas podemos pensar, mas porque devemos preocupar com isto, eu
não seremos afetados. Pensamento totalmente equivocado, todas as pessoas o serão, pois atualmente é
quase que inacreditável o número de pessoas e empresas que se encontram totalmente dependentes desta
rede. Conseguentemente mesmo que o problema não nos afete diretamente, ele vai acabar, mais cedo ou
mais tarde, por nos prejudicar indiretamente.
Bibliografia
LIVROS
SOARES, LEMOS E COLCHER, L. F. G., LEMOS, G. e S., Das LANs, MANs e WANs as redes ATM,
segunda edição, 1995.
SOUSA, L. B., Redes Transmissão de dados, voz e imagem, Primeira edição, Editora Erica Ltda., 1996.
GASPARINI, A. F. L., TCP/IP Conceitos e Funcionamento, Telecon Consultoria e
Treinamento em
Telemática Ltda., 1993.
GONÇALVES, M., e NILES, K., Ipv6 Networks, Ed. McGraw-Hill, 1997.
Referências Bibliografias
LIVROS
CERVO e BERVIAN, A. L. e, P., Metodologia científica para uso de estudantes
universitários, Terceira
edição, Aso Paulo, Mc Graw Hill do Brasil, 1983.
COMMER, E. D., Internet with TCP/IP, volume I, Principles and Architecture Third Edition.
COMMER, D., Internetworking With TCP/IP, vol. I, Prentice Hal Inc., 1991.
BARRELA e GASPARINI, F. E. e A. F. L., TCP/IP Solução para conectividade, Editora Erica Ltda., 1993.
COMMER e SERVENS, D. L., Internetworking With TCP/IP, vol. II, Prentice Hal Inc., 1991.
DALA e SUNSHINE, Y. e c, Connection Management in Transport Protocols, Computer Networks, vol. 2,
Edição 6, 1978.
MANUAIS
Gartner-Group - Seminários de Tendências Tecnológicas - 1994.
Cyclades-PathRouter - Roteador IP - Segunda versão - 1997.
Apostila TCP/IP - Rio Datacentro - PUC/Rio
DNS & BIND - Paul Albirtz & Cricket Liu - O’Reilly & Associates.
Routing in the Internet - Christian Huitema
TCP/IP Network Administration - First - Craig Hunt - O’Reilly & Associates.
Curso de Redes de Computadores - Modelo TCP/IP - 1997.
PÁGINAS INTERNET
Robert
M.
Hinden,
"IP
Next
Generation
http://playground.sun.com/ipng/INET-IPng-Paper.html.
Overview",
14
Maio
de
1995,
Morgan Kaufmann Publishers, "Next Generation IP", http://literary.com/mkp/new/3689/book/node53.html.
Nierle
HomePage,
"Internet
Protocol
Version
6",
13
Junho
de
1996,
http://www.stl.nps.navy.mil/~jenierle/chapt6.html.
Nierle
HomePage,
"Migration
Internet
Protocol
Version
6",
13
Junho
de
1996,
http://www.stl.nps.navy.mil/~jenierle/chapt8.html
R&D Home Page, "Next-Generation IP Protocol", http://info.hgs.cae.ntt.jp/RD/ACT/RD_act_2/next.html
William Stallings, "IPv6: The New Internet Protocol", http://www.ieee.org/comsoc/stallings.html.
http://penta.ufrgs.br:80/redes296/IPv6/
A. Torminaga, O. Nakamura, F. Teraoka, J. Murai. "Problems and Solucions of DHCP: Experiences with
DHCP
implementation
an
Operation",
10
Maio
de
1997,
http://info.isoc.org/HMP/PAPER/127/html/paper.html.
Wobus, Jonh. "DHCP FAQ", http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html, 17 maio de 1997.
RFCs
[RFC-791] Postel, J., "Internet Protocol", STD 5, RFC 791, USC/Information Sciences Institute, Setembro
1981.
[RFC-792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, USC/Information Sciences
Institute, Setembro 1981.
[RFC-822] M.R. Horton, "Standard for the Format of ARPA Internet Text Messages", June 1983 ( Obsoleted
by RFC 1036 ).
[RFC-850] M.R. Horton, "Standard For Interchange of Usenet Messages", June 1983 ( Obsoleted by RFC
1036 ).
[RFC-1036] M.R. Horton and R. Adams, "Standard For Interchange of Usenet Messages", December 1987.
[RFC-1058] Hedrick, C., "Routing Information Protocol", RFC 1058, Rutgers University, Junho 1988.
[RFC-1112] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112, Stanford University,
Agosto 1989.
[RFC-1122] Braden, R., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122,
USC/Information Sciences Institute, Outubro 1989.
[RFC-1191] Mogul, J., and S. Deering, "Path MTU Discovery", RFC 1191, DECWRL, Stanford University,
Novembro 1990.
[RFC1326] Tsuchiya, P., "Mutual Encapsulation Considered Dangerous", RFC 1326, Maio 1992.
[RFC-1529] Fuller, V., Li, T., Yu, J. e Varadahan, K., "Classes Inter-Domain Routing (CIDR): an Address
Assignment and Aggregation Strategy", RFC 1529, BARRNet, Cisco, MERIT e OARnet, Setembro 1993.
[RFC1629] Colella, R., Callon, R., Gardner, E., and Y. Rekhter, "Guidelines for OSI NSAP Allocation in
the Internet", RFC 1629, Maio 1994.
[RFC-1661] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, Daydreamer,
Julho 1994.
[RFC-1700] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, USC/Information Sciences
Institute, Outubro 1994.
[RFC-1723] Malkin, G., "RIP Version 2 - Carrying Additional Information", RFC 1723, Xylogics, Inc.,
Novembro, 1994.
[RFC1825] Atkinson, R., "Security Architecture for the Internet Protocol", RFC 1825, Naval Research
Laboratory, Agosto 1995.
[RFC-1826] Atkinson, R., "IP Authentication Header", RFC 1826, Naval Research Laboratory, Agosto
1995.
[RFC-1827] Atkinson, R., "IP Encapsulating Security Payload (ESP)", RFC 1827, Naval Research
Laboratory, Agosto 1995.
[RFC-1828] Metzger, P. e Simpsom, W., "IP Authentication using Keyed MD5", RFC 1828, Piermont e
Daydreamer, Agosto 1995.
[RFC-1829] Karn, P., Metzger, P. e Simpson, W., "The ESP DESC-CBC Transform", RFC 1829, Piermont e
Daydreamer, Agosto 1995.
[RFC1883] Deering, S., and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 1883,
Xerox PARC e Ipsilon Networks, Dezembro 1995.
[RFC1884] Hinden, R., and S. Deering, "IP Version 6 Addressing Architecture", RFC 1884, Ipsilon
Networks e Xerox PARC, Dezembro 1995.
[RFC-1885] Conta, A., and S. Deering, "Internet Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", RFC 1885, Digital Equipment Corporation, Xerox PARC,
Dezembro 1995.
[RFC-1886] Tomson S., e Huitema, C. "DNS Extensions to suport IP version 6", RFC 1886,Bellcore e
INRIA, Dezembro 1995.
[RFC-1887] Rekhter, Y. e Li, T., "An Architecture for IPv6 Unicast Address Allocation", RFC 1887,Cisco
Systems, Dezembro 1995.
[RFC-1897] Hinden R. e Postel J., " IPv6 Testing Address Allocation", RFC 1897, Ipsilon Networks e ISI,
Janeiro 1996.
[RFC-1924] Elz, R., "A Compact Representation of IPv6 Addresses", RFC 1924, University of Melbourne,
Abril 1996.
[RFC-1933] Gilligan, B. and E. Nordmark., "Transition Mechanisms for IPv6 Hosts and Routers, Sun
Microsystems", RFC 1933, Sun Microsystems, Inc., Abril 1996.
[RFC1970] Narten, T., Nordmark, E., and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)",
RFC1970, Agosto 1996.
[RFC1971] Thompson, S., and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC1971, Agosto
1996.
[RFC-1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery for IP version 6", RFC 1981,
Agosto 1996.
[RFC-2133] Gilligan, R., Thomson, S., Bound, J., and W. Stevens, "Basic Socket Interface Extensions for
IPv6", RFC 2133, Abril 1997.
[RFC-2185] Callon R., Haskin D., "Routing Aspects Of IPv6 Transition", RFC 2185, Setembro 1997.
Apêndice A
Atualmente as RFCs mais usadas na internet são as descritas abaixo:
RFC
Descrição do documento
768
User Datagram Protocol (UDP)
783
Trivial File Transfer Protocol (TFTP)
791
Internet Protocol (IP)
792
Internet Control Message Protocol (ICMP)
793/1323
Transmission Control Protocol (TCP)
822
Standard for the Format of ARPA Internet Text Messages
826
Address Resolution Protocol (ARP)
854
Virtual Terminal Protocol (Telnet)
877/1356
IP over X.25 Networks
903
Reverse Address Resolution Protocol (RARP)
904
Exterior Gateway Protocol (EGP) Version 2
950
Internet Subnetting Procedures
951
Bootstrap Protocol (BootP)
1001
Protocol Standard for a NetBIOS Service on a TCP/UDP Transport:
Concept and
Methods
1002
Protocol Standard for a NetBIOS Service on a TCP/UDP Transport:
Specifications
1009
Internet Gateway Requirements
1042
IP over IEEE 802 Networks
1058
Routing Information Protocol (RIP)
1063
Maximum Transmission Unit Discovery Option
1075
Distance Vector Multicast Routing Protocol (DVMRP)
Detailed
1084
BootP Vendor Extensions
1108
Revised Internet Protocol Security Option (RIPSO)
1112
Internet Group Management Protocol
1155
Structure and Identification of Management Information
1156
Internet Management Information Base
1157
Simple Network Management Protocol (SNMP)
1188
IP over FDDI
1247
Open Shortest Path First (OSPF) Version 2
1256
Router Discovery
1267
Border Gateway Protocol (BGP) Version 3
1519
Classless Inter-Domain Routing (CIDR)
1532
Clarification’s and Extension to BootP for the Bootstrap Protocol
1533
DHCP Options and BootP Vendor Extensions
1542
Clarification's and Extension to BootP for DHCP
1654
BGP Version 4
Apêndice B
Algumas RFCs, padrões que serão usadas pela nova versão do protocolo IPv6. Sendo que a principal até o
presente momento é a RFC 1885.
RFC
Descrição do documento
1112
Host Extensions for IP Multicasting
1122
Requirements for Internet Hosts - Communication Layers
1191
Path MTU Discovery
1326
Mutual Encapsulation Considered Dangerous
1519
Classless Inter-Domain Routing and Address Assigment and Aggregation Strategy
1629
Guidelines for OSI NSAP Allocation in the Internet
1752
The Recommendation for the IP Next Generation Protocol
1809
Using the Flow Label Field in IPv6
1825
Security Architecture for the Internet Protocol
1881
IPv6 Address Allocation Management
1883
Internet Protocol, Version 6 (IPv6) Specification
1884
IP Version 6 Addressing Architecture
1885
Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)
Specification
1886
DNS Extensions to support IP version 6
1887
An Architecture for IPv6 Unicast Address Allocation
1888
OSI NSAPs and Ipv6
1897
IPv6 Testing Address Allocation
1924
A Compact Representation of IPv6 Addresses
1933
Transition Mechanism for IPv6 Hosts and Routers
1970
Neighbor Discovery for IP Version 6 (IPv6)
1971
IPv6 Stateless Address Autoconfiguration
1972
A Method for the Transmission of IPv6 Packets over Ethernet Networks
1981
Path MTU Discovery for IP version 6
2019
A Method for the Transmission of IPv6 Packets over FDDI Networks
2023
IP Version 6 over PPP
2030
Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI
2073
An IPv6 Provider-Based Unicast Address Format
2080
RIPng for Ipv6
2133
Basic Socket Interface Extensions for Ipv6
2147
TCP and UDP over IPv6 Jumbograms
2185
Routing Aspects Of IPv6 Transition
2292
Advanced Sockets API for IPv6
[m1]

Documentos relacionados

TCP/IP - Fabricio Breve

TCP/IP - Fabricio Breve repassados para a camada de Internet

Leia mais