Using names is easier for people than using IP addresses. So DNS maps a global namespace onto the (global) IP address space.
The DNS protocol (servers) operates on TCP and UDP port 53.
Clients (programs typically) use a resolver (part of libc) to look up the address that goes with a name. Where the resolver looks depends on /etc/resolve.conf and /etc/nsswitch.conf. Resolvers send recursive queries to name servers.
Servers use non-recursive queries. They traverse the name server hierarchy from top to bottom to find an answer to return to the client.
The hierarchy (both of servers and of registrars) starts at the root domain (.) and each sub-domain may be a new level (the levels are defined by nameserver delegations).
If the technical and administrative information at each level is incorrect, the system fails. Also, each level is trusted by levels below (who have no choice). But DNS failures are relatively rare.