The DNS hierarchical architecture describes how names are constructed and interpreted. The architecture of DNS is based on an abstraction called a domain.
In DNS, a domain is defined as either a single object or a set of objects that have been collected together based on some type of commonality. Usually, in DNS, that commonality is that they are all administered by the same organization or authority.
To understand DNS, the whole database is pictured as an inverted tree, with the root node at the top. In DNS, the highest level is the root of the tree. It contains a number of domains, each of which can contain individual objects (names) and/or lower-level domains.
Lower-level domains can, in turn, have yet more lower-level domains, allowing the tree as a whole to take on an arbitrary structure.
The hierarchical name architecture allows names to be organized from most general to most specific. It also has complete flexibility, allowing us to arrange the structure in any way that we want.
There are several domain-like terms that are often used to refer to domains at different levels of the hierarchy.
- Root Domain – This is the root of the tree.
- Top-Level Domains or abbreviated to TLDs – These are the highest-level domains directly under the root of the tree. They are also sometimes called first-level domains.
- Second-Level Domains – These are the domains located directly below the top level domains.
- Subdomains – In some contexts, this term refers only to domains that are located directly below the second-level domains. However, the term subdomain can also be used generically, like the word domain itself. In that case, it refers simply to the relationship between two domains, with a subdomain being under another domain in the structure.
This means, for example, that top-level domains can be said to be subdomains of the root; every secondlevel domain is a subdomain of a top-level domain, and so on.
The key point with subdomains is that you need to understand where you are in the hierarchy to determine what you are a subdomain of.
Another set of terminology related to DNS compares the tree structure not to a living tree, but to another
analogy: a family tree. These terms are most often used to describe how a particular domain relates to the other domains or subdomains around it, so they are relative terms.
Parent – A parent domain is the domain that is at the top of the hierarchy. For example, the root domain is the parent of all top-level domains.
Child – A child domain is the next level down in the hierarchy. A child domain is under the parent domain. Thus, the top-level domains are children of the root.
Sibling – A sibling is a peer at the same level of a child in the hierarchy, it has the same parent. Thus, all top-level domains are siblings with the root as a parent; all second-level domains within a particular top-level domain are siblings, and so on.
Because the terminology is relational, a child domain can also be a parent and have children of its own who also have siblings.
Unlike a real family there is no difference in priority between parents, children or siblings, everyone is treat as equal.
Like a real tree, the DNS name structure must be a true tree in its structure. Every domain can have only
one parent (except for the root), just as every branch of a tree connects to only one limb (except the root or trunk). Also, no loops can appear in the structure; you cannot have a domain whose child is also its parent, for example.
Keep in mind that even though the name hierarchy represents an arrangement of named devices,
it is only a logical structure. There is no necessary correspondence to the physical location of
devices. The key point with the parent/child/sibling relationships is that you need to understand where you are in the hierarchy to determine what you are a parent/child/sibling of.