A subnet is a distinct logical network separated by routers. Broadcast domains are also separated by routers. However, multiple subnets may exist on a single broadcast domain. For a host in one subnet to communicate with a host in another subnet on the same broadcast domain, a router is still used to pass the traffic from one subnet to another.
The term subnet can be confusing because it has been commonly used in at least three different ways. Common practice uses subnet to describe:
1) the network identifier indicated by the legacy address class
2) the complete network identifier-including any subnet
3) the binary bits taken from what the class code suggests is part of the host field.*
*Source: Network Maintenance and Troubleshooting Guide, Second Edition.