So... I have studied for CCNA and such and been working with IP networking at the least the past 8 years or so. I have always seen and been told that the network address for a subnet is not a valid host address. Now first I will start by saying I know this is true. My question is more... is there a technical reason it can not be used or was it just arbitrarily agreed upon when the specification was designed? I understand why a broadcast address can not be used (because it is ACTUALLY used). The thing is when I see a network address used it is normally only in routing which is specifically using NETWORK addresses. This being the case, (network addresses being used only when you are expecting a network address) is there some technical reason that they could not have the network address be an actual valid host address?
|
feedback
|
|
As far as I understand, "network address" as a special address is an artifact from the classful IP networks from the past. Today, we use Classless Inter-domain Routing (CIDR) on the Internet, which does not have the concept of a network address (if you look at the RFC 4632 linked above, you'll see that it lists 256 possible IP addresses per legacy "C" block, e.g. no reserved addresses for either network or broadcast address (although broadcasts are defined as essential in other RFCs). This being said, you still should not assign a network address to any specific host in a network: Network address is essential for routing. This concept is used extensively in RFCs (RFC 1812). Just look at the routing tables ( Even worse: it is better not to assign IP addresses ending in zero even if this address is not a network address. E.g. if your network is 10.10.0.0/255.255.0.0, IP address 10.10.5.0 is not your network address, but you'd better not assign such IP even though it is completely valid even on classful IP networks. Some legacy software/IP stacks may have problems with it. | |||||||||||||
feedback
|
|
The network address allows you to build route tables with fixed-size (4-bytes IPv4) destination column and fixed-size binary operations so that host routing and network routing is actually the same thing. Imagine a routing table like this: (this PC has a parallel connection with another PC and a network card)
The AND between the IP address and the netmask gives you exactly what you need, a 4 bytes number which can be compared against each line without further calculations. So the host number zero is special in the sense that after the AND operation its address naturally represents the whole network. If you decided to use the network number as a host number it would result in a table like this:
This seems legit, so I suppose the concept of network address is used for routing reasons and thus it was decided arbitrarily to mark it as a special address and prohibit its use as a host address. Well... actually it's not that simple. I decided to give it a try (!!!):
At present the network programs don't allow me to use a network number as a normal address. | |||||
feedback
|