From e2a024719f5321cefcd7cfc63add2d61ac0920d6 Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Fri, 6 Sep 2024 10:00:02 +0100 Subject: [PATCH] Autosave: 2024-09-06 10:00:02 --- .zk/notebook.db | Bin 4153344 -> 4153344 bytes zk/Application_Layer_of_Internet_Protocol.md | 18 +++++++- zk/Example_scenario_internet_data_transfer.md | 43 ++++++++++++++++++ zk/Internet_fundamentals.md | 16 ++++--- 4 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 zk/Example_scenario_internet_data_transfer.md diff --git a/.zk/notebook.db b/.zk/notebook.db index a77ae79bcf5b9bae395d754d21c2e8557aedf439..7edfd6b27aa3e129c8c2ce626c86c8ae3a5880a1 100644 GIT binary patch delta 48785 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 delta 33658 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 diff --git a/zk/Application_Layer_of_Internet_Protocol.md b/zk/Application_Layer_of_Internet_Protocol.md index 2fb0a9c..a552234 100644 --- a/zk/Application_Layer_of_Internet_Protocol.md +++ b/zk/Application_Layer_of_Internet_Protocol.md @@ -1,7 +1,23 @@ --- title: Application_Layer_of_Internet_Protocol -tags: [] +tags: [internet, networks] created: Friday, September 06, 2024 --- # Application Layer of the Internet Protocol + +The final, topmost layer of the Internet Protocol suite. + +![Data at the Application Layer](../img/application-layer-data.png) + +The Application Layer is where we get to the protocols that describe the +behaviour of applications. All the preceding lower levels are effectively +**plumbing that enables applications to do the things they want accross the +internet**. + +Whereas the lower levels facilitate communication accross the internet, the +Application Layer is concerned with achieving a specific task once the ability +to communicate is assured. + +Application Layer protocols include HTTP, the Simple Mail Transfer Protocol +(SMTP), and FTP. diff --git a/zk/Example_scenario_internet_data_transfer.md b/zk/Example_scenario_internet_data_transfer.md new file mode 100644 index 0000000..4ab0e78 --- /dev/null +++ b/zk/Example_scenario_internet_data_transfer.md @@ -0,0 +1,43 @@ +--- +title: Example_scenario_internet_data_transfer +tags: [networks, internet] +created: Friday, September 06, 2024 +--- + +# Example scenario of data transfer accross the internet + +![Path of a network request accross the internet](../img/network-request-layers.png) + +![All layers of the IP](../img/all-layers-of-IP.png) + +- A client device is connected to a wireless WiFi network. +- This network is connected to the internet via a router. +- Elsewhere on the internet is a server also connected to the internet via + router. +- A user of the client device opens a web browser and requests a web page hosted + on the server (we will assume it already knows the IP address) +- The web browser knows HTTP - a protocol of the + [Application Layer](Application_Layer_of_Internet_Protocol.md) - and forms an + HTTP request intended for the destination server. +- The browser hands off the HTTP request to the TCP/IP software stack of the + device's [operating system](Basic_model_of_the_operating_system.md), asking + that the data be delivered to the server on its IP address and at port 80. +- The TCP/IP software stack on the client OS encapsulates the HTTP payload in a + TCP segment (at the + [Transport Layer](Transport_Layer_of_Internet_Protocol.md)), setting the + destination port to 80 in the segment header. +- The [Internet Layer](Internet_Layer_of_Internet_Protocol.md) software on the + client then wraps the TCP segment in an IP packet, which includes the + destination IP address of the server in the packet header. +- At the [Link Layer](Link_Layer_of_Internet_Protocol.md) of the client device, + the IP packet is encapsulated in a frame with the + [MAC_address](MAC_addresses.md) of the local router in its header. The frame + is wirelessly transmitted by the client device's WiFi hardware. +- The wireless access point receives the frame and passes to the router. The + router examines the internet layer packet to determine the destination IP + address. +- To reach the server, the request needs to travel through multiple routers on + the internet and the process is replicated (looking up MAC address of the + device and determining IP target). Eventually, the request reaches the router + on the network where the server is connected. +- The last router diff --git a/zk/Internet_fundamentals.md b/zk/Internet_fundamentals.md index d8bd766..dab1a26 100644 --- a/zk/Internet_fundamentals.md +++ b/zk/Internet_fundamentals.md @@ -37,12 +37,14 @@ protocols. From the top: communication accross networks. It is responsible for identifying hosts on the inter-network by their addresses and routing data from network to network. -- The **Transport Layer** come back to this +- The [Transport Layer](Transport_Layer_of_Internet_Protocol.md) creates a + commmunication channel between two hosts using ports and sockets. -- The **Application Layer** is concerned with software that utilises information - received and sent over the internet, for instance web pages and emails. This - is the highest level of abstraction for which all the lower levels serve as - "plumbing". Examples of protocols operative at the Application Layer include - HTTP and SSH. +- The [Application Layer](Application_Layer_of_Internet_Protocol.md) concerned + with software that utilises information received and sent over the internet, + for instance web pages and emails. This is the highest level of abstraction + for which all the lower levels serve as "plumbing". Examples of protocols + operative at the Application Layer include HTTP and SSH. - ![Path of a network request accross the internet](../img/network-request-layers.png) +See: +[Example_scenario_internet_data_transfer](Example_scenario_internet_data_transfer.md)