Every host on network has a unique IP address. Whenever we want to request some information or service from any particular host we need to have its IP address or some other identification mark so that the request does not go to any other node on network.
But this is a problem. Think of it, you meet several people everyday. You tend to remember their name but of course you won't remember the phone numbers of most of them. Why? Because phone numbers are cryptic and difficult string to random numbers. Similarly IP addresses are somewhat impractical to remember. And another good point is that since now a days a lot of websites are hosted on a single server, providing IP will not might get you the desired service. So we give names to the nodes, like google.com or gnu.org.
Now let us talk about the types of domain and categorization. Take the address of this blog as example i.e. blog.adityapatawari.com. Now com is a TLD or Top Level Domain. These type of domains are not for sale to general public. Among other TLDs are org, net, gov, edu and several others. There are also something called ccTLDs or country code TLDs. They are country specific TLDs, like USA has us, India has in and so on.
Below TLDs are second level domains or more usually we call them domains, like adityapatawari.com is a domain, google.com is a domain or more precisely these are second level domains. They can be usually booked on yearly basis. You can book the domain from any domain name registrars, of course keeping in mind the availability of the domain. Below the second level domain is the third level domain. We call them as child domains or sub domains, like blog.adityapatawari.com. and wave.google.com are sub domains. Ideally we can have unlimited number of sub domains once we have the domain but the service providers sometimes restrict the number of sub domains to save the load on their servers.
Similarly we can have fourth and fifth level domains and so on. But I advise you to stick to second and third level domains only.