The purpose of the Transport layer is to provide reliable connections between networked applications so those applications can send and receive streams of data. For an application, this is as simple as asking the Transport layer to make a connection to an application running on a remote host. We call the application that initiates the connection on the local computer the “client” and the application that responds to the connection request the “server”.
We call the combination of the two networked applications at the ends of the connection a “client/server” application because the two pieces of the application must work together.
A lot of engineering has gone into the lower three layers of our architecture to make it easy to open a connection to a remote computer and then send and receive data over that connection.