Post

CS6250 OMSCS - Computer Networks

Overall review

I took this module along with deep learning, mainly because I thought it was good to get some familiarity with the computing side of things (since I am came from a math background) and based on my friend’s recommendation, this seemed like a reasonable course to pair with.

Overall, I would say this course gives a quick introduction to various things behind our networking systems today (DNS, CDN, etc) as well as various protocols on how the Internet is built (such as BGP protocol). However the lectures were really dry and the assignments (in my opinion) are not even related to networking nor enforces any concepts with regards to networking.

My recommendation is unless you are taking computer networks for the following reasons,

  • It is either your first semester or you are looking for an easy semester,
  • Pairing with another module (in order to graduate earlier)
  • Use computer network as one of the core courses to fulfill computing specialization,

you should probably avoid this and pick something else instead.

Time requirements

The lectures takes about a hour or two to read per week, and there are a total of 5 assignments. The assignments are one of the easiest through out my OMSCS program, they could all be done within 2 days. Overall this is aligned with omscentral review of approximately 9 hours per week.

Lectures & Quizzes

There are a total of 12 Lessons, with 12 quizzes which makes up 10% of your grade. The quizzes are weighted based on their questions; e.g if there are only 2 quizzes with a total of 50 questions and quiz 1 has 10 questions, then quiz 1 will account for 20% of the total grade.

The 12 lessons are:

  1. Introduction, History, and Internet Architecture
  2. Transport and Application Layers
  3. Intradomain Routing
  4. Autonomous System Relationship and Interdomain Routing
  5. Router Design and Algorithms (Part 1)
  6. Router Design and Algorithms (Part 2)
  7. Software Defined Networking (Part 1)
  8. Software Defined Networking (Part 2)
  9. Internet Security
  10. Internet Surveillance and Censorship
  11. Applications Videos
  12. Applications CDNs and Overlay Networks

Personally I preferred using the omscs-notes instead of canvas.

Exams

There are two exams, with mid terms covering the first 6 Lessons and final exam covering the next 6 lessons (i.e not cumulative). The TAs will give a summary of focus questions (which is also found to be the same here).

During my semester, there were kind students who kindly started Google Docs and crowd sourced the answers, I used those as well as the following resources:

Assignments

There are a total of 5 Assignments with an optional extra credit (that I did not attempt). There are two assignments that you are strongly encouraged to use the VM (to be honest the effort is not worth it to do it outside the VM, assuming that it is possible).

Spanning Tree Protocol for Network Switches (8%)

As the name of the assignment implies, your goal is to write a distributed spanning tree algorithm so you can have a (unique) spanning tree that connects all the nodes.

Distance Vector Routing (14%)

In this assignment, you are implementing the Bellman Ford Algorithm (with certain assumptions or constraints relaxed). The goal is for each node to know its cost (or distance) to another node in the entire network.

SDN Firewall (14%, No Gradescope)

In this assignment you are trying to create a Firewall with POX. There is essentially two tasks:

  • Edit a configuration file
  • Write a rule engine (that reads from the configuration file) to determine whether you should block or allow the traffic.

BGP Hijacking (15%, No Gradescope)

In this assignment the idea is for a node to “advertise” fake information so that other nodes think that they should forward their traffic to you instead.

This file involves creating quite a few config files and some minor edits to python scripts to adjust your internet topology as well as logs. You will then need to test it locally with the VM by following a specific steps of instructions and verify the output manually.

BGP Measurements (15%)

In this assignment you will make use of the python PyGBPStream tool to interact with BGP data. Personally I felt that this seems more like handling a (static) source of streaming data to extract certain events (or attributes) and store them.

For example based on the traffic, which network had the highest prefix growth, or extract all time durations between a announcement and withdrawal of a system.

This post is licensed under CC BY 4.0 by the author.