Holiday Hack 2025: Visual Networking Thinger
Introduction
Visual Networking Thinger
Difficulty:❅❅❅❅❅I’ll find Jared over at the frozen pond:
Jared Folkins
Jared Folkins here! My favorite Christmas movie is White Christmas. You should find me on the socials and tell me what yours is.
You know, I think Santa is right! It truly is better to give than to receive.
I love singing Carols with my family! 🎵O holy night, the stars are brightly shining…🎵
Santa’s got the right idea about giving, and I’m excited to give you a fantastic way to learn networking fundamentals!
This interactive visualization I’ve created shows you exactly how packets travel, how protocols work, and why networks behave the way they do.
It’s way better than staring at boring textbooks - you can actually see what’s happening!
Want to dive into some hands-on network exploration?
Chat with Jared Folkins
Congratulations! You spoke with Jared Folkins!
The terminal opens up a web interface with five challenges that must be completed in order:
Solution
Challenge 1: DNS Lookup
The first challenge is to create a DNS request to get the IPv4 address of visual-networking.holidayhackchallenge.com:
For the request, DNS is typically on UDP port 53:
The domain name is just the domain, with no other info:
To get the IPv4, I need an A request:
AAAA will return an IPv6, TXT would return text records, and MX would return the mail server for the domain.
For the response, I’ll select the only option that is an IPv4 address:
And the type should match the request:
It works:
Challenge 2: TCP 3-Way Handshake
The second challenge is about the TCP connection establishment or 3-way handshake:
Here I need to add the TCP flags used in the 3-way handshake that starts every TCP connection. The client sends a SYN packet to start the handshake. The server responds with a SYN-ACK. The client then responds with an ACK.
Challenge 3: HTTP GET Request
This challenge is about sending an HTTP GET request:
The verb is a GET, as said in the challenge description:
Different verbs are designed to do different things (though that’s just by convention, it’s all up to the webserver how it wants to handle different verbs).
The HTTP version does not matter as far as solving the challenge:
These are all valid versions, and whatever I send will be reflected in the first line of the request (and miniced in the response).
I’m not able to change the Host field. The User-Agent also doesn’t matter as far as solving the challenge. This string is meant to tell the server what browser is making the request, in case it wants to handle different browsers differently.
Challenge 4: TLS Handshake
Next is the TLS handshake. Just like with TCP, setting up a TLS connection has a handshake to establish the connection. Wikipedia offers this image:
The version here is a bit simplified, but basically the same:
Challenge 5: HTTPS GET Request
This one is basically the same as Challenge 3:
I’ll set the same options as above:
And it works:
Outro
Visual Networking Thinger
Congratulations! You have completed the Visual Networking Thinger challenge!
The bottom of the page shows the challenge completed:
Jaren is overjoyed:
Jared Folkins
Wonderful! You’ve mastered those networking basics beautifully.
Now you can see how all the pieces of the network puzzle fit together - it’s truly better to give knowledge than to keep it to yourself!