3. Mudanças
3.1 Cabeçalho
O cabeçalho em IPv6 é mais simplificado,
pois contém somente sete campos, ao contrario do IPv4 que possui treze.
Com isso, os roteadores conseguem processar os pacotes com mais rapidez melhorando,
assim, o problema de atraso quanto ao processamento.
Além disso, há um maior suporte para opções, ou seja, os cabeçalhos que antes eram obrigatórios se tornaram opcionais. Surgiu uma nova maneira para representação das opções, fazendo com que os roteadores possam ignorá-las caso estas não sejam dirigidas a ele.
Houve melhoramento na segurança, pois autenticação e privacidade se tornaram as palavras chave desse protocolo. Assim como, também, ocorreu um melhoramento na qualidade de serviço (QoS) com o objetivo oferecer melhor suporte para as várias novas mídias que foram surgindo e circulando na Internet.
Versão (Version) – 4 bits – O campo versão é sempre seis para o IPv6 e quatro para o IPv4. Esse campo serve para os roteadores (camada de rede) identificarem qual é o protocolo do pacote. Porém, é possível que no futuro essa identificação seja feita no Protocol Data Unit da camada de enlace para maior rapidez, entregando o Service Data Unit para seu manipulador correto na camada de rede. Isso viola o modelo de camadas ISO/OSI, pois atribui uma função de uma camada mais acima para uma outra mais abaixo.
Classe de Tráfego (Traffic Class) – 8 bits – Serve para identificar se o dado no pacote é de uma mídia contínua, como vídeo ou som, ou se é de outro tipo. Embora esse campo já exista no protocolo IP desde o seu início, ele é pouco utilizado pelos roteadores, e vários estudos para descobrir a melhor forma de uso deste campo ainda estão sendo realizados.
Identificação
de Fluxo (Flow Label) – 20 bits – O campo de identificação
de fluxo permite a criação de um “pseudocanal de conexão”
entre uma fonte e um destino, que possui requerimentos e propriedades particulares.
Por
exemplo: quando um roteador recebe um pacote com esse campo sendo não
zero, ele identifica a qual fluxo de pacotes ele pertence. Se for um fluxo um
streaming de vídeo pertencente a uma determinada aplicação,
o roteador pode atribuir maior prioridade para esses pacotes. Quando um outro
pacote com o mesmo número de identificação de fluxo chegar,
o roteador poderia enviá-lo diretamente para seu destino, sem precisar
ler os campos de endereço. O valor desse campo deve receber um valor
aleatório para cada “pseudocanal de conexão”, para
reduzir a possibilidade de existirem dois canais com o mesmo código,
fazendo com que o roteador pense que é só um canal e envie os
dados erroneamente pela mesma rota.
Tamanho dos Dados (Payload Length) – 16 bits – O campo de tamanho de dados diz quantos dos bytes do pacote acompanham o cabeçalho. É algo parecido com o campo “tamanho total” do IPv4, mas tem nome diferente porque os bytes do cabeçalho não são mais contados.
Próximo Cabeçalho (Next Header) – 8 bits – Esse é o campo que permite dizer quais das seis extensões de cabeçalhos estão presentes, caso haja alguma. Foi ele quem permitiu transformar alguns campos do cabeçalho do IPv6 em campos opcionais.
Limite de Saltos (Hop Limit) – 8 bits – Esse é o campo utilizado para evitar que os pacotes tenham uma vida muito alta. Ele recebe um número, e a cada salto entre roteadores, este é decrementado de uma unidade. O campo equivalente no cabeçalho IPv4 é o campo “tempo de vida”, que determinava quantos segundos o pacote deveria existir.
Opções de Salto-a-Salto (Hop-by-Hop options)
- Este campo contém informações opcionais que devem ser
examinadas em cada nó percorrido ao longo de todo o caminho de entrega
do pacote. Até agora, somente uma opção foi criada, a de
suporte a datagramas que excedem 64Kb.
Roteamento (Routing) - Este cabeçalho é usado para listar um ou mais nós intermediários pelo qual o pacote tem a obrigação de passar em seu caminho de entrega.
Fragmentação (Fragmentation) - Este cabeçalho é usado pelo IPv6 para gerenciar os fragmentos de um datagrama quando a fonte precisa enviar pacotes que são maiores do que o tamanho máximo permitido em um caminho.
Autenticação (Authentication) - Este cabeçalho é usado para garantir a identidade da origem do pacote e será melhor explicado na parte segurança.
Cabeçalho de Encapsulamento (Encrypted Security Payload) - O cabeçalho de informações sobre criptografia pode oferecer meios para garantir que os dados sejam transmitidos de uma forma confidencial e integridade.
Opções de Destino (Destination Options)
- Este cabeçalho contém informações opcionais que
só serão examinadas pelo nó de destino.
Os endereços (Endereço da Fonte e Endereço da Destino) possuem dezesseis bytes, ao invés dos quatro bytes do IPv4. Este tamanho de 128 bits foi escolhido para dar um maior suporte à quantidade de endereços. Entretanto, o cabeçalho fica maior, prejudicando, assim, a transmissão devido ao maior “overhead” com o endereçamento.
Os endereços são escritos em oito grupos cada um com quatro dígitos hexadecimais, mas como vários endereços poderiam ter uma grande quantidade de zeros, três otimizações foram implementadas:
•
Os primeiros zeros de cada grupo poderiam ser omitidos
•
Um ou mais grupos de 16 bits em zero podem ser substituídos por um par
do símbolo gráfico de dois pontos.
•
Os endereços de IPv4 poderiam ser escritos com um par do símbolo
gráfico de dois pontos no início, e o endereço do jeito
que era escrito no cabeçalho antigo, com dígitos decimais.
|
Com
os 128 bits, teremos 2^128 endereços, o que é aproximadamente
3 x 10^38. Esse número é absurdamente grande, superior até
ao número de Avogadro, e podemos botar uma quantidade quase infinita
de endereços por cada metro quadrado da superfície da Terra ou
aproximadamente 5,6 x 10^28 endereços por habitante. Isso soluciona,
definitivamente, por muitas décadas o problema de escassez de endereços
no IPv4.
Para
dar suporte ao IPv6, o DNS deve ser capaz de introduzir um novo recurso para
armazenar os registros que contém endereços de IPv6. Todas essas
extensões foram construídas de modo a serem compatíveis
com o que já existe nas implementações de DNS.
Existem
8 tipos de registros no DNS para o IPv4:
|
Para poder suportar o IPv6, dois tipos de registro foram adicionados sendo estes o AAAA e o A6. Ambos têm a mesma finalidade que o registro A descrito acima. Os registros AAAA possuem uma formatação com tamanho fixo, enquanto que os A6 possuem uma formatação com tamanho variável.
|
•
O tamanho mínimo dos pacotes foi aumentado de 576 para 1280.
•
Todos os campos relacionados a fragmentação de pacotes foram removidos.
Se um nó envia um pacote que é considerado muito grande para retransmitir,
ao invés do roteador fragmentá-lo, ele envia uma mensagem de erro
e pede para o nó já enviar os pacotes com um tamanho menor. Isso
é mais eficiente do que obrigar o roteador fazer todo esse trabalho on-the-fly.
•
O campo Checksum foi removido, porque calculá-lo reduz drasticamente
a performance. Hoje em dia as redes são confiáveis, e também
os protocolos das camadas de enlace e transporte têm seus próprios
checksums, então não vale muito a pena tê-lo no cabeçalho
do IPv6.