lly user friendly. Instead of numbers domain names are used to identify hosts and a domain name system is needed to convert domain names (ASCII strings) into network addresses. The DNS is a hierarchical database distributed to servers all over the Internet. The root is located at the top of the hierarchy followed by the upper domain layer as shown in Figure 6.54. The database root is implemented in a limited number of root servers, with the majority of them located in the United States. The upper domain layer is normally divided either by county or by organization type. Examples include these: com: commercial companies; edu: educational institutions; gov: government agencies (United States only); net: organizations that support Internet operators; org: other nonprofit organizations; Data Communications int: international organizations; se: Sverige. Figure 6.54 shows an example of the DNS. A company that has an assigned domain name, such as companyb.fr, is free to organize a hierarchy of domains beneath its assigned domain name. The addresses are stored in the DNS servers that make up a distributed network in which each server is responsible for one or more domains. If the local DNS server does not know the requested address, the query is sent higher up the hierarchy. The address query results in the IP address used for actual routing. Addresses are saved in the originating server for a period of time to avoid unnecessary querying. Due to network modifications they cannot be stored permanently. The DNS is implemented as a large-scale client-server system in which clients and domain name servers exchange domain name server messages. Request or query messages contain the domain name and response messages contain the IP address or address of another server whom to contact. How does the client host know where to begin the search for an address and how do the servers know how to find other servers? The client must know at least one name server and it is configured to every host. In our exam- ple each host in Figure 6.5