  State-of-the-art Internet traffic engineering uses source-based explicit
routing via MPLS or Segment Routing. Though widely adopted in practice, source
routing can face certain inefficiencies and operational issues, caused by its
use of bandwidth reservations.
  In this work, we make the case for Hop-by-Hop (HBH) Traffic Engineering:
splitting traffic among nexthops at every router, rather than splitting traffic
among paths only at edge routers. We show that HBH traffic engineering can
achieve the original goals of MPLS (i.e., efficient use of network resources),
with a much simpler design that does not need bandwidth reservations or
predictions of traffic demand.
  We implement a prototype in the ns-3 network simulator, to investigate the
cost imposed by 1) the restricted path choice of loop-free HBH multipath
routing, and 2) the distributed decisions of each router, based on its local
network view. We show that the former is more important than the latter, but
that, other than a few outliers, our design shows a performance (= aggregate
user utility) close to the theoretical optimum.
