Networking Tutorial · Networking Basics · Lesson 1 of 28
Networking Introduction
What computer networking is, why every developer and cloud engineer needs it, and what this tutorial covers.
What is computer networking?
A network is a set of devices that exchange data. Your laptop, a phone, a web server and a database are all hosts on networks, and the internet is a network of networks connecting billions of them.
Every time you open a web page, your computer:
- Looks up the server's IP address with DNS.
- Opens a TCP connection to a port on that address (or a QUIC connection over UDP).
- Sets up encryption with TLS.
- Sends an HTTP request and reads the response.
Along the way, the data is split into packets, each finding its own way through routers, firewalls, NAT devices and load balancers. This tutorial explains each of those pieces.
Why developers need networking
- "It works on my machine, but times out in production" is usually a networking problem: a firewall rule, a DNS record, a timeout or a route.
- In the cloud you design the network: address ranges, subnets, route tables, security groups and load balancers are all code you write.
- Performance depends on it: latency, connection reuse, HTTP/2 and caching decide how fast an app feels.
How this tutorial works
Examples are short Python programs you can run in the browser. They use the standard library, mostly the
ipaddress module for addresses and subnets, plus small simulations of protocols such as the TCP handshake and
DNS caching. Real-world commands (dig, curl, ping, traceroute) are shown with typical output for you to
try on your own computer.
import ipaddress
server = ipaddress.ip_address("93.184.215.14")
home = ipaddress.ip_address("192.168.1.20")
print(server, "is private:", server.is_private)
print(home, "is private:", home.is_private)
Output
93.184.215.14 is private: False 192.168.1.20 is private: True
The last section applies everything to cloud networks on AWS, with Azure and Google Cloud equivalents.
Test yourself
Which protocol turns a name like www.example.com into an IP address?
HTTPDNSTCPTLS
Show answer
Answer: DNS
DNS (the Domain Name System) resolves names to addresses before any connection is made.