Hardware Addressing
A hardware
address is used to uniquely identify a host within a local network. Hardware addressing is a
function of the Data-Link layer of the OSI model (Layer-2).
Ethernet utilizes the 48-bit MAC address as its
hardware address. The MAC address is often hardcoded on
physical network interfaces, though some interfaces support changing
the MAC address using special utilities. In virtualization environments,
dynamically assigning MAC addresses is very common.
A MAC address is most often represented
in hexadecimal, using one of two accepted formats:
06:23:AD:F2:32:17
0643.ADF2.3217
The first six hexadecimal digits
of a MAC address identify the manufacturer of the physical network
interface. This is referred to as the OUI (Organizational
Unique Identifier). The last six digits uniquely identify the host itself, and are referred
to as the host ID.
The MAC address has one
shortcoming – it contains no hierarchy. MAC addresses provide no mechanism to
create boundaries between networks.
There is no method to distinguish
one network from another.
This lack of hierarchy poses significant
difficulties to network scalability. If only Layer-2
hardware addressing existed, all hosts would technically exist on the same network.
Internetworks like the Internet could not exist, as it would be impossible to separate my network from
your
network.
Imagine if the entire Internet
existed purely as a single Layer-2 switched network. Switches, as a rule,
will forward a broadcast out every port. With billions of hosts on the
Internet, the resulting broadcast storms would be devastating. The Internet would
simply collapse.
The scalability limitations of
Layer-2 hardware addresses are mitigated
using logical
addresses, covered in great detail in this
guide.
Logical Addressing
Logical addressing is a function
of the Network layer of the OSI Model (Layer-3), and provides a
hierarchical structure to separate networks. Logical addresses are never
hardcoded on physical network interfaces, and can be dynamically assigned and
changed freely. A logical address contains two
components:
• Network ID – identifies
which network a host belongs to.
• Host ID – uniquely
identifies the host on that network.
Examples of logical addressing
protocols include Internetwork Packet Exchange
(IPX) and Internet Protocol (IP). IPX was predominantly used on Novell networks, but is now
almost entirely deprecated. IP is the most widely-used logical address, and
is the backbone protocol of the Internet.
Internet Protocol (IP)
In the 1970’s, the Department of
Defense developed the Transmission Control
Protocol (TCP), to provide both Network and Transport layer functions. When this proved to be
an inflexible solution, those functions were separated - with the Internet
Protocol (IP) providing Network layer services, and TCP providing
Transport layer services. Together, TCP and IP provide the
core functionality for the TCP/IP or Internet
protocol suite.
IP provides two fundamental
Network layer services:
• Logical addressing – provides a
unique address that identifies both the host, and the network that host
exists on.
• Routing – determines
the best path to a particular destination network, and then routes data
accordingly. IP was originally defined in RFC
760, and has been revised several times. IP Version 4 (IPv4) was the
first version to experience widespread deployment, and is defined in RFC
791. IPv4 will be the focus of this guide. IPv4 employs a 32-bit
address, which limits the number of possible addresses to 4,294,967,296. IPv4
will eventually be replaced by IP Version 6(IPv6), due to a shortage of available IPv4 addresses
IPv4 Addressing:--
A core function of IP is to
provide logical addressing for hosts. An IP address provides a
hierarchical structure to both uniquely identify a host, and what network that host
exists on. An IP address is most often
represented in decimal, in the following format:
158.80.164.3 An IP address is
comprised of four octets, separated by periods:
Each octet is an 8-bit number,
resulting in a 32-bit IP address. The smallest possible value of
an octet is 0, or 00000000 in binary. The largest possible value of an
octet is 255, or 11111111 in binary.
The above IP address represented
in binary would look as follows:
Decimal to Binary Conversion
The simplest method of converting
between decimal and binary is to remember the following table:
128 64 32 16 8 4 2 1
To convert decimal number of 172 to binary,
start with the leftmost column. Since 172 is greater
than 128, that binary bit will be set to 1. Next, add the value of the next column
(128 + 64 = 192). Since 172 is less than 192, that binary
bit will be set to 0. Again, add the value of the next
column (128 + 32 = 160). Since 172 is greater than 160, that
binary bit will be set to 1. Continue this process until the columns with binary bits set
to 1 add up to 192:--
Now what is Subnet Mask:--
Part of an IP address identifies
the network. The other part of the address identifies the host. A subnet mask is required
to provide this distinction:
158.80.164.3 255.255.0.0
The above IP address has a subnet
mask of 255.255.0.0. The subnet mask follows two rules:
• If a binary bit is set to a 1 (or on) in a
subnet mask, the corresponding bit in the address identifies the
network.
• If a binary bit is set to a 0 (or off) in a
subnet mask, the corresponding bit in the address identifies the
host.
Looking at the above address and
subnet mask in binary:
The first 16 bits of the subnet
mask are set to 1. Thus, the first 16 bits of the address (158.80) identify
the network. The last 16 bits of the subnet mask are set to 0. Thus, the
last 16 bits of the address (164.3) identify
the unique host on that network.
The network portion of the subnet
mask must be contiguous. For example, a subnet mask of 255.0.0.255
is not valid. Hosts on the same logical network
will have identical network addresses, and can communicate freely. For
example, the following two hosts are on the same network:
Host A: 158.80.164.100
255.255.0.0
Host B: 158.80.164.101
255.255.0.0
Both share the same network
address (158.80), which is determined by the 255.255.0.0
subnet mask. Hosts that are on different networks
cannot communicate without an
intermediating device. For example:
Host A: 158.80.164.100
255.255.0.0
Host B: 158.85.164.101
255.255.0.0
The subnet mask has remained the
same, but the network addresses are now different (158.80 and 158.85 respectively).
Thus, the two hosts are not on the same network, and cannot
communicate without a router between them.
Routing is the
process of forwarding packets from one network to another. Consider the following, trickier
example:
Host A: 158.80.1.1 255.248.0.0
Host B: 158.79.1.1 255.248.0.0
The specified subnet mask is now 255.248.0.0, which
doesn’t fall cleanly on an octet boundary. To determine
if these hosts are on separate networks, first convert everything to binary:
Host A
Address: 10011110.01010000.00000001.00000001
Host B
Address: 10011110.01001111.00000001.00000001
Subnet Mask:
11111111.11111000.00000000.00000000
Remember, the 1 (or on) bits in the
subnet mask identify the network portion of the address. In this example,
the first 13 bits (the 8 bits of the first octet, and the first 5 bits of the
second octet) identify the network. Looking at only the first 13 bits of each
address:
Host A Address: 10011110.01010
Host B Address: 10011110.01001
Clearly, the network addresses
are not identical. Thus, these two hosts are on separate networks, and require a
router to communicate.
No comments:
Post a Comment