ProbabilisticBroadcast

Package: inet.networklayer.probabilistic

simple module ProbabilisticBroadcast

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast.

This method reduces the number of packets sent on the channel (reducing the broadcast storm problem) at the risk of some nodes not receiving the data. It is particularly interesting for mobile networks. The parameter maxNbBcast sets the maximum number of broadcast transmissions of a packet, the parameter beta gives the transmission probability for each attempt, the parameter bcperiod sets the time between two transmission attempts. The parameter maxFirstBcastBackoff sets a backoff window before the first transmission attempt, and the parameter timeInQueueAfterDeath sets the time during which a node remembers a packet whose time to live (TTL) expired, avoiding retransmitting it in case it comes back in the network because of some problem.

inet.networklayer.probabilistic.ProbabilisticBroadcastProbabilisticBroadcastsimple

Inheritance diagram

Known subclasses

Name

Type

Description

AdaptiveProbabilisticBroadcast

simple module

Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast, with adaptive parameters.

Extends

Name

Type

Description

NetworkProtocolBase

simple module

Module base for different network protocols.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

interfaceTableModule

string

headerLength

int

96b

Length of the network packet header (in bits)

bcperiod

double

2 s

period between two probabilistic broadcast attempts

beta

double

0.8

probability of broadcast for each attempt

maxNbBcast

int

1

maximal number of broadcast attempts for each packet.

maxFirstBcastBackoff

double

1 s

maximal back-off before the first broadcast attempt [seconds]. If you don’t want to use this parameter, simply set it to a value that is greater than bcperiod.

timeToLive

double

10 s

timeInQueueAfterDeath

double

60 s

How many seconds the message should be kept in the queue after it dies. That way the message is known if the node receives one of its copies that isn’t dead because of TTL de-synchronization due to MAC backoff, propagation delay, and clock drift.

Properties

Name

Value

Description

class

ProbabilisticBroadcast

display

i=block/fork

Gates

Name

Direction

Size

Description

transportIn

input

transportOut

output

queueIn

input

queueOut

output

Signals

Name

Type

Unit

Description

packetDropped

cPacket

packetReceivedFromLower

cPacket

packetReceivedFromUpper

cPacket

packetSentToLower

cPacket

packetSentToUpper

cPacket

Source code

//
// Multi-hop ad-hoc data dissemination protocol based on probabilistic broadcast.
//
// This method reduces the number of packets sent on the channel (reducing the
// broadcast storm problem) at the risk of some nodes not receiving the data.
// It is particularly interesting for mobile networks.
// The parameter `maxNbBcast` sets the maximum number of broadcast transmissions of a packet,
// the parameter beta gives the transmission probability for each attempt,
// the parameter bcperiod sets the time between two transmission attempts.
// The parameter `maxFirstBcastBackoff` sets a backoff window before the first transmission attempt,
// and the parameter `timeInQueueAfterDeath` sets the time during which a node remembers
// a packet whose time to live (TTL) expired, avoiding retransmitting it in case it comes back
// in the network because of some problem.
//
simple ProbabilisticBroadcast extends NetworkProtocolBase like INetworkProtocol
{
    parameters:
        @class(ProbabilisticBroadcast);
        int headerLength @unit(b) = default(96b); // Length of the network packet header (in bits)
        // period between two probabilistic broadcast attempts
        double bcperiod @unit(s) = default(2 s);
        // probability of broadcast for each attempt
        double beta = default(0.8);
        // maximal number of broadcast attempts for each packet.
        int maxNbBcast = default(1);
        // maximal back-off before the first broadcast attempt [seconds].
        // If you don't want to use this parameter, simply set it
        // to a value that is greater than bcperiod.
        double maxFirstBcastBackoff @unit(s) = default(1 s);

        double timeToLive @unit(s) = default(10 s);
        // How many seconds the message should be kept in the queue after it dies.
        // That way the message is known if the node receives one of its
        // copies that isn't dead because of TTL de-synchronization due to
        // MAC backoff, propagation delay, and clock drift.
        double timeInQueueAfterDeath @unit(s) = default(60 s);
}

File: src/inet/networklayer/probabilistic/ProbabilisticBroadcast.ned