Característica do IPv6

 

O protocolo IPv6 proposto mantém muitas das características que contribuíram para o sucesso do IPv4. Basicamente são as mesmas características da versão 4, com algumas modificações. Por exemplo, o IPv6 ainda aceita entrega sem conexão ( isto é, permite que cada datagrama seja roteado independentemente ), permite que o transmissor escolha o tamanho de um datagrama e requer que o transmissor especifique o número máximo de passos da rota que um datagrama pode fazer antes de ser concluído. Como poderemos constatar, o IPv6 também retém a maioria dos conceitos fornecidos pelas opções do IPv4, inclusive os recursos para fragmentação e roteamento de origem.

A despeito de muitas semelhanças conceituais, o IPv6 muda a maioria dos detalhes do protocolo. O IPv6 usa endereços maiores e acrescenta algumas características novas. Mais importante, revisa completamente o formato de datagrama, substituindo o campo de opções de comprimento variável do IPv4 por uma série de cabeçalhos de formato fixo.

As principais mudanças introduzidas pelo IPv6:

  1. Endereços Maiores. O novo tamanho de endereço é a mudança mais visível. O IPv6 quadruplica o tamanho de um endereço de IPv4, d 32 bits para 128 bits. O espaço de endereço de IPv6 é tão grande que não pode ser consumido em futuro previsível.
  2. Formato Flexível de Cabeçalho. O IPv6 usa um formato de um datagrama inteiramente novo e incompatível. A contrário do IPv4, que usa um cabeçalho de datagrama de formato fixo onde todos os campos, exceto o de opções, ocupam um número fixo de octetos com um deslocamento fixo, o IPv6 usa um conjunto de cabeçalhos opcionais.
  3. Opções Aprimoradas. Como o IPv4, o IPv6 permite que um datagrama inclua informações de controle opcionais. O IPv6 inclui novas opções que oferecem recursos adicionais não disponíveis na versão atual.
  4. Suporte para Alocação de Recursos. O IPv6 substitui a especificação de tipo de serviço do IPv4 por um mecanismo que permite pré- alocação de recursos de rede. Particularmente, o novo mecanismo aceita aplicativos tais como vídeo em tempo real, que requer garantias de largura de banda e retardo de transmissão.
  5. Provisão para Extensão de Protocolos. Talvez a mudança mais significativa no IPv6 seja uma transição de um protocolo que especifique inteiramente todos os detalhes, para um protocolo que pode permitir recursos adicionais. A capacidade de extensão tem o potencial para permitir que a IETF adapte o protocolo a mudanças no hardware de rede considerando ou a novos aplicativos.

***

Formato Geral de um datagrama

O IPv6 muda o formato de datagrama. Como mostra a figura um datagrama IPv6 tem um cabeçalho básico de tamanho fixo.

Cabeçalho básico

Cabeçalho de extensão 1

.........

Cabeçalho de extensão N

dados

 

Os cabeçalhos de extensão são opcionais.

***

 

Formato do cabeçalho básico do IPv6

Embora deva acomodar endereços maiores, um cabeçalho básico IPv6 contém menos informações do que um cabeçalho de datagrama IPv4. As opções e alguns dos campos fixos que aparecem em um cabeçalho datagrama IPv4 foram removidos para cabeçalhos de extensão no IPv6. Em geral as mudanças no cabeçalho de datagrama refletem mudanças no protocolo:

Formato do cabeçalho básico de 40 octetos:

vers

rótulo de fluxo

 

comprimento do payload

 

próximo cabeçalho

 

limite de passos da rota

endereço de origem

 

endereço destino

 

Como mostra a figura o conteúdo e o formato do cabeçalho básico do IPv6. Vários campos de um cabeçalho básico do IPv6 correspondem diretamente aos campos de um cabeçalho do IPv4. Como no IPv4, o campo inicial vers de 4 bits especifica a versão do protocolo; vers sempre contém 6 em um datagrama IPv6. Como na versão atual, os campos endereço de origem e endereço de destino especificam os endereços do transmissor e do destinatário pretendido. No IPv6, entretanto, cada endereço requer 16 octetos. O campo limite de passos da rota corresponde ao campo tempo de vida do IPv4. Ao contrário do IPv4, que interpreta um tempo de vida como uma combinação de contagem de passos da rota e do tempo máximo, o IPv6 interpreta o valor atribuindo limite escrito ao número máximo de passos da rota que um datagrama pode fazer antes de ser descartado.

O IPv6 trata especificações de comprimento de datagrama de um modo novo. Primeiro, visto que o tamanho do cabeçalho básico é fixado em 40 octetos, o cabeçalho básico não inclui um campo de comprimento de cabeçalho. Segundo, o IPv6 substitui o campo de comprimento de datagrama do IPv4 por um campo comprimento de carga(payload) de 16 bits que especifica o número de octetos transportados em um datagrama, excluindo o próprio cabeçalho. Assim, um datagrama do IPv6 pode conter 64K de octetos de dados.

Um novo mecanismo no IPv6 aceita a reserva de recursos e permite que um roteador associe cada datagrama a uma dada alocação de recursos. A abstração considerada, um fluxo, consiste em um caminho de uma interligação em redes, ao longo do qual os roteadores intermediários garantem uma qualidade específica de serviços. Por exemplo, dois aplicativos que precisem enviar vídeo podem estabelecer um fluxo no qual o roteador da transmissão e a largura de banda sejam garantidos. Reciprocamente, um provedor de rede pode exigir que um assinante especifique a qualidade de serviços desejada e que , a seguir, use um fluxo para limitar o tráfego que um computador específico ou aplicativo envia. Note que os fluxos podem também ser usados dentro de determinada organização para gerenciar recursos de redes e assegurar que todos os aplicativos recebam uma cota generosa.

O campo rótulo de fluxos do cabeçalho básico contém informações que roteadores usam para associar um datagrama a um fluxo e prioridade específicos. O campo está dividido em 2 subcampos: classeT de 4 bits e identificador de fluxo de 24 bits. Classe T especifica a classe de tráfego para o datagrama. Valores de 0 a 7 são usados para especificar a sensibilidade ao tempo de tráfego controlado por fluxo. O campo restante contém um identificador de fluxo. A origem escolhe um identificador de fluxo ao estabelecer um fluxo. Não há conflito potencial entre computadores porque um roteador usa a combinação de endereço de origem de datagrama e o identificador de fluxo , ao associar um datagrama a um fluxo específico.

Para resumir:

Cada datagrama do IPv6 começa por um cabeçalho básico de 40 octetos que inclui campos para os endereços de origem e destino, o limite máximo de passos da rota, o rótulo de fluxo e o tipo do próximo cabeçalho. Assim, um datagrama do IPv6 deve conter no mínimo 40 octetos, além dos dados.

***

 

Cabeçalhos de extensão do IPv6

 O paradigma de um cabeçalho básico fixo, seguido de um conjunto de cabeçalhos de extensão opcionais, foi escolhido como uma acomodação entre a generalidade e a eficiência. Para ser totalmente geral, o IPv6 precisa incluir mecanismos a fim de aceitar funções como fragmentação, roteamento de origem e de autenticação. Entretanto, a opção por alocar campos fixos no cabeçalho de datagrama para todos os mecanismos; o grande tamanho de endereço do IPv6 exacerba a ineficiência. Por exemplo, ao enviar um datagrama através de uma única rede local, um cabeçalho que contenha campos de endereço vazios pode ocupar uma parcela substancial de cada quadro. Mais importante, os projetistas verificaram que ninguém pode prever quais recursos serão necessários.

O paradigma de cabeçalho de extensão do IPv6 funciona de forma semelhante às opções da versão atual – um transmissor pode optar por escolher quais cabeçalhos de extensão incluir em determinado datagrama e quais omitir. Assim, os cabeçalhos de extensão fornecem flexibilidade máxima. Resumindo:

Os cabeçalhos de extensão do IPv6 são semelhantes às opções do IPv4. Cada datagrama inclui cabeçalhos de extensão para aqueles recursos que o datagrama usa.

***

Análise de um datagrama do IPv6

Cada cabeçalho básico e de extensão contém um campo PRÓXIMO CABEÇALHO. O software em roteadores intermediários e no destino final que precisa processar o datagrama deve usar o valor no campo PRÓXIMO CABEÇALHO de cada cabeçalho, para analisar o datagrama. Para extrair todas as informações de cabeçalho de datagrama do IPv6, é necessária uma pesquisa seqüencial através dos cabeçalhos. A figura a seguir mostra os campos PRÓXIMO CABEÇALHO de 3 datagramas que contém zero, um e dois cabeçalhos de extensão.

Cabeçalho básico

Próximo = TCP

Segmento TCP

Cabeçalho básico

Próximo = TCP

Cabeçalho de rota

Próximo = TCP

Segmento TCP

Cabeçalho básico

Próximo = TCP

Cabeçalho de rota

Próxima = TCP

Cabeçalho de autoridade

Próximo = TCP

Segmento TCP

 

 Naturalmente, , analisar um datagrama do IPv6 que tem apenas um cabeçalho básico e dados é tão eficiente quanto analisar um datagrama do IPv4. Mais ainda, veremos que os roteadores intermediários raramente precisam processar todos os cabeçalhos de extensão.

***

Fragmentação e remontagem do IPv6

Como na versão atual, o IPv6 planeja para que o destino final execute a remontagem do datagrama. Entretanto, os projetistas tomaram uma decisão inusitada sobre a fragmentação. Lembre-se de que o IPv4 requer que um roteador intermediário fragmente qualquer datagrama que seja grande demais para a MTU da rede sobre a qual precise viajar. No IPv6, a fragmentação está restrita à própria origem. Antes de enviar tráfego, uma origem precisa executar uma técnica de descoberta de caminho MTU para identificar a MTU mínima ao longo do caminho até o destino. Antes de enviar um datagrama, a origem o fragmenta de tal modo que cada fragmento seja menor do que a MTU do caminho. Assim, a fragmentação é fim-a-fim. Nenhuma fragmentação necessita ocorrer em roteadores intermediários.

O cabeçalho básico do IPv6 não contém campos análogos aos campos usados para fragmentação em um cabeçalho do IPv4. Em vez disso, quando a fragmentação é necessária, a origem insere um pequeno cabeçalho de extensão após o cabeçalho básico de cada fragmento.

Próximo cabeçalho – 8bits

Reservado – 8bits

Deslocamento de fragmento –13bits

MF- 3bits

Identificação de datagrama


A figura mostra o conteúdo de um cabeçalho de Extensão de Fragmento. O IPv6 retém parte da fragmentação do IPv4. Cada fragmentação precisa ser um múltiplo de 8 octetos. Um bit no campo MF marca o último fragmento como o bit de MAIS FRAGMENTOS do IPv4 ; e o campo identificação de datagrama transporta uma única ID que o receptor usa para agrupar fragmentos.

***

A conseqüência da fragmentação fim-a-fim

A motivação para o uso da fragmentação fim-a-fim reside em sua habilidade para reduzir o overhead em roteadores e permitir que cada roteador lide com mais datagramas por unidade de tempo. Na realidade, o overhead de CPU, requerido para a fragmentação do IPv4, pode ser significativo – em um roteador convencional, a CPU pode chegar a 100% de utilização se o roteador fragmentar muitos ou todos os datagramas que recebe. Entretanto, a fragmentação fim-fim tem uma conseqüência importante: muda um pressuposto fundamental sobre a Internet.

Para entender a conseqüência da fragmentação fim-afim, lembre-se de que o IPv4 é projetado para permitir que as rotas mudem a qualquer momento. Por exemplo, se uma rede ou roteador falhar, o tráfego poderá ser roteado de novo, ao longo de um caminho diferente. A principal vantagem de tal sistema é a flexibilidade – o tráfego pode ser roteado ao longo de um caminho alternativo, sem interromper os serviços e sem informar a origem ou destino. No IPv6 , entretanto, as rotas não podem ser mudadas tão facilmente, pois uma mudança em uma delas pode também mudar a MTU de Caminho. Se a MTU de Caminho ao longo da rota origina, há duas alternativas: ou um roteador intermediário deve fragmentar o datagrama ou a origem deve ser informada. A questão pode ser resumida:

Um protocolo de interligação em redes que usa a fragmentação fim-a-fim requer que um transmissor descubra a MTU de Caminho para cada destino e fragmentar qualquer datagrama de partida que seja maior do a MTU de Caminho. A fragmentação fim-a-fim não concilia mudanças de rota.

Para solucionar o problema de rota que afetam a MTU de Caminho, o IPv6 permite que roteadores intermediários passem por IPv6 através de IPv6. Quando um roteador intermediário precisa fragmentar um datagrama, o roteador não insere um cabeçalho de extensão de fragmento, nem muda de campos do cabeçalho básico. Em vez disso, o roteador intermediário cria um datagrama inteiramente novo que encapsula o datagrama original como dados. O roteador divide o novo datagrama em fragmentos, repetindo o cabeçalho básico e inserindo um cabeçalho de extensão de fragmentos em cada um deles. Finalmente, o roteador envia cada fragmento ao destino final. Ali, o datagrama original pode ser formado reunindo-se em um datagrama os fragmentos chegados e extraindo-se a parte dos dados.

 

***

 

Roteamento de origem do IPv6

O IPv6 retém a capacidade para que um transmissor especifique uma rota de origem livre. Diferentemente do IPv4, em que o roteamento de origem é fornecido por opções, o IPv6 usa cabeçalho de extensão à parte. Como mostra figura a seguir, os campos do Cabeçalho de Roteamento correspondem aos campos de uma opção de rota de origem do IPv4. O cabeçalho contém uma lista de endereços que especificam os roteadores intermediários através dos quais o datagrama deve trafegar. O campo NÚMERO DE ENDEREÇOS especifica o número total de endereços da lista e o campo PRÓXIMO ENDEREÇO especifica o próximo endereço para o qual o datagrama deverá ser enviado.

próximo cabeçalho – 8bits

Tipo de roteamento

8 bits

Número de endereços

8 bits

Próximo endereço

8 bits

reservado

Primeiro endereço

Primeiro endereço

:

:

 

***

 

Opções de IPv6

Talvez pareça que os cabeçalhos de extensão do IPv6

Substituam completamente as opções do IPv4. Entretanto, os projetistas propõem 2 cabeçalhos de extensão adicionais para conciliar qualquer informação variada não incluída em outros cabeçalhos de extensão. Os cabeçalhos adicionais consistem em um Cabeçalho de Extensão entre Passos da Rota e um cabeçalho de Extensão Fim-a-Fim. Como os nomes indicam, os 2 cabeçalhos de opção separam o conjunto de opções que deverão ser examinadas em cada passo da rota, do conjunto daquelas que somente são interpretadas no destino.

Próximo cabeçalho

Comprimento de cabeçalho

Uma ou mais opções

Como de hábito, o campo PRÓXIMO CABEÇALHO fornece o tipo do cabeçalho seguinte. Já que um cabeçalho de opção não tem tamanho fixo, o campo denominado COMPRIMENTO DE CABEÇALHO especifica o comprimento total do cabeçalho. A área denominada UMA OU MAIS OPÇÕES representa uma seqüência de opções individuais. Cada opção individual é codificada com tipo, comprimento e valor; as opções não são alinhadas ou preenchidas.

As opções do IPv6 seguem a mesma forma que as opções da versão atual. Cada opção começa por um campo TIPO de um octeto, seguido de um campo COMPRIMENTO. Se a opção requer dados adicionais, os octetos que compreendem o VALOR seguem o campo COMPRIMENTO.

Os 2 bits de ordem alta de cada campo TIPO de opção especificam como um host ou roteador poderá dispor do datagrama se ele não compreender a opção:

***

 

Tamanho do espaço de endereço do IPv6

Em IPv6, cada endereço ocupa 16 octetos, 4 vezes maior que a versão atual. O espaço grande de endereço garante que o IPv6 pode tolerar qualquer esquema razoável de atribuição de endereço. De fato, se posteriormente os projetistas decidiram mudar o esquema de endereçamento, o espaço de endereço será suficiente grande para acomodar uma nova atribuição.

É difícil entender o tamanho do espaço de endereço de IPv6. Um modo de examiná-lo consiste em relacionar a magnitude ao tamanho da população: o espaço de endereço é tão grande que cada pessoa do planeta pode Ter endereços suficientes para ter sua própria interligação em redes tão grande quanto a Internet atual. Um outro modo de compreender é relacionar ao esgotamento de endereços possíveis. Um número inteiro de 16 octetos pode conter 2 128 valores. Se os endereços forem atribuídos à razão de um milhão de endereços a cada microssegundo, serão necessários mais de 20 anos para atribuir todos os endereços possíveis.

***

Notação Hexadecimal no IPv6

Embora solucione os problemas de capacidade insuficiente, o tamanho grande do endereço cria um problema novo e interessante: as pessoas que mantêm interligações em redes precisam ler, dar entrada e manipular tais endereços. Obviamente, a notação binária é indefensável. Contudo, a notação decimal pontuada, usada no IPv4, também não torna tais endereços suficientemente compactos. Para compreender, considere o número de 128 bits, com um exemplo, expresso na notação decimal pontuada:

104.230.140.100.255.255.0.0.17.128.150.255.255

Para ajudar o endereço a tornar-se ligeiramente mais compacto e mais fácil de dar entrada, os projetistas do IPv6 propõem o uso da notação hexadecimal de dois pontos, na qual o valor de cada conjunto de 16 bits é representado em hexadecimal separado por dois pontos. Por exemplo, quando o valor mostrado acima em notação decimal pontuada tiver sido convertido em notação hexadecimal de dois pontos e impresso usado o mesmo espaçamento, ele se tornará:

68E6:8C64:FFFF:FFFF:0:1180:96A:FFFF

A notação hexadecimal de dois pontos tem a vantagem óbvia de requerer menos dígitos e menos caracteres separadores do que a decimal pontuada. Além disso, a notação hexadecimal de dois pontos inclui 2 técnicas que a tornam extremamente útil. Primeiro, a notação hexadecimal de dois pontos permite a compressão de zero, em que uma string de zeros repetidos é substituído por um par de dois pontos. Por exemplo, o endereço:

FF05:0:0:0:0:0:0:B3

Pode ser escrito: FF05::B3

Para assegurar que a compressão de zero produz uma interpretação não-ambígua, a proposta determina que ela pode ser aplicada apenas uma vez em qualquer endereço. A compressão de zero é essencialmente útil quando usada com o esquema de atribuição de endereço proposto, pois muitos endereços vão conter strings de zero contíguos. Segundo, a notação hexadecimal de dois pontos incorpora sufixos de notação hexadecimal pontuada. Veremos que tais combinações destinam-se ao uso durante a transição do IPv4 para o IPv6. Por exemplo, o string a seguir é uma notação hexadecimal válida, de dois pontos:

0:0:0:0:0:0:128.10.2.1

Observe que, embora os números separados cada um por dois pontos especifiquem o valor de uma quantidade de 16 bits, cada número da parte de notação hexadecimal pontuada especifica o valor de um octeto. Naturalmente, a compressão de zero pode ser usado com o número acima a fim de produzir um string equivalente de notação hexadecimal de dois pontos que parece ser totalmente semelhante a um endereço de IPv4.

***

Três tipos básicos de endereço IPv6

Como na versão atual, o IPv6 associa um endereço a uma conexão de rede específica, não a um computador específico. Assim, atribuições de endereço são semelhantes a IPv4: um roteador IPv6 tem dois ou mais endereços, e um host IPv6 com uma conexão de rede precisa de apenas um endereço. O IPv6 também retém ( e estende ) a hierarquia de endereço de IPv4 em que um prefixo é atribuído a uma rede física. Entretanto, para facilitar atribuição e a modificação de endereço, o IPv6 permite que vários prefixos sejam atribuídos a determinada rede e permite que um computador tenha vários endereços simultâneos atribuídos a determinada interface.

Além de permitir vários endereços simultâneos por conexão de rede, o IPv6 expande e, em alguns casos, unifica endereços especiais da versão atual. Geralmente, um endereço de destino de um datagrama situa-se em um uma das três categorias:

Unicast – O endereço de destino especifica um único computador ( host ou roteador); o datagrama deverá ser roteado para o destino ao longo do caminho mais curto possível.

Cluster – O destino é um conjunto de computadores que juntos dividem um único prefixo de endereço (ex.: vinculam-se à mesma rede física ). O datagrama deverá ser roteado para o grupo ao longo de um caminho o mais curto possível e, então, entregue a exatamente um membro do grupo (ex.: o membro mais próximo ).

Multicast – O destino é um subconjunto de computadores, possivelmente em diversos locais. Uma cópia do datagrama será entregue a cada membro do grupo usando hardware multicast ou broadcast, conforme o caso.

 

O IPv6 não usa os termos difusão ( broadcast) ou difusão direta para se referir à entrega a todos os computadores de uma rede física ou sub-rede lógica IP. Em vez disso, usa o termo multicast e trata difusão como uma forma especial de multicast.

***

Atribuição do espaço de endereço do IPv6 proposto

A questão de como compartilhar o espaço de endereço tem gerado muita polêmica. Há dois pontos centrais: O primeiro ponto focaliza o problema prático de delinear uma hierarquia de autoridade. Ao contrário da Internet atual, que usa uma hierarquia de 2 níveis de prefixo de rede e de sufixo de host, o grande espaço de endereço no IPv6 permite uma hierarquia de vários níveis ou várias hierarquias. O segundo ponto focaliza a eficácia computacional. Independente da hierarquia de autoridade que atribui endereços, um roteador deve examinar cada datagrama e escolher um caminho para o destino. Para manter baixo o custo de roteadores de alta velocidade, o tempo de processamento exigido para a escolher um caminho deve ser mantido curto.

***

Codificação e transição do endereço do IPv4

Prefixo básico

Tipo de endereço

Parte do espaço de end.

0000 0000

Reservado(compatível Ipv4)

1/256

0000 0001

Reservado

1/256

0000 001

Endereços NSAP

1/128

0000 010

Endereços IPX

1/128

0000 011

Reservado

1/128

0000 110

Reservado

1/128

0000 100

Reservado

1/128

0000 101

Reservado

1/128

0000 110

Reservado

1/128

0000 111

Reservado

1/128

0001

Reservado

1/16

001

Reservado

1/8

010

Provedor – unicast atribuído

1/8

011

Reservado

1/8

100

Reservado para Geográfico

1/8

101

Reservado

1/8

110

Reservado

1/8

1110

Reservado

1/16

1111 0

Reservado

1/32

1111 10

Reservado

1/64

1111 110

Reservado

1/128

1111 1110

Disponível para uso local

1/256

1111 1111

Usado para multicast

1/256

Mais de 72% do espaço foi reservado para uso futuro, sem incluir a seção reservada para endereços geográficos. Embora o prefixo 0000 0000 tenha o rótulo reservado, os projetistas planejam usar nessa seção uma parte de endereços para codificar endereços de IPv4. Em particular, qualquer endereço que comece com 80 bits zeros seguidos de 16 bits um ou 16 bits zero contém um endereço de IPv4 nos 32 bits de ordem baixa. A codificação será necessária durante uma transição do IPv4 para IPv6, por duas razões. Primeira, um computador pode escolher uma atualização de software do IPv4 para IPv6 antes que lhe tenha sido atribuído um endereço válido do IPv6. Segunda, um computador que execute o apenas o software do IPv4.

Dispor de uma forma de codificar um endereço de IPv4 em um endereço de IPv6 não soluciona o problema de tornar as duas versões interoperacionais. Além da codificação de endereços, a conversão é necessária. Para usar um conversor, um computador IPv6 gera um datagrama que contenha a codificação do IPv6 do endereço destino, converte o datagrama do IPv4 para o IPv6 e o devolve à origem do IPv6.

Pode parecer que a conversão de endereços de protocolo poderá falhar, visto que os protocolos de camadas mais altas verificam a integridade do endereço. O TCP e o UDP usam um pseudocabeçalho em sua computação da soma de verificação. O pseudocabeçalho inclui ambos os endereços de protocolo, o de origem e o de destino. Assim a mudança de tais endereços poderia afetar a computação . Entretanto, os projetistas planejam permitir que TCP ou UDP de uma máquina do IPv4 se comunicasse com o protocolo de transporte correspondente em uma máquina do IPv6. Para impedir que a soma de verificação não coincida, foi escolhida a codificação do IPv6 de um endereço de ipv4, de modo que a soma de verificação de complemento de um de 16 bits seja idêntica tanto para uma endereço de IPv4 como a codificação do IPv6 do endereço. O ponto é:

Além de escolher detalhes de um novo protocolo IP, o trabalho da IETF no IPng tem tido como objetivo procurar uma forma de transição de um protocolo atual para um novo protocolo. Particularmente, o protocolo atual para IPv6 permite que uma pessoa codifique um endereço de IPv4 dentro de um endereço de IPv6, de modo que a conversão do endereço não altere a soma de verificação do pseudocabeçalho.

volta ao menu | < volta | > avança