Update 'selected/http_to_phy.md'
This commit is contained in:
parent
308c3e546d
commit
8433f15778
|
@ -6,14 +6,14 @@ usually referred to as a packet.
|
||||||
|
|
||||||
At a high level, packets are split into a few important sections.
|
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.
|
We're going to start with the simple case: Sending a packet over ethernet with HTTP over TCP.
|
||||||
|
|
||||||
Our packets look like this:
|
Our packets look like this:
|
||||||
```
|
```
|
||||||
ETHERNET > IP > TCP > HTTP
|
ETHERNET > IP > TCP > HTTP
|
||||||
```
|
```
|
||||||
[NOTE(cloin): this is an awkward transition, is there a better way to phrase this/this section?]
|
[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
|
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.
|
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.
|
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 -->
|
<-- Link to expanded, less curated library of topical info -->
|
||||||
<-- Branch into REST/GraphQL here -->
|
<-- Branch into REST/GraphQL here -->
|
||||||
|
|
||||||
## Diving into the meat and potatoes with TCP and IP
|
## 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?]
|
||||||
HTTP responses and requests are a sequence of bytes, chunked up and sent in packets.
|
|
||||||
|
|
||||||
Working backwards, we'll tackle TCP next.
|
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.
|
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>
|
<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:
|
Some good outlets for exercises:
|
||||||
- https://beej.us/guide/bgnet/html/ [NOTE(hayden): This seems like an excellent resource!]
|
- 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]
|
- 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
|
## DNS -- Wait, how do I get an IP?
|
||||||
[NOTE(cloin): this feels detached after content reduction, needs to be worked back into the narrative]
|
|
||||||
|
|
||||||
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,
|
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".
|
like "handmade.network".
|
||||||
|
|
||||||
|
@ -84,10 +81,9 @@ Good learning resources for DNS:
|
||||||
<-- Link to expanded, less curated library of topical info -->
|
<-- Link to expanded, less curated library of topical info -->
|
||||||
<-- Branch into DNS over HTTPS / DNS Lookup Security via link here -->
|
<-- 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?
|
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
|
- https://www.youtube.com/watch?v=XaGXPObx2Gs&list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
Loading…
Reference in New Issue