Ich würde Ihnen raten, Wireshark herunterzuladen und zu installieren. Führen Sie wireshark und besuchen Sie einige Websites. Sie können sehen, wie DNS funktioniert. DNS (wie bereits erwähnt) wird auf der Anwendungsschicht behandelt. Fast alle Hochsprachen haben Bibliotheken für die Funktion 'gethostbyname'.
Python 3.3.3 (default, Nov 26 2013, 13:33:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.gethostbyname("stackoverflow.com")
'198.252.206.16'
beispielsweise einen Browser nehmen, nachdem den Host aus dem DNS-Server zu erwerben, irgendeine Form von gethostbyname verwendet, eine Standard-TCP-Socket-Verbindung hergestellt ist, und der Browser/Webserver kommuniziert über HTTP.
http://en.wikipedia.org/wiki/List_of_network_protocols_%28OSI_model%29 –