L'utilisation de "0" dans une adresse IP a été définie dans la RFC923 et reportée dans les RFC successives:
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.
Cet exemple fournit un hôte spécifique sur le réseau actuel (0.0.0.37) en utilisant des 0 dans les parties réseau de l'adresse, mais il ne clarifie pas réellement le cas contraire (0 dans la partie hôte de l'adresse). Cependant, comme il a défini "0" comme "ceci".
De là, je n'ai pas pu trouver de documentation pour sauvegarder ma mémoire, mais dans RFC1060 l'adresse "0.0.0.0" était clairement documentée comme "cet hôte sur ce réseau":
(a) {0, 0}
This host on this network. Can only be used as a source
address (see note later).
Étant donné que tous les zéros de la partie hôte de l'adresse signifiaient «cet hôte», il est inutilisable en tant qu'adresse hôte sur le réseau.
Logiquement, un réseau a été référencé en utilisant la partie "réseau" de l'adresse suivie de tous les zéros (c'est-à-dire aucun bit d'hôte utilisé). Je ne trouve pas de documentation pour sauvegarder ma mémoire, mais je crois que cela était largement accepté bien avant le RFC1060 .
Edit: Grâce à la mention de RFC919 par Ricky , j'ai trouvé la référence que je cherchais qui illustre ce que je me souviens de l'acceptation générale de l'adresse réseau:
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"
En passant, touchant la mention de Ricky du sous-réseau zéro et du sous-réseau tout-en-un, je crois que la première documentation de cela vient de RFC950 qui fait référence à RFC943 (qui a obsolète RFC923 ci-dessus mais utilise le même langage pour les adresses spéciales):
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.