O conceito de máscara de subrede está diretamente ligado ao roteamento de pacotes entre redes. Quando um pacote chega a um roteador, seu conteúdo é imediatamente examinado, e o roteador irá descobrir para qual rede de destino o pacote será enviado.
Um endereço IP de destino é composto por uma parte referente a rede e outra referente ao host, então, é preciso um algoritmo que extraia a parte referente a rede e faça o roteamento pela linha de saída correta baseado nessa informação.
Roteadores de grande porte possuem várias linhas de saída disponíveis. Para cada destino de rede existe uma saída em um registro na tabela de roteamento do roteador. Os registros são vários endereços do tipo { <rede>, <0> } usados para indicar uma rede distante que possa encaminhar o pacote mais próximo ou diretamente ao destino.
Assim, após extrair o endereço de rede do pacote e consultar as tabelas de roteamento comparando-os, o roteador define a linha de saída que será usada. Essa linha pode levar diretamente até a rede do host destino ou até outro roteador mais próximo do destino que possa continuar encaminhando o pacote.
Deste modo, observamos que roteadores somente lidam com tabelas de redes e não se preocupam com os hosts nestas redes, não armazenando qualquer informação sobre eles. Isso permite que o uso de subredes seja transparente para os roteadores. Um administrador pode subdividir sua rede do modo que lhe for mais conveniente, pois nenhuma informação sobre hosts é enviada aos roteadores.
O modo como os roteadores definem a rede de destino e conseqüentemente a rota que pacote deve tomar depende diretamente do uso de um recurso chamado de máscara de subrede. A máscara de subrede têm as mesmas características de um endereço IP: é um número binário com 32 bits, também pode ser representado na forma decimal por quatro conjuntos de valores entre 0 e 255 separados por pontos.
Originalmente cada uma das classes padrão tinha uma máscara de subrede correspondente. Essa máscara padrão têm o número de bits ativos (valor 1) exatamente do mesmo tamanho dos bits usados para representar a rede. Por exemplo, a classe C utiliza 3 bytes (24 bits) para representar a rede. Deste modo, a máscara de rede padrão para endereços da classe C é 255.255.255.0. Isso equivale a configurar todos os bits dos três primeiros octetos (24 bits) como 1.
A função da máscara de rede é ser utilizada em uma operação matemática denominada soma binária (AND lógico) entre o endereço IP de destino do pacote e a máscara binária correspondente da classe da rede de destino. Essa operação matemática terá como resultado o número da rede de destino, pois é feita de modo a remover a parte relativa ao host deixando apenas a parte relativa à rede. Após realizar um AND lógico entre o endereço IP e a máscara de subrede associada, o valor obtido será sempre o endereço da rede de destino do pacote.
Os endereços IP da classe A usam a máscara de rede 255.0.0.0, a classe B usa a máscara 255.255.0.0 e a classe C usa a máscara 255.255.255.0. Podemos observar uma relação direta entre o tamanho do campo definido para a rede e a máscara de subrede da classe.
Este é o conceito original de máscara de subrede. Todavia, por razões que veremos mais adiante, este conceito foi modificado e seu uso foi estendido. De modo que, atualmente, não há mais uma máscara de subrede padrão já que o conceito de classes foi abandonado. A máscara de subrede agora admite um tamanho variável e é denominada prefixo da rede. Esses novos conceitos são definidos na proposta CIDR - Classless InterDomain Routing ou roteamento inter-domínio sem uso de classes que será o nosso próximo tópico.
[1] Comentário enviado por roberto_espreto em 02/06/2008 - 12:37h
Cara, muito legal seu artigo! Ainda não tive tempo de ler adequadamente, mas assim que possível irei!
Tanembaum é de tirar o chapéu!
Um autor que gosto muito tbm é o Kurose e o Douglas Comer!
Continue com seus artigos assim!