Slide background A Sneak Peek
at The Internet
Learn more
Slide background How does The Internet really work? Become proficient at using network analysis tools to debug production issues. Discover what happens to packets as they traverse the Internet. Learn how the Linux kernel implements its network stack. Sign up now!
Slide background Exclusive bonus screencasts* for
mailing list subscribers.
Subscribe now * When I start recording them!

A Sneak Peek at The Internet

What happens when you enter www.facebook.com into your web browser and hit enter?

A Sneak Peek at The Internet will take you on a deep dive through the network stack, from HTTP, SSL, TCP and IP, all the way down through the data link layer, back up to Facebook's data centres, and the return journey back to the browser.

There's more fun, excitement and peril than a Disneyland rollercoaster!

Sign up now for announcements about the book, blog posts covering some of the topics and, hopefully, some exclusive screencasts covering key areas.

Outline

The content is still very much a work in progress, but here are some of the topics I'm aiming to include:

Application Layer Protocols

  • Hypertext Transfer Protocol (HTTP)
  • The Domain Name System (DNS)
  • Email message formats and mail systems, like the Simple Mail Transfer Protocol (SMTP), and Internet Mail Access Protocol (IMAP)
  • The Secure Shell (SSH) protocol

Security

  • Secure Sockets Layer (SSL)
  • Transport Layer Security (TLS)
  • Certificate Management and Public Key Infrastructure (PKI)

Transport Layer Protocols

  • Transmission Control Protocol (TCP)
  • Uniform Datagram Protocol (UDP)
  • Newer transport protocols, like Quick UDP Internet Connections (QUIC) and Stream Control Transmission Protocol (SCTP)

Network Layer Protocols

  • Internet Protocol, both v4 & v6
  • Internet Control Message Protocol (ICMP)
  • Static and dynamic routing protocols
  • IP addressing, network masks, and auto-configuration
  • Network Address Translation (NAT) and firewalls

Data Link Layer Protocols

  • Broadcast, multicast and unicast traffic
  • Address Resolution Protocol (ARP)
  • Addressing at the data link layer (MAC addresses)

Physical Layer Protocols

  • Ethernet, switches, bridges, VLANs, and CSMA-CD
  • Wifi, and other wireless LAN technologies
  • Cellular wireless technologies
  • Point-to-Point protocols (PPP)

Command line tools

  • dig, nslookup, and whois for investigating DNS
  • tcpdump, tcpflow, and other libpcap tools for tracing through network traffic
  • traceroute, ping, and mtr to check out routing
  • lsof, strace, dtrace et al. to see what processes are up to

Standardisation

  • The Internet Engineering Task Force (IETF) and Requests for Comments (RFCs)
  • Other standards bodies like the IEEE and ITU-T
  • General Principles of Internet Standards

Mailing List

Sign up to the mailing list to get updates on how the book is progressing. I'm planning on building some screencasts to illustrate particular topics, and mailing list subscribers will get exclusive first dibs on them – that's the quid pro quo for giving me your email address! Speaking of which, I promise not to do anything evil with your email address. I'll not sell it on to anyone else, and I'll only use it to contact you about relevant things.

Recent Articles

I write articles on all sorts of topics, which you can find over at the Wossname Industries publication on Medium and, occasionally, the odd additional article on my own profile @ Medium. I'll endeavour to post relevant articles over here, too.

On the Connectedness of Apps & Services

I use many apps & services in my everyday life. They all connect to one another, but I forget how. How would I model & visualise this web?

Representing Trees in PostgreSQL

Trees are a very useful data structure for modelling real world entities. The trouble with hierarchical data like this is that it doesn’t fit terribly well into our traditional relational data model, where we’re operating over a set of data which matches some particular constraint.

Presentations

I've been taking the ideas around this topic out and about a bit, doing talks at conferences and local user groups. If you'd like me to come along to your event, please do get in touch! I'm always more than happy to get out the house and talk about the inner workings of the Interwebs.

Type "google.com" into your Browser: What Happens Next? Wednesday, 22 July 2015 – O'Reilly Open Source Convention 2015, Portland, OR [ slides ]

I haven’t done any interviewing for a while but I went through a period of growth in one of the companies I worked for where we were feverishly expanding the development team, so we had to be a little more systematic in our approach to interviewing. Instead of just having an open conversation with candidates to see where it led (which is what I’d previously done in such situations), I wound up preparing a ‘standard’ set of questions. It took a few goes, but eventually I settled on a favourite question for the technical portion of the interview:

When I pull up my favourite Internet browser, type “google.com” into the address bar, and press return, what happens?

I reckon it’s a doozy of a technical question. There’s so much breadth and depth in that answer. Let's dig into it a bit more…

Resolving Names Friday, 13 March 2015 – Bath Ruby Conference 2015, Bath, UK [ slides ]

I gave a lightning talk at the Bath Ruby Conference on how domain names are resolved. Trying to pack 100ms of network chatter into 5 minutes proved tricky!

Get in Touch

Feel free to drop me an email, to hello@the-internet.io, if you've any questions or comments, or just want to say "hello". You can also find me on Twitter as @mathie. Or you can tap on the icon at the bottom right (which probably has a photo of me, and maybe even a wee speech bubble, encouraging you to chat!) to send me a message.