DNS is a protocol that translates human-readable domain names into machine-readable IP addresses. It operates as a client-server application where a resolver (DNS client) communicates with DNS servers to map names to addresses. The resolution process can be either recursive, where the resolver queries local DNS servers, or iterative, where each server provides the next server's address until the final answer is found.