The user is usually very aware of the names of objects in the Internet. We frequently see reference to World Wide Web sites and pages (e.g. http://www.cs.ucl.ac.uk/staff/jon, which incorporate Domain Name System names for a system or service in the network. A name effectively tells the user what something is.
Names are useful to human users for this very reason, but are unwieldy and inefficient for computer systems. Typically, they are mapped into addresses, using a directory or nameservice. Addresses then tell a piece of software (or the network operator or manager) where something is. Each host in the network has a unique address of (currently) 32 bits (128 bits in IPv6.) More accurately, each interface on each host in the Internet has a unique address, which is made up of two components:
All IP packets carry both a source and a destination address. Typically, the network part is indicated by applying a mask of some number of bits to the address, leaving the bits for the host part. Common divisions are 24 bits for network, and 8 bits for host, and 16 bits for network part and 16 for the host part..
The network part of the destination address is used by routers effectively to index routing tables to figure out where a packet must be delivered to. In fact, a ``longest match'' lookup of the prefix or network part must be done which can be difficult to optimise. Recent work[#!Rout!#] has achieved very good lookup times and table sizes.
All packets in the Internet Protocol layer carry these addresses, so that they can be delivered to the right destination, and so that we can determine where they came from. As we look at other layers in the Internet Multimedia protocol stack, we will see what other control information is carried in packets to carry out additional functions.