0.5 The tiny bit of background you need
Four ideas. Skim now; each is re-explained where it's used.
Idea 1 — Bits, bytes, and why 255 keeps appearing
A bit is a 0 or a 1. A byte is 8 bits.
With 8 bits you can count from 00000000 to 11111111:
binary decimal
00000000 = 0
00000001 = 1
00000010 = 2
...
11111111 = 255 <-- the biggest 8-bit number
That's why IP addresses are made of numbers 0 to 255, and why you'll see
255 constantly in subnet masks. There is nothing magic about it — it's just
"all 8 bits switched on".
The place values of the 8 bits (memorise these; subnetting becomes easy):
128 64 32 16 8 4 2 1
| | | | | | | |
1 1 0 0 0 0 0 0 = 128 + 64 = 192
1 1 1 1 1 1 1 1 = 255
1 0 0 0 0 0 0 0 = 128
Idea 2 — Hexadecimal, in 30 seconds
Hex counts in 16s instead of 10s, using 0-9 then a-f:
hex: 0 1 2 3 4 5 6 7 8 9 a b c d e f
decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Two hex digits = exactly one byte (ff = 255). That's why hardware addresses
look like a4:83:e7:2b:19:0c — six bytes, written as six pairs of hex digits.
You rarely need to convert; you just need to not be scared of it.
Idea 3 — Client and server
- A server is a program that waits for connections and answers them.
- A client is a program that starts a connection and asks for something.
Your browser is a client. example.com's web server is a server. The same
physical machine can run both. That's the entire distinction.
Idea 4 — A protocol is just an agreed format
A protocol is a set of rules two programs agree on: what the message looks like, what order things happen in, what each field means. Like agreeing that a letter has an address on the outside and a greeting at the top.
"TCP/IP" is a family of such agreements, which we'll meet one at a time.
That's genuinely all
No maths beyond counting. If you can read the place-value table in Idea 1, you can do everything in this guide, including subnetting.
Further reading (only if you want more background)
- Video (~7 min): "Binary Numbers" — search Computerphile or Khan Academy. Only if Idea 1 felt shaky.
- Article: "Hexadecimal" on Wikipedia — the first section is enough.
- Book (delightful, non-technical): Code: The Hidden Language of Computer Hardware and Software — Charles Petzold. Explains bits, bytes, and how computers work from first principles. Not required, but wonderful.