By Showmaxers, for Showmaxers: Network fundamentals

Recently, we decided to release some of our internal knowledge-sharing talks, “By Showmaxers, for Showmaxers”, to the public. We are firm believers in the value of sharing experience and continuous learning, and part of that means breaking down barriers between teams.

Sharing talks and how-to sessions isn’t just about certain skills, tools, and methods — it’s also a great way for developers to see what their colleagues are working on, how they approach their work, and it provides a forum for us to share and discuss knowledge, both basic and advanced, across the organization and beyond.

In this edition, Štefan Šafár, Showmax CDN Engineer, gives a very useful talk on Network fundamentals. As he notes, the talk was meant for anyone who gets anxious about setting up networks. Štefan tailored the talk for beginners and programmers who see networks as magical things wrapped in mystery. You’ll see, when you understand the technology that lies behind networks, all of a sudden, it all seems easy.

The presentation (below) covers a lot of topics:

I. Introduction to IP addresses, network masks, and how to work with them.

IP address binary breakdown diagram IP address binary breakdown diagram

II. TCP/IP stack with a WireShark demo, and some routes and routing at the end.

Wireshark screenshot Wireshark screenshot

III. Linux socket API

This topic is covered in depth, as you may be using it without even knowing you’re using it. Whenever you are setting up an HTTP server, in whatever language, the underlying implementation uses the Linux socket API.
Linux socket API diagram Linux socket API diagram

IV. Common TCP pitfalls

… and how to debug them is the conclusion and a nice wrap up of the presentation.
Screenshot of debugging network issues Screenshot of debugging network issues

Follow Štefan’s talk to understand the basics, and add networks to your skill set.

Or just get familiar with the deck.

Networking fundamentals from Showmax Engineering

Please check the original version of this article at