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
Post a Comment