After going through various links and videos, I found an interesting picture as a whole:

From the above, we could easily deduce the following:
- .NET Framework 4.6 is a full framework for everything related to .NET, but lacks libraries & runtime optimized for multi-platform (Windows, Linux and Mac) and cloud deployments
- .NET Core on the other hand is a subset of .NET Framework 4.6 which is mainly optimized for multi-platform and cloud deployments
- .NET Native is mainly used to develop Universal Apps which will be quite optimized to run on any device and platform, natively (not for the web apps though)
An interesting point is ASP.NET:
- If we need backward compatibility to the fullest extent (say web forms or aspx support), we need to go with .NET Framework 4.6
- If we develop MVC, Web API or Razor web pages, then we can deploy those web apps either in .NET Framework 4.6 or .NET Core environment