Bit
Click on the red underlined text to get to the source
... subnet. Indeed, if non-contiguous masks were in use, it might be
possible for B to find some other mask bit to change to 0. However,
non-contiguous masks are generally not in favor, as they impose
limitations on certain forwarding table lookup ...
... bits. (In all of our addresses, the least
significant bit (LSB) is on the right, the most significant bit (MSB)
...
... addresses, the least
significant bit (LSB) is on the right, the most significant bit (MSB)
is on the left.)
...
... subnet numbers would not be available
to the small subnets, as the bits in the small subnet that correspond
to those in the large subnet ...
... subnets. For instance, say that the large subnets had
4-bit subnet numbers, and the small subnets had 8-bit ...
... subnets will be numbered 1, 2, 3, etc. The result is that some
number of bits on the right side of the subnet and host fields will
...
... host fields will
be ones for some hosts and zeros for others, and some number of bits
on the left side of the subnet and host ...
... subnets and hosts. The "all zeros" bits represent room for growth,
and the "ones and zeros" bits represent bits ...
... hosts. The "all zeros" bits represent room for growth,
and the "ones and zeros" bits represent bits already consumed by
growth.
...
... bits represent room for growth,
and the "ones and zeros" bits represent bits already consumed by
growth.
...
... area. Note that it is the mask itself that determines where the
boundary is. Ones in the mask indicate subnet bits, and zeros
indicate host bits ...
... bits, and zeros
indicate host bits. We will show later that in fact the boundary
should lie somewhere in the middle. Putting it there minimizes the
number of times that the masks must be changed in hosts ...
... Host-assigned Bits (h-bits): These are the bits, contiguous from
the right, for which host values, within a given subnet ...
... Subnet-assigned Bits (s-bits): These are the bits, contiguous from
the left, which 1) are not h-bits ...
... Subnet-assigned Bits (s-bits): These are the bits, contiguous from
the left, which 1) are not h-bits, AND 2) are required to
...
... bits): These are the bits, contiguous from
the left, which 1) are not h-bits, AND 2) are required to
distinguish one subnet from another, AND 3) include all bits ...
... bits, AND 2) are required to
distinguish one subnet from another, AND 3) include all bits
to the left of and including the right-most one. Notice that
different subnets ...
... to the left of and including the right-most one. Notice that
different subnets may have different s-bits.
Growth Bits ...
... g-mask: For a given subnet, the mask whereby all s-bits and g-bits
are one, and all h-bits are zero.
...
... subnet mask (as
defined in RFC-950std5). These bits are on the left. The subnet
field must at least include all of the s-bits ...
... bits are on the left. The subnet
field must at least include all of the s-bits, and may
additionally include some or all of the g-bits.
...
... field must at least include all of the s-bits, and may
additionally include some or all of the g-bits.
Host ...
... bits in the subnet mask.
These bits are on the right. The host field must at least
include all of the h-bits ...
... bits are on the right. The host field must at least
include all of the h-bits, and may additionally include some
or all of the g-bits.
...
... include all of the h-bits, and may additionally include some
or all of the g-bits.
Mirror-image ...
... Mirror-image Counting: Normal counting, in binary, causes one
bits to start at the right and work left. This is how host
...
... values are assigned. However, for subnet assignment, we want
the one bits to start at the left and work right. This process
is the mirror image ...
... independently, there are two cases where "coordination" is required
between the rootAA and a subnetAA. These are the cases where either
the rootAA or the subnetAA "grabs" the last growth bit (in the former
case because another subnet has been added, and in the latter because
...
... another host has been added). Since it is impossible for the rootAA
and a subnetAA to simultaneously grab the last growth bit, either one
or the other must do it.
...
...
& bit-wise AND function
== is equal to
!= is not equal to
...
... existing subnet numbers Y, (Y != S).
2. If all bits in S from the rightmost one bit left are ones,
then label all bits ...
... subnet numbers Y, (Y != S).
2. If all bits in S from the rightmost one bit left are ones,
then label all bits to the left of and including one bit ...
... bits in S from the rightmost one bit left are ones,
then label all bits to the left of and including one bit
position to the right of the rightmost one bit ...
... bit left are ones,
then label all bits to the left of and including one bit
position to the right of the rightmost one bit in S to be
...
... bits to the left of and including one bit
position to the right of the rightmost one bit in S to be
s-bits. Else, label all bits ...
... position to the right of the rightmost one bit in S to be
s-bits. Else, label all bits to the left of and including the
rightmost one bit ...
... bit in S to be
s-bits. Else, label all bits to the left of and including the
rightmost one bit in S to be s-bits ...
... bits. Else, label all bits to the left of and including the
rightmost one bit in S to be s-bits. This prevents the "all
ones" value (which is the "all subnets ...
... bits to the left of and including the
rightmost one bit in S to be s-bits. This prevents the "all
ones" value (which is the "all subnets" broadcast ...
... 3. Label all other bits in the address to be g-bits. (By
address, we mean that part of the IP address ...
... network number.)
4. Set the subnet mask to include at least all s-bits, and
optionally some g-bits. The subnet ...
... subnet mask to include at least all s-bits, and
optionally some g-bits. The subnet mask must be contiguous.
(Section 2.2 discusses the pros and cons of choosing a mask.)
...
... subnet numbers Y (Y != S):
51. If (S & s-mask(Y)) == (Y & s-mask(Y)), then:
511. Change the leftmost g-bit of Y to an s-bit. If
the rootAA and YAA (the address ...
... 51. If (S & s-mask(Y)) == (Y & s-mask(Y)), then:
511. Change the leftmost g-bit of Y to an s-bit. If
the rootAA and YAA (the address authority ...
... separate AAs, then the YAA must be informed of the
change of bit status. If this is the last g-bit,
then this change must be coordinated with YAA.
...
... AAs, then the YAA must be informed of the
change of bit status. If this is the last g-bit,
then this change must be coordinated with YAA.
512. Expand the subnet ...
...
RemoveSubnet(S):
1. Consider B to be the bit position of the rightmost s-bit in S.
2. Remove ...
... RemoveSubnet(S):
1. Consider B to be the bit position of the rightmost s-bit in S.
2. Remove S.
...
... 3. For all existing subnet numbers Y:
31. If the bit in position B is not an s-bit, or if the bit
...
... 31. If the bit in position B is not an s-bit, or if the bit
in bit position B is a one, or if the bit ...
... in bit position B is a one, or if the bit in bit position
B is a zero and all bits to the left of bit ...
... bit in bit position
B is a zero and all bits to the left of bit position B
are ones, then do nothing (skip steps 32 and 33).
...
... bit position
B is a zero and all bits to the left of bit position B
are ones, then do nothing (skip steps 32 and 33).
32. Change the s-bit ...
... bit position B
are ones, then do nothing (skip steps 32 and 33).
32. Change the s-bit in position B to a g-bit.
33. If for any other existing subnet ...
... are ones, then do nothing (skip steps 32 and 33).
32. Change the s-bit in position B to a g-bit.
33. If for any other existing subnet numbers X
...
... subnet numbers X
(X & s-mask(Y)) == (Y & s-mask(Y)), then change the
g-bit in position B back into an s-bit for Y. Else,
inform YAA that of the change of bit ...
... (X & s-mask(Y)) == (Y & s-mask(Y)), then change the
g-bit in position B back into an s-bit for Y. Else,
inform YAA that of the change of bit status.
...
... bit in position B back into an s-bit for Y. Else,
inform YAA that of the change of bit status.
AddHost(S):
...
... subnet number S concatenated
with zeros.
2. Assign to A the same h-bits, g-bits, and s-bits as the
...
... host number H.
4. If all bits from the leftmost one bit to bit position 0 are
ones, then execute steps 5 and 6 using bit ...
... 4. If all bits from the leftmost one bit to bit position 0 are
ones, then execute steps 5 and 6 using bit position B equals
...
... bit to bit position 0 are
ones, then execute steps 5 and 6 using bit position B equals
one bit position to the left of the leftmost one bit ...
... ones, then execute steps 5 and 6 using bit position B equals
one bit position to the left of the leftmost one bit in H.
Else, execute steps 5 and 6 with bit ...
... bit position B equals
one bit position to the left of the leftmost one bit in H.
Else, execute steps 5 and 6 with bit position B equals
...
... bit position to the left of the leftmost one bit in H.
Else, execute steps 5 and 6 with bit position B equals
the leftmost one bit in H. This prevents the "all ones" value
...
... Else, execute steps 5 and 6 with bit position B equals
the leftmost one bit in H. This prevents the "all ones" value
(which is the "all hosts" broadcast ...
... host.
5. If bit position B is an s-bit, then the host cannot be added.
Skip the remaining steps.
...
... host cannot be added.
Skip the remaining steps.
6. If bit position B is a g-bit:
61. Change the g-bit ...
... bit:
61. Change the g-bit to an h-bit for all hosts in S. Note
that if this is the last g-bit ...
... bit for all hosts in S. Note
that if this is the last g-bit, this change must be
coordinated with the address authority ...
... Remove H.
2. If for all remaining host numbers in S, the value of the bit
position of the leftmost h-bit is zero, and there is a zero in
...
... host numbers in S, the value of the bit
position of the leftmost h-bit is zero, and there is a zero in
at least one of the bit positions to the right of the leftmost
...
... position of the leftmost h-bit is zero, and there is a zero in
at least one of the bit positions to the right of the leftmost
h-bit, then for all hosts ...
... at least one of the bit positions to the right of the leftmost
h-bit, then for all hosts change the leftmost h-bit into a
...
... hosts change the leftmost h-bit into a
g-bit.
It is worth noting here that this technique is a 2-level subset of
...
... class C network, so we will only need
to work with 8 bits. We start with 3 subnets, A, B, and C. Our
...
... start with 3 subnets, A, B, and C. Our
nomenclature is h for h-bit and g for g-bit. Note that h-bits can be
...
... subnets, A, B, and C. Our
nomenclature is h for h-bit and g for g-bit. Note that h-bits can be
one or zero, but g-bits ...
... nomenclature is h for h-bit and g for g-bit. Note that h-bits can be
one or zero, but g-bits are all zero. The remaining bits ...
... bit. Note that h-bits can be
one or zero, but g-bits are all zero. The remaining bits are s-bits,
...
... bits can be
one or zero, but g-bits are all zero. The remaining bits are s-bits,
but are shown as 1's and 0's according to the subnet ...
... one or zero, but g-bits are all zero. The remaining bits are s-bits,
but are shown as 1's and 0's according to the subnet number
...
... assignment. The space is just to make the addresses and masks easier
to read. Finally, we number our bits 0 to 7 from right to left as
shown below.
...
... subnet has at most 6 hosts (because of the three h-
bits). Notice that we have chosen the masks so that there is room
for growth in both hosts and subnets ...
...
Finally, notice that subnet C requires three s-bits instead of just
two. This is because with just two, the subnet address ...
... Notice that none of the original subnets required a change in any of
their status bits. This is because, when D compared its subnet
number with the others (step 5 of AddSubnet(), using the s-mask),
...
...
Notice that this time, A was forced to change its leftmost g-bit (bit
5) into an s-bit, because bit ...
... subnet A
from subnet E (step 511 of AddSubnet()). Changing bit 5 into an s-
bit prevents hosts ...
... subnet E (step 511 of AddSubnet()). Changing bit 5 into an s-
bit prevents hosts from being added to A to the point where bit 5
...
... bit prevents hosts from being added to A to the point where bit 5
would be changed into a one (that is, step 5 of AddHost() would
fail).
...
... hosts each are added to subnets A and C, thus causing the
right-most g-bit in each to change to an h-bit.
...
... Notice here that the masks in B's subnet had to be changed to
accommodate the new h-bits (step 62 of AddHost()). Notice also that
if the person assigning host addresses ...
... BAA) is different than the person assigning network numbers (RootAA),
then BAA must coordinate the change of its last g-bit to an h-bit
with the RootAA. This allows the RootAA to properly assign
...
... network numbers (RootAA),
then BAA must coordinate the change of its last g-bit to an h-bit
with the RootAA. This allows the RootAA to properly assign
additional subnet ...
... mask, and 2) we can't increase B's mask to make it distinguishable
because B has already assigned hosts at bit position 5. In other
words, when the comparison of step 1 in AddSubnet() was tried on
...
... number 011, the two values were equal, and so the next number was
tried. In fact, no subnet numbers with 01 in bit positions 7 and 6
can be assigned (unless B loses hosts).
...
...
Notice that this caused subnet A to change an s-bit back into a g-
bit. This is because the equality of step 33 of RemoveSubnet() did
...
... subnet A to change an s-bit back into a g-
bit. This is because the equality of step 33 of RemoveSubnet() did
not hold true for subnet A with respect to the remaining subnets ...
