The purpose of this project is to implement a simplified web system. The system consists of three programs, the DNS server program, the Web server program, and the client program. The client program consists of two parts, a browser simulator and a client program for system testing.
Domain Name Server
In Internet, packets are routed based on the 32-bit destination IP addresses. However, these numerical addresses are inconvenient for users and applications. Instead, hostnames that consist of strings separated by periods are used. Using hostnames instead of IP addresses has another advantage, namely, transparency. For example, a Web site IP address may change if a different company is hosting the content, but the hostname can remain the same. The translation of hostnames into IP addresses and vice versa is coordinated by the domain name system (DNS). DNS is a hierarchical name space that can be represented by a tree (see the following Figure). The root of the tree is an unnamed node. The first layer of the tree contains the top-level domains. The second-level domain names are given to individual
companies, institutions, and/or organizations. Various levels of subdomains further divide a domain. DNS is a distributed database that consists of a hierarchical set of DNS servers. More specifically, there is a DNS server associated with each node at the root, top-level, and second-level domains. The DNS servers for the second-level domains serve both
iterative and recursive DNS requ