Motivation
In this assignment, we will explore Internet Measurements, a field of Computer Networks which focuses on large scale data collection systems and techniques that provide us with valuable insights and help us understand (and
troubleshoot
) how the Internet works. There are multiple systems and techniques that focus on DNS measurements, BGP measurements, topology
measurements, etc. There are multiple conferences in this area, which we invite you to explore and keep up with the papers that are published. The IMC conference is one of the flagship conferences in this area:
ACM Internet Measurement Conference
A gentle introduction into the Internet Measurement field is to work with large scale BGP measurements and data to study topics such as:
•
Characterizing growth of the Internet using various measures, such as number of advertised prefixes, the number of Autonomous Systems, the percentage growth of prefixes advertised by Autonomous System, and the dynamics of Autonomous System path lengths
•
Inferring problems related to
short-lived
Announcement and Withdrawals,
•
Inferring possible DDoS attacks by identifying community countermeasures such as
“Remote Triggered Blackholing”
Introduction
In this project we will use the
BGPStream
tool and its Python interface
PyBGPStream
to understand the BGP protocol and interact with BGP data. The goal is to gain a better understanding of BGP and to experience how researchers, practitioners, and engineers have been using BGPStream to gain insight into the dynamics of the Internet. If you are interested in
going deeper, you can use these same tools to observe and analyze real-time BGP data or download and analyze other historical BGP data.
Project Overview and Background
The zip file accompanying this assignment contains the code and data needed to implement the functions in the file bgpm.py
. You will submit only
bgpm.py
to Gradescope and all your code for the project must be contained within bgpm.py
.
This project description, in combination with the comments in
bgpm.py
, comprise the complete requirements for the project. There are two complete sets of data included in the zip file and the provided test harness in check_solution.py
will test each of your functions against both sets
of data. You are welcome to copy and modify
check_solution.py
to better suit your development and debugging workflow, but you will have the best chance of success with the hidden data set used for grading if your final submission passes all the tests in the unmodified
check_solution.py
.
This project is designed to work in the class VM where the BGPStream libraries are installed.
Your code will need to run without modification in the course VM.