Abstract:
In a peer-to-peer asymmetric communication environment, an adaptive upload Data Rate Control element—called Adaptive-DRC—is used to detect increase in data return-trip time (RTT) caused by the congestion associated with the uploading of data in an uplink which in turn impacts on downloading data on an associated downlink, namely a downlink sharing resources with the uplink. Using Adaptive-DRC, the congestion is detected and thereupon adjustments to are made to allow continued communication. Adaptive-DRC comprises: (i) RTT estimation; (ii) detection of the onset of congestion, herein pre-congestion detection; and (iii) adaptation of the upload data rate limit. Two specific embodiments are contemplated, namely two versions of Adaptive-DRC wherein the difference lies in the upload data rate limit adaptation technique.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
       [0001]    The present application claims benefit under 35 USC 119(e) of U.S. provisional Application No. 61/333,985, filed on May 12, 2010, entitled “Adaptive Scheduling Of Data Transfer In P2P Applications Over Asymmetric Networks,” the content of which is incorporated herein by reference in its entirety. 
     
    
     STATEMENT AS TO RIGHTS TO INVENTIONS MADE UNDER FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
       [0002]    Not Applicable 
       REFERENCE TO A “SEQUENCE LISTING,” A TABLE, OR A COMPUTER PROGRAM LISTING APPENDIX SUBMITTED ON A COMPACT DISK 
       [0003]    Not Applicable 
       BACKGROUND OF THE INVENTION 
       [0004]    This invention relates to peer-to-peer applications using asymmetric communication networks. 
         [0005]    The success of peer-to-peer (P2P) applications hinges on users&#39; willingness to contribute unused storage and network bandwidth to serve other peers. While broadband residential networks have become commonplace in many countries, many of them offer broad bandwidth only in the downlink, i.e., from ISP to user host. By contrast, the uplink bandwidth is typically significantly lower, ranging from tens to hundreds of Kbps as compared to a downlink&#39;s multi-Mbps bandwidth. This is particularly common in residential networks built on ADSL and xDSL technologies [1]. (Reference numerals refer to documents listed below.) 
         [0006]    While this type of bandwidth-asymmetric network does not preclude the use of P2P applications, it nonetheless creates a new problem for such applications when the data are transported over TCP. Specifically, in P2P applications such as BitTorrent (from BitTorrent, Inc. of San Francisco, Calif.), many users have observed that if the upload data rate is too high, e.g., close to the uplink bandwidth limit, then the achievable download data rate will be severely degraded. 
         [0007]    To illustrate this problem an experiment as depicted in  FIG. 1  (without the inventive element shown therein) was conducted and the achievable download data rate versus upload data rate for a P2P software called Azureus [2] was plotted. (Azureus is an implementation of BitTorrent.) This software allows the user to configure the maximum upload data rate and through this feature, impact on the download data rate is seen in  FIG. 2 , where download data rate was drastically reduced from around 900 Kbps to less than 200 Kbps when the upload data rate limit was increased beyond 120 Kbps (close to the 125 Kbps uplink bandwidth limit). 
         [0008]    To remedy this problem, many P2P applications (e.g., Azureus, utorrent, BitTorrent, etc.) allow the users to manually configure the upload data rate limit so that a reasonable upload data rate can be used (or else P2P will not work) while keeping the download data rate to fully-utilize the broadband network downlink. Clearly this ad hoc feature is not very user-friendly nor can it adapt to the underlying network properties automatically. A more practical approach is needed. 
       Literature Review 
       [0009]    Bandwidth-asymmetric broadband networks have existed for decades. Therefore numerous researchers had developed solutions to tackle performance problems in such networks. More recent works tackled the problem in the context of having competing traffic in the uplink. Three categories are considered, namely, network layer approaches, transport layer approaches, and application layer approaches. 
       Network Layer Approaches 
       [0010]    An effective network layer approach is to implement priority queuing in the network device connected to the uplink. The principle is to schedule packets from the receiver based on their packet type and gives higher priority to ACK packets [3, 4, 5]. Thus even under heavy uplink data traffic ACK packets will still not be affected. 
       Transport Layer Approaches 
       [0011]    Transport layer approaches rely on modification to the transport protocol of the sender, the receiver, or both. The principle is to enable the sender transport to distinguish downlink congestion from uplink congestion, and only react to the former during congestion control [6, 7, 8]. Specifically, since TCP uses RTT (return trip time) to provide congestion control, both uplink congestion and downlink congestion will affect the sending rate which is undesirable. If the transport can separate RTT into FTT (forward trip time) and BTT (backward trip time), then it will be able to react to downlink congestion only and become immune to uplink congestion. This can be accomplished using the TCP timestamp extension described in RFC1323 [9]. 
       Application Layer Approaches 
       [0012]    An application layer approach refers to those solutions which can be implemented entirely within an application without modification to the lower layers such as the transport protocol, the network protocol and network devices. Only one known attempt has been found, namely, in the form of an implementation called Auto-Speed, as in the Azureus [2] P2P client software. The Auto-Speed module in Azureus was not well-documented. However, it is configured so as to control upload data rate limit by monitoring the RTT to a Google host. An adaptive algorithm is then used to increase and decrease the limit based on variations in the continuously measured RTT. 
         [0013]    It has been established that TCP throughput performance primarily depends on the path RTT and the packet loss rate [1]-[2]. Experiments measured the following at the ADSL user: download throughput, upload throughput, RTT, and packet loss. The results are summarized in  FIG. 3 . The results clearly show that RTT  32  increases consistently with higher upload throughput as congestion built up. By contrast, the packet loss rate  34  remains at a low level even at high upload data rates. Contrasting this with the download throughput in  FIG. 2  reveals that the download throughput degradation beginning at the upload data rate of 640 Kbps is in fact primarily due to the increased RTT  32 . The implication of this observation is RTT can be used as an indicator of uplink congestion so that the system can react by controlling the upload data rate limit to prevent congestion from occurring. 
         [0014]    Further experiments measured the RTT distributions when the uplink data rate limit was set to 400 Kbps and 1000 Kbps, respectively. RTT distribution histograms are shown in FIG.  4 . With the low upload data rate limit of 400 Kbps, the RTT distribution  36  has a small mean value of 204 ms and a narrow distribution (STD=13 ms). It is also one-sided as the minimum RTT is bounded from below by the propagation delay. 
         [0015]    By contrast, at the high upload data rate limit of 1000 Kbps the RTT distribution  38  has a significantly larger mean value (506 ms), and the standard deviation is far larger as well (65 ms). Comparing the two distributions suggests that it is possible to detect and distinguish them so that the application can automatically adjust the upload data rate limit to prevent congestion in the uplink. 
       REFERENCES 
       [0016]    The following publications provide background for the present invention, as noted above and hereinafter:
   [1] “ADSL overview”, [Online]. Available: http://www.wowarea.com/dyn/vge.php/g — 1/k — 1/o — 0 [Accessed: Apr. 25, 2009]   [2] “Azureus FAQ”, May, 2008. [Online]. Available: http://wiki.vuze.com/index.php/Azureus_FAQ#Azureus_FAQ — 0.28Frequently_Asked_Questions0.29. [Accessed Apr. 25, 2009]   [3] H. Balakrishnan, V. N. Padmanabhan and R. H. Katz, “The effects of asymmetry on TCP performance,” in  Proceedings of the  3 rd annual ACM/IEEE international conference on Mobile computing and networking , p 77-89, September 1997.   [4] F. Louati, C. Barakat, and W. Dabbous, “Handling Two-Way TCP Traffic in Asymmetric Networks,” HSNMC 2004, LNCS 3079, pp. 233-243, September 2004.   [5] W. Al-Khatib and K. Gunavathi, “A New Approach to Improve TCP Performance over Asymmetric Networks,”  Electronics and Electrical Engineering , No. 7(71), p. 13-18, 2006.   [6] Elloumi, H. Afifi, and M. Hamdi, “Improving Congestion Avoidance Algorithms for Asymmetric Networks,” in  Proceedings of ICC &#39; 97, Montreal, 1997, Vol. 3, pp. 1417-1421.   [7] H. Afifi, O. Elloumi and G. Rubino, “A Dynamic Delayed Acknowledgement Mechanism to Improve TCP Performance for Asymmetric Links,” in  Proceedings of the Third IEEE Symposium on Computers and Communications,  1998, pp. 188-192.   [8] C. Fu, L. C. Chung and S. C. Liew, “Performance Degradation of TCP Vegas in Asymmetric Networks and Its Remedies,” in  Proceedings of the IEEE International Conference on Communications,  2003, Vol. 7, pp. 42-44.   [9] V. Jacobson, R. Braden, D. Borman, “TCP Extensions for High Performance,”  Request for Comments  1323, May 1992.   [10] M. Carson and D. Santay, “NIST Net—A Linux-based Network Emulation Tool”,  Computer Communication Review , June 2003.   [11] M. Mathis, J. Semke, J. Mandavi, T. Ott. “The macroscopic behavior of the TCP Congestion Avoidance algorithm,”  Computer Communications Review , vol. 27, no. 3, p 67-82, July 1997.   [12] J. Padhye, V. Firoiu, D. Towsley, J. Kurose. “Modeling TCP throughput: a simple model and its empirical validation,” in  Proceedings of the ACM SIGCOMM &#39; 98  conference on Applications, technologies, architectures, and protocols for computer communications , p 303-314, September 1998.   [13] Mendenhall, R. Beaver, B. Beaver,  A Brief Introduction to Probability and Statistics , Wadsworth Group, 2002.   [14] “ADSL Broadband Packages”. [Online]. Available: http://www.promotion.hinetnet/adsl_hot — 03.htm, [Accessed, Apr. 25, 2009]   [15] U. Lamping, R. Sharpe, and E. Warnicke, “Wireshark User&#39;s Guide”. [Online]. Available: http://www.wireshark.org/docs/. [Accessed Apr. 25, 2009].   
 
       SUMMARY OF THE INVENTION 
       [0032]    According to the invention, in a peer-to-peer asymmetric communication environment, an adaptive upload Data Rate Control element—called Adaptive-DRC—is used to detect increase in data return-trip time (RTT) caused by the congestion associated with the uploading of data in an uplink communication apparatus which in turn impacts on downloading data via an associated downlink communication apparatus, namely a downlink communication apparatus sharing resources with the uplink communication apparatus. Using Adaptive-DRC, the congestion is detected and thereupon adjustments to are made to allow continued communication. Adaptive-DRC operates according to an algorithm that comprises: (i) RTT estimation; (ii) detection of the onset of congestion, herein pre-congestion detection; and (iii) adaptation of the upload data rate limit. Two specific embodiments are contemplated, namely two versions of Adaptive-DRC wherein the difference lies in the upload data rate limit adaptation technique. 
         [0033]    The Adaptive-DRC algorithms, while operative to change device functions, are intended for use at the application layer and thus can be readily deployed without the need to structurally modify network devices (as in network layer approaches) or operating systems (as in transport layer approaches). 
         [0034]    The invention will be better understood by reference to the following detailed description in connection with the accompanying drawings 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0035]      FIG. 1  is a block diagram of a bandwidth-asymmetric network in which the invention can be embedded. 
           [0036]      FIG. 2  is a graph showing impact of upload data rate on download data rate in an asymmetric network of  FIG. 1 . 
           [0037]      FIG. 3  is a graph showing results of experimental measurements at an ADSL user of download throughput, upload throughput, RTT, and packet loss. 
           [0038]      FIG. 4  is a histogram showing experimental measurements of RTT distributions when uplink data rate limit was set to 400 Kbps and 1000 Kbps, respectively. 
           [0039]      FIG. 5  is a graph illustrating different downlink bandwidth utilizations. 
           [0040]      FIG. 6  is a graph illustrating different uplink bandwidth utilizations. 
           [0041]      FIG. 7  is a flow chart of an automatic process of a system according to the invention. 
           [0042]      FIG. 8  is a flow chart for a first method for adjusting upload data rate limit. 
           [0043]      FIG. 9  is a flow chart for a second method for adjusting upload data rate limit. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0044]      FIG. 1  is an example of a bandwidth asymmetric network  10  with a plurality of Internet peers  12 ,  14 ,  16 , including a peer ADSL user device  18  having been adapted according to the invention to employ an adaptive data rate control element  20 . The peer ADSL user  18  as well as the other peer elements  12 ,  14 ,  16  may be home computers, mobile devices, such as smart phones, laptop and notebook computers, and network-enabled keyboardless reading devices. In this example, the user device  18  is connected via an adaptive DSL link device through an adaptive DSL router  22  which communicates via shared bandwidth link comprising an uplink communication apparatus  24  and a downlink communication apparatus  26  to an Internet Service Provider (ISP)  28  to which the other peers  12 ,  14 , and  16  are also linked. The adaptive DRC application (“app”)  20  is the element incorporating the functions according to the invention operating on each local peer. The ISP encompasses all hardware and software to communicate with the peers, where some peers, such as peer ADSL user device  18  interface through an asymmetric router such as adaptive DSL router  22 . While an ADSL network is a primary example of an asymmetric network, it is to be understood that the invention is not limited to ADSL environments. It is understood that the invention may operate in any network link environment, wired or wireless, that exhibits bandwidth asymmetry between the uplink side and the downlinkside. In particular this invention applies to the cases where the uplink side has less bandwidth than the downlink side. Some examples include but are not limited to: an ADSL modem link, a cable modem link, mobile networks such as 3G, HSPA, LTE, etc., and so on. The invention is also applicable to network links that have policy-based bandwidth asymmetry. In these networks, although the physical network does not exhibit bandwidth asymmetry, the network operator explicitly implements traffic throttling so that the resultant usable uplink bandwidth is reduced. 
         [0045]      FIG. 2  is a graph that illustrates the so-called uplink bottleneck in a bandwidth-asymmetric network, namely the impact of upload rate on download rate. Download rates in this example drop dramatically after upload rates exceed about 60% of the network capacity, as for example at Point  30  upon exceeding a download rate of 600 KB/s of a bidirectional 1000 Kbs capacity system. It has been determined that by monitoring the RTT, the onset of such uplink congestion can be detected and a constraint on the upload data rate can be imposed to prevent congestion from occurring. 
       RTT Estimation 
       [0046]    The first hurdle in RTT estimation is its need to be performed at the application layer. Although the TCP transport already has an estimation of RTT, it may not be possible for the application at the application layer to directly access it without modification of the underlying systems, which is undesirable and often not possible. 
         [0047]    In case such access is not possible, the application of interest must implement its own RTT estimation. There are many ways to accomplish this and for simplicity in this embodiment of the implementation, the operating system&#39;s ping utility may be invoked to measure RTT to a selected external host. 
         [0048]    Next a suitable external host device is needed to perform the measurement. This is not trivial in practice for two reasons. First, the external host device must not be located behind a firewall, such as a NAT firewall (which is a router or gateway in hardware or software form that makes the bridge between a local network and the Internet) as most such hosts ignore ping requests for security reasons. This can be challenging in a P2P network because it is common for many of the user devices to be located behind such NAT firewalls. Second, the external host device must be configured to respond to ping requests. Again due to security reasons most personal firewalls, many already built-in as part of the operating system, running in the user device&#39;s host block and ignore ping requests. This problem can also be solved by implementing RTT measurement within the application&#39;s own protocols. 
         [0049]    Adopting the ping command as the RTT measurement tool and implementing RTT measurement into an application protocol frees the application layer from dependency on RTT measurements at the transport layer. The choice of external host system is that of a reliable domain that consistently responds to ping requests. A suitable host system has a fixed IP address resolved from the domain name “google.com”, for example. Other external hosts may also be suitable. 
         [0050]    It has been determined that download throughput loss is primarily due to the increased queuing delay in the uplink rather than due to packet losses. Thus by monitoring the RTT, a P2P application can detect the onset of uplink congestion and react by cutting down the upload data rate limit to prevent congestion from occurring. 
         [0051]    Some P2P systems, such as Azureus, do not allow the Auto-Speed implementation to adapt to different network configurations and in many cases, underutilize the uplink bandwidth. This is undesirable, since the performance of a P2P system hinges on the amount of bandwidth its peers can contribute. 
         [0052]    The inventive algorithm employed in the application of interest strikes a suitable balance between uplink utilization and downlink throughput performance. The following describes some of the features and elements of the algorithm. 
         [0053]      FIG. 7  is a flow chart of the process according to the invention. This process is conventional instantiated in a computer program application having modules for executing each of the subprocesses. One of skill in the art can implement such modules by reference to the following description. At the outset is pre-congestion detection. Pre-congestion detection is divided into two phases: initialization and monitoring. During initialization when the P2P application is first started, the application only allows data to be downloaded from external peers so that the uplink will not be congested by upload traffic (Step A). The application then calibrates the network by conducting RTT measurements to compute the mean RTT and its standard deviation when the uplink is in non-congested state (Step B). These statistics then serve as the baseline for comparisons made in the monitoring phase. 
         [0054]    In the monitoring phase the application carries out live RTT measurements periodically (Step C) and compares the newly measured RTT against the baseline values (Step D) to determine if the uplink is developing the onset of congestion, in which case the measured RTT is expected to increase. To compensate for the inherent variations in RTT measurements, a threshold above the mean RTT is established to serve as the detection criterion (Step E). The threshold is determined as follows: 
         [0055]    Let d be the newly measured RTT. Then according to the Chebychev&#39;s inequality [13]: 
         [0000]    
       
         
           
             
               
                 
                   
                     Pr 
                      
                     
                       ( 
                       
                         
                            
                           
                             X 
                             - 
                             μ 
                           
                            
                         
                         ≥ 
                         
                           k 
                            
                           
                               
                           
                            
                           σ 
                         
                       
                       ) 
                     
                   
                   ≤ 
                   
                     1 
                     
                       k 
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where μ and σ are the mean and standard deviation of the RTT respectively, which can be estimated from the measurements during the initialization phase. By choosing an appropriate value for k, the probability of false positive can be controlled to within 1/k 2 , i.e., ≦1% for k=10. 
       Upload Data Rate Limit Adaptation 
       [0056]    Upon identification of the onset of data congestion (Step F), the application adjusts the upload data rate limit according to the result from pre-congestion detection. The principle is to increase the upload data rate limit when the uplink is not congested (Step G) and to decrease the upload data rate limit at the onset of detectable congestion (Step H). 
         [0057]    According to the invention, there are two versions of an adaptive data rate limit algorithm. In  FIG. 8 , the first is based on Additive-Increase, Multiplicative-Decrease (AIMD) as in TCP protocol&#39;s congestion control algorithm. In  FIG. 9 , the second is based on Multiplicative-Increase Multiplicative-Decrease (MIMD). 
         [0058]    Specifically, after each periodic RTT measurement d conducted in the monitoring phase, the upload data rate limit is adjusted according to: 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                     new 
                   
                    
                   
                     { 
                     
                       
                         
                           
                             
                               U 
                               / 
                               2 
                             
                             , 
                           
                         
                         
                           
                             
                               if 
                                
                               
                                 ( 
                                 
                                   d 
                                   - 
                                   μ 
                                 
                                 ) 
                               
                             
                             &gt; 
                             
                               k 
                                
                               
                                   
                               
                                
                               σ 
                             
                           
                         
                       
                       
                         
                           
                             
                               U 
                               + 
                               1 
                             
                             , 
                           
                         
                         
                           
                             
                               if 
                                
                               
                                 ( 
                                 
                                   d 
                                   - 
                                   μ 
                                 
                                 ) 
                               
                             
                             &lt;= 
                             
                               k 
                                
                               
                                   
                               
                                
                               σ 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0000]    (as in Steps J and K) for the AIMD version ( FIG. 8 ) and 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                     new 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               U 
                               / 
                               2 
                             
                             , 
                           
                         
                         
                           
                             
                               if 
                                
                               
                                 ( 
                                 
                                   d 
                                   - 
                                   μ 
                                 
                                 ) 
                               
                             
                             &gt; 
                             
                               k 
                                
                               
                                   
                               
                                
                               σ 
                             
                           
                         
                       
                       
                         
                           
                             
                               U 
                               × 
                               2 
                             
                             , 
                           
                         
                         
                           
                             
                               if 
                                
                               
                                 ( 
                                 
                                   d 
                                   - 
                                   μ 
                                 
                                 ) 
                               
                             
                             &lt;= 
                             
                               k 
                                
                               
                                   
                               
                                
                               σ 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    (as in Steps L and M) for the MIMD case ( FIG. 9 ). In both cases U new  is the new upload data rate limit and U is the current upload throughput or upload data rate as measured internally, d is the live return trip time, μ is the mean return trip time, and σ is deviation. In a particular embodiment, the running average of the upload rate is over the past 3 seconds. 
       Experimental Verification and Performance Evaluation of Adaptive-DRC Algorithms 
       [0059]    As evidence of the effectiveness of the Adaptive-DRC algorithms, the performance of was evaluated in the context of BitTorrent using Azureus Version 3.0 as the implementation. Experiments were conducted in a controlled network as depicted in  FIG. 1  above. Experiments were for eight-asymmetric network configurations listed in Table 1, which represent the commonly deployed ADSL broadband services in the industry, as cited above in [14]. 
         [0000]    
       
         
               
             
               
               
               
               
               
             
               
               
               
               
               
               
             
           
               
                 TABLE I 
               
             
             
               
                   
               
               
                 Asymmetric network configurations 
               
             
          
           
               
                   
                 Network 
                   
                 Downlink 
                 Uplink 
               
               
                   
                 Configurations 
                   
                 Bandwidth 
                 Bandwidth 
               
               
                   
                   
               
             
          
           
               
                   
                 1 
                 256 
                 Kbps 
                 64 
                 Kbps 
               
               
                   
                 2 
                 1 
                 Mbps 
                 64 
                 Kbps 
               
               
                   
                 3 
                 2 
                 Mbps 
                 256 
                 Kbps 
               
               
                   
                 4 
                 2 
                 Mbps 
                 512 
                 Kbps 
               
               
                   
                 5 
                 4 
                 Mbps 
                 1 
                 Mbps 
               
               
                   
                 6 
                 8 
                 Mbps 
                 640 
                 Kbps 
               
               
                   
                 7 
                 8 
                 Mbps 
                 1 
                 Mbps 
               
               
                   
                 8 
                 12 
                 Mbps 
                 1 
                 Mbps 
               
               
                   
                   
               
             
          
         
       
     
         [0060]    All hosts ran the Windows XP operating system with default installation settings. The host machines were verified to be able to saturate the downlink and uplink so that the hosts will not be the bottleneck in the experiments. The experiments were conducted using the NISTnet (see [10] above) emulator to emulate bandwidth asymmetry in the access network. All peers in the system ran the Azureus P2P application. The system was set up so that the peer behind the access network—ADSL user, shared files through BT protocol with the external peer in the external network. For the experiment there was no limit on the upload data rate of the external peer so that the download throughput was not limited by the external peer. During the experiment, the upload limit of ADSL use was gradually increased every 10 seconds until it reached the uplink capacity. There was no other competing traffic going through the link. 
         [0061]    The network traffic was captured using Wireshark (see [15] above) and the download and upload throughputs were calculated from the packet trace files. Referring to  FIG. 5 , Each experiment run lasted for 5 minutes and a separate set of experiments was conducted for the following four scenarios on an ADSL user host: (i) no upload limit  40 ; (ii) Auto-Speed; (iii) Adaptive-DRC: AIMD; and (iv) Adaptive-DRC: MIMD 
         [0062]    In scenario (i) there was no limit on the upload data rate and TCP control set the data rate via its built-in congestion-control algorithm. In scenario (ii) an Auto-Speed feature in Azureus was enabled to control the upload data rate limit. In scenario (iii) and (iv), the Adaptive-DRC AIMD version and MIMD version of the invention were respectively implemented. 
         [0063]    Link utilization is defined to be the ratio between actual throughput achieved and the link bandwidth available. For example, a download throughput of 500 Kbps over a downlink of 1 Mbps will give a link utilization of 500K/1M=0.5. 
         [0064]    Comparing the link utilization for the downlink in  FIG. 5  for the eight network configurations listed in Table 1 shows that without any upload limit, the download throughput suffered significantly as expected. The extent of degradation is correlated to the downlink-to-uplink bandwidth ratio. For example, the poorer performing configures (network configurations 2, 3, 6, 7, 8) have larger downlink-to-uplink bandwidth ratios (with ratios of: 16, 8, 13, 8, 12) than the better performing ones (at a ratio of four for network configurations 1, 4, and 5). This can be explained by the observation that the amount of TCP ACKs generated on uplink is proportional to the download throughput. Thus smaller downlink-to-uplink bandwidth ratio will have relatively more uplink bandwidth for the upstream TCP ACK traffic. 
         [0065]    Second, the performance of Auto-Speed is not consistent across the eight-network configurations. It performed best in the higher bandwidth configurations (4-8) but in configurations 1 and 2 it had nearly the lowest downlink utilization of all four scenarios. 
         [0066]    Moreover, if considering also the uplink utilization in  FIG. 6  then the reason for the observed results can be seen, namely, the Auto-Speed algorithm turned out to be too aggressive in the uplink for network configurations 1 and 2 but too conservative for network configurations 4-8, resulting in uplink utilization lower than 0.3. 
         [0067]    The performance of the Adaptive-DRC algorithm was confirmed to be substantially more consistent by comparison. The AIMD version achieved downlink utilization above 0.8 and uplink utilization varied between 0.28 and 0.5. The MIMD version achieved the downlink and uplink utilizations within 0.58 to 0.8, and 0.5 to 0.67 across the eight-network configurations. Generally speaking AIMD is more conservative in utilizing the uplink (thus leading to higher downlink throughput) while MIMD can achieve higher uplink utilization (with slightly lower downlink throughput). More importantly, both Adaptive-DRC algorithms perform consistently across all eight-network configurations and thus can reliably strike a balance between uplink and downlink utilizations without the need for human intervention. 
       VI. CONCLUSION 
       [0068]    The performance of P2P applications in asymmetric network environments is severely constrained without proper control of upload data rate, since the download throughput will be adversely affected due to significantly increased queuing delay in the uplink carrying uploading data. According to the invention, this problem is resolved by a method employing adaptive-Data Rate Control (DRC) algorithms implemented entirely within the application layer so that the method can be readily incorporated into existing P2P applications without need to modify operating systems or network routers. 
         [0069]    The invention has been explained with reference to specific embodiments. Other embodiments will be evident to those of ordinary skill in the relevant art. It is therefore intended that the invention not be limited, except and indicated by the appended claims.