About Me

My Mentor

My Project

 Weekly Journal

    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!

    These are my three steps to researching (may or may not be successful).

    1.) Smile!
    2.) Think...
    3.) Cry (if no hair to pull out)**

    **Note: this is a continuous cycle, so it's not nearly as bad as it seems.

    These were taken in the cold (but also cool) server room at Colorado State.

    Home     |     About Me     |     My Mentor     |      My Project     |     Weekly Journal