DNS stands for Domain Name Server and is a server responsible for translating website domain names to corresponding IP addresses of servers which host these domains. So for example when you type www.microsoft.com your browser doesn't know which server it needs to contact to retrieve pages for www.microsoft.com domain. To get the address of the hosting server browser first tries to contact nearby DNS server and get hosting server IP address there. If local DNS server is unable to find this information it will reroute the request to another DNS server which has more address translations on it. Once address is resolved it will be returned back to your browser and it can start establishing connection with destination website.
If something breaks down in your local DNS server or if it unable to contact next DNS server in line then the domain name you type in your browser won't get translated into IP address and your browser will fail to establish the connection. This error is usually not visible to the internet user since browser will just keep trying to load the page until it can resolve DNS. So everything but DNS server could be functioning fine but internet still will be unusable.
There is a great way to minimize effect such problems can have on you. Instead of using DNS servers provided by local internet providers you can use Google or OpenDNS DNS servers.
Google DNS IP addresses:
OpenDNS IP addresses:
You can specify these IP addresses as your default DNS servers and every time your browser will need to translate domain name to IP address it will go directly to these servers instead of local DNS server. Since these servers are hosted by Google and OpenDNS in a very reliable way the chance of them not working is much lower than that of local DNS.