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:
Internet addresses are always written as a dotted sequence of the form:
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:aa.bb.cc.dd
This is called the "Common Internet Address Notation". Internet addresses are commonly referred to as "IP addresses".149.144.21.60
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.
[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.
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.
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.
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.
For example: The broadcast address for a host on the La Trobe, Bendigo Class-B IP network would be[2]:
An example class C broadcast address is:149.144.255.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.197.23.114.255
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:
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:255.255.255.0
Thus ironbark is addressed as:Address = 149.144.21.60 Netmask = 255.255.255.0
class B network: 149.144 subnet: 21 host number: 60
The main problems were observed to be:
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