Skip to content
This repository

Enhanced BitTorrent Simulation using OMNeT++

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 doc
Octocat-spinner-32 images
Octocat-spinner-32 simulations
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CCLicense
Octocat-spinner-32 CCLicense.html
Octocat-spinner-32 README
README
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.

DEPENDENCIES

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:
http://www.omnetpp.org/omnetpp
http://inet.omnetpp.org/

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".

INSTALLATION

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:
#!/bin/bash
if [[ $# > 0 ]]
then
    java -jar PATH-TO-SMC-INSTALL/bin/Smc.jar $*
else
    echo "Usage: smc -{targetlanguage} {options} {smfilename}.sm"
fi

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!

Something went wrong with that request. Please try again.