Endereços IPv4
Já vimos antes a forma de um endereço IPv4. Composto por 32 bits, divididos em 4 conjuntos de 8 bits, com apresentação decimal por 4 números separados por pontos, indo portanto de 0.0.0.0 até 255.255.255.255.
Numa fase primária da Internet o primeiro conjunto de 8 bits designava a rede e os restantes 3 conjuntos de 8 bits serviam para representar os hospedeiros.
Devido ao exponencial crescimento da Internet, rapidamente se verificou que com este método não se conseguiam representar todas as redes que começavam a surgir, depressa se esgotando toda a gama de endereços existentes.
Como também a maioria das redes não precisava de todos os endereços representados por 3 Bytes , 255x255x255 = 16.581.375 endereços por rede, era necessário rapidamente arranjar outro método.
Surgiu então um novo método em que os endereços passaram a ser representados por uma forma denominada de Classfull Network Arquitecture ou Arquitetura de Classes Cheias, que se representa na Figura 1 , um nome muito pomposo que significa que os 3 bits de maior ordem do endereço representam a Classe do endereço.
Passaram a a existir 3 Classes de endereços unicast (dirigidas a um só hospedeiro): as classes A, B e C. A classe D era reservada para endereçamentos multicast e a classe E para situações de futuro.
Assim já se podiam representar mais redes, ficando espaço para:
- redes com muitos hospedeiros (A), concretamente, 128 redes com 16.777.216 hospedeiros cada.
- um número equilibrado de redes e hospedeiros (B), concretamente 16.384 redes com 65.536 hospedeiros cada
- muitas redes com poucos hospedeiros (C), concretamente 2.097.152 redes com 256 hospedeiros cada.
Divisão em sub-redes
Mas, também este método tinha limitações que obrigaram a implementar para o mesmo, um processo de divisão de uma rede em sub-redes.
Vejamos a situação de uma organização que necessite por exemplo de 2.000 endereços para uma rede. Uma rede de Classe C não lhe serve, pois só dispõe de 256 endereços. Tem então de lhe ser atribuída uma rede Classe B com 65.536 endereços, desperdiçando-se assim 63.036 endereços.
Encontrou-se então uma forma de subdividir as Classes de redes, dividindo para isso os bits reservados para hospedeiros em bits de sub-redes e bits de hospedeiros. A este método chamou-se subneting ou divisão em sub-redes, utilizando para esse efeito as máscaras de rede, que definem o tipo de subdivisão de redes, isto é, quantos bits do espaço reservado às redes ficam com as redes e quantos passam para hospedeiros.
No caso exemplificado bastava utilizar os 3 bits de menor ordem do byte de menor ordem dedicado à rede, para conseguirmos representar 2.048 hospedeiros, o que satisfazia as necessidades da organização. Atribuía-se-lhe então uma sub-rede da classe B representada pela máscara 255.255.248.0 ou em binário 11111111.11111111.11111000.00000000. O valor da sub-rede obtém-se pela aplicação do operador AND ao endereço e à máscara. O valor do hospedeiro obtém-se diretamente pela parte dos zeros da máscara correspondentes no endereço, como se pode ver pela Figura 3, embora essa figura pretenda ilustrar outra situação.
Foram definidos endereços especiais com significados muito específicos, como representamos na Figura 2 à esquerda. Foram também definidos espaços de endereçamento privados nas várias classes, como representamos na Figura 2 à direita.
Os espaços de endereçamento privado servem para o endereçamento interno de determinadas empresas, campus universitários, edifícios, etc. em que, por detrás de um endereço público se esconde uma LAN (Local Area Network) só com endereços privados. Para que isto seja possível o roteador de entrada dessa LAN tem que dispor de NAT (Network Address Translation), que faz a tradução do endereço público nos endereços privados. Discutiremos especificamente o NAT já de seguida.
Claro que os endereços pertencentes ao espaço privado de endereçamento não podem ser usados publicamente. Podem repetir-se em diferentes LAN e em cada uma têm o significado que essa rede lhes dá internamente, podendo ser atribuídos ao gosto do administrador de rede, respeitando evidentemente os procedimentos corretos.
Este processo de divisão de classes em sub-redes de classe (subneting), provocou um crescimento exponencial das tabelas de roteamento dos roteadores.
Roteamento Interdomínio sem Classes (CIDR)
Surgiu então o atual método de endereçamento a que se chamou CIDR (Classless Inter-Domain Routing) ou Roteamento Interdomínio sem Classes. Como se entende pelo nome (sem Classes), foi abolida a existência de classes. Então cada endereço passou a ser definido pela sua representação habitual mais um símbolo “/”, seguido do número de bits dedicado à definição da rede, isto é, algo como a.b.c.d/x em que x representa o número de bits de rede, conhecido como o prefixo de rede.
Assim, se uma organização precisar por exemplo de 15.000 endereços, é-lhe atribuído um endereço a.b.c.0/18, a que correspondem 16.384 endereços e em que só os 2 bits de maior ordem do byte de 2ª ordem do endereço correspondem à rede, ficando os restantes 6 para hospedeiros, ou antes, os 18 bits de maior ordem do endereço definem a rede e os restantes de menor ordem, 14 neste caso, definem o hospedeiro
Bom, mas o computador não entende esta coisa das ”/”. Como fazê-lo então entender o que é rede e o que é hospedeiro. Como é que ele sabe o que fazer quando receber o endereço 188.72.202.158?
Isso resolve-se com as máscaras de rede. O endereço referido pode ter vários significados consoante a máscara de rede que o acompanhar.
Vamos acompanhar com a Figura 3 e passar a raciocinar em binário.
Suponhamos que este endereço era acompanhado pela máscara 255.255.192.0 ou 11111111 11111111 11000000 00000000 em binário. A máscara é composta por uma sucessão de 1 seguidos de uma sucessão de 0, como resulta da representação binária do seu valor decimal.
O endereço de rede consegue-se obter pela aplicação do operador AND aos bits do endereço e da máscara. A parte do endereço correspondente à sucessão de 1 na máscara 11111111 11111111 11 (os 18 bits de maior ordem) representa a rede. Neste caso o endereço da rede é o binário 10111100 01001000 11000000 00000000 ou seja 188.172.192.0.
O endereço do hospedeiro corresponde ao valor dos bits do endereço coincidentes com a sequência de 0 na máscara 000000 00000000 (os 14 bits de menor ordem). Será o binário 001010 10011110 ou em decimal 0.0.10.158, o hospedeiro 2.708 dessa rede, ou ainda, o deslocamento do hospedeiro dentro da rede, uma vez que o endereço de rede se refere ao endereço da base da rede.
Um endereço acompanhado por uma máscara 255.255.255.255 refere-se a um endereço terminal.
Por uma questão elucidativa deixamos uma tabela com os possíveis endereçamentos CIDR, com as correspondentes máscaras em decimal e binário, com as correspondentes classificações em ClassFull, quantidades de hospedeiros e redes, representada pela Figura 4.
Uma das alterações mais importantes que o CIDR introduziu, foi a redução drástica da dimensão das tabelas de roteamento (já vamos ver o que são e para que servem). Digamos que assim, um roteador pode apresentar -se à Internet de uma forma muito mais simples e reduzida.
Ele simplesmente diz que todos os endereços começados por aqueles primeiros 18 bits lhe devem ser dirigidos, sendo o seu subsequente roteamento da sua responsabilidade.
Um caso de estudo – NetByCabo
Por exemplo, no caso que pretende ilustrar a Figura 5, um hipotético ISP (Internet Service Provider), a NetByCabo (qualquer semelhança com qualquer realidade é pura coincidência), pretende 15.000 endereços, sendo-lhe atribuído o IP/CIDR 182.72.192.0/18, portanto com uma máscara 255.255.192.0, a que correspondem, segundo a tabela da Figura 4, 16.384 endereços.
A forma da NetByCabo se apresentar ao mundo será com o endereço CIDR de rede 182.72.192.0/18, o que significa que todos os endereços que comecem pelos mesmos 18 bits lhe devem ser dirigidos, competindo a esse ISP o seu posterior roteamento.
Mas a NetByCabo tem 8 subsidiárias que fazem a gestão de todos os seus endereços e quer dividi-los pelas mesmas. Então atribui a cada uma um endereço IP/CIDR com mais 3 bits. Os endereços resultantes das combinações possíveis dos 3 bits acrescentados serão 182.72.(192, 200, 208, 216, 232, 240 e 248).0/21, que correspondem aos endereços IP/CIDR de cada nova rede com 2.048 hospedeiros, que provirão as organizações NetByCabo 1 a NetByCabo 8. Estas subsidiárias terão a máscara 255.255.248.0 para os seus endereços.
Cada uma dessas organizações passa a ser responsável pelo roteamento dos seus 2.048 endereços.
A NetByCabo 2, atuando numa região de maior dispersão de utilizadores, decidiu que também ia dividir os seus endereços por outras 8 suas subsidiárias, pelo que da mesma forma faz a divisão dos seus endereços, acrescentando-lhes mais 3 bits.
Os endereços de rede resultantes das diversas combinações dos 3 bits acrescentados, serão 182.72.(200, 201, 202, 203, 204, 205, 206 e 207).0/24, que correspondem aos endereços IP/CIDR de cada nova rede com 256 hospedeiros cada, a entregar às organizações NBC 2.1 a NBC 2.8, que passarão a gerir o seu roteamento, ficando com a máscara 255.255.255.0
Finalmente, o endereço que procuramos, 182.72.202.158 será provido pela organização NBC 2.3, o que a mesma anuncia com o seu endereço CIDR de rede 182.72.202.0/24.
Para que o entendimento seja sempre mais fácil nesta questão do endereçamento CIDR, é importante raciocinar sempre em binário e não em decimal. Afinal vai ser assim que o computador vai entender o que nós queremos. O endereço CIDR sob a forma decimal existe parta que nós humanos nos entendamos uns com os outros.
Os bits significativos da máscara representam os bits do endereço que definem a rede. Os bits não significativos da máscara representam os bits do endereço que definem o hospedeiro.
Broadcast
Broadcast é uma transmissão destinada a todos os hospedeiros de uma rede ou sub-rede.
Por definição, o endereço IPv4 de Broadcast a uma rede obtém-se:
- Colocando a 1 todos os bits a 0 da máscara (os que definem o hospedeiro), obtendo assim o valor do deslocamento desse endereço relativamente ao endereço da base da rede.
- O endereço da base da rede é definido pela máscara.
- O endereço Broadcast à rede resultará da soma dos dois anteriores.
Na Figura 6 são ilustrados endereçamentos Broadcast aos hospedeiros da rede da NetByCabo e aos hospedeiros da sub-rede da NetByCabo 3, seguindo o método descrito.
O endereço de Broadcast 255.255.255.255 (todos os bits a 1) é por definição o endereço de broadcast à rede local, isto é, o endereço que qualquer hospedeiro de uma rede coloca numa mensagem que queira enviar a todos os hospedeiros dessa rede. Os routers de gateway de uma rede não passam este endereço para fora da rede.
Unicast é o envio de uma mensagem a um hospedeiro, precisamente aquilo de que temos estado a tratar até agora. em concreto.
Mencionámos este termo porque de seguida vamos analisar um tema onde Unicast e Broadcast vão ser referidos.