Traditionally, individual machines (nodes) have possessed an IP address that is used to uniquely identify them on the network. However, the designers of the existing IP infrastructure had not predicted nor taken into account the vast uptake of the Internet and the consequent number of IP addresses that would be required. Because of factors such as, the increase in modem users, the old practice of providing every host with a fixed IP address is no longer feasible for the simple reason that not enough IP addresses exist.
This problem has largely been circumvented with the use of dynamic IP’s (a hosts address that frequently changes), but dynamic IP’s pose their own problems for peer-to-peer applications as they can make machines difficult to reach. Another technical solution is with the introduction of IPv6, the next generation Internet protocol. IPv6 uses 128-bit addresses that will provide enough permanent IP addresses for every host on the Internet. The main disadvantage of IPv6 is the complexity of the changeover and as a result it is still unknown whether it will be commonly deployed.
Existing peer-to-peer applications have had to tackle the addressing issue themselves and have focused on implementing a person centric addressing layer on top of the machine centric addressing layer. Rather than assigning a unique ID address to each machine, an addressable ID is assigned to each user. This is particularly important as it becoming increasingly common for a user to use more than one machine (e.g. a desktop machine and a laptop machine). A user might be using one IP address in the morning and a totally different one in the afternoon.
This is analogous to the change brought by the introduction of mobile phones. Prior to mobile phones a phone number was attached to particular physical location. With the advent of mobile phones a phone number can now be dynamically mapped to the location of the phone’s owner. Existing peer-to-peer applications act in a similar fashion. An address is mapped to the user, not to the machine, no matter where the user is.