From IP address to Domain name

The internet is like a vast map of interconnected computers and devices, full of avenues and streets, wherein each computer can be located using an address within the network. Just like real houses not having the same street addresses, you won’t find two computers connected to the internet that have the same address. Though, unlike real houses, computers don’t use geographical addresses but rather they use a computer-friendly string of numbers called an IP address.

IP Address

An IP address, or Internet Protocol address, is a unique numerical address assigned to each device connected to the internet or a local network that uses the Internet Protocol for communication. An IP address serves two main functions: host/network interface identification and location addressing. In other words, IP addresses are identifiers that allow information to be sent between devices on a network; and they also contain location information that makes devices accessible for communication. 

Basically, the internet uses IP addresses as a way to identify and differentiate between different computers, routers, and websites. It identifies which IP address to use when a person wants to watch YouTube, which one to use when a person wants to send an email, and which one to use when a person wants to browse pictures of cute puppies.

IP addresses are not random. They are mathematically generated and allocated by the Internet Assigned Numbers Authority (IANA), a division of the Internet Corporation for Assigned Names and Numbers (ICANN). ICANN is a non-profit organization that was established in 1998 to help maintain the security of the internet and allow it to be usable by all. Every time someone registers a domain on the internet, they go through a domain name registrar, who then pays a small fee to ICANN to register the domain.

There are two versions of IP addresses that currently coexist in the global Internet: Internet Protocol version 4 (IPv4), and Internet Protocol Version 6 (IPv6).

IPv4 defines an IP address as a 32-bit number. This version of the IP address has four sets of 8-bit numbers, each set is expressed in decimal form, and is separated by periods (.), e.g. 192.0.2.235. Since each number in the set is 8-bit, its value can range from 0 to 255. Hence, the full IP address range for IPv4 goes from 0.0.0.0 to 255.255.255.255.

Historically, the internet only used IPv4. However, due to the fast growth of the Internet, available IPv4 addresses that can be assigned to internet service providers (ISP) and organizations were rapidly being exhausted. This prompted the Internet Engineering Task Force to create a new version of IP using 128 bits for the IP address. This new version of the IP address has come to be known as IPv6. 

IPv6 defines an IP address as a 128-bit number. This version of the IP address has 8 sets of 16-bit numbers, each set is expressed in hexadecimal form, and is separated by colons (:), e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Since each number in the set is 16-bit, its value can range from 0 to ffff (or 65535 in decimal). Hence, the full IP address range for IPv6 goes from 0000:0000:0000:0000:0000:0000:0000:0000 to fff:fff:fff:fff:fff:fff:fff:fff.

Both IPv4 and IPv6 addresses have finite pools of address space. For IPv4, this pool is 32-bits (2^32) in size, hence it contains 4,294,967,296 IPv4 addresses. For IPv6, this pool is 128-bits (2^128) in size, hence containing 340,282,366,920,938,463,463,374,607,431,768,211,456 IPv6 addresses.

Pretty much all web traffic relies on IP addresses, may it be IPv4 or IPv6. Either way, these numbers are not easy for us humans to remember, and this is where DNS (domain name system) and domain name come into play. When accessing a website through a web browser, we usually write the domain name, not the IP address. Given the domain name, there is no need to remember the IP address, since the DNS will do all the work and lookup for the IP address with the process known as name resolution (check the article Domain Name System).

Domain Name

While an IP address gives the location of the website (locator), a domain name is a name or string that identifies the website (identifier). In general, a domain name identifies a network domain, or it represents an Internet Protocol (IP) resource, such as a personal computer, a server computer hosting a website, or the website itself. For example, you are a tourist, and you are riding an uber, if you want to visit the tallest building in Taipei, you have 2 ways that you can instruct your driver, one is by telling him the exact address “No. 7, Section 5, Xinyi Road, Xinyi District” (IP address), and another is by simply telling him “Taipei 101” (domain name). A domain name makes it more convenient for users to search for websites on the internet. It is far much easier to remember common words and names than a series of numbers.

Domain names are formed by the rules and procedures of the Domain Name System (DNS). Any name registered in the DNS is a domain name. A fully qualified domain name (FQDN) is a domain name that is completely specified with all labels in the hierarchy of the DNS, and it has 4 main parts (or technically called labels). 

  1. Zero-level domain name: the root domain name, which is an empty name which “ends” with a dot (.). Most applications allow you to enter a domain name without a dot at the end. 
  2. First-level of domain name: The top-level domains (TLDs), which describe the general purpose or category of the domain name. This includes the generic top-level domains (gTLDs), such as .com (for commercial), .net (for networking), .edu (for education), and .org (for non-profit organization); and the country code top-level domains (ccTLDs) such as .us, .tw, .ph. ICANN provides a list of all valid TLDs available on the internet.
  3. Second-level domain name: Also known as the “domain name”. These are names that are chosen by the domain name owner. They are often created based on the name of a company (e.g. mlytics), product, or service, etc. It can be anything actually.
  4. Third-level domain name: The hostname  is a name designated to a particular type of host server, for example, www is for World Wide Web server hosting typical websites,  FTP is for FTP servers, the mail is for email servers, etc.

It should be noted that the combination of the first and second-level domain name is commonly called the “root domain” (not to be confused with the zero-level root domain name), and the combination of the first to the third-level domain name is commonly called the “subdomain”. Please refer to the figure below for visualization.

According to Verizon’s Q4 2020 report (end of 2020), there are 366.3 million registered domain names across all TLDs, having a rate of over 1 million registrations per month. Of these 366.3 million domains registered, approximately 151.8 million are in the .com extension, 13.4 million are in the .net extension, and 158.9 million are ccTLDs.

Domain naming rules

Domain names are convenient, there is no doubt about it. But you cannot simply use any random name or symbols as domain name. There are some general rules to consider when registering a new domain name. For example, domain names are case-insensitive, so whether you write your domain name as MLytics.com or mlytics.com, the DNS will interpret them as the same name. However, most commonly, domain names are written in lowercase in technical contexts. Here are other general rules to consider when registering a domain name:

  • A label may contain zero to 63 characters. The full domain name (one which contains all labels) should not exceed the length of 253 characters in its textual representation.
  • Labels can only use characters in alphabet (a-z), numbers (0-9) and hyphen. This is known as the “LDH” (Letters, Digits, Hyphens) rule. Other forms of punctuation and symbols are not allowed.
  • Labels cannot start or end with a hyphen. You can use multiple instances of hyphens, but not a double hyphen.
  • Period (.) can only be used for grouping the domains in hierarchies, meaning to separate the domain name from the extension.
  • Since domain names are not case-sensitive, you can capitalize your domain name for advertising purposes.
  • TLD domain names should not be all-numeric.
  • Some TLDs allow the registration of domain names containing special characters (such as 台灣 or カタカナ) and accents (such as ü, ø, and å). These special domain names are called Internationalized Domain Names (IDN). Wherein these non-ASCII scripts are converted into its ASCII-based form (by using “ToASCII” algorithm), then prepending it with the ASCII Compatible Encoding (ACE) prefix “xn--“. The final form (Punycode) is then used for DNS lookups.

Moreover, depending on the type of domain, there are also other rules that the registrar will notify the domain name buyer.

Domain name history facts

Finally, going back in history, on March 15, 1985, the very first domain name was registered, having the domain name Symbolics.com. This domain name was initially registered by a computer manufacturer having the same name, but now it was sold to and owned by Aron Meystedt. The following are one of the first domain names registered during the year 1985.

  1. symbolics.com – 1985/03/15 (active)
  2. bbn.com – 1985/04/24 (redirected to https://www.raytheonintelligenceandspace.com/capabilities/bbn)
  3. think.com – 1985/05/24 (inactive)
  4. mcc.com – 1985/07/11 (inactive)
  5. dec.com – 1985/09/30 (redirected to https://paulkocher.com/)
  6. northrop.com – 1985/11/07 (inactive)