diff --git a/.zk/notebook.db b/.zk/notebook.db index a77ae79..7edfd6b 100644 Binary files a/.zk/notebook.db and b/.zk/notebook.db differ 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)