How programs talk over a network. The TCP/IP model and what actually travels the wire, TCP's reliable stream versus UDP's fast datagrams and when a game uses each, the socket API, building a real TCP server that handles many clients, sending and receiving UDP packets, and the addressing, DNS, and TLS that make connections work and stay secure.
Before you start
You need to be comfortable writing code — examples are in Python (the Python course is enough). Some IP-addressing background from the Subnetting course helps but is not required.
The Network Stack
Before writing a byte to a socket, understand what carries it. The TCP/IP layers, how IP addresses and ports route data to the right program, and the journey a message takes across the network.
TCP vs UDP
The two transport protocols make opposite trade-offs. TCP is a reliable, ordered stream; UDP is fast, unreliable datagrams. Understanding the difference is the single most important choice in game networking.
The Socket API
A socket is the programming interface to the network — the endpoint your code reads from and writes to. Learn the BSD socket API that every language wraps: create, bind, listen, accept, connect.
Building a TCP Server
A real server must frame messages out of the byte stream, handle partial reads, and serve many clients. Build a robust TCP server loop — the foundation of a matchmaking or lobby service.
UDP & Datagrams
UDP is the backbone of real-time games. Learn to send and receive datagrams, why there is no connection, and how to structure packets and detect loss on top of an unreliable channel.
DNS, TLS & Addressing
Players connect to names, not IPs, and sensitive traffic must be encrypted. Learn DNS resolution, IPv4 vs IPv6 addressing, and wrapping a socket in TLS so logins and payments are secure.