Address space is the amount of memory allocated for all possible addresses for a computational entity, such as a device, a file, a server, or a networked computer. Address space may refer to a range of either physical or virtual addresses accessible to a processor or reserved for a process. As unique identifiers of single entities, each address specifies an entity's location (unit of memory that can be addressed separately). On a computer, each computer device and process is allocated address space, which is some portion of the processor's address space. A processor's address space is always limited by the width of its address bus and registers. Address space may be differentiated as either flat, in which addresses are expressed as incrementally increasing integers starting at zero, or segmented, in which addresses are expressed as separate segments augmented by offsets (values added to produce secondary addresses). In some systems, address space can be converted from one format to the other through a process known as thunking.
In terms of IP address space, there has been concern that IPv4 (Internet Protocol Version 4) had not anticipated the enormous growth of the Internet, and that its 32-bit address space would not be adequate. For that reason, IPv6 has been developed with 128-bit address space.