Nos
�ltimos anos o tráfego da Internet apresentou uma alta
taxa de crescimento, que eventualmente trouxe alguns
problemas. Com o grande n�mero de hosts conectados,
os endereços IP começaram a se tornar escassos, principalmente
pela maneira ineficiente como foram divididos.
Como solução para este
problema, na segunda metade da década de 1990, foram
estabelecidas regras para o funcionamento do que seria
chamado de próxima geração de endereços IP, conforme
descrito na RFC1671, o IPv6 (Internet Protocol version
6) ou simplesmente IPng (IP next generation). Com isto,
os endereços IP passariam a ter 128 bits de endereçamento,
ao invés de 32 bits como é utilizado atualmente pelo
IPv4.
IPv6 versus IPv4
Como mencionado,
os endereços IPv6 são formados por 128 bits de comprimento,
contra os atuais 32 bits do IPv4, implicando em um aumento
potencial no n�mero de hosts. Porém esta não é a �nica
diferença no endereçamento destes protocolos. Enquanto
os endereços IPv4 são divididos em apenas duas ou três
partes variáveis para serem distribuídos e localizados
(um identificador de rede, um identificador de nó e,
ocasionalmente, um identificador de sub-rede), os endereços
IPv6 são grandes o suficiente para suportarem campos
dentro do endereço. As principais mudanças do IPv6 com
relação ao IPv4 são:
Capacidade
de endereçamento expandida: No IPv6, cada
endereço é determinado por 128 bits. O n�mero de hosts
possíveis no IPv6 é 2128 = 3,4028 x 1038.
Porém, como o endereçamento do IPv6 não é completamente
plano, não é possível utilizar todas as combinações
possíveis;
Simplificação
do formato do cabeçalho:
Alguns campos do cabeçalho do IPv4 foram descartados
ou se tornaram opcionais para simplificar o processamento
dos pacotes mais comuns e diminuir o overhead do IPv6,
que possui um cabeçalho maior;
Maior suporte
para campos opcionais e extensões:
Os campos opcionais possuem menos restrições quanto
ao seu tamanho, há maior flexibilidade para a introdução
de novas extensões no futuro, o encaminhamento de
pacotes é simplificado e pode ser diferenciado a cada
hop (salto);
Capacidade
para identificação de fluxo: O originador
dos pacotes tem como identificar o fluxo de pacotes
para um determinado destino (unicast ou multicast)
e pedir tratamento especial desse fluxo por parte
do roteador como QoS diferenciado e serviço de tempo
real. No IPv4, esse tipo de funcionalidade é implementado
por roteadores e switches de camadas 3 ou 4, o que
sobrecarrega seu processamento.
Cabeçalho IPv6
Quanto ao tamanho
de cabeçalho, o IPv6 obteve um grande avanço em relação
ao protocolo anterior. Embora o tamanho do endereço
IPv6 seja quatro vezes maior que o IPv4, o seu cabeçalho
é apenas duas vezes maior. Um cabeçalho mais simplificado
implica em menos processamento para cada pacote, sendo
extremamente �til para redes de alta velocidade.
O esquema do cabeçalho
pode ser descrito conforme a figura seguinte:
Figura 1
- Especificação do IPv6, documentada sob o RFC 2460
Os campos representados
são os seguintes:
Version
(Versão): 4 bits. Para essa versão, o valor é 6;
Traffic Class
(Classe de Tráfego): 8 bits. Esse campo ainda é experimental
e pode vir a ser modificado. A função desse campo
é permitir diferenciação de classes de tráfego e mecanismos
de prioridade para que os roteadores possam prover
tratamento apropriado em cada caso. Cabe à camada
superior informar a camada IPv6 qual a classe de tráfego
a ser utilizada. Um roteador pode alterar os bits
do campo Traffic Class da forma que desejar. Por esse
motivo, uma estação não deve assumir que um determinado
tipo de tráfego que ela associou a uma certa classe
será recebido com o campo Traffic Class com o mesmo
valor com o qual ela transmitiria;
Flow Label
(Etiqueta de Fluxo): 20 bits. Um fluxo é uma seq�ência
de pacotes enviados a partir de uma origem para um
determinado destino (unicast ou multicast), requerendo
um tratamento especial pelos roteadores, como QoS
ou reserva de banda (RSVP � Resource Reservation Protocol),
por exemplo. A intenção do Flow Label é permitir que
a origem possa atribuir uma identificação padronizada
aos pacotes para que eles recebam tratamento especial
por um roteador (fazer QoS, tráfego de tempo real,
etc.). Roteadores e hosts que não são capazes de identificar
o Flow Label de um pacote devem deixar o campo com
valor igual a 0, quando originá-lo, deixá-lo inalterado,
quando retransmiti-lo, ou ignorá-lo, quando recebê-lo;
Payload Length
(Comprimento da Carga): 16 bits. Informa o comprimento
dos dados (em octetos), encapsulados pela camada de
rede, isto é, quantos bytes vêm depois do cabeçalho
IPv6 (os campos de extensão são contabilizados). Caso
esse campo seja 0, indica que o comprimento do payload
é superior a 65.535 octetos e é informado em um Extension
Header;
Next Header
(Próximo Cabeçalho): 8 bits. Informa qual o protocolo
da camada superior que está utilizando os serviços
da camada IP. A numeração também segue o RFC 1700.
O UDP, por exemplo, é n�mero 17. No IPv6, pode haver
um campo opcional após o cabeçalho e nesse caso, o
valor de Next Header informa qual o tipo de extensão
que vem após o cabeçalho IPv6;
Hop Limit
(Limite de Hop): 8 bits. Semelhante ao TTL do IPv4,
cada unidade processadora de pacotes (nó) decrementa
esse valor de 1 unidade e quando esse valor chegar
a 0, o pacote é descartado;
Source Address
(Endereço de Origem): 128 bits. Informa o endereço
de origem do pacote;
Destination
Address (Endereço de
Destino): 128 bits. Informa o endereço de destino,
que pode não ser o endereço do host final porque pode
ser um cabeçalho de roteamento;
Extension
Header (Cabeçalho de
Extensão): Tamanho variável, mas sempre m�ltiplo de
8 octetos (64 bits). Pode haver mais de um campo de
extensão. A presença de um campo de extensão pode
ser determinada pelo valor do campo Next Header. Cada
Extension Header tem um campo Next Header informando
o próximo protocolo. Normalmente, somente o nó de
destino irá processar os Extension Headers. Os Extension
Headers precisam ser processados exatamente na ordem
em que eles aparecem.
Convém salientar ainda
que, embora as pilhas IPv6 nativas não possam interoperar
diretamente com as pilhas IPv4, mecanismos de compatibilidade
IPv4 foram introduzidos no IPv6 para contornar as incompatibilidades
e assegurar a transição. Muitas estratégias para transmissão
baseiam-se em tunelamento, com o intuito de aproximar
duas redes distantes, onde pacotes IPv6 são encapsulados
dentro de pacotes IPv4.
Endereçamento no IPv6
Ainda não há uma
especificação oficial para a alocação e formação de
endereços do IPv6 e como os endereços IPv6 são quatro
vezes maiores que os endereços IPv4, são também quatro
vezes mais complexos.
A representação básica
de um endereço IPv6 se dá na forma X:X:X:X:X:X:X:X,
onde X refere-se a quatro dígitos hexadecimais (16 bits).
Cada dígito consiste em quatro bits, cada inteiro consiste
em quatro dígitos e cada endereço consiste em oito inteiros,
num total de 128 bits (4x4x8 = 128).
Apenas 15 % de todo
espaço IPv6 está alocado, ficando os outros 85% restantes
para uso futuro. Devido a esta pré-alocação, serão comuns
endereços com uma longa seq�ência de bits zero. Neste
caso, a especificação permite "suprimir" estes
zero. Em outras palavras, o endereço "2000:0:0:0:0:0:0:1"
pode ser representado como "2000::1". Os dois
pontos indicam que o endereço será expandido em um endereço
de 128 bits.
O método substitui zeros
somente quando eles estiverem em grupos de 16 bits e
os dois pontos podem ser usados apenas uma vez por endereço.
Essa opção é �til quando se deseja juntar endereços
IPv4 com endereços IPv6. Os �ltimos 32 bits de um endereço
IPv6 podem ser usados para referenciar um endereço IPv4,
sendo expressos da seguinte forma: X:X:X:X:X:X:d.d.d.d,
onde "X" representa um inteiro de 16 bits
e "d" representa um inteiro decimal. Por exemplo,
o endereço "0:0:0:0:0:0:10.0.0.1" é um endereço
IPv4 válido. Combinando ambos os métodos alternativos
de representação, este endereço pode ser representado
como "::10.0.0.1".
Conclusão
O IPv6 é a nova
versão do Protocolo de Internet, a qual deverá substituir
progressivamente o protocolo IPv4, estendendo o espaço
de endereçamento corrente, com o objetivo de acomodar
a taxa de crescimento dessas novas redes de comunicação.
Além do sensível aumento no n�mero de hosts possíveis,
este novo protocolo permite maior segurança e desempenho
para redes de alta velocidade.
Apesar de vários backbones
com IPv6 já estarem em funcionamento em caráter experimental,
a previsão para o início de sua operação comercial é
2010. Inicialmente os equipamentos deverão oferecer
compatibilidade entre IPv6 e IPv4, seja por encapsulamento,
tunelamento, algum protocolo de roteamento capaz de
lidar com ambas as versões ou alguma outra técnica.
A transição de IPv4
para IPv6 deve ser feita de forma gradual, com os fornecedores
de soluções e desenvolvedores introduzindo gradualmente
versões de aplicações IPv6 para as diferentes plataformas.
Inclusive, existe um grupo de trabalho do IETF, o IPng
Transition (ou simplesmente "ngtrans"), destinado
exclusivamente a levantar os problemas e soluções para
essa migração. |