Home
Knowledge Base
Credits
Site Map
 


What Services Does an Application Needs?

Many networks, including the Internet, provide more than one transport-layer protocol. When you develop an application, you must choose one of the available transport-layer protocols. How do you make this choice? You would study the services that are provided by the available transport-layer protocols, and you would pick the protocol that has the services that best match the needs of your application. What services might a network application need from a transport-layer protocol? We can broadly classify an application's service requirements along three dimensions: data loss, bandwidth, and timing.

Reliable Data Transfer: applications such as e-mail, instant messaging, file transfer, remote host access, Web document transfers, and financial applications require fully reliable data transfer; no data loss. A loss of file data or data in a financial transaction can have
devastating consequences. Other loss-tolerant applications , mostly multimedia applications such as real-time audio/video or stored audio/video, can tolerate some amount of data loss. Lost data might result in a small glitch in the played-out audio/video—not a crucial impairment. Effects of such loss on application quality and the amount of tolerable packet loss will depend 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. If an Internet application encodes at 32 kbps, then it must be able to the send data into the network and have data delivered to the receiving application at that same rate.
If this amount of bandwidth is not available, the application needs to encode at a different rate, or it should give up, since receiving half of the needed bandwidth is of no use to such a
band width-sensitive application. Current multimedia applications are bandwidth sensitive; however, future multimedia applications may use adaptive coding techniques to
encode at a rate that matches the currently available bandwidth.

While bandwidth-sensitive applications require a given amount of bandwidth, elastic applications can make use of as much or as little bandwidth as happens to be available. Electronic mail, file transfer, and Web transfers are all elastic applications. Of course the more bandwidth, the better, there's no such thing as too much bandwidth.

Timing: the final service requirement. Interactive real-time applications such as Internet
telephony, virtual environments, teleconferencing, and multiplayer games, require tight timing constraints on data delivery in order to be effective. Long delays in Internet
telephony tend to result in unnatural pauses in the conversation; in a multiplayer games or
virtual interactive environment, a long delay between taking an action and seeing the response from the environment makes the application feet less realistic. 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.