Protocolo da Internet (IP): as versões IPv4 e IPv6
O Internet Protocol (IP) é o protocolo que permite a comunicação entre todos os dispositivos dentro da rede. Conheça suas duas versões e as principais diferenças entre elas.
Por Lucas Danrley Cajé de Souza
Segundo projeções, é esperado que bilhões de dispositivos estejam conectados à internet nos próximos anos. De fato, com o advento dos smartphones e o surgimento da internet das coisas (IoT), a quantidade de equipamentos conectados à rede é muito grande, diferente do que imaginavam os criadores dos primeiros computadores no século passado
O conceito de internet é simples, segundo Ross e Kurose (2010) a internet é uma rede de computadores que interconecta milhares de dispositivos computacionais ao redor do mundo e, para que isso seja possível, é necessário a utilização de protocolos. O protocolo mais importante e mais conhecido da internet é o Internet Protocol IP, do qual há duas versões: IPv4 (versão 4) e IPv6 (versão 6).
O IPv4 é a versão mais antiga do protocolo. Nela, os pacotes, também chamados de datagramas, têm o formato e organização dos bits conforme a Figura 1, dos quais serão tratados os campos mais importantes. O campo versão é um número de 4 bits que define a versão do datagrama em questão, é por meio dela que um roteador, no meio de um trajeto, sabe como interpretar o restante do pacote. Com várias opções nesse datagrama, o comprimento de cabeçalho, que possui também 4 bits, determina onde de fato os dados começam. O tipo de serviço possui 8 bits que possibilitam a diferenciação dos pacotes em parâmetros como baixo atraso, alta vazão e confiabilidade. O comprimento do datagrama possui 16 bits e mede o comprimento total do pacote, somando o cabeçalho com os dados.
Figura 1. Formato de um datagrama IPv4. [Fonte: Ross e Kurose (2010)]
Os campos de endereço mostrados representam os dispositivos de origem e destino do cabeçalho, já o tempo de vida é necessário para garantir que os pacotes não fiquem trafegando na rede por um longo tempo devido a algum erro. O campo de dados é o mais importante, pois ele possui o segmento para a camada de transporte, responsável de fato pelo transporte dos dados. Os demais campos são para verificação de erros e fragmentação do pacote.
Ainda por definição deste protocolo, cada dispositivo conectado à rede recebe um único endereço, denominado endereço IP, o qual possui 32 bits separados em 4 octetos de 8 bits cada. A representação dos endereços pode ser feita tanto em formato binário como em formato decimal, separados por ponto, o que facilita as operações já que serão números de 0 à 255. O endereço 192.168.0.1, por exemplo, seria, no formato binário, 11000000 10101000 00000000 00000001.
Além de identificar, o endereço IP também permite localizar um dispositivo dentro de uma rede. Ele é dividido em duas partes, onde a parte inicial é chamada prefixo de rede, capaz de identificar a rede a qual um pacote está sendo enviado. Já a parte final é chamado de identificador de interface, que identifica o dispositivo dentro da rede.
Nessa versão do protocolo IP, o formato de divisão dos identificadores é livre, sem um padrão definido de quantos bits são necessários para a identificação da rede e da interface. Para representar o prefixo de uma rede utiliza-se o menor IP possível para a rede, ou seja, os bits do identificador de interface são nulos, seguidos por uma barra e o número de bits do prefixo de rede, por exemplo: 192.168.0.0/16. Nesse exemplo, os 16 bits mais à esquerda são utilizados para identificar a rede, e os demais, as interfaces.
Os endereços IPv4 ainda podem ser divididos em classes, apresentadas na Figura 2. É fácil perceber, por exemplo, que a classe A possui, por definição, o primeiro octeto entre 1 e 127, sendo ele também o prefixo de rede. Dessa forma, essa classe possui 126 redes possíveis e aproximadamente 17 milhões de endereços por cada rede, por isso é indicada para redes com grande quantidade de dispositivos.
Para a classe B, o primeiro octeto está entre 128 e 191, e o prefixo de rede é /16, ou seja, os primeiro 16 bits definem a rede e os outros 16, as interfaces. Assim o número de redes disponíveis aumenta e o de endereços diminui, como é possível notar na quarta e quinta coluna, fazendo essa classe ser utilizada em redes de médio e grande porte.
A analogia é a mesma para os endereços da classe C, que é indicada para redes pequenas. As demais classes não são utilizadas para configurar redes, pois são classes especiais.
Figura 2. Quadro resumo das classes de endereço IP. [Fonte: http://escreveassim.com/2011/01/13/classe-dos-enderecos-ip/]
Como mencionado, cada endereço possui o comprimento de 32 bits, logo há um total de 2^32 (aproximadamente 4,3 bilhões) endereços possíveis, o que representou, ao longo dos anos, um problema, já que a quantidade de dispositivos aumentava e o risco de “faltar” endereços era evidente. A nova versão, oficializada em 2012, o IPv6, surge então para resolver tanto esse como outros problemas relacionados à segurança que não eram garantidos pela versão anterior.
Nessa nova versão, os datagramas têm o formato mostrado na Figura 3, na qual há menos campos, o que torna o processamento pelos roteadores mais rápido. O campo classe de tráfego possui 8 bits e é semelhante ao campo tipo de serviço do IPv4, já o rótulo de fluxo possui 20 bits e é utilizado para marcar o fluxo de um determinado pacote. Os endereços mostrados são, assim como para o IPv4, os endereços de origem e destino do cabeçalho, e o campo de dados também é semelhante a versão anterior. O comprimento de carga útil possui 16 bits e indica o tamanho (em bytes) da área de dados do datagrama já o limite de saltos, que possui 8 bits, é um valor que é decrementado de uma unidade cada vez que o pacote passa por um roteador, assim, quando o valor chega a zero o pacote pode ser descartado.
Figura 3. Formato de um datagrama IPv6. [Fonte: http://jkolb.com.br/protocolo-ip-ipv4-e-ipv6/]
No endereçamento IPv6 são utilizados 128 bits, o que deixa a disposição 2^128 (ou 3,4×〖10〗^38) endereços possíveis, assim, não há chances dos endereços se esgotarem. Além disso, o padrão de representação mudou. Como a quantidade de bits é elevada, utiliza-se 8 conjuntos de 16 bits cada, chamados de hexadecatetos, separados por dois pontos. Há ainda a possibilidade de abreviação de números 0 quando estão a esquerda em cada hexadecateto. Um exemplo de endereço IPv6 é 2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1.
Assim como no IPv4, nessa versão há também a diferenciação entre os bits que identificam os prefixos de rede e interface, porém o padrão já é definido: os primeiros 64 bits são para o prefixo de rede e os outros 64 para o prefixo de interface. Uma outra vantagem do IPv6 é o endereçamento hierárquico, que permite a simplificação no roteamento dos pacotes e diminui a carga de processamento nos roteadores.
O momento atual é de transição da versão 4 para a versão 6, no qual as duas versões vem funcionando paralelamente. A técnica que é utilizada para que as duas versões funcionem ao mesmo tempo é chamada pilha dupla. Existem ainda outras duas, são elas a implantação de túnel, a qual permite que diferentes redes IPv4 estabeleçam comunicação com redes IPv6 (ou vice versa) e a tradução, que permite essa comunicação por meio da conversão de pacotes. Essas técnicas vêm garantindo que a nova versão do protocolo IP seja inserida gradativamente na rede.
Referências:
Como funciona o protocolo IP. Disponível em https://www.devmedia.com.br/como-funciona-o-protocolo-ip/17494. Acesso em 25 de janeiro de 2018.
Os endereços IP não são todos iguais – parte 1. NICbrvideos. Disponível em https://www.youtube.com/watch?v=jnuHODaLcO8&index=1&list=PLQq8-9yVHyOZF5bSWrhUu7aMiwyiAvuhQ. Acesso em 25 de janeiro de 2018
Protocolo IP, IPv4 e IPv6. Juliana Jenny Kalb. Disponível em http://jkolb.com.br/protocolo-ip-ipv4-e-ipv6/. Acesso em 25 de janeiro de 2018.
Redes de Computadores e a Internet: Uma abordagem Top-Down. ROSS, Keith e KUROSE, James. Pearson, 2010.
Transição. JIPv6. Disponível em http://ipv6.br/post/transicao/. Acesso em 25 de janeiro de 2018.
|