A subnetwork, or subnet, is a logically visible subdivision of an IP network. The practice of dividing a single network into two or more networks is called subnetting and the networks created are called subnetworks or subnets.
Subnetting provides a way to use the number of IPv4 addresses in an optimal way. The previous notation with classes caused a lot of IP's to remain. In the beginning this was not a problem, but these days IPv4 addresses have already depleted at the top level.