As características que definem o protocolo IPv6 são:
A nível de endereçamento, o IPv6 apresenta um aumento do tamanho dos endereços de 32 para 128 bits e define três classes básicas:
No IPv6, não existe endereço broadcast, sendo a sua funcionalidade conseguida através da utilização dos diferentes tipos de endereços multicast.
Notação
O IPv6 apresenta uma nova notação de endereços, para evitar que estes se tornem demasiado longos. Assim, os endereços IPv6 são escritos como oito números hexadecimais separados por ":". Cada grupo representa 16 bits:
3FFE:3100:0000:0000:0000:0000:0000:1111
Devido à sua estrutura, os endereços IPv6 podem apresentar grande número de "0". Assim, para simplificar a notação, utiliza-se o símbolo "::" para representar vários grupos de 16 bits a zero:
3FFE:3100::1111 equivale a 3FFE:3100:0000:0000:0000:0000:0000:0000:1111.
Hierarquia
O IPv6 introduz uma nova hieraquia de endereçamento, apresentada na figura 1:
Figura 1.1 - Hierarquia de Endereçamento IPv6.
No
topo desta hierarquia encontram-se entidades encarregues do registo e atribuição
de blocos de endereços a TLA - Top Level Aggregators. Actualmente,
a entidade encarregue destas funções é a 6bone,
dado que o espaço de endereçamento IPv6 ainda se encontra
em fase de testes. Um TLA é um fornecedor de serviços e representa
um ponto de troca pública entre grandes operadores de rede e redes
globais. Os TLA podem delegar endereços a NLA - Next Level Aggregators
ou a SLA - Site Level Aggregators. Um NLA representa uma entidade
que pretende delegar espaço a outras entidades. Um SLA representa
uma entidade que pretende ter conectividade IPv6 mas não pretende
delegar endereços.
O IPv6 é formado, pelo RPT ( Public Routing Topology ) que é um código de 48 bits que é formado pelo número do TLA + NLA e que será o número da rede. A entidade pode separar este RPT em SLAs que seriam sub-redes e finalmente os 64 bits de Interface ID que nada mais é do que o número MAC da máquina, o que faz do IPv6 um protocolo de endereçamento direto.
Cabeçalhos
Embora apresentando um endereço de 128 bits, o IPv6 apresenta um cabeçalho simplificado e um novo método de processamento de opções.
Figura 2 - Cabeçalho IPv4, 32 bits.
Figura 3 - Cabeçalho IPv6, 128 bits.
As figuras 2 e 3 representam respectivamente um cabeçalho IPv4 e IPv6. A estrutura deste último foi modificada a partir do primeiro, retirando os campos não utilizados e passando as opções para outro tipo de cabeçalhos, os cabeçalhos de extensão. O cabeçalho IPv6 apresenta assim uma estrutura mais simplificada.
Através da colocação do campo Tamanho do Módulo de Dados a zero, o protocolo IPv6 permite a transmissão de mensagens jumbogram, ou seja, pacotes com um tamanho bastante maior que o limite de 64Kb imposto pelo IPv4. A utilização de jumbograms permite a utilização do IPv6 em redes de alto MTU.
De modo a tratar opções, o IPv6 apresenta um esquema de módulos: a informação adicional é transmitida através dos cabeçalhos de extensão. Este esquema fornece ao IPv6 flexibilidade para transportar informação relevante para encaminhamento e aplicações, bem como fornecer mecanismos de segurança, fragmentação, qualidade de serviço e gestão de rede, com escalabilidade ilimitada. Na medida em que estes módulos são opcionais, este esquema ajuda ainda a reduzir o custo de processamento de pacotes IPv6.
Os cabeçalhos de extensão são colocados entre o cabeçalho IPv6 e o cabeçalho do protocolo de transporte, estando ligados entre si pelo campo Próximo Cabeçalho (Next Header), formando uma cadeia. Actualmente, encontram-se já definidos os seguintes cabeçalhos de extensão:
A figura
4 representa um datagrama IPv6 com cabeçalhos de extensão.
A ordem dos cabeçalhos é a indicada acima.
O serviço Domain Name System (DNS) é de extrema utilidade para o protocolo IPv6. O documento DNS Extensions to Support IP version 6, [RFC1886] especifica um novo tipo de campo DNS de 128 bits denominado AAAA ou quad A, que permite mapear nomes de domínios em endereços IPv6. Foi também definido o mapeamento de endereços IPv6 em nomes.
Este campo (suportado já em algumas versões) permite a utilização de DNS de modo transparente: se um host com pilha dupla efetuar uma query DNS e receber um endereço de 32 bits, utiliza IPv4; se o endereço for de 128 bits, utiliza IPv6.
Encaminhamento
O encaminhamento IPv6 é semelhante ao IPv4. Para a nova versão, foram desenvolvidas extensões dos protocolos mais populares: OSPFv6 , RIPv6 - [RFC2080] -, BGP4+ - [RFC2283] -, IGRP.
Além das novas versões dos protocolos de encaminhamento, o IPv6 apresenta encaminhamento baseado em prefixos de tamanho variável, o que permite vários sistemas autónomos, ou Routing Domains. Este prefixo baseia-se na especificação CIDR.
Para
suportar dados multimedia e em tempo-real, são utilizados, entre
outros mecanismos, um campo prioridade, e uma nova versão do protocolo
RSVP.
Fragmentação/Reassemblagem
No IPv4, a fragmentação ocorre sempre que os pacotes são demasiado grandes (superiores à Maximum Transmit Unit) para serem transmitidos em determinada rota de um caminho. Este processo ocorre em qualquer extremo de uma rota: fonte ou encaminhadores podem ter de fragmentar os pacotes a enviar. A reassemblagem é efetuada no destino do pacote, após a recepção correcta de todos os segmentos que formam o pacote. Caso haja algum problema na recepção, os segmentos recebidos são descartados. Este processo provoca congestão em rotas de baixo MTU e aumenta o tempo de processamento dos datagramas.
Para evitar estes problemas e permitir suporte de serviços em tempo-real, o IPv6 apresenta um novo processo, onde não há intervenção dos encaminhadores: é enviada um pacote inicial até ao destino, onde são guardados os tamanhos máximos permitidos em cada rota do caminho a percorrer. Quando é estabelecido o canal de comunicação, a mensagem é devolvida à fonte que fica assim a saber qual o tamanho com que pode enviar os datagramas para que eles não tenham de ser fragmentados.
Sendo
apenas efetuada na fonte, a fragmentação em IPv6 permite
reduzir o tempo de processamento dos datagramas e liberta os encaminhadores
desta tarefa, além de diminuir a possibilidade de perda de datagramas
na recepção.
Segurança
A especificação do protocolo IPv6 incluem segurança na camada de rede através de uma arquitetura criada para tal, a IPSec. Esta arquitetura é bastante flexível, de modo a evitar problemas relacionados com restrições de exportação de criptografia e não impede a utilização de outros mecanismos de segurança por parte das aplicações.
Tendo
em conta que a utilização generalizada do IPv6 não
é um processo imediato, a IPSec foi concebida de modo a poder ser
utilizada com o protocolo IPv4.
Existem
já implementações de sistemas Unix que englobam a
arquitetura de segurança para o protocolo IP.