If a network address is subnetted, the first subnet obtained after subnetting the network address is called subnet zero and the last subnet obtained is called the all-ones subnet.
In your example:
Network: 192.168.5.0
Subnet Mask: 255.255.255.224
Subnets:
Subnet Broadcast
192.168.5.0 192.168.0.31 <-- subnet zero
192.168.5.32 192.168.0.63
192.168.5.64 192.168.0.95
192.168.5.96 192.168.0.127
192.168.5.128 192.168.0.159
192.168.5.160 192.168.0.191
192.168.5.192 192.168.0.223
192.168.5.224 192.168.0.255 <-- all ones
Traditionally, it was strongly recommended that subnet zero and the all-ones subnet not be used for addressing.
According to RFC 950 from 1985:
"It is useful to preserve and extend the interpretation of these
special (network and broadcast) 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."
Remember that this is a 1985 recommendation. More than 30 years have passed from then.
Using subnet zero for addressing is discouraged because of the confusion inherent in having a network (192.168.5.0)
and a subnet (192.169.5.0)
with indistinguishable addresses, and the all-ones subnet for the confusion inherent in having a network and a subnet with identical broadcast addresses (192.168.5.255)
.
This recommendation was overruled in 1995 by RFC-1878 and RFC-1812. So, nowadays we can use all the subnets and the devices' hardware /software support it.