  A growing trend for information technology is to not just react to changes,
but anticipate them as much as possible. This paradigm made modern solutions,
such as recommendation systems, a ubiquitous presence in today's digital
transactions. Anticipatory networking extends the idea to communication
technologies by studying patterns and periodicity in human behavior and network
dynamics to optimize network performance. This survey collects and analyzes
recent papers leveraging context information to forecast the evolution of
network conditions and, in turn, to improve network performance. In particular,
we identify the main prediction and optimization tools adopted in this body of
work and link them with objectives and constraints of the typical applications
and scenarios. Finally, we consider open challenges and research directions to
make anticipatory networking part of next generation networks.
