Skip to content
Atis Elsts edited this page Mar 29, 2022 · 7 revisions

TSCH-sim - a fast TSCH simulator

TSCH-Sim is a TSCH simulator written in modern, modular JavaScript. It supports cross-platform execution using Node.js. Compared with existing alternatives such the OpenWSN 6TiSCH simulator and Cooja, TSCH-Sim has a much better performance, allowing to simulate networks with many thousands of nodes in real time. The simulator allows to use multiple radio propagation models, including models that have been theoretically or experimentally validated. It also includes support for mobile nodes.

The two key abstractions of the TSCH-Sim are nodes and links:

Nodes

A node corresponds to a single simulated physical device. A node features a routing table, a list of neighbors, a packet queue for each of the neighbors, a schedule, and some other state information, including a TSCH time source node ID, and RPL preferred parent ID (if RPL is used). A schedule of a node consists of one or more TSCH slotframes, each with zero or more cells. Cells are activated and prioritized following the rules in the IEEE 802.15.4 standard.

Each node in TSCH-sim must have a unique ID. The ID is used to route packets, select neighbors, and so on. For convenience purposes, there are functions from building link-layer 8-byte addresses from ID, but the ID itself is the main variable used internally.

A few specific IDs are predefined:

  • ID 1 is the ID of the TSCH coordinator node (each TSCH network has a single coordinator node);
  • ID 0 is reserved and should not be used;
  • ID —1 is used for broadcast;
  • ID —2 is used as the Enhanced Beacon packet destination address.

Links

Links are configured as "connections" by the user. They can either be configured manually, as "Fixed" links, or automatically, depending on the positions of the nodes, by a radio propagation model. See below for more information on link types.

A connection from A to B means that node B can, with some non-zero probability, receive packets from node A. Connections are directional: connection from A to B does not imply that a connection from B to A exists.

There is no separate interference range configuration parameter in TSCH-sim. If the reception on a node can be interfered by a packet from another node, then it can also, with some non-zero probability, receive packet from that node.

Setting up TSCH-sim

Using TSCH-sim

Scheduling

Routing

Link Types

The different link types allow the user of the simulator to use different radio propagation models. A radio propagation model, such as the Unit Disk Graph model, is going to automatically add links between nodes that it thinks should be connected. This connectivity graph can be extended by the user, by manually adding links that use the "Fixed" (i.e. user-configured) parameters. A very simple simulation might only use the "Fixed" links.

Energy consumption

Mobility

TSCH-sim Internals

Specific Applications