# Redes de computadores/Protocolo IP

Os endereços físicos ( MAC) das placas de rede podem ser utilizados para comunicar-se com outras máquinas na própria rede, mas não além desta, pois o protocolo utilizado na camada física as limita. Para que distintas redes locais com tecnologias diferentes possam se comunicar é que foi criado o protocolo IP. Ou seja, este protocolo serve para abstrair os protocolos das camadas superiores (transporte e aplicação) da rede em que se encontram, tratando várias redes interconectadas como apenas uma.
Para conectar somente duas redes locais, normalmente um computador com duas placas de rede já basta. Este computador é comumente chamado de bridge, pois faz uma "ponte" entre as duas redes locais. Porém quando se deseja interligar várias LANs, o equipamento mais usado é um computador dedicado chamado roteador, cuja função principal é receber pacotes endereçados a redes diferentes da que estão e colocá-los na rede que esteja mais próxima de seu destino.

## O endereço IP

O endereço IP é um número de 32 bits, comumente exibido como octetos na base decimal (veja Conversão de base numérica) separados por pontos, dividido em um prefixo que identifica a rede onde está conectada a máquina e um sufixo que identifica cada máquina individualmente em sua rede. O endereço IP completo (prefixo da rede + sufixo da máquina) tem de ser único em todas as sub-redes que componham a rede maior.
Para melhorar o controle e o gerenciamento, os gestores dividiram os endereços IP na Internet em diversas classes com diferentes fronteiras entre o endereço da rede e o da máquina. Assim, cada rede, dependendo do número de máquinas que possuir, recebe um prefixo para as classes A, B ou C e gerencia o sufixo de forma que os endereços não se repitam, podendo também subdividir um sufixo em um novo endereço de sub-rede, caso esta passe a existir.
| Classe | 8 | 16 | 24 | 31 |
| A | Prefixo | Sufixo | Sufixo | Sufixo |
| B | Prefixo | Prefixo | Sufixo | Sufixo |
| C | Prefixo | Prefixo | Prefixo | Sufixo |
| D | Multicast | Multicast | Multicast | Multicast |
| E | Reservado para experimentação | Reservado para experimentação | Reservado para experimentação | Reservado para experimentação |
Portanto o espaço de endereçamento na internet é dividido da seguinte forma:
| Classe | Faixa de valores (primeiro octeto) | Número de endereços de rede | Número de máquinas em cada rede |
| A | 0 ~ 127 | 128 | 16.777.216 |
| B | 128 ~ 191 | 16.384 | 65.536 |
| C | 192 ~ 223 | 2.097.152 | 256 |
| D | 224 ~ 239 | - | - |
| E | 240 ~ 255 | ? | ? |
Este sistema de classes facilita o roteamento, pois dependendo da faixa em que se encontrar o primeiro octeto do endereço, se sabe quantos bits dele se referem a rede e quantos a máquina. Porém tira versatilidade do sistema. Fica-se limitado a 3 tamanhos de redes: grande (classe C), muito grande (classe B) ou exagerada (classe A). Conforme a internet crescia, se fez necessária a subdivisão dos espaços de endereçamento, para poder acomodar mais redes de menor tamanho. Então foi criado o CIDR (Classeless Interdomain Routing), que possibilita a utilização de qualquer número de bits para rede, devendo este número ser informado em um netmask.

## Máscaras de rede (endereçamento sem classe)

Netmask é a forma de se informar ao sistema operacional qual parte do endereço é referente à rede e qual é referente à máquina. Ele é formado com 1 na porção da rede do endereço e 0 na porção da máquina. Geralmente o netmask é escrito com o mesmo formato de um endereço IP (bits separados em octetos escritos na base decimal), mesmo não sendo o endereço.
Por exemplo, um netmask para uma rede de classe C é 255.255.255.0, já que apenas o último octeto dos endereços classe C são referentes à rede, os demais estão totalmente preenchidos por 1 pois (255)$_{10}$=(11111111)$_2$.
Os administradores frequentemente precisam subdividir o espaço de endereçamento recebido para a internet. Por exemplo: Suponha ter recebido um endereço de classe C 200.131.56 e precise separar o espaço para 4 sub-redes. Assim sendo, deve-se separar mais dois bits do último octeto para identificar as redes (00, 01, 10 e 11) e o netmask teria (11000000)$_2$ no último octeto; assim o netmask seria 255.255.255.192. Todos os endereços se iniciariam por 200.131.56, e teriam para o último octeto o seguinte:
| Sub-rede | De | Até |
| 1ª | (00000000)$_2$ = (0)$_{10}$ | (00111111)$_2$ = (63)$_{10}$ |
| 2ª | 01000000)$_2$ = (64)$_{10}$ | (01111111)$_2$ = (127)$_{10}$ |
| 3ª | (10000000)$_2$ = (128)$_{10}$ | (10111111)$_2$ = (191)$_{10}$ |
| 4ª | (11000000)$_2$ = (192)$_{10}$ | (11111111)$_2$ = (255)$_{10}$ |
O netmask, assim, é ideal para a extração do endereço de rede de um endereço IP. Basta um simples e (and) bit a bit entre o netmask e o endereço para a tarefa ser completada. Por esta tarefa ser realizada nos roteadores a cada pacote, para se decidir qual será a porta de destino, a eficiência é importante.
Entretanto, alguns sistemas usam uma grafia distinta desta, indicando o número de bits componentes do endereço de rede, por exemplo 200.131.56.207/24, onde o 24 após o endereço IP serve para indicar que os 16 primeiros bits do endereço referem-se a rede e, portanto, que os 8 restantes são referentes ao endereço da máquina.

## Entre a rede local e a de longa distância

A camada física possui um tipo próprio de endereçamento, portanto se faz necessária uma conversão do endereço IP para o protocolo utilizado nesta camada.

## Referências

* ↑ How Stuff Works. Como funciona a Ethernet. Página visitada em 1 de fevereiro de 2011.
* ↑ LSM, Acessado em 9/8/10.
* ↑ Devmedia, Acessado em 9/8/10.
* 1 2 3 [mesonpi.cat.cbpf.br/naj/tcpipf.pdf Mesonpi], página 8. Acessado em 9/8/10.
* 1 2 3 4 Vas-y, Acessado em 9/8/10.
* ↑ [mesonpi.cat.cbpf.br/naj/tcpipf.pdf Mesonpi], página 9. Acessado em 9/8/10.