ABSTRACT

As human beings, we prefer to remember the name of a computer. Computers, on the other hand, prefer to address each other by numbers, which on the Internet are 32 bits or 128 bits long, depending on the Internet Protocol (IP) used (IPv4 or IPv6). This is one reason why we need a naming service that handles mapping between computer names that we humans find convenient to remember and the network addresses (i.e., numbers) that computers deal with. Another reason is that, according to the Internet model, an IP address does not identify a host, such as a Web server, but a network interface. Although the host makes changes to its network interface or network attachment, it is convenient for the users and applications to allow the name of the host to remain unchanged. As such, keeping different identifiers at different layers helps keep the

protocol layers more independent and also reduces problems associated with layering violations. From a middleware perspective, naming services are a question of keeping higher layer names of entities independent of their lower layer identfiers and their actual locations. Here, the naming service not only helps the users of applications but is also just as much an aid for the software developer. This section familiarizes the reader with the most common naming services used on the Internet and how names can be resolved in wireless mobile

ad hoc

networks (MANETs).