  Efficient data transfers over high-speed, long-distance shared networks
require proper utilization of available network bandwidth. Using parallel TCP
streams enables an application to utilize network parallelism and can improve
transfer throughput; however, finding the optimum number of parallel TCP
streams is challenging due to nondeterministic background traffic sharing the
same network. Additionally, the non-stationary, multi-objectiveness, and
partially-observable nature of network signals in the host systems add extra
complexity in finding the current network condition. In this work, we present a
novel approach to finding the optimum number of parallel TCP streams using deep
reinforcement learning (RL). We devise a learning-based algorithm capable of
generalizing different network conditions and utilizing the available network
bandwidth intelligently. Contrary to rule-based heuristics that do not
generalize well in unknown network scenarios, our RL-based solution can
dynamically discover and adapt the parallel TCP stream numbers to maximize the
network bandwidth utilization without congesting the network and ensure
fairness among contending transfers. We extensively evaluated our RL-based
algorithm's performance, comparing it with several state-of-the-art online
optimization algorithms. The results show that our RL-based algorithm can find
near-optimal solutions 40% faster while achieving up to 15% higher throughput.
We also show that, unlike a greedy algorithm, our devised RL-based algorithm
can avoid network congestion and fairly share the available network resources
among contending transfers.
