My Summer Project
This
summer I am working with my mentor Dr. Dan Massey from Colorado State University in Fort Collins - you can read more about him by clicking the "My Mentor" link on the left.
The summer projects mainly deal with Internet traffic monitoring.
Specifically, monitoring Border Gateway Protocol (BGP) traffic around
the world. Border gateway protocol is the protocol (sets of rules and
guidelines) that governs the way Internet packages are routed to and
from their destinations worldwide. There have been many cases that
actually make world news when the Internet is "hijacked". Some of these
cases have been linked back, in some way or another, to BGP - either because of
human error or because of security flaws in the actual Border Gateway
Protocol. This is because every
single picture, file, email, video, phone call, and nearly everything that is on the
Internet is routed around the world by BGP! For this reason, BGP
monitoring is extremely important - to monitor the behavior and fix
problems if necessary
So, my job this summer is to first work with a system called BGPmon
(short for BGP Monitoring System) that is a lightweight solution to
monitoring BGP data and traffic worldwide. Feel free to check out the BGP site
for more info about this ongoing project. This system is currently in
the process of being updated to be able to be configured in more secure
and robust ways. So the first job/project this summer deals with
learning the ins and outs of the system and implementing the updated
version.
My second project this summer is very similar to the first. This
project deals with the unreachability of Internet Protocol Version 6
addresses (IPv6 addresses). Right now, the world's Internet currently
fully supports version 4 addresses, IPv4. The version 6 addresses were
introduced around 2003 to solve the problem that the Internet is
running out of version 4 addresses. There is currently a huge push for
the adoption of IPv6 to replace IPv4. Quick side note: no one really
knows what happened to version 5, but it's not the version that
survived (maybe CS people only like even numbers).
So the fundamental difference between the way the two addresses look:
version 4 has 32 bits and version 6 has a whopping 128 bits! So you may
say, well what's so whopping about that, it's only 4 times as many
bits, right? Well, yes, but the combination of bits is nearly
unimaginably higher than the 32 bit version. Consider this: the version
4 address space has around 4 billion combinations (which you can see
how we're running out with technology's ever-accelerating growth). But,
if you were to add one more bit, say version 4.1, that has 33 bits -
well, you've doubled the combination of addresses (8 billion). So for every
bit you tack on to the end, you get double the number of possible addresses. By the time I repeat this process until I reach 128 bits,
my brain usually hurts too much. So back to the project description.
Given the seemingly infinite amount of addresses that version 6 has,
there are new and exciting problems about how to handle such a large
space. In particular, one such problem touches on the question of: just
how many version 6 addresses are there currently allocated versus
currently in use; and also, just how many of these addresses can be
reached versus not reached (i.e. unreachable destinations). There's
been previous work applying these questions to IPv4 addresses, but not
as much work has been done on IPv6 addresses.
So how will this work be done, you may ask. Here's the best part. I
will be actually using BGPmon and all its capabilities in order to try
and answer some of these questions in detail. This project is
completely fascinating to me because it involves huge amounts of
real-world data, statistical analysis, and network configurations. Thus, the IPv6 project is completely useful and relevant given the current state of the
Internet and its major significance to the foundations of our entire modern civilization.
The two major
projects this summer are on the opposite ends of the research spectrum.
On the one hand, the BGPmon project deals with updating and maintaining
a very useful and very widely used system. In this respect, working on
the BGPmon project helps other researchers and network operators do
their job better and makes it easier to do many things that they need
to do on a daily basis. On the other hand, the IPv6 project places me
in the shoes of one of the researchers I am trying to help and I
actually get to use this amazingly complex system. And considering that
this is only a 10 week summer project, being on this side of the
spectrum definitely enables me to investigate the Internet and report
my findings by the end of the summer. This summer is going to be awesome.
To the reader: I apologize for the pages and pages of text, but I
cannot begin to express just how excited I am about these projects and
their relevance to my future and (hopefully) the future of the
Internet. I know that this is one summer project, but it makes me feel
very good that I will be able to say that I helped (at least) a tiny
fraction of the Internet.
This
summer experience was made possible by the DREU program. DREU is the
Distributed Research Experiences for Undergraduates. You can read more
about the program HERE.
-- The final project report can be found HERE.
-- The BGPmon quickstart guide I wrote can be found HERE.
-- The extended abstract submission that I mentioned in the weekly journal (week 10 entry) can be found HERE.
-- And, finally, the BGPmon poster I presented at the HENAAC/Great Minds in Stem Conference in Orlando, FL this past October, 2011 can be found HERE.
|
|
The balcony at the brand new Colorado State CS building has a beautiful view of the Rocky Mountains. Note: this picture does no justice
to the way this looks in person.
|
|
The front of the CS building. The balcony is on the 3rd floor. That's also the floor where my office (well, desk) is on.
|
|
This is outside the cold server room (see below). This warm lab is where I look
up commands and solutions, and also where I can monitor and verify my
progress in the server room.
You can never go wrong with the flat-screen-tv with mouse/keyboard combination! |
|