- Mentor: Cody Doucette email: firstname.lastname@example.org
- Min-max team size: 3-4
- Expected project hours per week (per team member): 6-8
- Will the project be open source? Yes
- Programming competency in C (CS 210, EC 327, or equivalent) (Very important)
- git (Rather important)
- Linux (Nice to have)
- Familiarity with concepts of computer networks (Nice to have)
- Open vSwitch (Nice to have)
- Linux kernel programming (Nice to have)
The eXpressive Internet Architecture (XIA) is an experimental network architecture developed by researchers at BU at other collaborating universities. It is an alternative to the current TCP/IP-based Internet, and emphasizes that applications should be able to more clearly express their needs to the network. For example, the current Internet forces applications to say "find where this movie is, and then go retrieve it at that location." XIA allows applications to more simply say "retrieve this movie," without caring about where the movie is stored.
In other words, XIA enables applications to more accurately express their intent. This project focuses on applying this powerful tool to allow users and applications to choose better network services, especially in open cloud environments like the Massachusetts Open Cloud (MOC). In the same way that users can choose compute and storage resources from service providers in a marketplace, we envision that users should be able to choose networking services by various vendors as well.
In this project, we will create a very simple version of a networking marketplace. Users and applications will be able to choose between different link and physical technologies that suit their needs. To accomplish this, we will expand XIA in the Linux kernel and add XIA to virtual network switch software, called Open vSwitch (OVS). Although much of the XIA code has already been written in the Linux kernel, we will be modifying it and expanding it to also fit within the constraints of OVS. We will be coding and hacking in the kernel on both virtual machines and physical computers.
By the end of this project, participants will have gained significant experience in computer networking, cloud computing, Linux kernel programming, Linux and virtual machine configuration, etc.
- Linux kernel
- Open vSwitch