IPv4 Addresses
January 15, 2005 2:51 PM   Subscribe

How did the Special-Use IPv4 Addresses get to be that way? In the relevant IRCs it says what the special address ranges are, but I can't find anywhere how, say, 192.168.0.0/16 ended up reserved for private networks. Were there just a bunch of nerds sitting around one day who were like, "193...no, no, that's no good. How about 192?"
posted by jeb to Computers & Internet (17 answers total)
 
The example you give uses "special" numbers; the bit pattern for 192 is 11000000; 168 is 10101000. The former is evenly divisible by 64, the latter only by 8 (not 16, 32, or 64). ANDing and ORing them may result in interesting "filters" for certain other numbers.

Or that's my guess.
posted by five fresh fish at 3:20 PM on January 15, 2005


The Internet Assigned Numbers Authority, (the late Jon Postel - see RFC 2468) would be the person to ask, but alas he's no longer with us.
posted by hardcode at 3:29 PM on January 15, 2005


I think they realized they needed private addresses pretty late in the history, after most of the address ranges were already being used. So they had to scrounge around for whatever they could get. 10.0 was only available because it used to be Arpanet, which had been shut down in 1990. 192.168 probably just happened to be free.
posted by smackfu at 4:38 PM on January 15, 2005


In the old days of the Internet IP address blocks were broken up into three blocks. Class A addresses were like MIT's 18.*.*.* block - they had 2^24 addresses in the range from 0. to 127. Class B addresses were like Reed's 134.10.*.* block - they each got 2^16 addresses, although I'm not sure the exact range. Class C addresses are blocks of only 2^8 addresses, and start at 192.*.*.*.

The authority for this stuff is the IANA, the Internet Assigned Numbers Authority. Yes, geeks sat around and said "this number belongs to organization X". RFC 1466 describes the original class system, although I believe it is much older than that. See RFC 900, for instance. RFC 1519 describes CIDR, which replaced the A/B/C system with more flexible addressing. The hard part there was making the routing infrastructure handle it. The actual private address space allocation is in RFC 1918, surprisingly late - 1996, although again I think this had been in practice long before.

You can also see how much space is left in IPv4. And if you want to go nuts, read up on IPv6, whose space is so huge as to make some of these things much easier.

Man, I love the Internet.
posted by Nelson at 5:13 PM on January 15, 2005


Does MIT *REALLY* need that many IPs?
posted by TheOnlyCoolTim at 6:28 PM on January 15, 2005


No, but trying to reassign all the ones they do need into a contiguous space would be a nightmare.
posted by grouse at 6:34 PM on January 15, 2005


Also, remember one of the more colossal screwups: assigning the loopback range to 127.0.0.0/8, which essentially reserves 16 million addresses (1/224 of usable IPv4 unicast space!) for use when only 4 or 5 (not 4 or 5 million, 4 or 5 addresses) are ever used.
posted by aberrant at 6:52 PM on January 15, 2005


Here's a list of the other holders of the class A address spaces. It's pretty ridiculous. IBM has two of them.
posted by smackfu at 7:00 PM on January 15, 2005


The first allocation actually came in 1994 with RFC 1597. This was late in the game; IANA was concerned that the address space might become depleted very quickly, as up till then every connected machine was given a globally unique IP address. Criticism of this solution appeared in RFC 1627, aka "Network 10 Considered Harmful".

There's more than one unassigned Class A, and they don't actually mean a great deal in the larger scheme of things. Consider that giving back a single Class A to the community only gives you 1/256 more addresses to use. That's a whopping 0.39%. Indeed, the entire block from 64.x.x.x to 127.x.x.x is reserved -- that's a quarter of the entire address space. Heck, some 9 or 10 belong to the US military, and even Halliburton has its very own Class A, not to mention a couple of pharmaceutical establishments (and if you're familiar with the security requirements surrounding drug company computers, you wonder why they even want internet connectivity to begin with, let alone globally unique IPs for every desktop).

Around the time of the "IP crisis", e.g. the period of these RFCs, there were indeed calls for holders like IBM to give back, but the invention of NAT pretty much eliminated that crisis. The selection may have been somewhat arbitrary -- the numbers don't mean anything obvious in hexadecimal, either [AC.10.0.0, A8.B0.0.0] -- but it certainly wasn't because they were the only ones left.
posted by dhartung at 7:47 PM on January 15, 2005


You might find Where Wizards Stay Up Late: The Origins Of The Internet to be a great background on the history of the internet if this sort of thing is of interest to you.
posted by geekyguy at 8:28 PM on January 15, 2005


At this time, I beileve IBM, at least, did give back some. They had their /8 and some additional /16s and /24s. The /16s and /24s were given back.
posted by grouse at 3:54 AM on January 16, 2005


jeb: To address your question of why those particular, and apparently goofy and arbitrary, numbers were used, it probably helps to remember that the XXX.XXX.XXX.XXX notation is just used to help make numbers more easily memorable for humans. Your computer pretty much instantly converts that into binary for actual transmission. Those numbers, which seem so random, don't look nearly as random when looked at in their binary form, which is what's actually important.

(This will probably look better with a non-proportional font)

  0.  0.  0.0 00000000.00000000.00000000.00000000
 10.  0.  0.0 00001010.00000000.00000000.00000000
127.  0.  0.0 01111111.00000000.00000000.00000000
128.  0.  0.0 10000000.00000000.00000000.00000000
192.  0. 0.0 11000000.00000000.00000000.00000000
192.168.  0.0 11000000.10101000.00000000.00000000
240.  0.  0.0 11110000.00000000.00000000.00000000

As you can see, the number 192, while looking really random in decimal, becomes "11000000" in binary, which is very straightforward. Same goes for most of the other goofy numbers (128, 240, etc), though I do find numbers like 10 (00001010) and 168 (10101000) to be a bit more arbitrary. Still, pretty easy to understand when looked at in binary form.

Now, take, for example, easy to understand decimal numbers, like 100. That turns into 01100100, which is a lot less easy to remember / work with.
posted by Bugbread at 5:39 AM on January 16, 2005


It would probably also look better if I hadn't missed a space. oops.
posted by Bugbread at 5:41 AM on January 16, 2005


I came across this list of special addresses today.
posted by grouse at 6:05 AM on January 16, 2005


Reposted with <pre> tags for clarity.
  0.  0.  0.0 00000000.00000000.00000000.00000000
 10.  0.  0.0 00001010.00000000.00000000.00000000
127.  0.  0.0 01111111.00000000.00000000.00000000
128.  0.  0.0 10000000.00000000.00000000.00000000
192.  0.  0.0 11000000.00000000.00000000.00000000
192.168.  0.0 11000000.10101000.00000000.00000000
240.  0.  0.0 11110000.00000000.00000000.00000000

posted by benzo8 at 6:27 AM on January 16, 2005


Your numerology is sort of vaguely suggestive, but:

1) Nobody in the real world reads numbers in binary on a regular basis
2) The computer's just going to be comparing the number to some other number -- it doesn't care what the pattern of 1s and 0s looks like
3) The reserved range 172.16.x.x doesn't look like anything at all -- 10101100.00010000 ?
posted by xil at 12:35 PM on January 16, 2005


Xil: I didn't want to go into this too much, but:

1) You're right. It's not for day to day use (again, that's why we have XXX.XXX.XXX.XXX, or, even better, DNS resolution). But people do look at and consider binary when setting up addresses / subaddresses. Of course, not so much nowadays, because people have lots of experience and practice, and because computers do a lot of it for us. But when these IP address structures were made, the people who were involved in addressing did look at strings of binary a decent bit.
2) The computer doesn't care what the pattern looks like, but the programmers do, and it makes organizing IP address space much easier if you remember up to what point are ones, and from what point zeroes are. I can tell you from experience that much deciding of address space, until you get used to it, is done in binary and then converted back to decimal by people. If you set up subnets, at least at the start, one of the first things you do as a beginner is map the IP octets out into binary.
3) You're totally right. I was really addressing the question of "Why 192?!" more than anything else, and just threw a few other sensical ones in there for additional explanation. I certainly didn't mean to imply that they all made sense, just that some did, and that the number 192 did not come out of thin air.
posted by Bugbread at 12:55 PM on January 16, 2005


« Older How to make professional videos for a software...   |   Firefox (version .9) freezing problems Newer »
This thread is closed to new comments.