layer where applications create and communicate user data to other applications on the same or another host.
delivers the application-specific functionality that is required. there may be many different application programs in this layer.
receives raw data from the application in use and provides services such as file and message exchange to the application