IPv6: Qualidade de Serviço e Segurança
Os campos Flow Label e Priority do cabeçalho do IPv6 podem ser usados por um host para identificar aqueles pacotes requerem tratamento especial a ser dado pelos roteadores, tais como qualidade de serviço não convencional e serviços do tipo tempo real. Esta facilidadeé importante para suportar aplicações que requerem uma garantia consistente de throughput, atraso (delay) e/ou jitter. Esses tipos de aplicações são normalmente as de multimídia e de tempo real.
O campo Flow Label de 24 bits do cabeçalho do IPv6 pode ser usado por um host para identificar os diferentes fluxos de informação que esse host trata. Conforme já citado acima, pode identificar pacotes com qualidade de serviço não convencional e serviços do tipo tempo real.
Um fluxo é uma seqüência dos pacotes enviados de um host de origem particular (unicast ou multicast) para um host de destino particular para os quais o host de origem deseja um tratamento especial a ser dado pelos roteadores. A natureza do tratamento especial pôde ser identificada por um protocolo do controle (por exemplo um protocolo de Resource Reservation) ou pela informação contida nos próprios pacotes (por exemplo, em uma opção do tipo Hop-by-hop).
Podem haver múltiplos fluxos ativos de uma origem a um destino, assim como algum tráfego que não é associado a nenhum fluxo. Um fluxo é identificado de forma única pela combinação de um endereço de origem e de um Flow Label diferente de zero. Os pacotes que não pertencem a um fluxo carregam um Flow Label com valor zero.
Um Flow Label é atribuída a um fluxo pelo nó de origem desse fluxo. Esses rótulos (labels) devem ser escolhidas de forma (pseudo-) randomica e uniforme na faixa de 1 a FFFFFF (hexa). A finalidade da alocação aleatória é fazer com que qualquer conjunto de bits do rótulo seja adequado para o roteador usar como chave durante o seu processo internos de pesquisa de estado de um determinado fluxo.
Todos os pacotes que pertencem ao mesmo fluxo devem ser enviados com o mesmo endereço da origem, o mesmo endereço de destino, e o mesmo rótulo do fluxo. Adicionalmente, outros campos do cabeçalho devem ser iguais para um mesmo fluxo, dependendo do tipo. Os roteadores pode eventualmente verificar esse tipo de consistência e gerar mensagens de erro, mas este não é um requisito fundamental.
Os roteadores estão livres para definirem o estado de um determinado fluxo, mesmo quando nenhuma informação explícita do estabelecimento do fluxo lhes foi fornecida através de um protocolo do controle, de uma opção do tipo Hop-by-hop, ou de outros meios.
O roteador pode também decidir guardar os resultados da etapas de processamento de um determinado fluxo para uso futuro para os demais pacotes. Os pacotes subseqüentes com o mesmo endereço de origem e o mesmo label podem então ser tratados consultando à informação armazenada, ao invés de verificar todos aqueles campos que, de acordo com as exigências do parágrafo precedente, podem ser considerados sem modificação do primeiro ao último pacote do fluxo.
O campo Priority de 4 bits do cabeçalho do IPv6 permite a um host de origem identificar a prioridade desejada de entrega de seus pacotes, relativa a outros pacotes da mesma origem. Os valores da prioridade são divididos em duas escalas:
Os valores 0 a 7 são usados para especificar a prioridade do tráfego para o qual o host de origem está fornecendo o controle do congestionamento, isto é, o tráfego que pode ser rejeitado em resposta ao congestionamento (por exemplo, o tráfego TCP).
Os valores 8 a 15 são usados para especificar a prioridade do tráfego que não pode ser rejeitado em resposta ao congestionamento (por exemplo, os pacotes de serviços do tipo tempo real que estão sendo enviados a uma taxa constante).
Para o tráfego sujeito ao controle de congestionamento, os seguintes valores da prioridade são recomendados para categorias particulares de aplicação:
"Filler" traffic (Ex.: netnews)
Unattended data transfer (Ex.: email)
Attended bulk transfer (Ex.: FTP, HTTP, NFS)
Interactive traffic (Ex.: telnet, X)
Internet control traffic (Ex.: Routing Protocols, SNMP)
Para tráfego não sujeito ao controle de congestionamento, o valor mais baixo da prioridade (8) deve ser usado para aqueles pacotes que o host de origem está mais disposto a tê-los rejeitado sob circunstâncias do congestionamento (por exemplo, tráfego de video de alta fidelidade), e o valor o mais elevado (15) deve ser usado para aqueles pacotes que o host de origem está menos disposto a tê-los rejeitados (por exemplo, tráfego de áudio de baixa fidelidade).
A Internet tem vários problemas de segurança e faltam mecanismos eficazes de Privacidade e Autenticação nas camadas abaixo da camada de aplicação. O IPv6 tenta remediar essa situação através de duas opções integradas que fornecem serviços de segurança. Estas duas opções podem ser usadas separadamente ou em conjunto para fornecer níveis diferenciados de segurança para usuários diferentes. Esta facilidade é muito importante porque as diversas comunidades de usuário têm necessidades distintas de segurança.
O primeiro mecanismo, denominado IPv6 Authentication Header, é um cabeçalho (header) de extensão que fornece autenticação e integridade (sem confidencialidade) aos datagramas do IPv6. Embora essa extensão seja independente do algoritmo e suportará diversas técnicas de autenticação, o uso de um algoritmo específico é proposto para assegurar a interoperabilidade ao longo de toda a Internet. Esta facilidade pode ser usada para eliminar uma parcela significativa de ataques na rede, incluindo ataques do tipo host masquerading.
O segundo cabeçalho de extensão de segurança disponível é o IPv6 Encapsulating Security Header. Este mecanismo fornece integridade e confidencialidade aos datagramas do IPv6. É mais simples do que alguns protocolos similares de segurança (por exemplo, SP3D, ISO NLSP) mas baseia-se no mesmo conceito de flexibilidade e independência de algoritmo. Para conseguir interoperabilidade na Internet, o uso de um algoritmo padrão também é sugerido.