From c9b59cfa0aff3805a14b1d8f2c9776ddbbb09f5b Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Tue, 3 Sep 2024 08:00:03 +0100 Subject: [PATCH] Autosave: 2024-09-03 08:00:03 --- .zk/notebook.db | Bin 4153344 -> 4153344 bytes zk/Link_Layer_of_Internet_Protocol.md | 2 +- zk/Transport_Layer_of_Internet_Protocol.md | 36 ++++++++++++++++++++- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/.zk/notebook.db b/.zk/notebook.db index 2b380d1c426c5f189e141774ce9ce86e4d3146be..a6f9d0a42053e1fb32099435db722eb12e268f72 100644 GIT binary patch delta 35897 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 h!@MjXeWD{Sy!xBB-!!x? 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 YxPFN12j;KzLBv4+Qt9c#L$|yC9o#9(BLDyZ diff --git a/zk/Link_Layer_of_Internet_Protocol.md b/zk/Link_Layer_of_Internet_Protocol.md index a6687b2..043ce86 100644 --- a/zk/Link_Layer_of_Internet_Protocol.md +++ b/zk/Link_Layer_of_Internet_Protocol.md @@ -25,7 +25,7 @@ same is not true for other layers. For example a device like a laptop participates in all four layers up to the Application Layer but a network router does not: -![Link Layer diagram](../img/link-layer-internet-diagram.png) +![Link Layer diagram](../img/link-layer-frame-revised.png) ## MAC addresses diff --git a/zk/Transport_Layer_of_Internet_Protocol.md b/zk/Transport_Layer_of_Internet_Protocol.md index 5e0d8f1..8a322d4 100644 --- a/zk/Transport_Layer_of_Internet_Protocol.md +++ b/zk/Transport_Layer_of_Internet_Protocol.md @@ -1,6 +1,6 @@ --- title: Transport_Layer_of_Internet_Protocol -tags: [] +tags: [internet, networks, ports] created: Tuesday, September 03, 2024 --- @@ -18,3 +18,37 @@ Protocol** (TCP). A TCP **fragment** fits within an IP packet's data section, giving us the following iteration of the network stack: + +![Transport layer fragment](../img/transport-layer-segment.png) + +The segment header contains a destination network port number. The port number +identifies the specific service or process on the host device which will receive +the data. + +A useful analogy: + +_The IP address is like the street address of an office building. The port +number is like the office number of a specific worker within the building. Once +a letter arrives at the building, the mail processing office (like the OS) is +not the intended recipient. Instead the mail worker passes on the letter to the +intended recipient. Likewise, the OS examines the port number and delivers the +inbound data to the process listening on the specified port._ + +## Ports + +A host with a single IP address can have multiple active ports, each used for +performing a different type of activity on the network. + +Both servers and clients possess ports. A server will have a dedicated port +which it listens for requests on (typically port 80 or port 443). A client will +have an "ephemeral" port where it listens for responses from a server. They are +ephemeral because they are open only temporarily to receive a response to a +certain request and are assigned dynamically by the networking components of the +OS. + +An IP address plus a port (e.g: 192.168.2.1:3000) constitutes an **endpoint**. +An instance of an endpoint is a **socket**. + +If multiple clients connect to the same endpoint each has its own socket (for +instance on a host that is a server). A socket can listen for new connections or +it can represent an established, ongoing connection.