Persönlicher Status und Werkzeuge

Simulating Trust in Vehicular Ad-Hoc Networks

In the Fidens project, we developed a simulation of a vehicular network extended for the evaluation of trust models. The simulation is based on the traffic simulator SUMO and the network simulator Shawn. In SUMO, the traffic of a town in reproduced. It determines the cars and their movements. In the network simulator, these cars communicate with each other and process the exchanged information. There we implemented algorithms for the dissemination of messages, for the integration of several pieces of information and for trust computation. Every car has its own knowledge base and is equipped with sensors to perceive its environment. For the artifical reasoning, we use the C++ library CPProb. It is an open source library that helps to include probabilistic reasoning techniques in your own application.

If you want to evaluate your own trust scenarios, you can easily extend our simulation. To set up the simulation, follow the following steps:

  1. Checkout Shawn from its Subversion repository and follow the installation steps described in Installation Guide. (It should be fine to use Visual Studio on Windows, although I have not tested it.)

  2. Install the Boost library. See Getting Started on Windows, Getting Started on Unix Variants (Linux, MacOS X, ...) and the downloads of BoostPro Computing.

  3. Start CMake and activate the Shawn applications readings, sumo and vanet. Also activate the Boost option and configure your Boost library paths. Generate the build files then.

  4. Compile the simulator. This is also described in the Installation Guide of Shawn.

  5. Test the simulator with my simulation files to see whether it works well in your environment. To do this, download the ZIP archive with my simulation files files and extract it. In addition, download the BZip2 archive (2.6GB!) with my traffic file (eichstaett.dmp.xml) and extract it into the folder with the simulation files. Now you have all necessary files in a single folder. Run Shawn in that folder using the configuration file notrust-noerrors.shawn.conf. The command line looks something like:

    PATHTOSHAWN\shawn -f notrust-noerrors.shawn.conf
  6. Write your own trust algorithms. Take the existing algorithms as examples on how to do that.

In the following, a Shawn configuration file is given. It shows some of the configuration options.

# Set a fixed seed for the random number generator
# to make the simulation exactly reproducable
random_seed action=set seed=1

# Set up the world
prepare_world edge_model=simple comm_model=disk_graph range=100

# Move nodes by SUMO dump file
# net_file: the map as a SUMO network
# dump_file: the node movements generated by SUMO
node_movement mode=sumo net_file=eichstaett.net.xml dump_file=eichstaett.dmp.xml processors=vehicle

# Set up the reading for the vehicle sensor
create_environment readings_file=eichstaett-inttest.readings.xml

# Configure the vehicle sensor
# Kind of error the sensor should introduce
# Values: no_errors, equal_errors, mixed_errors
sensor_error=no_errors

# Configure the dissemination module
# Vehicles that use the ModifyingDisseminator
modifying_disseminator=07207,07235,09820,17488,17511,17514
# When does the ModifyingDisseminator start modifying (in seconds)?
begin_modifying_round=8600000

# Configure the trust module
# The trust model to use
# Values: bamberger2010, credit
trust_computer=bamberger2010

# Configure the statistics ouput (.csv files)
# How often should the current state be written in the statistics
# files (in seconds)?
output_interval=604800 # Every week
# Vehicles for which the trust development should be written in the
# statistics files
trust_watch=07207,07235,09820,17488,17511,17514

# General debugging
# Vehicles which should activate logging (.log files)
logLabels=07207,07235,09820,17488,17511,17514

# Set up the statistics task
init_vanet

# Run the simulation for 18 weeks (time in seconds)
simulation iteration_message_interval=3600 max_iterations=10886400 run_without_nodes=true