A VLAN is an Ethernet level concept, a subnet is an IP level concept. A VLAN splits an Ethernet network into multiple logically separate Ethernet networks. A subnet defines which hosts a host will try to communicate with directly, versus which hosts will need to go via a router. It also defines "network" and "broadcast" addresses. It is common practice to have a 1:1 mapping between subnets and VLANs, but it is perfectly possible to have multiple subnets on the same VLAN. Equally it is possible to use proxy ARP to split a subnet between multiple VLANs or even have two VLANs using the same IP subnet for different purposes.