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.


      3.2 Campos do Cabeçalho

                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.


      3.3 Campos Opcionais


                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.


      3.4 Endereçamento

                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.






Exemplo:
Endereço IPv6: 8000:0000:0010:0000:0123:4567:89AB:CDEF
Endereço IPv6 otimizado: 8000::10::123:4567:89AB:CDEF
Endereço IPv4: 192.31.20.46
Endereço IPv4 em IPv6: ::192.31.20.46 ou 0:0:0:0:0:0:192.31.20.46
 

               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.


      3.5 DNS


              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:

 
Registro
Significado
Descrição
SOA
Start of Authority
Informações sobre a zona de DNS implementada pelo servidor, tais como o e-mail do administrador, um número serial único e vários outros flags.
A
Adress
Número de IPv4 para o nome do host descrito nele.
MX
Mail
Endereço do host onde serão aceitos os e-mails enviados para o domínio.
NS
Name Server
Endereço dos sevidores DNS do domínio.
CNAME
Canonical Name
Criação de “apelidos” para um nome de uma máquina.
PTR
Pointer
Geralmente usado para associar um endereço de IP a um nome, que é o contrário de associar um nome a um endereço de IP. Isso é chamado de “reverse lookup”.
HINFO
Host INFO
Texto em ASCII com o tipo de máquina, qual o sistema operacional, etc.
TXT
Text
Texto em ASCII com outras informações.
 

              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.

 
Exemplo de uma tabela de registros de DNS para eci.ufrj.br:
 
( Cria domínio eci.ufrj.br, dando informações a ele com textos e seu servidor de email )
eci.ufrj.br 86400 IN SOA star boss (9527,7200,7200,241920,86400)
eci.ufrj.br 86400 IN TXT “Engenharia de Computacao e Informacao”
eci.ufrj.br 86400 IN TXT “Universidade Federal do Rio de Janeiro”
eci.ufrj.br 86400 IN MX mail.eci.ufrj.br
 
( Domínios ftp.eci.ufrj.br e www.eci.ufrj.br são “apelidos da máquina mestre.eci.ufrj.br )
ftp.eci.ufrj.br 86400 IN CNAME mestre.eci.ufrj.br
www.eci.ufrj.br 86400 IN CNAME mestre.eci.ufrj.br
 
( Indica que os e-mails enviados para aaa.eci.ufrj.br serão enviados ao servidor mail.eci.ufrj.br , e também indica o endereço dessa máquina e seu sistema operacional )
aaa.eci.ufrj.br 86400 IN HINFO i686 FreeBSD
aaa.eci.ufrj.br 86400 IN A 146.164.51.51
aaa.eci.ufrj.br 86400 IN MX mail.eci.ufrj.br
 
( Criam-se duas estações de trabalho, que não são capazes de ser endereçadas por e-mail, com informações sobre qual é a máquina e qual é o endereço de IP)

designgrafico IN A 146.164.51.55
IN HINFO Mac MacOSX

impressora IN A 146.164.51.57
IN HINFO “HP Laserjet”

 
( ccc.eci.ufrj.br tem endereço IPv4, enquanto bbb.eci.ufrj.br e ddd.eci.ufrj.br têm endereços em IPv6 utilizando registro AAAA )
bbb.eci.ufrj.br 86400 IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0
ccc.eci.ufrj.br 86400 IN A 146.164.51.52
ddd.eci.ufrj.br 86400 IN AAAA 2345:000E:EB22:0001:1234:5678:9ABC:DEF0
 
( eee.eci.ufrj.br e fff.eci.ufrj.br têm endereços em IPv6 utilizando registro A6 )
eee.eci.ufrj.br 86400 IN A6 0 2345:00C1:CA11:1:1:11:111:1111
fff.eci.ufrj.br 86400 IN A6 0 5345:00C2:CB12:1:1:14:151:1671
 
 

 

      3.6 Outras Mudanças

              • 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.