The global Internet address space offers hosts unique addresses within its 32 bit space, with a maximum of 2^32=4,294,967,296 individual hosts. In reality, chunks of host-address spaces are allocated for component networks, such as a corporation, or a university campus. These chunks have to be globally reachable across Internet Service Providers. The reachability ensured by means of routing protocols. Specifically the Border Gateway Protocol (BGP) is being used for an abstraction of the global routing system. BGP information being used locally and exchanged with peers reflect address chunks as a combination of an IP address and a mask. E.g., an address of 192.172.226.0 with a mask of 24 bits means that starting at IP address 192.172.226.0 for 32-24=8 bits, or 256 individual IP addresses, are allocated for the specific routing entry. A packet to a host, such as 192.172.226.9, can then be reached by the "next IP hop" that the aforementioned address/mask pair points to.
One can get a notion of global BGP routing information by aggregating the available BGP information, such as described in http://www.antc.uoregon.edu/route-views and http://moat.nlanr.net/AS. This information can be made useful for an analysis of the IP address and mask pairs. For example, if one has information about all the address/mask pairs that constitute routeable entities, one can observe the utilization of the overall IP address space.
This example uses BGP information from the 15th November 1997. To extract manageable numbers, let's assume we look at routing entries as meaning at least 256 hosts, for a maximum of (2^32)/256=16,777,216 possible clusters of hosts.
Our specific BGP dump (15 November 1997) shows 3,479,323 such clusters as being routeable address space, for a maximum of 3,479,323*256, or 890,706,688 potentially reachable hosts. This means that (890706688/(2^32))*100 or about 20.74% of the totally addressable IP space were known as routeable. A five-fold increase would deplete all of the available address space.
If we use the square root of the maximum number of clusters (i.e., sqrt((2^32)/256)), we see that the global address space can be visualized by means of a 4096*4096 matrix, with each matrix entry representing exactly one of those clusters. We can visualize this by coloring the entries in such a matrix that are occupied by a routeable cluster, a small version of which is being shown in the following graphic:
The numbers on the left side identify some IP address space locations. The graphic can be expanded to the full 4096*4096 image by clicking on it (actually, due to the legend, it is a 4636*4636, GIF87 image, 115,555 bytes in size, for the 21,492,496 pixels -- be warned, the image is fairly huge and not suitable to those that are memory, CPU, or screen size challenged).
For easier viewing, full size subsets of IP Class A/B/C used subareas are available:
A 6.6MB AVI flyover.The conversion routine from the Cisco BGP routing table dump format to a PBM image can be found in nnpack.pl. Here is a plainer image without the color codes.
To further these views, one can attempt to collate the announced/used address space with the allocated address space. Using the November 97 version of the InterNIC's netinfo/ip_network_dump file, which gives a numerical representation of the InterNIC's IP allocations, and after editing the 0.0.0.0/0 allocation out of the file, an image looks of their view of the allocated address space can be created. The conversion program for that image is in nnpack-inic.pl. Overlaying the previous image onto the allocated image yields the following composite:
Unfortunately the InterNIC has also included "reserved" address space as "allocated," which makes the over-allocation versus the under-utilization of the address space appear even worse then it really is.
Considerations of really used address space, such as especially depicted the first image above, are important for evolving the Internet address architectures. CIDR has helped somewhat with amorphously allocated address space, but stopped short of needed renumbering to create larger clusters and reduce the routing table sizes. Network address translation (NAT) technologies being a hot seller these days significantly reduce the pressure off increasing utilization of the Internet address space.