> I don't know what all this is about. Still, it woke me up.

I was just reading this in one of the TCP/IP books I have, so I'll take a stab 
at explaining it (and let somebody else explain the
errors).

IP addresses are divided into "host" portions and "network" portions. The host 
portion is assigned by whoever doles out blocks of IP
addresses, and is fixed once you get it. The network portion is what you get to 
play around with after you are assigned your block
of IP addresses. The host portion always comes first. Somebody might assigned 
you the block of IP addresses 45.67.0.1 -
45.67.255.255. The host portion is "45.67", whereas the network potion is ".0.1 
- .255.255".

In the olden days, networks were divided into classes: A, B, and C. Class A 
networks had an 8-bit host value, and a 24-bit network
value. So a class A network would appear as 45.xxx.xxx.xxx. On that network, 
you could assign any machine an IP address from
45.0.0.1 - 45.255.255.255. Class B networks had a 16-bit host and a 16-bit 
network value, such as 45.67.xxx.xxx (in the example in
the last paragraph). Class C networks had a 24-bit host and an 8-bit network 
value (45.67.112.xxx).

However, this addressing scheme had its limitations. You might not need the 
65,536 IP addresses provided by a class B network, but
more than the 256 addresses provided by a class C network. In the old days, 
you'd suck it up, take the class B network, and the
unused addresses would go to waste. However, as the Internet grew, IP addresses 
started becoming a scarce commodity. So what
happened was the assignment of IP addresses went from fixed classes to 
classless to prevent that type of waste.

In classless assignment, IP addresses take the form of xxx.xxx.xxx.xxx/YY. The 
"/YY portion" tells you how many bits to use as the
host portion, and how many to use as the network portion. Converting from the 
old scheme, a class B address of 45.67.xxx.xxx would
now become 45.67.xxx.xxx/16. Class C addresses would become 45.67.112.xxx/24.

The power that this provides is demonstrated when you need, say, 32,000 
addresses. Obviously, this is more than an old class C
address could provide, but if you picked up a class B address you'd be wasting 
another 32,000+ addresses. So what you do is you take
a class B address and move one bit from the network portion to the host portion 
(e.g., 45.67.xxx.xxx/17 rather than
45.67.xxx.xxx/16). What this does is chops up the 45.67.xxx.xxx range into two 
separate networks, the first going from 45.67.0.1 to
45.67.127.255, and the second going from 45.67.128.1 to 45.67.255.255. Rather 
than get 32,000+ IP addresses that would go
unassigned, you can get 32,768 addresses - and let somebody else get the other 
32,768 addresses who could actually use them. Instead
of throwing away 32k+ addresses, you only let a few hundred go unassigned.

A netmask address is an alternate way of expressing the "/YY" for an IP 
address. The netmask is simply the "/YY" portion converted
into IP address notation. For instance, /16 would become 255.255.0.0. /17 would 
be 255.255.127.0. Using the netmask, you can figure
out how a network is partitioned much easier than you can be simply looking at 
"/17".

So that's the quite and dirty run-down. I'm sure somebody will step in with 
corrections about math or terminology, but I think you
can get the gist of it from the explanation above.



Reply via email to