Enhanced BitTorrent Simulation using OMNeT++
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


The EbitSim is an enhanced BitTorrent simulation with the
following features:

- Multiple concurrent swarm
- Multiple trackers
- Timeslice processing model
- A thousand nodes simulated
- Use of the INET Framework
- Modular model to allow easy configuration

For now, this model does not come with documentation other
than the comments on the code. Check the article with the
same name, presented at MASCOTS 2011, for further information.


This code was built with omnetpp-4.2.2 and it needs an
installation of inet-20111118.

They both can be found at the links:

Extract omnetpp and inet in a folder of your choice, where the
omnetpp workspace will be created ("~/Workspace", for example).

In a fresh Ubuntu install, it is necessary to install the
following packages to compile omnetpp:
- default-jre
- build-essential
- zlib1g-dev
- tcl8.4-dev
- tk8.4-dev
- tclreadline
- blt-dev
- libxml2-dev
- libpcap-dev

Run the following command to install these packages
$ sudo apt-get install default-jre build-essential zlib1g-dev tcl8.4-dev\
 tk8.4-dev tclreadline blt-dev libxml2-dev libpcap-dev

In order to compile Ebitsim, it is necessary to download the smc (State Machine
Compiler) and the boost library:
SMC: http://smc.sourceforge.net/
Boost: http://www.boost.org/

Extract them somewhere in your home folder, such as "~/libs".


1. Compile omnetpp-4.2.2 by running the following commands:
$ ./configure
$ make

If you face any problems, please refer to the omnetpp installation guide.

2. Create the file "~/bin/smc" with the following content:
if [[ $# > 0 ]]
    java -jar PATH-TO-SMC-INSTALL/bin/Smc.jar $*
    echo "Usage: smc -{targetlanguage} {options} {smfilename}.sm"

Substitute PATH-TO-SMC-INSTALL with the path where you extracted the smc
("~/libs/smc_VERSION" if you followed the suggestion above).

Make the file executable with the command
$ chmod u+x ~/bin/smc

3. Open the OMNeT++ IDE and add the INET framework source to the workspace. Then
compile both in release and debug modes.

4. Copy or move the EbitSim source code to the IDE workspace and create
an OMNeT++ project with the same name.
Use the template "Empty project with 'src' and 'simulations' folders". You MUST
NOT overwrite the 'package.ned' and the omnetpp.ini files.

5. Add the smc and boost folders to the paths.
Enter the project properties, select "C/C++ General -> Paths and Symbols", and
add the paths to the "boost" folder (it is the root) and to the "smc/lib/C++"
folder under the GNU C++ Language.

6. Use the inet project as a reference for the EbitSim.

7. Run 'make' inside the folder src/client/smc and compile the EbitSim project
both in release and debug modes.

Now you should be ready to play around!