  MPTCP is a new transport protocol that enables mobile devices to use multiple
physical paths simultaneously through several network interfaces, such as WiFi
and Cellular. However, wireless path capacities change frequently in the mobile
environments, causing challenges for path selection. For example, WiFi
associated paths often become poor as devices walk away, since WiFi has
intermittent connectivity caused by the short signal coverage and stochastic
interference. MPTCP's native decision based on hysteretic TCP-layer estimation
will miss the real switching point of wireless quality, which may cumulate
packets on the broken path and causes serious packets reinjection. Through
analyzing a unique dataset in the wild, we quantitatively study the impact of
MAC-layer factors on the aggregated performance of MPTCP. We then propose a
decision tree approach for cross-layer path selection that decides which path
to carry the incoming packets dynamically according to the prior learned
schemes. A prototype of the path selection system named SmartPS, which
proactively probes the wireless environments, is realized and deployed in Linux
and Android. Evaluation results demonstrate that our SmartPS can efficiently
utilize the faster path, with goodput improvements of up to 29%.
