What's an IP address?
October 29, 2019
An IP address is a name for every device on a network. IP addresses fundamentally enable us to connect with and communicate with a specific device or host on a network.
Depends on what kind, but a basic example of an accessible IP address is your own machine, which will have the IP address
127.0.0.1. This is called the IPv4 format. Broadly speaking, IPv4 IP addresses are formatted like so:
Where a/b/c/d are numbers between 0 and 255 (inclusive) - i.e there are 256 possible values. These are called 'octet' numbersfn:1.
On the top level, an ISP dishes out IP addresses at the point that a device connects to the network.
It turns out IP addresses have a finite supply. That makes sense if you think about it (if the format is xxx.xxx.xxx.xxx there are going to be limited combinations of this - we'll look at how many combinations in a moment).
You could imagine an ISP owning a block of IP addresses it can assign. A device connects to a network and it's given an IP address. When that device disconnects from the network, what should happen with this IP address?
We could turn this problem around a little; what's the use of an IP address? If we go back to our definition:
An IP address is a name for every device on a network
Once a device has disconnected from a network, it's no longer on the network - it's probably not important any more to know to have that machine addressable.
A strategy we could use then, in light of this, is to reclaim that IP address for a different machine - we call this dynamic ip addresses and this strategy is used often by ISP's and the like. The crux of the idea is that over time, an IP address may represent different machines.
There does exist the concept of a static ip address which allows us to reason about an address as an unchanging point of contact, and we can link a static ip address to a specific machine and always know we're talking to this machine. This might allow network administrators to allow access to certain servers via their firewall, for instance.
Another way of dealing with the finite supply of IPv4 addresses has been to change the format to increase the number of addresses. IPv6 formats addresses as:
We move to 8 blocks of 16 bits, which means we can encode up to
2^128 addresses (
16 x 8 = 128), hence the '128 bit' monicker. Each octet in IPv4 is an 8 bit value, and we have 4 of them, so we can encode up to
2^32 addresses (
8 * 4 = 32). It's a difference of many magnitudes.
It may be you need more detail, or another way of phrasing the problem.
Tidbits are my way of documenting little snippets here and there for myself. A means of capturing my own knowledge where there's not enough to construct a fully fledged blog post as such.