# EmuCD: An Emulator for Content Dissemination Protocols in Vehicular Networks
## 2 Related Work  
There are several simulation tools available, and even some emulators, most of them being used to evaluate the performance of a network and/or protocols [2,4]. Some of the simulators are more specific than others, but they usually provide the most common protocols and support custom ones [5]. Following the taxonomy proposed by [PERSON] et al. [3] in the scope of this work, there are three types of simulators: network simulators, mobility simulators and VANET simulators. With regard to network simulators, INET ([[https://inet.omnetpp.org/](https://inet.omnetpp.org/)]([https://inet.omnetpp.org/](https://inet.omnetpp.org/))), Riverbed Modeler ([[https://www.riverbed.com/gb/products/npm/riverbed-modeler.html](https://www.riverbed.com/gb/products/npm/riverbed-modeler.html)]([https://www.riverbed.com/gb/products/npm/riverbed-modeler.html](https://www.riverbed.com/gb/products/npm/riverbed-modeler.html))) (formerly known as OPNET), Network Simulator (NS2/3) ([[https://www.nsnam.org/](https://www.nsnam.org/)]([https://www.nsnam.org/](https://www.nsnam.org/))) and the Opportunistic Network Environment (ONE) ([[https://www.netlab.tkk.fi/tutkimus/dtn/theone/](https://www.netlab.tkk.fi/tutkimus/dtn/theone/)]([https://www.netlab.tkk.fi/tutkimus/dtn/theone/](https://www.netlab.tkk.fi/tutkimus/dtn/theone/))) are the most used ones in the scientific community. The simulators are usually discrete-event based, where one or more state-machines coordinate the simulation. A distinguishing feature of a simulator is that it is not required to run in real time. With enough hardware resources, 1 h of network activity can be simulated in five minutes, with the results ready to be analysed at the end. However, they have to use models to simulate the real environment, which do not contain all the real impairments of the network. Moreover, it is not easy to use the same implementation in real hardware, which makes difficult a fair comparison of the algorithms in a real emulated approach. Mobility simulators are based on mobility models employed to simulate vehicles' movement in VANETs. Mobility models can either be collected from a real VANET or synthetic simulated traces. Interesting mobility simulators are: SUMO [6], TRANSIM ([[https://code.google.com/archive/p/transims/](https://code.google.com/archive/p/transims/)]([https://code.google.com/archive/p/transims/](https://code.google.com/archive/p/transims/))), CORSIM [7], VanetMobiSim [8], GLOMOSIM [9] and MOVE [10]. All these mobility simulators are able to simulate various traffic conditions with realistic vehicular movement, and can be integrated both with simulators and emulators. Regarding environments for simulating VANETs, it should be noted that the key point is the realism of vehicle mobility [11]. Outstanding solutions in this category are: GrooveNet, Traffic and Network Simulation Environment (TraNS), National Chiao Tung University Network Simulator (NCTUns), Vehicles in Network Simulation (Veins), [PERSON] et al. 's simulation framework, Loop and mOVERS. GrooveNet [12] is a hybrid simulator that allows communication between simulated vehicles, real vehicles and both. It uses a real topography based on a street map to model communication between vehicles, and it supports multiple network interfaces, GPS and events triggered from the vehicle's on-board computer. Traffic and Network Simulation Environment (TraNS) [13] provides a vehicular environment by linking two open-source simulators: a traffic simulator, SUMO [6], and a network simulator, NS2. Thus, the network simulator can use realistic mobility models and influence the behaviour of the traffic simulator based on the communication between vehicles. National Chiao Tung University Network Simulator (NCTUns) [14] is a hybrid simulator and emulator which allows integrated traffic and network simulation. One of its distinguishable features is the direct use of the TCP/IP protocol stack in the Linux kernel, enabling real-life application programs to be run directly.