Internet Protocol for Windows Users

Huge area to cover, we have assembled and written tutorials that have proven helpful over time.
Post Reply
User avatar
weazy
Ex-Admin
Posts: 1688
Joined: Sun Jul 07, 2002 10:02 am
Location: any given
Contact:

Internet Protocol for Windows Users

Post by weazy » Fri May 30, 2003 5:36 pm

Where does an IP address come from?

TCP/IP assumes that there are a large number of independent networks
connected together by gateways. The user should be able to access
computers or other resources on any of these networks. All you need to
know in order to access another system is an address like 128.6.4.194.

It's actually a 32-bit number, but it's written as 4 decimal numbers,
each representing 8 bits of the address. The structure of the address
gives the information on how to get to a system. (ex. 128.6 is the
number assigned to Rutgers University.) The next octet indicates which
Ethernets are involved. 128.6.4 is used by the Computer Science
department. The last octet allows up to 254 systems on each Ethernet.
(254 because 0 and 255 are not allowed)

As mentioned, Internet addresses are 32-bit numbers, normally written
as 4 octets (in decimal), e.g. 128.6.4.7. There are actually 3 different
types of address. The problem is that the address has to indicate both
the network and the host within the network. They thought that 24 bits
would be needed to represent all the IP networks, and that some very big
networks might need 24 bits to represent all of their hosts. This would
seem to lead to 48 bit addresses. But the designers really wanted to use
32 bit addresses. So they adopted a kludge, assuming that most networks
will be small. So they set up three different ranges of address.

Addresses beginning with 1 to 126 use only the first octet for the
network number. The other three octets are available for the host
number. So 24 bits are available for hosts. These numbers are used for
large networks. But there can only be 126 of these big networks, like
Arpanet and large commercial networks are few. But not many normal
organizations get a "class A" address.

For normal large organizations, "class B" addresses are used. Class B
addresses use the first two octets for the network number. Thus network
numbers are 128.1 through 191.254. (We avoid 0 and 255, and addresses
beginning with 127, because they are used for special purposes). The last
two octets are available for host addesses, giving 16 bits of host address.
Allowing for 64,516 computers, enough for most organizations. (You can get
more than one class B address, if you run out.)

Class C addresses use three octets, in the range 192.1.1 to 223.254.254.
These allow only 254 hosts on each network, but there can be lots of these
networks. Addresses above 223 are reserved for future use (class D and E,
not currently defined).

0 and 255 have special meanings. 0 is reserved for machines that
don't know their address. It's possible for a machine not to know the
number of the network it is on, or even its own host address. For
example, 0.0.0.23 would be a machine that knew it was host number 23,
but didn't know on what network.

255 is used for "broadcast", (a message that you want every system on
the network to see.) They're used in situations where you don't know who
to talk to. Example, you need to look up a host name and get its
Internet address, but you don't know the address of the nearest name
server. So, you might send the request as a broadcast. Or if a number of
systems are interested in the same information, it's less expensive to
send a single broadcast than to send datagrams individually to each host
that's interested. To send a broadcast, you use an address that is made
using your network address, with all ones in the part of the address
where the host number goes. So if you are on network 128.6.4, you would
use 128.6.4.255 for broadcasts. It's not possible to send broadcasts
on Arpanet, or on point to point lines. But it is possible on an
Ethernet. If you use an Ethernet address with all its bits "on" (all
ones), every machine on the Ethernet is supposed to look at that
datagram.

For convenience, the standard also allows 255.255.255.255 to be used.
This refers to all hosts on the local network. Certain older
implementations may use 0 instead of 255 to form the broadcast address.
Such implementations would use 128.6.4.0 instead of 128.6.4.255 as the
broadcast address on network 128.6.4.

Certain older implementations may not understand subnets. So they
consider the network number to be 128.6. They will assume a broadcast
address of 128.6.255.255 or 128.6.0.0.

Because 0 and 255 are used for unknown and broadcast addresses, normal
hosts should never be given addresses containing 0 or 255. Addresses
should never begin with 0, 127, or any number above 223.
--The Devil is in the Details--

Post Reply