Endereços IP {IP Addresses.doc} Do ponto de vista de IP, e numa primeira abordagem, a qualquer computador ou gateway está associado um endereço único - que o distingue de todos os outros. Ele detém sempre o mesmo comprimento: 4 octetos (32 bits). Recordando o alvo de IP - redes de computadores interligadas -, quiçá não se preste a grande contestação o método de endereçamento seguido: hierárquico, a dois níveis. Um endereço-IP desdobra-se em duas componentes justapostas: um identificador global da rede em causa, seguido de um endereço local de um computador ou gateway nessa rede: Identificador global da Rede Endereço local de um computador nessa Rede Aceite esta estrutura, uma questão se põe: quantos bits reservar para cada componente? É óbvio que reservar muitos bits para a primeira componente (porque se antevêem muitas e muitas redes) deixa poucos para a segunda (portanto deixando de fora redes de grande dimensão…) - e vice-versa. Prevendo a coexistência de redes de dimensões bem variadas, e perseguindo uma ampla flexibilidade na atribuição de endereços a computadores, a solução adoptada por RFC 791 foi: não manter fixo o número de bits para cada uma dessas componentes. Concretamente, RFC 791 preconiza três formatos primários, ou classes, de endereços: A, B e C. Na Classe A, o bit de maior ordem é 0; - os 7 bits seguintes identificam globalmente a rede; - os restantes 24 bits formam o endereço local As Classes 0 e 127 são reservadas: são possíveis até 126 redes de 16777214 endereços… Na Classe B, os dois bits de maior ordem são 10; - os 14 bits seguintes identificam a rede; - os restantes 16 bits formam o endereço local -São possíveis até 16384 redes de 65532 endereços… Na Classe C, os três bits de maior ordem são 110; - os 21 bits seguintes identificam a rede; - os restantes 8 bits formam o endereço local São possíveis até 2097152 redes de 256 endereços… Eis três exemplos triviais de endereços-IP, onde se sublinhou a componente rede: 00000011 00000000 00001111 10101010 (Classe A) 10000011 00001100 10101010 00001111 (Classe B) 11000011 00000000 00110011 10010110 (Classe C) Abra-se um parêntesis para tranquilizar o leitor: não necessita ficar soletrando e escrevendo estas monótonas e ardilosas sucessões de 0s e 1s. Comummente, as pessoas, no acto de comunicarem entre si endereços-IP, recorrem à bem mais fácil notação em decimal pontuado (dotted decimal): repartem os 32 bits em 4 octetos, e escrevem, separados por “.” os correspondentes decimais, entre 0 e 255, de cada um deles. Para exemplificar esta notação, os endereços acima escrevem-se, respectivamente: 3.0.15.170 131.12.170.15 195.0.51.150 O leitor pode verificar que, afora os ‘.’, estas representam, na base 256, os endereços binários acima - em que, para, por ex., representar 1010 10102 = AA16 = 17010 se utiliza o símbolo ‘170’256. São evidentes as áreas de aplicação das classes acima: - a classe A destina-se às poucas (até 27-2=126) redes com muitos computadores cada (até 224≅16 milhões), como seja a Arpanet; - a classe B destina-se às redes (até 214≅16 mil) com um número moderado de computadores cada (até 216≅64 mil); - enfim, a classe C destina-se às muitas e muitas redes (até 221≅2 milhões) com poucos computadores (até 28=256) cada uma (por ex., LANs). Numa organização particular detendo diversas redes de área local, pode usar-se apenas a classe C, ou misturar as várias classes: a escolha dependerá das respectivas dimensões. Com o passar dos anos, veio a definir-se uma classe mais, a classe D, utilizada quando se pretende enviar um datagrama para todos os computadores de um grupo particular. Na Classe D, os quatro bits de maior ordem são 1110; - os restantes 28 bits formam o endereço multigrupo (multicast, cfr RFC 1112) que identifica o grupo de computadores a que se pretende enviar um mesmo datagrama. Um endereço-IP começando por 1111 está reservado para uso futuro. Um mesmo computador (ou gateway) pode ter uma ou várias interfaces físicas de acesso à rede (ou a várias redes), cada qual com o seu respectivo endereço-rede: uma linha telefónica velhinha com um modem, um cabo-TV com ADSL, fibra óptica, feixe-rádio… A cada uma delas pode ser associado um único, ou vários, endereços-IP lógicos. Em rigor, por conseguinte, um mesmo computador pode deter vários endereços-IP. Inversamente, o computador há-de saber lidar com datagramas provenientes de várias interfaces - como se proviessem de uma única! O que há que garantir, bem entendido, é que não haja colisões, i.e., que não coexistam dois computadores com o mesmo endereço-IP. Para o efeito, - no caso da Internet, a atribuição de códigos a redes e a atribuição de endereços multigrupo estão a cargo de uma organização particular, o Network Identification Centre (NIC); - quanto aos endereços locais dos computadores no seio de cada rede, ele são decididos pela autoridade que para tal foi associada a essa rede. Ademais das classes acima, encontram-se estabelecidas algumas convenções especiais relativamente ao uso dos valores 00…0 e 11…1 em endereços-IP: Identificador da Rede 00…0 xx…x 00…0 xx…x 11…1 01…1 Endereço Local 00…0 00…0 xx…x 11…1 11…1 xx…x Significado este computador nesta rede esta rede o computador xx…x nesta Rede todos os computadores da Rede xx…x todos os computadores desta rede loopback interno O endereço 0.0.0.0 é utilizado no arranque (boot) de computadores; endereços cuja parte local é 11…1 habilitam à difusão de datagramas para todos os computadores de uma rede. “Loopback” significa que Datagramas enviados para o endereço referido não chegam a ser transmitidos: antes são processados localmente e tratados como se fossem datagramas recebidos.