Skip to Main Content
New applications based on cloud computing, such as data synchronization for large chain departmental stores and bank transaction records, require very high-speed data transport. Although a number of high-bandwidth networks have been built, existing transport protocols or their variants over such networks cannot fully exploit the network bandwidth. Our experiments show that the fixed-size application level buffer employed in the receiver side is a major cause of this deficiency. A buffer that is either too small or too large impairs the transfer performance. Due to the varied natures of network conditions and of real-time packet processing (i.e., consuming) speed at the receiver, it is important to ensure that the buffer size is dynamically adjusted according to the perceived execution situation during runtime. In this paper, we propose Rada, a dynamic receiving buffer adaptation scheme for high-speed data transfer. Rada employs an exponential moving average aided scheme to quantify the data arrival rate and consumption rate in the buffer. Based on these two rates, we develop a linear aggressive increase conservative decrease scheme to adjust the buffer size dynamically. Moreover, a weighted mean function is employed to make the adjustment adaptive to the available memory in the receiver. Theoretical analysis is provided to demonstrate the rationale and parameter bounds of Rada. The performance of Rada is also theoretically compared with potential alternatives. We implement Rada in a Linux platform and extensively evaluate its performance in a variety of scenarios. Experimental results conform to the theoretical results, and show that Rada outperforms the static buffer scheme in terms of throughput, memory footprint, and fairness.