Update 'selected/http_to_phy.md'

This commit is contained in:
cloin 2022-06-17 09:24:34 +00:00
parent 308c3e546d
commit 8433f15778
1 changed files with 10 additions and 14 deletions

View File

@ -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:
<br>
## 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
<br>