<i>>In the interest of making the topic easier to comprehend, we will start with a fairly high-level overview, and then dive into each individual component as we go along. Our journey starts with a user called Alice. Alice owns a laptop, and wants to send e-mail to a person called Bob. ... [wall of text...]</i><p>I understand the enthusiasm to spread knowledge but a wall of text like that isn't going to be helpful for novices. When technical people try to impart knowledge, the text they write usually suffers from the Curse of Knowledge[1]. For example, "DHCP" and "UDP" is mentioned several times which is a level of detail that is not necessary for an introductory overview.<p>Instead, to explain how the internet works would require lots of diagrams, pictures, videos, etc. illustrating different scenarios. E.g., sending SMTP is different from HTTP and both use DNS. All these "mental buckets" (and many others) are difficult to separate for novices. Instead of drilling into a timeline of bytes sent from Alice to Bob, new concepts can be taught as "progressive layers" of detail (with the timeline rewound each time.) Answering the question of "how the internet works" is so open-ended that apparently, some tech interviewers like to use it for evaluating job candidates.<p>[1]<a href="https://en.wikipedia.org/wiki/Curse_of_knowledge" rel="nofollow">https://en.wikipedia.org/wiki/Curse_of_knowledge</a>
Have you seen Code.org's video on routing? Might be worth linking to, as it is very simple to understand:<p><a href="https://www.youtube.com/watch?v=AYdF7b3nMto" rel="nofollow">https://www.youtube.com/watch?v=AYdF7b3nMto</a>
I'd honestly recommend that people just pick up a copy of and devote some time getting through Andrew S. Tanenbaum and David J. Wetherall's <i>Computer Networks</i>.
Apologies in advance for a near useless comment, but this typo? made me smile:<p>"When Bob "sumbits" this form, another HTTP request will be sent"<p>It took a moment to decide that it probably wasn't intentional :)