DamBOX is a software developed in C++ that intermittently releases the packet on the interface, like a dam : using
netfilter, incoming packets are intercepted and blocked until released at the interface goodput. The user specifies the duration and frequency of the blocking and releasing function.
DamBOX can be used to emulate beam hopping in satellite telecommunication system. The source code of DamBOX can be found here.
The following manuals are available :
DamBOX is a multilayer filter. It operates at the network level and then at the application level.
At the network level, DamBOX uses
netfilter to handle incoming packets which are concerned by the blocking and releasing functions.
netfilter redirects the relevant packets to a local socket instead of routing them to the output interface.
At the application level, the binary
dambox retrieves packets arriving on the socket and adds them to a FIFO queue. It releases the packets on the output interface depending on the timeline.
For more information, see the Architecture of DamBOX.
In order to understand all the documentation of DamBOX, the following vocabulary is important :
DS (Dam Slot): the smallest unit of time during which the data can be either blocked or released.
TimeLine: the management of blocking and releasing states. It is composed of 1 and 0. State 0 is a state where data is blocked. State 1 corresponds to a state where data is released. The TimeLine will be repeated indefinitely until the end of the program execution.
Before any utilisation of the DamBOX, the user MUST test the limits related to the machines that are exploited, otherwise results will not be relevant. DamBOX stores packets and releases them at the goodput of the interface. Packets are moved in the user space for processing. The processing time involved can cause some limitations on the relevance of using DamBOX for the selected use-case. As one example, if the time during which the packets are released is not sufficient to empty the FIFO buffer, packets will be lost due to overflowing data in the FIFO queue.
DamBOX has been tested to support at least 4250 packets per second (e.g. a rate of 50 Mbit/s for packets of 1470 bytes). Depending on the exploited machine and interface goodput, the limiting values may not be the same. In case the limits are reached, perrformances can be improved with the execution parameter –s (more information in Architecture of DamBOX).
Moreover, DS should not be below one millisecond. Indeed, the program will have difficulties managing the evolution of the timeline and the results could be truncated.