Week 34: Application Layer

This week I learned about the Application layer. There are two main network application architectures which are client-server and peer-to-peer (P2P) architecture. With client-server architecture, there is a server that handles service requests from many other hosts called clients. On the other hand P2P architecture, there is minimal to no reliance on dedicated servers in data centers, rather the application exploits direct communication between pairs of connected hosts or peers.  Some examples of the application-layer protocol are SMTP, Telnet, HTTP,  and FTP. The SMTP protocol is used for email, telnet is used for remote terminal access, HTTP is used for the web and multimedia stream, and FTP is used for file transfer.

HTTP is a stateless protocol but can utilize both non-persistent and persistent connections. With non-persistent HTTP the connection is terminated immediately and will take 2 RTT + transmission time. With a persistent connection, we are able to send multiple web pages on the server over the same single TCP connection. and download images.

The domain name system(DNS) is a distributed database implemented in DNS servers and an application-layer protocol that allows hosts to query the database. DNS servers often are UNIX machines running the Berkeley internet name domain software(BIND). Furthermore, DNS protocol runs over UDP and used port 53.