Application layer protocols enable humans to interface with the underlying data network. When we open a web browser or an instant message window, an application is started, and the program is put into the device's memory where it is executed. Each executing program that is loaded on a device is referred to as a process.
Within the application layer, there are two forms of software programs or processes that provide access to the network: network-aware applications and application layer services. Click the buttons in the figure for more information about processes.
Network-Aware Applications
End-user applications are the software programs used by people to communicate over the network. Some end-user applications are network-aware, meaning that they implement the application layer protocols and are able to communicate directly with the lower layers of the protocol stack. Email clients and web browsers are examples of these types of applications.
Application Layer Services
Other programs may need the assistance of application layer services to use network resources, like file transfer or network print spooling. Though transparent to the user, these services are programs that interface with the network and prepare the data for transfer. Different types of data - whether it is text, graphics, or video - require different network services to ensure that the data is properly prepared for processing by the functions occurring at the lower layers of the OSI model.