The Internet is well known for its unpredictable performance, people expect to experience different level of Internet service in different places and at different times. When users can choose from a number of sites providing the same service, which is often the case on current Internet, they generally have no idea which one is the best to choose. Network Awareness is one of the techniques to deal with these problems. It enables an application to change its behavior according to network performance, allowing it to achieve consistent performance over a diverse sets of networks and under a wide range of network conditions.
In this paper, we focus on an important category of network aware application - Compressed Data Transmission. This type of application has the ability to compress data before sending it out with the potential to reduce network transmission time and reduce the total application elapsed time. An example scenario in which Compressed Data Transmission can be useful is as follows. Suppose we are leaving for a conference by air. Just before boarding, we want to transfer a big file back to our office machine through a wireless LAN. But at the same time, another plane arrives, a lot of people get off. They start using all kinds of mobile communication devices to send and receive voice and digital messages, which saturates our wireless transmission channel. Under this condition, compression may be an important tool to help us in finishing our work without missing the flight.
Compression can reduce the transmission time by reducing the amount of data to be transferred. But it also increases the local processing time by introducing the compression overhead. Whether or not an application can benefit from data compression depends on the tradeoff between the reduction of network transmission time and the increase of local processing. In another way, we can think the whole procedure of data transmission as composed by two data flow pipes (Fig. 1). The first one is the data flow from local host to network interface. The rate of this flow is determined by the host processing capability. The other pipe is the data flow on the network. The rate of this pipe, that is, the data transmission rate on the network, is determined by the available bandwidth. The performance of the two pipes together determines the performance of the application. For example, in Fig. 1(a), the available bandwidth is large enough, and the network pipe could transmit data faster than the host pipe. Under this condition, the performance of the application is largely determined by the host pipe rate. Similarly, in Fig. 1(b), the application performance is determined by network pipe rate. Determining which one is the bottleneck during the execution, need some techniques to calculate the concrete network transmission time and local computation time.
In this paper, we describe our methods to detect and predict network performance and compression overhead. A simple model using these techniques to prediction the application performance is presented. Experiment is carried out to evaluate the performance of the simple model. We will see that, although in most cases the simple model could make the right judgment for application, the difference between predicted values and measured values is significant sometimes. Analysis of the prediction error tells us that the overlap between different types of processing modules must be considered to make a correct judgment. Based on these considerations, we propose an improved model, which explicitly considers the effect of different performance bottleneck.
This paper is organized as follows. Section 2 abstracts Compressed Data Transmission into a simple application prototype, and discusses the detailed techniques to predict compression performance and network performance. In Section 3, experimental data and analysis are presented to show the application performance. Section 4 is an extended discussion of the experimental data, and the modeling of the overlap between network data transmission and local processing, which can improve the prediction performance. Section 5, 6 and 7 talks about the related work, conclusion and future works, respectively.