Introduction

Visual Networking Thinger

Difficulty:
Skate over to Jared at the frozen pond for some network magic and learn the ropes by the hockey rink.

I’ll find Jared over at the frozen pond:

image-20251107084251353
Jared Folkins

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:

image-20251107084606028 expand

Solution

Challenge 1: DNS Lookup

The first challenge is to create a DNS request to get the IPv4 address of visual-networking.holidayhackchallenge.com:

image-20251107084809804

For the request, DNS is typically on UDP port 53:

image-20251107084903414

The domain name is just the domain, with no other info:

image-20251107084921205

To get the IPv4, I need an A request:

image-20251107084934483

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:

image-20251107085032598

And the type should match the request:

image-20251107085047602

It works:

image-20251107085111580

Challenge 2: TCP 3-Way Handshake

The second challenge is about the TCP connection establishment or 3-way handshake:

image-20251107085127884

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.

image-20251107085252538

Challenge 3: HTTP GET Request

This challenge is about sending an HTTP GET request:

image-20251107085851747

The verb is a GET, as said in the challenge description:

image-20251107085938243

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:

image-20251107090116310

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.

image-20251107090251818

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:

undefined

The version here is a bit simplified, but basically the same:

image-20251107092222783

Challenge 5: HTTPS GET Request

This one is basically the same as Challenge 3:

image-20251107092312535

I’ll set the same options as above:

image-20251107092406312

And it works:

image-20251107092418803

Outro

Visual Networking Thinger

Congratulations! You have completed the Visual Networking Thinger challenge!

The bottom of the page shows the challenge completed:

image-20251107092437275

Jaren is overjoyed:

Jared Folkins

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!