Friday, March 6, 2015

Computer Networking 101 Part 4: You are right and I am not wrong

Usually we see things as either right or wrong but there are so many gray areas.

I have a friend who has a customer facing job and often times we don’t want to tell the customer that they are wrong.  One of his famous lines is 

You are right and I am not wrong”.  

 I think this has saved his day a few times with the customer.

So how does this related to computer networking?

Today we are going to take a look at one view to logically divide a switch/router according to its function.  There are other ways to look at a switch/router but this is the most common way and if you are to read the hottest technology SDN you will have to know this logical view of looking at a switch/router.  

Also, to use this "You are right and I am not wrong" as the title, I am trying to make a boring subject a little more fun.  This is something I learn in a conference. A successful presenter will be talking on a boring subject and yet the audience is still willing to listen because it is fun. This is a boring but important concept and this is why I decided to touch on this.

There are tons of good articles about this subject - different planes of a networking device.  Why do you want to spend time reading this blog post?  Can I write better then those networking experts?  Well, I will try and ....

I hope you will still read on:
image source:

As I have mentioned in my previous post, various vendors claim they have a SDN solution and each has it own definition and implementation of SDN (Software Defined Networking).  One of the ways to describe SDN is the “separation of the control and data plane”. If you “Google” SDN, a lot of article will use the beginning of to explain what control and data plane is before getting into SDN.

Traditional switch or router from networking equipment vendors comes in the form of a physical device with propitiatory software running on it.

image source:

With the arrival of the "Software Defined ___" era, SDN is a hot topic because it can catch up with the server virtualization.  There is a saying, we use a few minutes to provision a virtual machine (server) but we have to wait for weeks to get the networking or security (firewall) done.

When we need to virtualize networking equipment, the very first thing is to logically divide the equipment according to its functions.  Networking equipment can be divided into 3 functions:
  1. Data Plane (sometimes call the Forwarding Plane also)
  2. Control Plane
  3. Management Plane
We can define what each plane is but how are they related is not so easy to explain. 

This diagram from this blog post by explains the relationship of the 3 planes very nicely:
image source:

Data Plane
This is the logical function to switch or route the data from one port to another port so that it can reach its destination.

Control Plane
This is the logical functions that builds the Forwarding Information Base for switch or routers.  Remember in my previous post, layer 2 switch uses "source learning" and routing protocols are used by layer 3 routers to build this Forwarding Information Base.

Management Plane
This is the logical function where user configure the networking device via the console of the device, SNMP (Simple Network Management Protocol) or NETCONF (Network Configuration Protocol).

If you want to dig into this right now I recommend this article as well as this article.  This post is meant for beginners to pick up the essential concepts of networking. Keeping the information as simple as possible and yet capture the essence.

Hope you enjoy reading this post.  Stay tune for more post in the coming days.


  1. Really appreciate all the stuff made by this blog to let people know more about this topic. I added little more relevant points to my knowledge which definitely going to help me in coming future.
    Catalyst C2960X 48

    1. Hello Anthony,

      Gasping at your brilliance! Thanks, a tonne for sharing all that content. Can’t stop reading. Honestly!

      We can create a config file & store the entire global variable to be shared across modules or script in it. By simply importing config, the entire global variable defined it will be available for use in other modules.
      I've got the following code at the moment:
      Python Code: (Double-click to select all)
      2 aLen = len(sa_data[1])
      for a in range(1,aLen):
      Is there a way to simply say: for a in len(sa_data[1]):?

      THANK YOU!! This saved my butt today, I’m immensely grateful.


  2. creativity of writer is purely impressive. It has touched to the level of expertise with his writing. Everything is up to the mark. Written perfectly and I can use such information for my coming assignment.Lenovo Storage V3700 V2 XP SFF Control