← Projects

Network Analyzer

2 min read

Motivation

One of the most intriguing parts, in my opinion, about Computer Science is the creation of networks and internetworks. I mean, just think about how insane it is that we have world-wide internet that can allow anyone to communicate with someone else on the other side of the planet. What makes this crazy is that the fundamentals of networking have been bulletproof since the 1970s. The pioneers of computer networking were by far some of the most ahead-of-the-time engineers ever. One of the most recommended books in networking is TCP/IP illustrated, which was published in 1993!

Ok... enough about how cool networking is. I started and finished this project right before the start of my sophomore year of college. I wanted something to work on and I came across a video of packet sniffing on local networks. Before this, the only knowledge I had of packets was that they were somehow network related since I would always lose them on video games. So seeing these raw packets being parsed and analyzed in this video inspired me to do something similar on my own. Of course, I thought about how I could actually make it interesting rather than just doing exactly what the video did. So I set out to build a network packet analyzer in C++, one that didn't just capture and display raw packets, but actively computed metrics like per-connection latency, jitter, and packet loss in real time. This meant thinking carefully about how to structure the system, which is what the next section covers.

Technical Deep-Dive

Design Decisions

When it comes to packet sniffing on your device, the design is pretty set-in-stone.

What I'd Do Differently

Results