  The diversity of Fog Computing deployment models and the lack of publicly
available Fog infrastructure makes the design of an efficient application or
resource management policy a challenging task. Such research often requires a
test framework that facilitates the experimental evaluation of an application
or protocol design in a repeatable and controllable manner. In this paper, we
present EmuFog---an extensible emulation framework tailored for Fog Computing
scenarios---that enables the from-scratch design of Fog Computing
infrastructures and the emulation of real applications and workloads. EmuFog
enables researchers to design the network topology according to the use-case,
embed Fog Computing nodes in the topology and run Docker-based applications on
those nodes connected by an emulated network. Each of the sub-modules of EmuFog
are easily extensible, although EmuFog provides a default implementation for
each of them. The scalability and efficacy of EmuFog are evaluated both on
synthetic and real-world network topologies.
