From 8433f15778b762e5204df0193c17582907dd3b6d Mon Sep 17 00:00:00 2001 From: cloin Date: Fri, 17 Jun 2022 09:24:34 +0000 Subject: [PATCH] Update 'selected/http_to_phy.md' --- selected/http_to_phy.md | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/selected/http_to_phy.md b/selected/http_to_phy.md index 7f7a693..ba5c004 100644 --- a/selected/http_to_phy.md +++ b/selected/http_to_phy.md @@ -6,14 +6,14 @@ usually referred to as a packet. At a high level, packets are split into a few important sections. We're going to start with the simple case: Sending a packet over ethernet with HTTP over TCP. + Our packets look like this: ``` ETHERNET > IP > TCP > HTTP ``` [NOTE(cloin): this is an awkward transition, is there a better way to phrase this/this section?] -## HTTP and You - +## HTTP -- Where Your Message Lives Browsers use HTTP (Hypertext Transfer Protocol) to communicate with web servers to request and receive web pages, and perform basic transactions, like updating your account, posting images, and getting the latest updates on the weather. HTTP defines a process for packing messages to be sent back and forth over the network. @@ -27,10 +27,8 @@ Good learning resources for HTTP: <-- Link to expanded, less curated library of topical info --> <-- Branch into REST/GraphQL here --> -## Diving into the meat and potatoes with TCP and IP - -HTTP responses and requests are a sequence of bytes, chunked up and sent in packets. - +## TCP and IP -- Designed for Delivery +[NOTE(cloin): TCP -> IP transition is not *quite* right, needs some thinking. Do we want to flip the order?] Working backwards, we'll tackle TCP next. TCP is a protocol designed to aid in message delivery, built to help get your packets get from A -> B. @@ -63,16 +61,15 @@ Good learning resources for IP:
-## Making it Tractable +## Exercise Time +So, how do you *actually* send that cat though? How do you send a real packet yourself? +It's time to make that theory stick. -So, how do you take all that theory and make it stick? How do you send a real packet yourself? Some good outlets for exercises: - https://beej.us/guide/bgnet/html/ [NOTE(hayden): This seems like an excellent resource!] - https://github.com/shuveb/zerohttpd [NOTE(hayden): If we can provide a brief description of the different folders in this repo, that might be helpful] -## Using the DNS Phonebook -[NOTE(cloin): this feels detached after content reduction, needs to be worked back into the narrative] - +## DNS -- Wait, how do I get an IP? The last really important bit you need to know is DNS. The job of DNS is to help you find IP addresses for domain names, like "handmade.network". @@ -84,10 +81,9 @@ Good learning resources for DNS: <-- Link to expanded, less curated library of topical info --> <-- Branch into DNS over HTTPS / DNS Lookup Security via link here --> -## Bits at Rock Bottom - +## Rock Bottom (Ethernet and PHY) Ok, so you've got some of the basics down, and you're ready for some serious spelunking? -Let's talk Ethernet and PHY. +Let's talk bits and bytes. - https://www.youtube.com/watch?v=XaGXPObx2Gs&list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW