As an undergraduate Integrated Information Technology student, I have had the opportunity to take many
technology classes, undergo multiple research projects, and work as a full time IT Manager at the College
of Engineering and Computing. Two key experiences, ITEC 742, Enterprise Network Management, and my second
semester of research, taught me the concept of software defined networking, and its importance to the
internet and connected world. My in-class and out-of-class experiences went hand-in-hand to teach me this
concept- adding to my experience as a GLD student pursuing a pathway in Research.
As an Integrated Information Technology major, I am required to take multiple management-based IT classes. ITEC 742,
Enterprise Network Management, is a graduate class that I am taking through the accelerated master's program.
The course is taught by Dr. Crichigno, the same professor who has provided me with two semesters of research,
and an upcoming third this semester. In this class we cover advanced, in-depth topics regarding networking. A
tool that we utilize to simulate examples regarding networking topics is called mininet.
Mininet is a Linux based program that simulates networks. Linux is an operating system, such as Microsoft Windows,
for example. Inside Mininet you can create a topology, or “skeleton” of a network. This topology can consist of hosts,
standard switches, P4 switches, routers, and links. Below is an example of a Mininet lab topology. [Fig.1] It consists
of two hosts, h1 and h2, and two switches, s1 and s2. These are all virtual yet behave just as a physical recreation would.
Below is a recent concept that we covered in class laid out in Mininet. [Fig. 2] The concept is RTT
(Round trip time) fairness. It is an advanced component of TCP (Transmission Control Protocol) congestion
control, which has too great of a prerequisite to explain in this paper. A basic way to understand what is
being calculated is the fairness of each host's link based on the general bottleneck between the two routers.
The fairness is calculated by Jain's Fairness index. In this case, the fairness is rated at .77 on a scale
from 0-1 based on 3 hosts, with bottlenecks of 1, 3 and 5Gbps respectively.
We can create this scenario in Mininet. Not only can we limit each link to certain rates, but we can also change
the congestion control algorithm used, such as Reno, cubic, BBR etc. Both learning how to use and having access
to Mininet is a great asset for any networking student/professional. This tool is not only used in class, but
in my past and future semesters of research.
I was fortunate to receive a second research opportunity from Dr. Crichigno in the spring of 2022.
This semester of research was a drastic change in topic in comparison to the first. We were no
longer working with NGFWs, but P4 programmable switches. Before researching software defined
networking, I was under the belief that networking equipment was only closed source, limiting the end-user's
control over the flow of traffic and packet inspection. After discovering this open-source language and
switch architecture, it became clear to me that we are discovering an entirely new way of doing things
in the networking world. When I say that this is cutting edge technology, I mean it. You can google P4,
but the insignificant number of results shows that this is only the beginning stage of this area of technology.
A typical networking device utilizes a standardized instruction set and firmware programming to make filtering
decisions. Companies such as Cisco, Juniper and Palo Alto manufacture such devices that are then deployed daily
across the globe. While it is great that we have multiple vendors for infrastructure solutions, we are
limited to what they produce. This is where Software Defined Networking comes in.
P4 is an open-source networking language. It is very robust, as it basically grants the user complete
control over a network switch. Instead of having a simple set of options on a Cisco switch, for example,
we are able to define and parse headers, and create forwarding actions based on match-action tables.
There are many other properties that can be tweaked and created, but our research project focused on
packet filtering. This can be practiced in the same utility that was taught in ITEC 742, mininet.
In order to filter traffic, we first had to define the headers of different protocol data units such as
ethernet frames, IPv4 packets, TCP segments etc. Below is an image of an IPv4 packet structure down to the bits. [Fig. 3]
From here we defined each part of the packet and continued to do the same down the network stack for each protocol data unit.
Once we had these definitions, we then had to parse this information. This involves stripping the headers from the packet.
Our next step required decision making. This involved match-action tables, which were used to make those forwarding decisions.
These tables could filter based on source and destination address, IPv4 protocol, and TCP flags. All the required filtering decisions
for the project fall under those tables. From there, we compiled our P4 program and uploaded it to the switch in Mininet. From here we
could modify higher-level properties that were established in the program. For example, we could block all TCP packets but allow UDP packets.
Working with Mininet during our research project was a great way to apply what ITEC 742 taught about the utility.
Utilizing the same tool both within and outside of the classroom furthered my understanding of its usefulness and
real-word application. These experiences have contributed to my pathway of research and have provided a great
foundation for further research opportunities.