Skip to content
CYBERSKILLS Academy
Intermediate7h 16m · 24 learning steps · 3 required checkpoints

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.

  1. 01

    What actually happens when two machines talk

    Lesson · 15 min

  2. 02

    Layers, and the envelope around every message

    Lesson · 18 min

    Builds on: What actually happens when two machines talk

  3. 03

    Addresses: how a machine is found

    Lesson · 18 min

    Builds on: Layers, and the envelope around every message

  4. 04

    Splitting a network, and the arithmetic behind it

    Lesson · 20 min

    Builds on: Addresses: how a machine is found

  5. 05

    How a packet chooses its next hop

    Lesson · 19 min

    Builds on: Splitting a network, and the arithmetic behind it

  6. 06

    Trace a packet from your machine to the internet

    Required checkpoint · 20 min

    Builds on: How a packet chooses its next hop

  7. 07

    One public address, many private machines

    Lesson · 17 min

    Builds on: How a packet chooses its next hop

  8. 08

    The address space that does not run out

    Lesson · 18 min

    Builds on: Addresses: how a machine is found

  9. 09

    How the internet agrees on where things are

    Lesson · 16 min

    Builds on: How a packet chooses its next hop

  10. 10

    Tunnels: carrying one network inside another

    Lesson · 16 min

    Builds on: One public address, many private machines

  11. 11

    A socket is a file descriptor

    Lesson · 16 min

    Builds on: Layers, and the envelope around every message

  12. 12

    Waiting, or not waiting

    Lesson · 18 min

    Builds on: A socket is a file descriptor

  13. 13

    Watching many connections at once

    Lesson · 20 min

    Builds on: Waiting, or not waiting

  14. 14

    The seven calls that make a connection

    Lesson · 19 min

    Builds on: A socket is a file descriptor

  15. 15

    Establishing, and tearing down, a connection

    Lesson · 19 min

    Builds on: The seven calls that make a connection

  16. 16

    Build a server and a client that talk

    Required checkpoint · 22 min

    Builds on: Establishing, and tearing down, a connection

  17. 17

    Every network call can fail, and how

    Lesson · 18 min

    Builds on: Build a server and a client that talk

  18. 18

    From a name to an address

    Lesson · 18 min

    Builds on: Addresses: how a machine is found

  19. 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. 20

    One thread per client, and where it breaks

    Lesson · 17 min

    Builds on: Build a server and a client that talk

  21. 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. 22

    Serving thousands of connections from one thread

    Required checkpoint · 22 min

    Builds on: Watching many connections at once

  23. 23

    Calling a function on another machine

    Lesson · 16 min

    Builds on: The protocol you use all day

  24. 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
Computer Networking · CYBERSKILLS Academy