Smart Home Network Simulation for Visualisation and Generation of IoT/SmartHome Network traffic

Fabian Kaiser b36293346f Merge branch 'SWaT' of SPIN/IoTDatasetGenerationFramework into master 3 lat temu
examples 19ee597d8c Fixed the original bug in the smart home scenario in a straight-forward way. A proper fix may be needed later. 3 lat temu
gradle a60b385c37 Initial SWaT commit 3 lat temu
libs b439b521b2 Finaly fixes Weka dependency 5 lat temu
libs_src b439b521b2 Finaly fixes Weka dependency 5 lat temu
src 19ee597d8c Fixed the original bug in the smart home scenario in a straight-forward way. A proper fix may be needed later. 3 lat temu
.gitignore a60b385c37 Initial SWaT commit 3 lat temu
README.md a60b385c37 Initial SWaT commit 3 lat temu
build.gradle a60b385c37 Initial SWaT commit 3 lat temu
gradle.properties 353e2ff9dd Enables running the GUI via gradle 6 lat temu
gradlew a60b385c37 Initial SWaT commit 3 lat temu
gradlew.bat a60b385c37 Initial SWaT commit 3 lat temu
settings.gradle 3b5ec28546 Initializes gradle as build tool 6 lat temu

README.md



IoT Dataset Generation Framework – IoTDGF

A framework for the visualization and generation of network traffic for the Internet of Things.
The following scenarios are pre-implemented:

Publications

The short paper "IoT dataset generation framework for evaluating anomaly detection mechanisms" by Andreas Meyer-Berg, Rolf Egert, Leon Böck, and Max Mühlhäuser for the general framework with its smart home scenario is available at https://doi.org/10.1145/3407023.3407036.

Installation

Clone the repository:

$ git clone https://git.tk.informatik.tu-darmstadt.de/SPIN/IoTDatasetGenerationFramework.git

Change to the directory:

$ cd IoTDatasetGenerationFramework

Build and run the project:

$ ./gradlew run

Technical Details

Prerequisites

Required Libraries

Gradle downloads these during the build process

  • JUnit4 - Java unit test framework
  • Math3 - Apache Common Maths (for Distribution function)
  • Weka 3 - Weka machine learning framework (for example anomaly detection algorithms)

Gradle Tasks

Gradle will download required libraries and handle the build process

$ gradlew build     # Assembles and tests this project

$ gradlew jar       # Creates an executable Jar-file

$ gradlew javadoc   # Generates Java Doc for the framework

$ gradlew test      # Runs the included unit tests

$ gradlew run       # Runs the IoTDatasetGenerationFramework as a JVM Application

$ gradlew runIt     # Runs the IoTDatasetGenerationFramework as a Jar-file

$ gradlew tasks     # Displays further available tasks

Adaptations and Custom Implementations

To change code of the framework, it is possible to import it into an IDE of choice (e.g., into Eclipse with File > Import > Gradle > Existing Gradle Project). Custom implementations of devices, protocols etc. can also be written in a separate project and later be imported.
For access to libraries during development the Jar files in "\build\install\SmartHomeNetworkSim\lib" can be imported. While running the framework, externally implemented programs can be imported.

Credits for the General Framework and the Smart Home Scenario

Andreas T. Meyer-Berg (development as part of his Bachelor's Thesis)

Credits for the SWaT Scenario

Fabian Kaiser (data analysis, development, and evaluation as part of his Master's Thesis)
Leon Böck (initial idea and thesis supervision)