Computer Networking
From one packet on a wire to a server handling thousands of connections
For anyone comfortable in a Linux shell and able to read C, who wants to understand what happens between a program calling connect() and bytes arriving on another continent. Required labs target Linux or WSL with a C compiler, make, iproute2, procfs and epoll; macOS learners need a Linux VM/container for those exact exercises. Optional diagnostics also use tcpdump, dig and gdb, which must be installed separately when absent. The Setting Up course covers the base toolchain.
Course preview
What you will be able to do
- Explain what each layer adds to a packet, and read a real capture
- Work out subnets, routes and address ranges without a calculator
- Write a working TCP client and server in C, with error handling that is not optional
- Choose between blocking, non-blocking and event-driven designs for a given load
- Diagnose a broken connection with ping, traceroute, ss, dig and tcpdump
- Explain why a server that works for ten clients fails for ten thousand, and what to do about it
Before you join
Course roadmap
English is available for every learning step.
This is the full learning route. Lessons build on earlier work; required checkpoints are the points where the route asks you to demonstrate it.
- 01
What actually happens when two machines talk
Lesson · 15 min
- 02
Layers, and the envelope around every message
Lesson · 18 min
Builds on: What actually happens when two machines talk
- 03
Addresses: how a machine is found
Lesson · 18 min
Builds on: Layers, and the envelope around every message
- 04
Splitting a network, and the arithmetic behind it
Lesson · 20 min
Builds on: Addresses: how a machine is found
- 05
How a packet chooses its next hop
Lesson · 19 min
Builds on: Splitting a network, and the arithmetic behind it
- 06
Trace a packet from your machine to the internet
Required checkpoint · 20 min
Builds on: How a packet chooses its next hop
- 07
One public address, many private machines
Lesson · 17 min
Builds on: How a packet chooses its next hop
- 08
The address space that does not run out
Lesson · 18 min
Builds on: Addresses: how a machine is found
- 09
How the internet agrees on where things are
Lesson · 16 min
Builds on: How a packet chooses its next hop
- 10
Tunnels: carrying one network inside another
Lesson · 16 min
Builds on: One public address, many private machines
- 11
A socket is a file descriptor
Lesson · 16 min
Builds on: Layers, and the envelope around every message
- 12
Waiting, or not waiting
Lesson · 18 min
Builds on: A socket is a file descriptor
- 13
Watching many connections at once
Lesson · 20 min
Builds on: Waiting, or not waiting
- 14
The seven calls that make a connection
Lesson · 19 min
Builds on: A socket is a file descriptor
- 15
Establishing, and tearing down, a connection
Lesson · 19 min
Builds on: The seven calls that make a connection
- 16
Build a server and a client that talk
Required checkpoint · 22 min
Builds on: Establishing, and tearing down, a connection
- 17
Every network call can fail, and how
Lesson · 18 min
Builds on: Build a server and a client that talk
- 18
From a name to an address
Lesson · 18 min
Builds on: Addresses: how a machine is found
- 19
The protocol you use all day
Lesson · 19 min
Builds on: Establishing, and tearing down, a connection · From a name to an address
- 20
One thread per client, and where it breaks
Lesson · 17 min
Builds on: Build a server and a client that talk
- 21
A fixed set of workers over a queue of connections
Lesson · 18 min
Builds on: One thread per client, and where it breaks
- 22
Serving thousands of connections from one thread
Required checkpoint · 22 min
Builds on: Watching many connections at once
- 23
Calling a function on another machine
Lesson · 16 min
Builds on: The protocol you use all day
- 24
Schemas, code generation, and why they matter
Lesson · 17 min
Builds on: Calling a function on another machine
Learn with an account when access opens
Your CYBERSKILLS account will keep progress and checkpoint results together. Until then, this syllabus is here to help you choose the route that fits your goal.
Browse course previews