Subjects ->
Computer Networks ->
Lectures ->
Lecture #12
Lecture 12: The IP Protocol #1
The Internet Protocol, IP
Recall last lecture: the TCP
(transport layer) protocol is implemented in the two edge
systems involved in communications -- engineers say it's
implemented at the "edges" of the network.
TCP relies on the Internet Protocol (IP) to deliver
packets of data from one edge system to another. The packets which IP
delivers are usually called datagrams.
Datagrams navigate zero or more (sometimes many)
routers, interconnecting the individual networks which
together make up the Internet. The word "Internet" is just a
contraction of the phrase "Interconnected Networks".
A router is essentially a special-purpose computer whose sole function
is to transfer datagrams between networks. In earlier times, they were
called "IP Gateways". The general structure of the Internet can thus be
visualised:
IP Addressing
The concept of a global Internet addressing scheme is
fundamental to IP. Every Internet-connected system has a unique
Internet host address. This is a 32 bit, or 4 byte,
binary number.
Internet addresses are always written as a dotted sequence of the form:
aa.bb.cc.dd
where aa, bb, etc, are the decimal values (ranging from 0
to 255) of the 4 bytes which make up the internet address, for example:
149.144.21.60
This is called the "Common Internet Address Notation".
Internet addresses are commonly referred to as "IP addresses".
The dotted sequence 149.144.21.60
is the IP address of
"ironbark", or to use its full domain name,
ironbark.bendigo.latrobe.edu.au.
. Note that the
traditional Internet literature refers to internet-connected computers
as hosts, which reflects the historical nature of
computers as multi-user timeshared systems.
"Two Part" Addresses
The 4 byte internet address consists of 2 parts, the network part
and the host part.
- The network part is the same for all hosts connected to the same
network. The network part is used to route datagrams across the
Internet.
- Every network in the global Internet has a unique network
identification number.
- The host part must be unique within each specific network. It
is used to deliver the datagram once it has been routed to the
appropriate network.
- The combination of the unique network number plus a
"host-within-network" number means that every Internet-connected
computer has a globally unique IP address.
Address Classes
Traditionally, the structure of an IP address differs depending on the
class of the network to which the host is connected[1].
- Class A Network
- the first (or leftmost) field, or byte, of the address
specifies the network number and class, and can take values
from 1 to 126.
- Class B network
- the leftmost two fields (bytes) specify the network number and
class. The first field is in the range from 128 to 191, and
the second from 1 to 254.
- Class C network
- the leftmost three fields specify network number and class. The
first field can be from 192 to 223, the second from 0 to 255,
and the third from 1 to 254.
[1] Since the mid-1990s,
this scheme has been replaced with the newer CIDR
allocation algorithm. However, it's still important to have a handle on
the older system, because CIDR is really an extension, and
generalisation, of it.
More On Address Classes
The Internet address format can be described graphically:
- Example 1:
- in a class A network, only values from
00000000
to
01111111
are possible. Of these 128 combinations,
126 are permitted (networks 0 and 127 are reserved for other
purposes). Hence there can only ever be 126 class A networks,
each of which can have a huge number of hosts.
- Example 2:
- ironbark's IP address is
149.144.21.60
This is a
class B network (149.144.0.0
), and ironbark's host
ID within this network is 21.60
. Note that when we
write an IP address with all-zeroes in the host part, we are
referring to the "network number" itself.
- Example 3:
203.17.3.5
is a class C address. The network
number is 203.17.3.0
, and the host number is
5
.
Network numbers above 223 are also reserved for special purposes,
outside the scope of this subject.
IP Broadcast Address
The broadcast address is the address used to send a
datagram to all hosts on the local network simultaneously. This is the
address given by the network number followed by all binary 1's in the
host part of the address. For example: The broadcast address for a
host on the La Trobe, Bendigo Class-B IP network would be[2]:
149.144.255.255
An example class C broadcast address is:
197.23.114.255
[2] Except for the fact
that subnetting is in use, see next slide. There's also some subtlety
in what's a valid broadcast address, see the tute for more on this.
IP Subnetting
Where Class-B networks (and, nowadays, class C also) are in use, the
host part of the address is commonly split, for management purposes, to
allow subnetting -- typically this involves defining
254 subnets each of 254 hosts. Each of these subnets
behaves, for all intents, like an independent class-C network: thus:
Exactly which bits of the subnetted address are used for the
network/subnet part and the host part is defined using an
address mask, or netmask thus:
255.255.255.0
This says that 24 bits of the address are to be interpreted as "network
part". For example, at Bendigo the "ironbark" UNIX system address is:
Address = 149.144.21.60 Netmask = 255.255.255.0
Thus ironbark is addressed as:
class B network: 149.144
subnet: 21
host number: 60
Problems with Class-based Addressing
The Class A, B & C address model worked fine in the early years of the
Internet. Towards the end of the 1980s and in the early 90s it became
increasingly clear, with the observed exponential growth in the number
of Internet hosts, that it would soon "break" under the load.
The main problems were observed to be:
- Internet routing is done on the basis of the network part of the IP
address. Major backbone routers were stuggling to maintain routing
tables which included information about how to send a datagram to
all of the allocated networks -- the amount of routing table memory
required was becoming impractical.
- Addresses themselves were running out. The inflexibility of the
network class-based system meant that many organisations were being
allocated class-B networks, when their requirements were not far in
excess of the capacity of a class-C. The end result was that vast
slabs of the address space were never allocated, and effectively
wasted.
A (temporary) solution to both of these problems was introduced by the
IETF in 1993 -- Classless Internet Domain Routing, or
CIDR (pronounced like "cider"). In this system, the
entire class A, B and C scheme has been discarded for all recent IP
address allocations.
CIDR Addresses
A CIDR address has some of the characteristics of a subnetted Class A,
B or C address, see earlier. They are written as
"aa.bb.cc.dd/x
". The new "/x
"
specifier indicates how many bits of the address, starting from the
MSB, are to be interpreted as the "network" part, leaving the remainder
to be interpreted as "host" part -- this is obviously related to the
older "subnet" model.
For example, suppose an organisation needed about 1000 IP addresses for
its Internet-connected hosts. A suitable CIDR allocation would be
(eg)203.100.100.0/22
. This means that the address
part is 22 bits, and the host part is 10 bits, giving 1024 host IDs. As
usual, we write all zeros in the host part of the address when
referring to the "network" itself.
An additional characteristic of CIDR is that IP address blocks are now
allocated on a geographic basis, or more correctly, on
the basis of domain names. So, for example, virtually all IP addresses
recently allocated in Australia now have 203
as
their first byte. This is done to simplify routing, see later
The tutorial for this lecture is
Tutorial #12.
[Previous Lecture]
[Lecture Index]
[Next Lecture]
Copyright © 2005 by
Philip Scott,
La Trobe University.