anchor.diff:  128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
   ```
   
  -What this means is `255` is like saying the entire part of that octet is used. If you had the ip address `195.151.34.0` with a `/24` or `255.255.255.0` mask you are saying is for the first three octets all the IPs are used, notice the `255`*. The fourth octet on the other hand is `.0`, which means you can assign all the hosts of that octet. So I could theoretically assign `195.151.34.1`, `195.151.34.2`, all the way to , `195.151.34.255` to some devices connected to the network.
  -
  -I put an asterisk on `255` because a `/24` does not really give `255` hosts. It's actually `256` ip address and `254` usable. This is because you can't assign `.0` on an ip address and you can't really assign `.255` because its the broadcast addresses. Your usable range of IPs on a `/24` is `.1` to `.254`. The same goes for other mask, you can't assign the first or last host id of an address. Keep this in mind when creating your subnets, you'll see why later on.
  -
  -What all this means is mask help to partition our network.
  +When you have `255` it's like saying the entire part of that octet is used. Lets take an ip address `195.151.34.0` with a `/24` or `255.255.255.0` mask. The `255` for the first three octets of the IP are considered used because `255` is the max bits that can be active in an octet. The fourth octet on the other hand is `.0`. This means you can assign all the hosts of that octet because a `0` in an octet is the same as say all the bits are inactive. So I could theoretically assign `195.151.34.1`, `195.151.34.2` all the way to `195.151.34.255` to the devices connected to the network.
  +
  +Now something to note about the range of a mask. If you have a `/24` (`255.255.255.0`) mask you don't actually have `255` hosts. It's actually `256` ip address and `254` usable. First the total hosts is 256 because you include the .0 and .255 in the count. However, you can't assign `.0` on an ip address and you can't really assign `.255` because its the broadcast addresses. Your usable range of IPs on a `/24` is `.1` to `.254`. The same goes for other mask, you can't assign the first or last host id of an address. So when you calulate a mask simply remove 2 from the total to get the total usable hosts. Keep this in mind when creating your subnets, you'll see why later on.
  +
  +In short mask help to partition our network.
   
   Here is a table to help you with subnetting:
   [cols="4*"]
  
positive.code: 
  Or how about `/29`:
  ```
  /29 = 1 + 2 + 4 = 7 + 1 = 8 - 2 = 6
        \_______/   \___/   \___/
            |         |       |
            |         |       +------------ -2 because first+last are not usable
  
negative.code: = IPv4 Subnetting
  :published_at: 2016-04-19
  :hp-tags: Networking, Subnetting, IPv4, Cisco
  
  Building off the last two articles I wrote about http://blog.richen.io/2016/04/19/Converting-I-Pv4-to-Binary.html[Converting IPv4 to Binary] and http://blog.richen.io/2016/04/19/Converting-I-Pv6-to-Binary.html[IPv6] I wanted to break down subnetting the best way I learned it. This article is specifically about IPv4 subnetting because I think you need to to start with a basic understanding of subnetting before moving to IPv6 subnetting, VLSM or super subnetting. I'll assume if you are reading this you at least understand why we subnet and how to convert IPv4 to binary. If not you might want to stop here and learn that first.
  
  == Classes
  The first major thing you should lean about subnetting is classes. Classes are used to separate IP addresses for different reasons. They were originally created in the 1970's by the IEEE. Here is the basic info:
  
  [cols="4*"]
  |===
  |Class
  |First Octet Range
  |Reason
  |Example
  
  |A
  |0 - 126
  |Designed for large-sized networks
  |50.123.12.4
  
  |B
  |128 - 191
  |Designed for medium-sized networks.
  |151.123.51.3
  
  |C
  |192 - 223
  |Designed for small-sized networks.
  |195.123.41.1
  
  |D
  |224 - 239
  |Research
  |227.123.1.41
  
  |E
  |240 - 250
  |Research
  |245.12.51.51
  
  |===
  
  You probably noticed that 127 was skipped, this was not a mistake. This class, more commonly called localhost, is an entire ip address range wasted for "localhost" reasons. There is a reason your computer can ping it's self with `127.0.0.1`. Keep theses classes in mind as we continue.
  
  === Network and Host ID
  While the class might seem like a rather vague topic at the moment they also have another role. There an easy way to express what a network looks like in terms of network and host id. When you subnet a network you have something called a network id and a host ids. The network id is the common network, it's the part of the IP address that all host will share between host devices. The host id is the identifier for each device on the network. Your ip address will look like this for each class.
  
  [cols="2*"]
  |===
  