  The Internet is inherently a multipath network---for an underlying network
with only a single path connecting various nodes would have been debilitatingly
fragile. Unfortunately, traditional Internet technologies have been designed
around the restrictive assumption of a single working path between a source and
a destination. The lack of native multipath support constrains network
performance even as the underlying network is richly connected and has
redundant multiple paths. Computer networks can exploit the power of
multiplicity to unlock the inherent redundancy of the Internet. This opens up a
new vista of opportunities promising increased throughput (through concurrent
usage of multiple paths) and increased reliability and fault-tolerance (through
the use of multiple paths in backup/ redundant arrangements). There are many
emerging trends in networking that signify that the Internet's future will be
unmistakably multipath, including the use of multipath technology in datacenter
computing; multi-interface, multi-channel, and multi-antenna trends in
wireless; ubiquity of mobile devices that are multi-homed with heterogeneous
access networks; and the development and standardization of multipath transport
protocols such as MP-TCP.
  The aim of this paper is to provide a comprehensive survey of the literature
on network-layer multipath solutions. We will present a detailed investigation
of two important design issues, namely the control plane problem of how to
compute and select the routes, and the data plane problem of how to split the
flow on the computed paths. The main contribution of this paper is a systematic
articulation of the main design issues in network-layer multipath routing along
with a broad-ranging survey of the vast literature on network-layer
multipathing. We also highlight open issues and identify directions for future
work.
