Вы находитесь на странице: 1из 9

IP Subnet Calculations

1. IP Addressing

At this point you should know that IP, the Internet Protocol, is a network layer (OSI layer 3)
protocol, used to route packets between hosts on different networks. To suit this purpose, IP must
define an addressing scheme, so that a packet's intended destination can be indicated.

An IP address is composed of 32 bits. These 32 bits are divided into 4 octets of 8 bits each. You
may have seen an IP address represented like this: We must remember, however,
that the computer understands this number only in binary, so we must often deal with them in
binary. Many people are intimidated by this initially, but soon find that it is not difficult. If you
do not allow yourself to be flustered, you can master this topic.

IP addresses are assigned to organizations in blocks. Each block belongs to one of three classes:
class A, class B, or class C. You can tell what class an IP address is by the value in its first octet.

Class A

Class B

Class C
192 -->

An IP address consists of two fields. The first field identifies the network, and the second field
identifies the node on the network. Which bits of the address are in the network field and which
bits are in the host field is determined by the subnet mask.

When a class A IP license is granted, you are assigned something like this: Only the
value of the bits in the first octet is assigned. This means you are free to assign any values you
wish in the second, third and fourth octets.

The default subnet mask for a class A network is High bits, ones, indicate the bits that
are part of the network field of the IP address. The default subnet mask does not create subnets.
Therefore, a class A network with the default subnet mask is one network. The three octets that
are unassigned and unmasked are part of the host field of the address. There is a total of 24 bits
in those three octets. Each bit can be in one of two states. Therefore, 2^24 is the number of host
addresses that can be assigned on that network, almost. Two addresses are reserved on every
network, x.x.x.0 and x.x.x.255. So the total number of hosts possible on this network is 2^24.
2^24-2=16,777,214 hosts for a class A IP network.

When a class B license is granted, the first two octets are assigned. For example, 172.198.x.x.
The default subnet mask for a class B is One network, two octets free, 16 bits for
the host address field. 2^16-2=65,534 possible host addresses on a class B IP network.

When a class C license is granted, the first three octets are assigned, for example:
The default subnet mask for a class C is Once octet makes up the host address
field. 2^8-2=254 host addresses possible on a class C network.

2. Reason for Subnetting

We said that the default subnet mask for a class A IP network is Once octet only of a
class A network address identifies the network, with this subnet mask. This leaves three octets of
8 bits each, or 24 bits, to identify the host on that one network. 2^24=16,777,216 addresses. Two
addresses are reserved, x.x.x.0 and x.x.x.255. 16,777,214 nodes can be assigned an IP address on
this network.

It is highly unlikely that any organization would want one network of 16,777,214 nodes. They
might want that many devices connected in a wide area network (WAN), thus capable of
communicating when necessary, but they will want to subdivide this huge network into mostly
self-contained subnetworks of nodes that communicate with each other often. This is called

To understand why, consider what would happen in either a broadcast or a token passing network
that consisted of over 16,000,000 nodes. Nothing would happen. It simply would not work.
Though the problem is not as drastic, class B and class C IP networks are often subnetted, also.

The subnet mask is used to subdivide an IP network into subnets. This is a division that takes
place in OSI layer 3, so it is a logical division that is created by the addressing scheme. This
logical division is usually combined with a physical division. Many subnets are physically
isolated from the rest of the network by a device such as a router or a switch. This aspect of
subnetting is discussed in Unit 3--Data Link Layer.

3. How Subnetting Works

The bits of an address that are masked by the subnet mask are the bits that make up the network
field of the address. To subnet, the default subnet mask for a network is extended to cover bits of
the address that would otherwise be part of the host field. Once these bits are masked, they
become part of the network field, and are used to identify subnets of the larger network.

Here is where we begin dealing with both addresses and subnet masks in binary. Get yourself a
cold beverage, stretch, take a deep breath and don't worry. Once you get your brain around the
concepts, it is not difficult. You just have to keep trying until the light goes on.

3.1 Translating Binary to Decimal

Both IP addresses and subnet masks are composed of 32 bits divided into 4 octets of 8 bits each.
Here is how a single octet translates from binary to decimal. Consider an octet of all ones:
128 64 32 16 8 4 2 1 --- -- -- -- - - - - 1 1 1 1 1 1 1 1 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

Here's another: 10111001

128 64 32 16 8 4 2 1 --- -- -- -- - - - - 1 0 1 1 1 0 0 1 128 + 0 + 32 +16 + 8 + 0 + 0 + 1 = 185

and 00000000
128 64 32 16 8 4 2 1 --- -- -- -- - - - - 0 0 0 0 0 0 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0

3.2 Converting Decimal to Binary

Converting decimal to binary is similar. Consider 175:

128 64 32 16 8 4 2 1 --- -- -- -- - - - - 1 0 1 0 1 1 1 1 128 + 0 + 32 + 0 + 8 + 4 + 2 + 1 = 175


3.3 Simple Subnetting

The simplest way to subnet is to take the octet in the subnet mask that covers the first unassigned
octet in the IP address block, and make all its bits high. Remember, a high bit, a 1, in the subnet
mask indicates that that corresponding bit in the IP address is part of the network field. So, if you
have a class B network, with the subnet mask, you have one network
with 65, 534 possible addresses. If you take that subnet mask and make all the bits in the third
octet high
128 64 32 16 8 4 2 1 --- -- -- -- - - - - 1 1 1 1 1 1 1 1 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

you get the subnet mask

172.60. 0. 0

Now the third octet of all the addresses on this network is part of the network field instead of the
host field. That is one octet, or eight bits, that can be manipulated to create subnets. 2^8-2=254
possible subnets now on this class B network.

One octet is left for the host field. 2^8-2=254 possible host addressed on each subnet.

3.4 Advanced Subnetting

That is the simplest way to subnet, but it may not be the most desirable. You might not want 254
subnets on your class B network. Instead, you might use a subnet mask like How
many subnets would this give you? The first step is to see how many bits are allocated to the
network by this mask.
128 64 32 16 8 4 2 1 --- -- -- -- - - - - 1 1 1 0 0 0 0 0 128 + 64 + 32 + 0 + 0 + 0 + 0 + 0 = 224

3 bits are allocated. 2^3-2=6 subnets.

How many hosts on each subnet? Well, 5 bits from this octet are left for the host field, and 8 bits
in the fourth octet, for a total of 13 bits in the host field. 2^13-2=8190 possible hosts on each

The subnet mask is always extended by masking off the next bit in the address, from left to right.
Thus, the last octet in the subnet mask will always be one of these: 128, 192, 224, 240, 248, 252,
254 or 255.

Given the IP address of a host and the subnet address for the network, you need to be able to
calculate which subnet that host is on. To do this we compare the binary representation of the
pertinent octet of the subnet mask with the binary representation of the corresponding octet in the
IP address. Example:
IP address= subnet mask= 50= 00110010 224=11100000

We perform a logical on these two numbers. We will be left with only the bits where there is a
one in both octets.
00110010 11100000 -------- 00100000=32

This host is on subnet

We also need to be able to find the range of assignable IP addresses on this subnet. To do this, we
take the binary that tells us the subnet address, in this case 00100000, and compare it with the
subnet mask.
00100000 11100000

The bits converted by the mask we will leave as they are. The rest of the bits we make high. So
00100000 11100000 -------- 0011111=63

The range of assignable IP addresses on the subnet is

On every network and subnet, two addresses are reserved. At the low end of the range of
addresses for the network or subnet, in this case, is the address for the network or
subnet itself. The address at the high end of the range of addresses, in this case, is
the broadcast address. Any message sent to the broadcast address will be received by every host
on the network.

Subnet Masks
Khi ta chia một Network ra thành nhiều Network nhỏ hơn, các Network nhỏ nầy được
gọI là Subnet. Theo quy ước, các địa chỉ IP được chia ra làm ba Class (lớp) như sau:

Address Class
Subnet mask trong dạng nhị phân
Subnet mask

Class A
11111111 00000000 00000000 00000000

Class B
11111111 11111111 00000000 00000000

Class C
11111111 11111111 11111111 00000000

Subnet Mask của Class A bằng có nghĩa rằng ta dùng 8 bits, tính từ trái
qua phải (các bits được set thành 1), của địa chỉ IP để phân biệt các NetworkID của
Class A. Trong khi đó, các bits còn sót lại (trong trường hợp Class A là 24 bits đuợc
reset thành 0) được dùng để biểu diễn computers, gọi là HostID. Nếu bạn chưa quen
cách dùng số nhị phân hãy đọc qua bài Hệ thống số nhị phân.

Hãy xét đến một địa chỉ IP class B,, với subnet mask là (có
thể viết là:, ở đây số 16 có nghĩa là 16 bits được dùng cho
NetworkID). Một Network với địa chỉ thế nầy có thể chứa 65,534 nodes hay
computers (65,534 = (2^16) –2 ) . Đây là một con số quá lớn, trên mạng sẽ có đầy
broadcast traffic.

Giả tỉ chúng ta chia cái Network nầy ra làm bốn Subnet. Công việc sẽ bao gồm ba

1) Xác định cái Subnet mask

2) Liệt kê ID của các Subnet mới
3) Cho biết IP address range của các HostID trong mỗi Subnet

Bước 1: Xác định cái Subnet mask

Để đếm cho đến 4 trong hệ thống nhị phân (cho 4 Subnet) ta cần 2 bits. Công thức
tổng quát là:

Y = 2^X

mà Y = con số Subnets (= 4)
X = số bits cần thêm (= 2)

Do đó cái Subnet mask sẽ cần 16 (bits trước đây) +2 (bits mới) = 18 bits

Địa chỉ IP mới sẽ là (để ý con số 18 thay vì 16 như trước đây). Con số
hosts tối đa có trong mỗi Subnet sẽ là: ((2^14) –2) = 16,382. Và tổng số các hosts
trong 4 Subnets là: 16382 * 4 = 65,528 hosts.

Bước 2: Liệt kê ID của các Subnet mới

Trong địa chỉ IP mới ( con số 18 nói đến việc ta dùng 18 bits, đếm từ
bên trái, của 32 bit IP address để biểu diễn địa chỉ IP của một Subnet.

Subnet mask trong dạng nhị phân

Subnet mask

11111111 11111111 11000000 00000000

Như thế NetworkID của bốn Subnets mới có là:

Subnet ID trong dạng nhị phân
Subnet ID




Bước 3: Cho biết IP address range của các HostID trong mỗi Subnet
Vì Subnet ID đã dùng hết 18 bits nên số bits còn lại (32-18= 14) được dùng cho
Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

HostID IP address trong dạng nhị phân
HostID IP address Range

10001011.00001100.00111111.11111110 -

10001011.00001100.01111111.11111110 -

10001011.00001100.10111111.11111110 -

10001011.00001100.11111111.11111110 –

Bạn có để ý thấy trong mỗi Subnet, cái range của HostID từ con số nhỏ nhất (màu
xanh) đến con số lớn nhất (màu cam) đều y hệt nhau không?

Bây giờ ta thử đặt cho mình một bài tập với câu hỏi:

Bạn có thể dùng Class B IP address cho một mạng gồm 4000 computers được
không? Câu trả lời là ĐƯỢC. Chỉ cần làm một bài toán nhỏ.

Giả tỉ cái IP address là Thay vì bắt đầu với Subnet mask, trước hết
chúng ta tính xem mình cần bao nhiêu bits cho 4000 hosts.

Con số hosts ta có thể có trong một network được tính bằng công thức:

Y = (2^X –2)

Nhớ cái luật dùng cho Host ID là tất cả mọi bits không thể đều là 0 hay 1.

4094 = (2^12 –2)

X = 12 , ta cần 12 bits cho HostIDs, do đó Subnet mask sẽ chiếm 20 (=32-12) bits.

Quá trình tính toán nói trên nầy mang tên là Variable Length Subnet Mask(VLSM).

Giả tỉ ta mạng của ta có 3 Subnets:

Accounting: gồm 200 hosts

Finance : gồm 400 hosts
Marketing: gồm 200 hosts

Bạn hòa mạng với Internet và được Internet Service Provider (ISP) cho 4 Class C IP
addresses như sau:

Bạn có 3 segments và bạn muốn mỗi segment chứa một Network.

Bây giờ bạn làm sao?
Địa chỉ IP trong Class C với default subnet mask 24 cho ta con số Hosts tối đa trong
mỗi Network là [(2^X) – 2] = (2^8) – 2 = 254. Như thế segments Accounting và
Marketing không bị trở ngại nào cả.

Nhưng ta thấy Segment Finance cần thêm 1 bit mới đủ. Ta làm như sau:

Bước 1: Liệt kê Network IP addresses trong dạng nhị phân 11000000 11111010 00001001 00000000 (1) 11000000 11111010 00001010 00000000 (2) 11000000 11111010 00001011 00000000 (3) 11000000 11111010 00001100 00000000 (4)

Bước 2: Nhận diện network prefix notation

23 bits đầu (từ trái qua phải) của 2 network IP address (2) and (3) đều giống nhau.

Nếu chúng ta thu Subnet mask từ 24 xuống 23 cho (2) và (3) ta sẽ có một Subnet có
thể cung cấp 508 hosts.

IP address của mỗi segment trở thành:

Accounting: gồm 200 hosts:

Finance: gồm 400 hosts:
Marketing: gồm 200 hosts:

Bây giờ IP address trở thành một HostID tầm thường trong Subnet

Quá trình ta làm vừa qua bằng cách bớt số bits trong Subnet mask khi gom hai hay
bốn (v.v..) subnets lại với nhau để tăng con số HostID tối đa trong một Subnet, được

Supernetting đuợc dùng trong router bổ xung CIDR (Classless Interdomain Routing
và VLSM (Variable Length Subnet Mask).

Và luôn luôn nhớ rằng trong internetwork, NETWORK ID phải là địa chỉ độc đáo