Protocolo IPv6     

 

 

Cabeçalho

 

O IPv6 introduz um novo formato de cabeçalho (Figura 1). Em oposição ao anterior (Figura 2), todos os campos deste novo cabeçalho possuem tamanho fixo, totalizando 64 bytes. O fato de esse possuir um tamanho fixo acelera bastante o processamento dos pacotes pelos roteadores, visto que não há necessidade de calcular a extensão de certos campos, e nem o tamanho do cabeçalho como um todo. Além disso, ocorreu uma redução do números de campos utilizados, por meio da exclusão de campos de pouca utilidade prática. Este fato também contribui para a diminuição do tempo gasto em processamento pelos roteadores.

 

Cabeçalho IPv6

Figura 1 - Cabeçalho IPv6

 

Cabeçalho IPv4

Figura 2 - Cabeçalho IPv4

 

Dentre os campos que foram eliminados, dois que merecem destaque são os de Checksum e o de fragmentação.

A função do campo de Checksum era detetar erros que afetassem ao cabeçalho IP, sem detetar no entanto erros no restante do pacote. É fato que atualmente a maioria dos erros não é de transmissão, visto que os mecanismos de deteção de erros Ethernet e PPP são bastante eficientes, mas sim nos roteadores. Como os roteadores só alteram o campo Hop Limit (Time-to-live no IPv4), estes então terminam por recalcular o Checksum antes de retransmitir o pacote, o que pode causar a não deteção de possíveis erros. Além disso, vários roteadores, vizando aumento de performance, não verificavam mais este campo, terminando assim por torná-lo totalmente supérfluo.

Quanto ao campo fragmentação, este foi excluído, pois decidiu-se que pacotes não serão mais fragmentados por roteadores. Caso um roteador receba um pacote com tamanho maior que o permitido, descarta-lo-á e enviará uma mensagem ao host que o enviou, comunicando o ocorrido. Este host deverá então retransmitir o pacote na forma de pacotes menores. Desta forma há um ganho de performance no roteamento, pois é eliminada a necessidade de um roteador fragmentar vários pacotes.

 

Os campos que constituem então o cabeçalho IPv6 são:

  • Version (4 bits) - Versão do IP utilizada. No caso no IPv6, este campo vale 0110.

  • Priority (4 bits) - Indica a prioridade com a qual o pacote deve ser tratado.

  • Flow label (24 bits) - Identifica, juntamente com os campos Source Address e Destination Address, o fluxo ao qual o pacote pertence.

  • Payload Length (16 bits) - Tamanho, em octetos, do restante do pacote, após o cabeçalho.

  • Next Header (8 bits) - Indica o tipo do possível cabeçalho de extensão que segue o cabaçalho IPv6. Caso não esteja se utilizando cabeçalho de extensão, este campo indica a qual protocolo de transporte o pacote deve ser repassado.

  • Hop Limit (8 bits) - Número máximo de roteamentos que o pacote pode sofrer. O valor deste campo é decrementado a cada roteamento. Quando seu valor chega a zero o pacote é descartado. Similar ao campo Time to live do IPv4.

  • Source Address (128 bits) - Endereço do remetente.

  • Destination Address (128 bits) - Endereço de destino.

 

Os campos Priority e Flow Label têm por finalidade a facilitação de implementação de aplicações em tempo real e com Qualidade de Serviço (QoS). O primeiro determina a prioridade que um pacote ou grupo destes deve receber. Deve-se utilizar valores de 0 a 7 para aqueles que podem sofrer atraso, como por exemplo aplicações de ftp e http; e valores de 8 a 15 para aqueles com tráfico em tempo real, que não devem ser atrasados, como aplicações de vídeo e sons. Já o segundo campo, ainda em fase experimental, permitirá que dois hosts estabeleçam uma pseudo-conexão com características específicas. Esta conexão será unicamente identificada pelos endereços IP de envio e destino e pelo valor do campo Flow Label. Deste modo, será possível prover tratamento diferenciado para diferentes fluxos, de acordo com as necessidades de cada um.

 

Com o IPv6, eventuais "opções" que devam acompanhar o pacote são especificadas em cabeçalhos independentes (Extension Headers), que se agrupam após o cabeçalho IPv6. A utilização destes permitiu a simplificação do cabeçalho IPv6 e é indicada por meio do campo Next Header, que indica o tipo de cabeçalho que seque ao cabeçalho IPv6. Assim, alguns dos campos excluidos podem aparecer como extension headers caso haja necessidade. Os possíveis tipos e suas funções são:

  • Hop-by-Hop options - informações gerais para os roteadores;
  • Routing - rota completa ou parcial a ser seguida;
  • Fragmentation - gerenciamento de fragmentos de datagrama;
  • Authentication - verificação da indentidade do remetente
  • Encrypted security payload - informação sobre a criptografia
  • Destination options - informação adicional sobre o destinatário.

 

Estes cabeçalhos, caso sejam utilizados, devem aparacer entre o cabeçalho IPv6 e o bloco de dados (payload), conforme apresentado na Figura 3. Caso mais de um cabeçalho de extensão seja utilizado, estes devem seguir a ordem especificada acima.

 

Cabeçalho de Extensão

Figura 3 - Cabeçalho de Extensão

 

De acordo com a necessidade, novos tipos de cabeçalho de extensão podem ser criados, permitindo assim maior flexibilidade na adição de mais opções no futuro. Isto permitirá que o protocolo evolua, dentro de certos limites, à medida que haja necessidade.

 

[ Índice | Introdução | Cabeçalho | Endereçamento | Autoconfiguração ]
[ Segurança | Transição | Considerações Finais | Referências | Perguntas ]