O uso de "0" nos endereços IP foi definido no RFC923 e transportado em RFCs sucessivos:
Special Addresses:
In certain contexts, it is useful to have fixed addresses with
functional significance rather than as identifiers of specific
hosts. When such usage is called for, the address zero is to be
interpreted as meaning "this", as in "this network". The address
of all ones are to be interpreted as meaning "all", as in "all
hosts". For example, the address 128.9.255.255 could be
interpreted as meaning all hosts on the network 128.9. Or, the
address 0.0.0.37 could be interpreted as meaning host 37 on this
network.
Este exemplo fornece um host específico na rede atual (0.0.0.37) usando zeros nas partes da rede do endereço, mas na verdade não esclarece o caso oposto (zeros na parte do host do endereço). No entanto, como ele definiu "0" como "isso".
A partir daí, não consegui encontrar nenhuma documentação para fazer backup da minha memória, mas no RFC1060 o endereço "0.0.0.0" estava claramente documentado como "este host nesta rede":
(a) {0, 0}
This host on this network. Can only be used as a source
address (see note later).
Como todos os zeros para a parte do endereço do host significam "este host", ele não pode ser usado como um endereço de host na rede.
Logicamente, uma rede foi referenciada usando a parte "network" do endereço seguida por todos os zeros (ou seja, sem bits de host em uso). Não consigo encontrar documentação para fazer backup da minha memória, mas acredito que isso foi amplamente aceito muito antes da RFC1060 .
Edit: Graças à menção de Ricky ao RFC919 , encontrei a referência que procurava que ilustra o que me lembro sobre a aceitação geral do endereço de rede:
However, as a notational convention, we refer to
networks (as opposed to hosts) by using addresses with zero fields.
For example, 36.0.0.0 means "network number 36"
Como um aparte, tocando na menção de Ricky da sub-rede zero e da sub-rede all-ones, acredito que a primeira documentação vem da RFC950 que faz referência à RFC943 (que obsoleta a RFC923 acima, mas usa o mesmo idioma para endereços especiais):
It is useful to preserve and extend the interpretation of these
special addresses in subnetted networks. This means the values
of all zeros and all ones in the subnet field should not be
assigned to actual (physical) subnets.
In the example above, the 6-bit wide subnet field may have
any value except 0 and 63.
Please note that there is no effect or new restriction on the
addresses of hosts on non-subnetted networks.