Skip Ribbon Commands
Skip to main content

Joseph K. Perez, Sr.'s BLOG

:

Home
Technology related
April 01
Network Engineering Primer for 3rd Graders

This primer is for the newbee. Someone who could also be a software or systems engineer or an administrator that's looking for a simple way to ease into a complex and confusing subject matter. Reading material that will give enough meat about networking concepts, enough to keep up when in face-to-face or group discussion with a Network Engineer. When Network Engineers talk, they'll assume you know the intricacies and semantics of the 7-Layer OSI Model and the TCP/IP protocol stack.

Because I knew in advance that this topic can cause mental blockages and nose bleeds, I'll write this at the 3rd grade level using concepts that a 3rd grader can easily understand. It's not intended to offend or insult you but, let's face it, if you're reading this primer, it's probably because the grown-up adult web pages at Cisco made you sleepy and gave you a nose bleed at the same time.

So, let's get familiar with Network Engineer speak. The OSI Model describes everything about the network by breaking it down to 7 layers. I'll familiarize you with key parts of the OSI Model that will most likely be brought up in a typical conversation with network engineers.

The 7 Layer OSI Model

Layer 1. The Physical layer. Inside Daddy's computer and Mommy's cell phone is a little device. You can call him NIC. NIC is a cute little guy and his name stands for Network Interface Card. He has a job that's called, an adaptor. NIC gets Daddy's PC and Mom's SmartPhone on a highway called, WiFi or the LAN. If Daddy's PC connects to a box at home to get Internet then NIC, the cable and the box is all part of Layer 1.

Layer 2. The Data Link layer. The guy that works here is like the guy at the post office that took your letter for Grandma. He's like that box in Daddy's office that's blue and has 4 or 8 ports with wires hanging off of it. They're called hubs or switch. Well, all the guys that are in this layer are handling the transmission of data. The guy at the post office took grandma's letter and put it into a special package called a "frame". Not a picture frame silly. Well, okay, something kinda like that.

Layer 3. The Network layer. Remember that nice old man working at the train station? The old dude that inspected your train ticket, making sure you and me get on the right train going to grandma's house? That box at home in Daddy's office with the wires hanging out of it and connects to another box that has a wire going into the wall, remember this box? It's the box that funny looking guy from the company called Cox came over to hook up? Well, this is the real box that gets Daddy's computer onto the Internet. At work, we call it a "Router". Except that the Routers we have at work are the size of a small fridge! Remember that time Uncle Jack had to stay home from work for 2 weeks? It's because one of these big routers fell on his foot! Anyhow, Router devices no matter what size they are, reside in layer 3.

Layer 4. The Transport layer. Remember the guy who drove the train to Grandma's house? Your letter to Grandma also rode on a train by itself. Scary riding alone huh. Don't worry. This guy works with another guy making sure Grandma's letter made it to her house.

Layer 5. The Session layer. Did you know the train guy has a big boss who ensures that each train station, railroad track, track signal lights and stuff are all connected so that you don't have to worry about Grandma's letter not getting to her house?

Layer 6. The Presentation layer. What? You're worried that no one will understand what you wrote on the envelope of Grandma's letter? Don't worry. The guy that works at this layer will make sure the people at the other train station near Grandma's house will be able to understand your scribbles and scratches.

Layer 7. The Application layer. Remember when Mommy let you use her computer to visit Barney the Dinosaur's web site? The Browser was able to do this by speaking a special language they refer to as a protocol. They call it HTTP. Yep, pronounced, huttup. Remember when Mommy accidentally downloaded a virus on Daddy's computer? This bad software spoke to its friend somewhere on the other side of the planet using the FTP protocol and that's what it used to download another bad friend to break into Daddy's bank.

TCP/IP

Remember when you got silly and ran into your sister's room, and you annoyed her because she was talking to her school friend, and then they started talking in code you couldn't understand? She said something like, "Iway ishway Iway ouldcay urntay isthay ittlelay erptway intoway away utecay ittlelay amsterhay" Well, that's special code talk between girls called Pig Latin. She told her friend that she wishes she could turn you into a cute little Hamster. I know, right?! Don't tell her I told you that. Anyhow, all those guys in the 7 layer OSI model use a special code talk too, a protocol called, TCP/IP.

This protocol comes in two parts. The first is called Transmission Control Protocol and the second, Internet Protocol. A secret group in the United States Government called DARPA paid to have these two guys created to help them rule the world with their sinister and deadly free government cheese program! Mwuuhahaha!

That letter you wrote to Grandma might be simple to you but, it takes a lot of hard work to make sure it's packaged up tight and delivered right. Your little letter has to be put inside of a thing called a packet. This packet has all kinds of information in it, and it looks like this.

Figure 1. Source: http://technet.microsoft.com/en-us/library/Cc700820.fire01_big%28l=en-us%29.gif

See that little box with the word Message in it? That's where Grandma's letter is. That box with Source IP Address has Daddy's computer's address in it and Grandma's computers's address is in the Destination IP Address box. The boxes with Ports in it? Well, it's kind of like the shipping ports where we went to pick up your pet Gorilla. That was the port of Lake Titti-Caca and other ports around the world know it by its name and ID. Just like a home address! Because it was a letter to Grandma, it had to use a port ID just for that purpose. In the case of Grandma's letter, since we sent it using E-mail, it used port number 25. Cool huh?!

So, what do you think? Should we review?

  1. You went on to Mommy's laptop, and connected to the Internet – Layers 1 through 5 in the OSI Model
  2. You fired up Google Chrome, went to GMail, typed up your Christmas list and sent it to Grandma – Layers 7 through 1 in that order
  3. The message you wrote in Norwegian was packaged up, addressed and went through the wire in something that looks like a box frame shown in figure 1
  4. TCP/IP is the protocol language all of them spoke while sending and delivering grandma's letter

Good job! Look at you. Smarty Pants! So, let's review again what's the first thing you're going to buy with your first paycheck from a Network Engineer job? Right! Daddy's Jet Ski and trailer! Good job!

January 26
Figlet.VB.Net computer programming material

FIGLET.VB.NET

If you are determined to learn programming or determined to teach programming using fun examples to keep students engaged then, my Figlet.VB.Net console application might be for you.

db    db  .d8b.  db    db db
`8b  d8' d8' `8b `8b  d8' 88
 `8bd8'  88ooo88  `8bd8'  YP
   88    88~~~88    88
   88    88   88    88    db
   YP    YP   YP    YP    YP

 

Figlet IS interesting material. The reason why is because I’ve seen people pasting Figlet style text such as the example Yay into comments and forum posts at MySpace and FaceBook; Surely, these people think it’s a cool trick. Kidding aside, utility programs like these actually have a place in the business world. What's more is, if you HAVE to learn or teach computer programming then, my rendition of Figlet is designed to introduce and demonstrate the following concepts.


  • Input and Output
  • File Handling
  • Object Oriented programming
  • Exception Handling
  • String handling
  • Application Design
  • And, more

I’ve been a corporate application developer at past jobs so, I’ve thrown in an additional trick into the source code such as, Resource Files and language localization. This Figlet program is contained in a Microsoft Visual Studio 2010 Solution and consists of five files. It is a console app developed in VB.Net. There is a Main module that serves as a controller for a class that contains all the logic necessary to produce Figlet text based on the values a user passes to the program. It also makes use of Figlet fonts that were developed by other people, and there are 167 of them included with this solution. You might want to refer to my previous blog post where I used the C# language to create a simple Figlet program that makes use of a very simple hand made Figlet font.

 *******                      **  **           ****
/**////**                    /** /**  **   ** **//**
/**   /**   *****   ******   /** /** //** ** /** /**
/*******   **///** //////**  /** /**  //***  //  **
/**///**  /*******  *******  /** /**   /**      **
/**  //** /**////  **////**  /** /**   **      //
/**   //**//******//******** *** ***  **        **
//     //  //////  //////// /// ///  //        //

Using Figlet.VB.Net

To use this program, open a command prompt, change directory to the location of this program which, if you've downloaded the source code and unzipped it using the original folder names, you would find it in this folder, Figlet.VB.Net\bin\Debug,  type the name of the program which is Figlet.VB.Net.exe, followed by a -t switch and the text you want printed in Figlet text.

Example: figlet.vb.net.exe –f 3-d –t Cool

 

Figlet.vb.net.exe is the main program. The switches, –f and –t, tell the program to use the 3-d font (-f), and to output the word, “Cool”. If you happen to forget to include switches then the program will display simple usage text and quit. To view a list of figlet fonts included with this solution, navigate to the folder, Figlet.VB.Net\bin\Debug\fonts. Try out each font by using the -f switch followed by the name of the figlet font file without the filename extension.  If you notice, the Figlet text output is green. This is another neat trick I’ve thrown into the project. I decided with this approach as a way to round out a student's learning about variables and data types such as, structure and enum, which a student will no doubt cross paths with prior to becoming a professional developer.

The source code is heavily commented. I’ve given credit where credit is due and provided web links in the source code to references that helped serve in the creation of this Figlet program.

Notes for Students

If you will be teaching yourself using this program then here are some tips. Open the solution in Microsoft Visual Studio. If you don’t have Visual Studio, visit Microsoft’s web site and download a trial evaluation version.

  • Use the Build menu to create a debug version of the executable
  • Use the Debug menu > Step Into (F11) command to step through the program execution one line at a time. Using the F11 key allows you step through the Sub routines and Functions. Whereas using the F10 key will bypass the details of Subs and Function calls.
  • A yellow arrow will indicate the line of code that will be executed when you press F11
  • You can move the arrow to execute code within the same procedure
  • When stepping through each line, make sure the Autos window pane is visible so that you can inspect the application’s variables as they are being initialized
  • Visual Studio will automatically create a command window so that you can see the output of the application as you step through each line

Notes for Instructors

Students are going to be overwhelmed by programming topics. Such as variables, loops, procedures, etc. The first thing we all learned in programming was variables and data types followed by basic input. The first line of this program will call a series of sub-routines that will introduce students to variables, scoping, and initialization. To help keep the code in Main manageable and less intimidating, the application design includes sub routines and functions that will introduce and help students to focus on the following concepts…

  • Variables, data type and initialization
  • Command-line processing
  • Console output
  • Learn the difference between
  • a sub-routine (Sub)
  • method or function call (Function)
  • class module and objects
  • Logically structuring an application
  • Using Application Resource and Resource files

When covering a programming topic, one or all of the Sub and Functions can be used as standalone examples. For example, if you’re teaching a student…

  • how to process command line instructions
  • For Loops

You can use the code in the GetCommandLineArg function and illustrate the mechanics and workings of both topics. If the topic is about File Handling, you can use the code in the AttemptGetFontDir function and introduce students to methods in the Dot Net framework at the same time.

Summary

Computer programming is a complex topic. Students come in a variety of background experiences and are diverse in their study habits. Some students are good at self-paced learning while some require a class room environment. Some students may already be working professionals with some or no programming experience. Teachers are challenged in creating curriculum for computer programming. New Teachers are faced with the option of following along with the chapters in a book about computer programming or creating their own agenda.

As a former student, I learned several programming languages within the span of a year. Later, already a working professional programmer, I had to learn new languages as the times changed. I remember the struggles I faced as a brand new programming student which is why my examples emphasizes on documented code and using the learn by doing approach.

I am a former Junior College teacher that was never certified on paper as qualified to teach students but, was invited by the Dean of Business at Skyline Community College in Northern California to teach introductory classes on various technical subjects. I accepted the challenge and discovered I was good at easing non-programmers into the world of computer programming using my understanding and method of communications.

Use my material for your personal learning, either as a student or instructor. Hopefully, this program will serve as a good primer to computer programming concepts. I love to teach, and education and sharing knowledge is in my blood and nature.

Download the source files

Please donate. Any donation amount is accepted. Your generous donation is very much appreciated and assists in helping pay for the costs associated with creating, delivering and maintaining educational material on the Internet.


PayPal - The safer, easier way to pay online!

1 - 2Next
About Me
I am currently a Developer and Build Automation Engineer based in Northern California. I have had a career in Information Technology since 1989. Previous positions I've held with large corporations in the San Francisco Bay Area helped spur my professional and technical development across a variety of platforms, operating systems, programming languages, voice and data network topologies and communications protocols. My work history demonstrates having gone full circle in the myriad of IT departments serving in support, lead, management and consulting roles. Throughout the span of my career, I've long maintained a keen interest in extending software applications to support a high level of end-user productivity.

Contact Info