Another quick post based on a Twitter exchange. (Maybe this will help save content from the ephemera of Tweets.)
A short, incomplete list topics in networking that programmers should know about:
- ICMP messages
- Frame size and fragmentation
- Socket options
- Listen queue and behavior when full.
- All the timeouts and why they exist.
- When read, write, and connect calls block and why.
- When memory buffers are copied and how to avoid.
A reference I love is the encyclopedic The TCP/IP Guide (note: affiliate link.) It’s got detail on pretty much everything, including bogons and the secret masters of the Internet—the DNS root servers and BGP administration.