Endereço IP (Internet Protocol)

Introdução

Você já parou para pensar como é que o seu computador ou o seu smartphone consegue acessar páginas na Web ou receber um arquivo que você decidiu baixar? Ou, ainda, na rede da empresa que você trabalha, como o seu PC consegue se comunicar com a máquina de alguém em outro andar? Isso acontece porque, tanto em redes locais quanto na rede mundial de computadores, a internet, cada dispositivo conectado tem um endereço único: o IP, sigla para Internet Protocol. A seguir, você descobrirá o que é endereço IP e verá características relacionadas, como classes IP e máscaras de sub-rede.

Antes de começarmos, é válido frisar que este texto trata do IPv4. Se você procura informações sobre a versão mais recente deste protocolo, acesse a  matéria O que é IPv6?.


TCP/IP

Há várias formas de estabelecer comunicação entre computadores. No entanto, os protocolos TCP/IP (sigla para Transmission Control Protocol/Internet Protocol) são a base para internet e para a grande maioria das redes locais (dentro de um prédio, por exemplo).

Em poucas palavras, o TCP/IP é um conjunto de protocolos, isto é, de padrões de comunicação. Grossamente falando, é como se fosse uma linguagem: se todos os computadores "falam" este idioma e respeitam suas regras, conseguem se comunicar e trocar informações.

Apesar de a sigla TCP/IP fazer referência a dois protocolos - Transmission Control Protocol e Internet Protocol -, o conjunto conta ainda com vários outros padrões, cada um sendo responsável por uma determinada tarefa.

Para facilitar a compreensão do TCP/IP, esta família de protocolos é organizada em camadas. Essencialmente, há cinco delas:

Camadas TCP/IP

5 - Camada Aplicação: onde estão as aplicações (programas) que fazem uso da rede. Contém protocolos como HTTP (Hypertext Transfer Protocol), DNS (Domain Name System) e FTP (File transfer Protocol);

4 - Camada Transporte: onde estão os protocolos responsáveis pelo envio/recebimento de dados, como o TCP em si e o UDP (User Datagram Protocol);

3 - Camada Rede: onde há o estabelecimento da rede em si, com endereçamento dos dispositivos conectados e tarefas de roteamento, por exemplo. É nesta camada que se encontra o Internet Protocol;

2 - Camada Link: onde estão tecnologias de rede (como Ethernet e 802.11) e os drivers que permitem que os dispositivos conectados se comuniquem;

1 - Camada Física: onde estão os componentes físicos, como modems, cabos e conectores de rede.

Vale frisar que, dependendo da literatura, é possível encontrar quatro camadas em vez de cinco. Além disso, há também um esquema alternativo chamado Modelo OSI (Open Systems Interconnection), que é organizado em sete camadas e também tem a função de descrever um conjunto de protocolos, mas o faz de maneira um pouco mais complexa.

Como você já sabe, cada protocolo tem uma função específica. O HTTP, por exemplo, faz a comunicação entre um computador cliente (como o seu) e um servidor na internet para que você possa visualizar páginas de sites. Já o FTP especifica um padrão para transferências de arquivos de uma máquina para outra.

Mas, neste texto, vamos conhecer detalhes do Internet Protocol, mais precisamente, do endereço IP.


O endereço IP

Quando você quer enviar uma carta a alguém, você... Ok, você não envia mais cartas; prefere e-mail ou deixar um recado no Facebook. Vamos então melhorar este exemplo: quando você quer enviar um presente a alguém, você obtém o endereço da pessoa e contrata os Correios ou uma transportadora para entregar. É graças ao endereço que é possível encontrar exatamente a pessoa a ser presenteada. Também é graças ao seu endereço - único para cada residência ou estabelecimento - que você recebe suas contas de água, aquele produto que você comprou em uma loja on-line, enfim.

Na internet, o princípio é o mesmo. Para que o seu computador seja encontrado e possa fazer parte da rede mundial de computadores, necessita ter um endereço único. O mesmo vale para websites, como o InfoWester: este fica em um servidor, que por sua vez precisa ter um endereço para ser localizado na internet. Isto é feito pelo endereço IP (IP Address), recurso que também é utilizado para redes locais, como a existente na empresa que você trabalha, por exemplo.

O endereço IP é uma sequência de números composta de 32 bits. Esse valor consiste em um conjunto de quatro sequências de 8 bits. Cada uma destas é separada por um ponto e recebe o nome de octeto ou simplesmente byte, já que um byte é formado por 8 bits. O número 172.31.110.10 é um exemplo. Repare que cada octeto é formado por números que podem ir de 0 a 255, não mais do que isso.

Endereço IP

A divisão de um IP em quatro partes facilita a organização da rede, da mesma forma que a divisão do seu endereço em cidade, bairro, CEP, número, etc, torna possível a organização das casas da região onde você mora. Neste sentido, os dois primeiros octetos de um endereço IP podem ser utilizados para identificar a rede, por exemplo. Em uma escola que tem, por exemplo, uma rede para alunos e outra para professores, pode-se ter 172.31.x.x para uma rede e 172.32.x.x para a outra, sendo que os dois últimos octetos são usados na identificação de computadores.


Classes de endereços IP

Neste ponto, você já sabe que os endereços IP podem ser utilizados tanto para identificar o seu computador dentro de uma rede, quanto para identificá-lo na internet.

Se na rede da empresa onde você trabalha o seu computador tem, como exemplo, IP 172.31.100.10, uma máquina em outra rede pode ter este mesmo número, afinal, ambas as redes são distintas e não se comunicam, sequer sabem da existência da outra. Mas, como a internet é uma rede global, cada dispositivo conectado nela precisa ter um endereço único. O mesmo vale para uma rede local: nesta, cada dispositivo conectado deve receber um endereço único. Se duas ou mais máquinas tiverem o mesmo IP, tem-se então um problema chamado "conflito de IP", que dificulta a comunicação destes dispositivos e pode inclusive atrapalhar toda a rede.

Para que seja possível termos tanto IPs para uso em redes locais quanto para utilização na internet, contamos com um esquema de distribuição estabelecido pelas entidades IANA (Internet Assigned Numbers Authority) e ICANN (Internet Corporation for Assigned Names and Numbers) que, basicamente, divide os endereços em três classes principais e mais duas complementares. São elas:

Classe A: 0.0.0.0 até 127.255.255.255 - permite até 128 redes, cada uma com até 16.777.214 dispositivos conectados;

Classe B: 128.0.0.0 até 191.255.255.255 - permite até 16.384 redes, cada uma com até 65.536 dispositivos;

Classe C: 192.0.0.0 até 223.255.255.255 - permite até 2.097.152 redes, cada uma com até 254 dispositivos;

Classe D: 224.0.0.0 até 239.255.255.255 - multicast;

Classe E: 240.0.0.0 até 255.255.255.255 - multicast reservado.

As três primeiras classes são assim divididas para atender às seguintes necessidades:

- Os endereços IP da classe A são usados em locais onde são necessárias poucas redes, mas uma grande quantidade de máquinas nelas. Para isso, o primeiro byte é utilizado como identificador da rede e os demais servem como identificador dos dispositivos conectados (PCs, impressoras, etc);

- Os endereços IP da classe B são usados nos casos onde a quantidade de redes é equivalente ou semelhante à quantidade de dispositivos. Para isso, usam-se os dois primeiros bytes do endereço IP para identificar a rede e os restantes para identificar os dispositivos;

- Os endereços IP da classe C são usados em locais que requerem grande quantidade de redes, mas com poucos dispositivos em cada uma. Assim, os três primeiros bytes são usados para identificar a rede e o último é utilizado para identificar as máquinas.

Quanto às classes D e E, elas existem por motivos especiais: a primeira é usada para a propagação de pacotes especiais para a comunicação entre os computadores, enquanto que a segunda está reservada para aplicações futuras ou experimentais.

Vale frisar que há vários blocos de endereços reservados para fins especiais. Por exemplo, quando o endereço começa com 127, geralmente indica uma rede "falsa", isto é, inexistente, utilizada para testes. No caso do endereço 127.0.0.1, este sempre se refere à própria máquina, ou seja, ao próprio host, razão esta que o leva a ser chamado de localhost. Já o endereço 255.255.255.255 é utilizado para propagar mensagens para todos os hosts de uma rede de maneira simultânea.


Endereços IP privados

Há conjuntos de endereços das classes A, B e C que são privados. Isto significa que eles não podem ser utilizados na internet, sendo reservados para aplicações locais. São, essencialmente, estes:

- Classe A: 10.0.0.0 à 10.255.255.255;
- Classe B: 172.16.0.0 à 172.31.255.255;
- Classe C: 192.168.0.0 à 192.168.255.255.

Suponha então que você tenha que gerenciar uma rede com cerca de 50 computadores. Você pode alocar para estas máquinas endereços de 192.168.0.1 até 192.168.0.50, por exemplo. Todas elas precisam de acesso à internet. O que fazer? Adicionar mais um IP para cada uma delas? Não. Na verdade, basta conectá-las a um servidor ou equipamento de rede - como um roteador - que receba a conexão à internet e a compartilhe com todos os dispositivos conectados a ele. Com isso, somente este equipamento precisará de um endereço IP para acesso à rede mundial de computadores.


Máscara de sub-rede

As classes IP ajudam na organização deste tipo de endereçamento, mas podem também representar desperdício. Uma solução bastante interessante para isso atende pelo nome de máscara de sub-rede, recurso onde parte dos números que um octeto destinado a identificar dispositivos conectados (hosts) é "trocado" para aumentar a capacidade da rede. Para compreender melhor, vamos enxergar as classes A, B e C da seguinte forma:

- A: N.H.H.H;
- B: N.N.H.H;
- C: N.N.N.H.

N significa Network (rede) e H indica Host. Com o uso de máscaras, podemos fazer uma rede do N.N.H.H se "transformar" em N.N.N.H. Em outras palavras, as máscaras de sub-rede permitem determinar quantos octetos e bits são destinados para a identificação da rede e quantos são utilizados para identificar os dispositivos.

Para isso, utiliza-se, basicamente, o seguinte esquema: se um octeto é usado para identificação da rede, este receberá a máscara de sub-rede 255. Mas, se um octeto é aplicado para os dispositivos, seu valor na máscara de sub-rede será 0 (zero). A tabela a seguir mostra um exemplo desta relação:

Classe
Endereço IP
Identificador da rede
Identificador do computador
Máscara de sub-rede
A
10.2.68.12
10
2.68.12
255.0.0.0
B
172.31.101.25
172.31
101.25
255.255.0.0
C
192.168.0.10
192.168.0
10
255.255.255.0

Você percebe então que podemos ter redes com máscara 255.0.0.0, 255.255.0.0 e 255.255.255.0, cada uma indicando uma classe. Mas, como já informado, ainda pode haver situações onde há desperdício. Por exemplo, suponha que uma faculdade tenha que criar uma rede para cada um de seus cinco cursos. Cada curso possui 20 computadores. A solução seria então criar cinco redes classe C? Pode ser melhor do que utilizar classes B, mas ainda haverá desperdício. Uma forma de contornar este problema é criar uma rede classe C dividida em cinco sub-redes. Para isso, as máscaras novamente entram em ação.

Nós utilizamos números de 0 a 255 nos octetos, mas estes, na verdade, representam bytes (linguagem binária). 255 em binário é 11111111. O número zero, por sua vez, é 00000000. Assim, a máscara de um endereço classe C, 255.255.255.0, é:

11111111.11111111.11111111.00000000

Perceba então que, aqui, temos uma máscara formada por 24 bits 1: 11111111 + 11111111 + 11111111 (se estiver confuso, leia este artigo sobre bits e bytes). Para criarmos as nossas sub-redes, temos que ter um esquema com 25, 26 ou mais bits, conforme a necessidade e as possibilidades. Em outras palavras, precisamos trocar alguns zeros do último octeto por 1.

Suponha que trocamos os três primeiros bits do último octeto (sempre trocamos da esquerda para a direita), resultando em:

11111111.11111111.11111111.11100000

Se fizermos o número 2 elevado pela quantidade de bits "trocados", teremos a quantidade possível de sub-redes. Em nosso caso, temos 2^3 = 8. Temos então a possibilidade de criar até oito sub-redes. Sobrou cinco bits para o endereçamento dos host. Fazemos a mesma conta: 2^5 = 32. Assim, temos 32 dispositivos em cada sub-rede (estamos fazendo estes cálculos sem considerar limitações que possam impedir o uso de todos os hosts e sub-redes).

11100000 corresponde a 224, logo, a máscara resultante é 255.255.255.224.

Perceba que esse esquema de "trocar" bits pode ser empregado também em endereços classes A e B, conforme a necessidade. Vale ressaltar também que não é possível utilizar 0.0.0.0 ou 255.255.255.255 como máscara.


IP estático e IP dinâmico

IP estático (ou fixo) é um endereço IP dado permanentemente a um dispositivo, ou seja, seu número não muda, exceto se tal ação for executada manualmente. Como exemplo, há casos de assinaturas de acesso à internet via ADSL onde o provedor atribui um IP estático aos seus assinantes. Assim, sempre que um cliente se conectar, usará o mesmo IP.

O IP dinâmico, por sua vez, é um endereço que é dado a um computador quando este se conecta à rede, mas que muda toda vez que há conexão. Por exemplo, suponha que você conectou seu computador à internet hoje. Quando você conectá-lo amanhã, lhe será dado outro IP. Para entender melhor, imagine a seguinte situação: uma empresa tem 80 computadores ligados em rede. Usando IPs dinâmicos, a empresa disponibiliza 90 endereços IP para tais máquinas. Como nenhum IP é fixo, um computador receberá, quando se conectar, um endereço IP destes 90 que não estiver sendo utilizado. É mais ou menos assim que os provedores de internet trabalham.

O método mais utilizado na distribuição de IPs dinâmicos é o protocolo DHCP (Dynamic Host Configuration Protocol).


IP nos sites

Você já sabe que os sites na Web também necessitam de um IP. Mas, se você digitar em seu navegador www.infowester.com, por exemplo, como é que o seu computador sabe qual o IP deste site ao ponto de conseguir encontrá-lo?

Quando você digitar um endereço qualquer de um site, um servidor de DNS (Domain Name System) é consultado. Ele é quem informa qual IP está associado a cada site. O sistema DNS possui uma hierarquia interessante, semelhante a uma árvore (termo conhecido por programadores). Se, por exemplo, o site www.infowester.com é requisitado, o sistema envia a solicitação a um servidor responsável por terminações ".com". Esse servidor localizará qual o IP do endereço e responderá à solicitação. Se o site solicitado termina com ".br", um servidor responsável por esta terminação é consultado e assim por diante.


IPv6

O mundo está cada vez mais conectado. Se, em um passado não muito distante, você conectava apenas o PC da sua casa à internet, hoje o faz com o celular, com o seu notebook em um serviço de acesso Wi-Fi no aeroporto e assim por diante. Somando este aspecto ao fato de cada vez mais pessoas acessarem a internet no mundo inteiro, nos deparamos com um grande problema: o número de IPs disponíveis deixa de ser suficiente para toda as (futuras) aplicações.

A solução para este grande problema (grande mesmo, afinal, a internet não pode parar de crescer!) atende pelo nome de IPv6, uma nova especificação capaz de suportar até - respire fundo - 340.282.366.920.938.463.463.374.607.431.768.211.456 de endereços, um número absurdamente alto!

IPv4 x IPv6

O IPv6 não consiste, necessariamente, apenas no aumento da quantidade de octetos. Um endereço do tipo pode ser, por exemplo:

FEDC:2D9D:DC28:7654:3210:FC57:D4C8:1FFF

Para compreender o que isso significa e saber mais detalhes, veja a matéria O que é IPv6?.


Finalizando

Com o surgimento do IPv6, tem-se a impressão de que a especificação tratada neste texto, o IPv4, vai sumir do mapa. Isso até deve acontecer, mas vai demorar bastante. Durante essa fase, que podemos considerar de transição, o que veremos é a "convivência" entre ambos os padrões. Não por menos, praticamente todos os sistemas operacionais atuais e a maioria dos dispositivos de rede estão aptos a lidar tanto com um quanto com o outro. Por isso, se você é ou pretende ser um profissional que trabalha com redes ou simplesmente quer conhecer mais o assunto, procure se aprofundar nas duas especificações.

A esta altura, você também deve estar querendo descobrir qual o seu IP. Cada sistema operacional tem uma forma de mostrar isso. Se você é usuário de Windows, por exemplo, pode fazê-lo digitando cmd em um campo do Menu Iniciar e, na janela que surgir, informar ipconfig /all e apertar Enter. Em ambientes Linux, o comando é ifconfig.

Obtendo o IP no Windows

Perceba, no entanto, que se você estiver conectado a partir de uma rede local - tal como uma rede wireless - visualizará o IP que esta disponibiliza à sua conexão. Para saber o endereço IP do acesso à internet em uso pela rede, você pode visitar sites como whatsmyip.org.

Escrito por - Publicado em 21_08_2011 - Atualizado em 21_08_2011