Update 'selected/http_to_phy.md'

This commit is contained in:
cloin 2022-06-17 09:43:47 +00:00
parent fbbed05d31
commit fa68418b55
1 changed files with 16 additions and 18 deletions

View File

@ -27,15 +27,23 @@ Good learning resources for HTTP:
<-- Link to expanded, less curated library of topical info -->
<-- Branch into REST/GraphQL here -->
## 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.
## IP and TCP -- Designed for Delivery
Starting with IP (Internet Protocol), it sits before the TCP section, and contains important information for routing across larger networks, like where the packet is coming from (the source IP address), and where the packet needs to go (the destination IP address).
Routers use IP addresses to route the packet across the internet.
TCP is a protocol designed to aid in message delivery, built to help get your packets get from A -> B.
TCP provides a few nice guarantees which make writing reliable network code a little easier.
When a message gets sent via TCP, it ensures that chunks get passed to the application
in order. If packets get dropped along the way, or arrive out of order, TCP handles resending
missed packets and buffering before the application gets the packet, until order can be restored.
Good learning resources for IP:
- https://www.youtube.com/watch?v=rPoalUa4m8E [NOTE(hayden): Should point to point links, 'frames', and MAC addresses be covered before this point? -- (cloin) probably needs to be swapped with another video, IP *shouldn't* need to cover those, those *should* live in the ethernet content]
- https://www.youtube.com/watch?v=VWJ8GmYnjTs
<-- Link to expanded, less curated library of topical info -->
<-- Branch into TUN via link here -->
TCP (Transmission Control Protocol) comes right after IP. TCP's job is to ensure messages get to their destination
as reliably as possible. TCP provides a few nice guarantees which make writing network code a little easier.
When a message gets sent via TCP, it ensures that chunks get passed to the application in order.
If packets get dropped along the way, or arrive out of order, TCP handles resending
missed packets and holding on to your packets until it can send them to your program properly, in order. TCP also
handles congestion control, monitoring network capacity and using that to automatically scale how fast it sends messages.
TCP contains an important bit of information, called a port, that your operating system uses to send packets to the right program on your machine. If you listen on a port, like 80 (the typical port used for HTTP),
your OS will direct all traffic tagged with port 80, to you. Likewise, you can send to a specific port, and the destination will
@ -49,16 +57,6 @@ Good learning resources for TCP:
<-- Link to expanded, less curated library of topical info -->
<-- Branch into UDP, QUIC, TLS, etc. via link here -->
IP (Internet Protocol) sits right before the TCP section, and contains important information for routing across larger networks, like where the packet is coming from (the source IP address), and where the packet needs to go (the destination IP address).
Routers use IP addresses to route the packet across the internet.
Good learning resources for IP:
- https://www.youtube.com/watch?v=rPoalUa4m8E [NOTE(hayden): Should point to point links, 'frames', and MAC addresses be covered before this point? -- (cloin) probably needs to be swapped with another video, IP *shouldn't* need to cover those, those *should* live in the ethernet content]
- https://www.youtube.com/watch?v=VWJ8GmYnjTs
<-- Link to expanded, less curated library of topical info -->
<-- Branch into TUN via link here -->
<br>
## Exercise Time