Shit just got real

I’m not saying that it wasn’t real before but it’s getting real now. I just got home from another lecture of Networking I and man, it’s starting to get harder and bit confusing. We covered a lot of grounds today and I’ve got a lot of catching up to do because a lot of the things that we learned today went right over my head. Some of it went in one ear and out the other. Shit just got real indeed.

The topic for tonight was Internet Protocol. Sound simple enough, right? Wrong! We delve deeper into the world of IP and learned about the content of an IP header, the difference class of IP addresses and even touched on bitwise AND operators. I haven’t touched bitwise AND in years but that part came back to me after a bit. The other stuff that we learned was a bit too much to consume all in one sitting.

We reviewed the format of an IP header. It consists of 32 bits of information. The first 4 bits holds information about the IP version number, followed by another 4 bits for the Internet Header Length, 8 bits for the type of service, and the last 16 bits is for the total length of the datagram. After these 32 bits of information there are more information add as well like identification, fragmentation flags, source IP address, destination IP address and a header checksum.

We went into further details regarding fragmentation and how the fragments are combined once all of the packets have been received. The fragmentation flag holds a value to let the Internet Protocol know that there are more packets coming. For Ethernet II, the maximum transmission unit (MTU) is 1500 bytes. So anything larger than that needs to be broken up and sent in fragments. If any of those fragments are lost, the whole thing is discarded.

Then we went into IP addressing and defined the different classes. There are five classes of IP address. An IP address is 32 bits in length. It contains the network number and a host number. It is divided into four octets which are written in decimal form. It has a minimum value of 0 (0000 0000) and a maximum value of 255 (1111 1111). The five classes are A, B, C, D and E.

Class A ranges from 1.0.0.0 – 126.0.0.0 making room for 127 networks and over 16 million hosts. Class B ranges from 128.0.0.0 – 191.255.0.0 which can have over 16,000 networks and 65,536 hosts. Class C ranges from 192.0.0.0 – 223.255.255.0 and has room for over 2 million networks but only 256 hosts per network. Class D is a multicast class which means that it’s the addresses that you want to use if you want to transmit to more than one receiver at the same time. Class E IP addresses are reserved for God knows what.

With all of these IP address there are still a few that can be used but are reserved. For example, the IP address range from 10.0.0.0 – 10.255.255.255 are private IP addresses so these address does not get broadcast globally and will only work locally. Another reserved set of address, some of you may be familiar with are the 192.160.0.0 sets which are usually used for routers.

The part that went right over my head was the networking masking part. If you wanted to sub divide a network into smaller networks, you can use a subnet mask. Some of you might have seen this before in Windows and it looks something like 255.255.255.0. In this network, there are 254 possible hosts because 255.255.255.0 is reserved for the network address and 255.255.255.255 is the network broadcast, or a multicast in this case… I think.

There are ways to calculate what IP ranges goes to which subnet but I have to review that topic before I can explain it. It has something to do with converting parts of the IP into binary and then figuring out where the boundaries are and then converting back to decimal. I started to get a little confused when the boundary went from 8 bits over to 9 bits because that crosses over to the next octet. I think that the more I play with the numbers, the more I’ll start to understand it. I better get on top of it real fast because exams are in a couple of weeks.