Application Layer

2.1 Principles of Network Applications

Home
Introduction
2.1 Principles of Network Applications
2.1.1 Network Application Architectures
2.1.2 Processes Communcating
2.1.3 Application-Layer Protocols
2.1.4 What Services Does an Application Need?
2.1.5 Services Provided by the Internet Transport Protocols
2.2 The Web and HTTP
2.2.1Overview of HTTP
2.2.2 Nonpersistent and Persistent Connections
2.2.3 HTTP Message Format
2.2.4 User-Server Ineraction: Cookies
2.2.5 HTTP Content
2.2.6 Web Caching
2.2.7 The Conditional GET
2.3 File Transfer: FTP
2.3.1 FTP Commands and Replies
2.4 Electronic Mail in the Internet
2.4.1 STMP
2.4.2 Comparison with HTTP
2.4.3 Mail Message Formats and MIME
2.4.4 Mail Access Protocols
2.5 DNS--The Internet's Directory Service
2.5.1 Services Provided by DNS
2.5.2 Overview of How DNS Works
2.5.3 DNS Records and Messages
2.6 P2P File Sharing
2.7 Socket Programming with TCP
2.7.1 Socket Programming with TCP
2.7.2 An Example Client/Server Application in Java
2.8 Socket Programming with UDP

2.1.4  What Services Does an Application Need?

Recall that a socket is the interface between the application process and the transport-layer protocol.  The application at the sending side pushes messages through the door.  At the other side of the door, the transport-layer protocol has the responsibility of getting the message to the door at the receiving process.
 
Reliable Data Transfer
Some applications require fully reliable data transfer, that is, no data loss.  In particular, a loss of file data, or data in a financial transaction, can have devastating consequences.  Other loss-tolerant applications, most notably multimedia applications such as real-time audio/video or stored audio/video, can tolerate some amount of data loss.  In these multimedia applications, lost data might result in a small glitch in the played-out audio.video--not a crucial impairment.  The effects of such loss on appliaction quality, and actual amount of tolerable packet loss, will depend strongly on the application and the coding scheme used.
 
Bandwidth
Some applications must be able to transmit data at a certain rate in order to be effective.  While bandwith-sensitive applications require a given amoount of bankwidth, elastic applications can make use of as much or as little bandwidth as happens to be available. 
 
Timing
The final service requirement is that of timing.  Interactive real-time applications require thigt timing constraints on data dilevery in order to be effective.  For non-real-time applications, lower delay is always preferable to higher delay, but no tight constraint is placed on the end-to-end delays.