Week 2 – CST– 311 Intro to Computer Networks

Module 2 – Application Layer

This week we learned about the principles of Network applications. Network application development requires writing programs that run on different end systems and communicate with each other over the network. A good example of this is your web browser program which runs on your computer and the Web server program that runs on the Web server host. Something I found very interesting is that network application developers do not need to write software for the network core devices like routers or link-layer switches because they do not function at the application layer.

The two main application architectures for network applications are the client-server and the peer-to-peer (P2P) architectures. In a client-server architecture, the server host is always on and ready to receive requests from many client hosts. In a P2P architecture, the application uses direct communication between pairs of hosts called peers and there is no reliance on servers.

We also learned that a program running within an end system is called a process. Processes within different end systems communicate with each other by exchanging messages across a computer network. Both in Client-server and P2P architectures, the process that initiates the communication is a client and the process that waits to be contacted is the server.

The software interface used by processes to send and receive messages is called a socket. A socket is an interface between the application layer and the transport layer and is also called the Application Programming Interface because it is the programming interface with which network applications are built.

Lastly, we learned more about the two transport protocols offered by the Internet, Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). TCP provides a connection-oriented service by creating a TCP connection that the processes can use to send or receive messages at the same time. TCP also provides a reliable data transfer service to the invoking application by delivering all data sent without error and in the proper order. UDP, on the other hand, is an unreliable data transfer service that does not guarantee the messages will reach the receiving process or that they will be received in the proper order.

This week’s coding assignment involves creating two client-server programs over UDP. I am looking forward to learning a lot more about UDP and client-server programs with this assignment.

 


Comments

Popular posts from this blog