Carregando Pesquisa
YouTube Facebook Twitter
Apostilas Artigos Tutoriais Aulas Blog Ferramentas de Rede Fórum Downloads Colabore Fale Conosco
» artigos
:: IP Next Generation

José Mauricio Santos Pinheiro em 18/11/2004

 

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.

José Maurício Santos Pinheiro
Professor Universitário, Projetista e Gestor de Redes, 
membro da BICSI, Aureside e IEC.

Autor dos livros:
 
· Guia Completo de Cabeamento de Redes ·
· Cabeamento Óptico ·
· Infraestrutura Elétrica para Redes de Computadores
·
· Biometria nos Sistemas Computacionais - Você é a Senha ·

E-mail: jm.pinheiro@projetoderedes.com.br

© www.projetoderedes.com.br - Termos e Condições de Uso