Datagrama IPv4
Um datagrama IP, consiste de duas partes: cabeçalho e o campo de dados que transporta o IP de origem e o IP de destino.
O cabeçalho possui uma parte fixa de 20 bytes e um campo “Options” de tamanho variável. O formato do datagrama IPv4 é mostrado na figura abaixo: O campo “Version”, armazena a versão do protocolo a que o datagrama pertence, na versão 4 possui tamanho de 4 bits (0100). O segundo campo, de quatro bits, é o “IHL” (acrônimo para Internet Header Length, ou seja, Comprimento do Cabeçalho da Internet), com o número de palavras de 32 bits no cabeçalho IPv4. Como o cabeçalho IPv4 pode conter um número variável de opções, este campo essencialmente especifica o offset para a porção de dados de um datagrama IPv4. O campo “Type of service”, representa os 8 bits seguintes. A intenção original era para um nó (roteador) especificar uma preferência para como os datagramas poderiam ser manuseados assim que circulariam pela rede. Na prática, o campo ToS não foi largamente implementado. O campo “Total Length” é o campo seguinte de dezesseis bits do IPv4, define todo o tamanho do datagrama, incluindo cabeçalho e dados, em bytes de oito bits. O datagrama de tamanho mínimo é de vinte bytes, e o máximo é 64 Kb. O tamanho máximo do datagrama que qualquer nó requer para estar apto para manusear são 576 bytes, mas os roteadores mais modernos manuseiam pacotes bem maiores. O campo “Identification” é um campo de identificação de 16 bits. Este campo é usado principalmente para identificar fragmentos identificativos do datagrama IP original. Flags → O campo é utilizado para identificar e controlar fragmentos, o campo é composto por três (3) bits. Offset → O campo é constituído por 13 (treze) bits, o offset permite que o receptor do datagrama determine o local do fragmento do pacote IP original. TTL → O campo (time to live) ou tempo de vida do pacote, é composto por oito (8 bits), o campo tem a funcionalidade de evitar que o pacote fique percorrendo em loop sem encontrar o destino final, evitando que o datagrama IP persista. Sem o campo TTL, teríamos muitas requisições na rede mundial (Internet), o que causaria uma enorme lentidão da rede (delay), ou até mesmo, o travamento de alguns dispositivos de borda (roteadores ). O campo TTL limita a vida útil do pacote em segundos, onde cada roteador que o datagrama atravessa, é decrementado o valor do TTL que se inicia no número cento e vinte e oito (128), quando o valor chega a 0 (zero), o pacote é descartado, o TTL é considerado como uma contagem de hops (saltos). Protocol → O campo é constituído por oito (8) bits, é neste campo que é realizado a definição de qual é o protocolo usado na porção de dados de um pacote IP. Existe a possibilidade de ser o TCP, mas há também o UDP e outros. A numeração que se aplica a todos protocolos da Internet é definida na RFC 1700. Checksum → O campo é responsável por detectar inconsistência no datagrama IP, realizando uma checagem cíclica de todos os campos de um datagrama e identificar se nos HOPS (saltos), onde o datagrama percorreu, se não houve nenhuma falha. Um pacote em trânsito é alterado por cada ponto (roteador) na rede por onde passa, e um destes pontos pode comprometer a integridade do pacote e o campo checksum é uma forma mais simples de detectar falhas no pacote IPv4. Endereço de origem e destino → O campo é responsável em trafegar os endereços IPv4 de origem e destino composto por 32 bits cada, segmentado em quatro octetos de oito bits. No caso do IPv6, o campo é composto por 128 bits cada endereço. A seguir, mostrarei as especificações do novo datagrama IPv6 e comentar as mudanças. |
|
Datagrama IPv6
Como vimos, o cabeçalho IPv4 é composto por 12 campos fixos, responsáveis por fazer com que o tamanho varie de 20 a 60 Bytes. Nesta seção, veremos as novas especificações do datagrama versão 6, que possui um total de apenas oito campos (incluindo source e destination address) e um valor fixo de 40 bytes para o cabeçalho.
Sendo assim, ele ficou mais flexível e eficiente com a adição de cabeçalhos de extensão que não precisam ser processados por roteadores intermediários. A nova versão do datagrama IPv6 ficou assim: Assim, o cabeçalho IPv6 ficou dividido nos seguintes campos: * O campo “Versão”, possui 4 bits representando a versão do datagrama 0110.
Gostaria de enfatizar algumas funcionalidades dos campos Traffic Class e Flow Label.
[Tanenbaum, 1997] Cabeçalhos de extensãoDiferente do IPv4, que inclui no cabeçalho base todas as informações opcionais, o IPv6 trata essas informações através dos cabeçalhos de extensão. As novas especificações do IPv6 definem seis cabeçalhos de extensão:
A criação dos cabeçalhos de extensão do IPv6, teve a finalidade de aumentar a velocidade de processamento nos roteadores. 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. Na próxima seção, veremos mais detalhes com relação aos cabeçalhos de extensão. |
|
Cabeçalhos de extensão
Antes de iniciarmos a seção sobre cabeçalhos de extensão, é importante analisarmos o formato e a lógica com que eles foram organizados.
Primeiramente, estes cabeçalhos devem ser transportados segundo uma ordem com o objetivo de evitar que os nós (roteadores) intermediários tenham que analisar toda a cadeia de cabeçalhos, para decidir quais cabeçalhos devem processar. Desta forma, os cabeçalhos mais importantes para o roteamento (nós intermediários), devem ser colocados antes daqueles cabeçalhos que são importantes apenas para os destinatários. A grande vantagem em termos de desempenho, é que os roteadores intermediários podem parar de processar os cabeçalhos do datagrama assim que encontrar algum cabeçalho de extensão encaminhado ao destinatário, com exceção das informações do cabeçalho de extensão hop-by- hop, que como veremos a seguir, devem ser analisados por todos roteadores intermediários, caso este cabeçalho de extensão esteja presente. Atualmente, há seis tipos de cabeçalhos de extensão, todos eles são opcionais, mas, se houver mais de um deles, eles aparecerão imediatamente depois do cabeçalho fixo e, na ordem listada:
Hop-by-hopO cabeçalho “hop-by-hop” é identificado pelo valor 0 (zero) no cabeçalho “Next Header” e possui, informações que todos os roteadores ao longo do caminho devem examinar. O formato do cabeçalho hop-by-hop, pode ser visto a seguir:
[Tanenbaum, 1997] O formato do cabeçalho de extensão hop-by-hop (jumbogramas) pode ser visto a seguir: Destination OptionsEste cabeçalho é identificado pelo valor 60 no campo “Next Header”, este cabeçalho deve ser processado apenas pelo host de destino. Ele é utilizado no suporte ao mecanismo de mobilidade ao IPv6, através da opção Home Address que contém o IP de origem do host móvel, quando está em trânsito. RoutingEste cabeçalho é identificado pelo valor 43 no campo “Next Header” e exibe um ou mais roteadores, que devem ser visitados no caminho para o destino. O formato do cabeçalho routing, pode ser visto a seguir:
[Tanenbaum, 1997] FragmentationEste cabeçalho é identificado pelo valor 44 no campo “Next Header”, e é utilizado quando o tamanho do pacote é maior do que o MTU – Unidade máxima de transferência em um meio físico.
[Tanenbaum, 1997] Authentication Header e Encapsulating Security PayloadEstes dois cabeçalhos de extensão são identificados pelos valores 51 e 52 nos campos “Next Header” e fazem parte do cabeçalho IPsec. O funcionamento do IPsec é o mesmo tanto na versão IPv4 quanto IPv6, mas a implementação e utilização foi facilitada na versão IPv6, pois os principais elementos do IPsec está integrada na versão do datagrama IPv6. ConclusãoNa minha opinião, existem muitos assuntos ligados ao Protocolo IPv6, e a Camada de Internet na arquitetura TCP/IP, por isso, uma série deles deixaram de ser explorados, como os protocolos ARP, RARP e ICMP. E também, os protocolos de rotemento OSPF (Open Shortest First) e o BGP (Border Gateway Protocol), devido à importância de cada um e a extensão do artigo. E viva o kernel !!! |