Application-level optimization of end-to-end data transfer throughput