DAMA is a whole family of multiple-access methods for computer networks. The basic premise is you have a central master node to which a number of slave nodes connect to to use the network. The master dictates who can transmit and, optionally, for how long. Therefore, there is guaranteed to be (ideally) no collisions anywhere on the network. (In practice, connection requests can collide when used on a bus-topology network. Still, even in this case, the collision rate will be substantially less than a pure CSMA/CD network.)

Note that TokenRing is a kind of DAMA, as is IEEE-488 and all of its variations. USB is also relies on a kind of DAMA (while FireWire is not).

A node can be a DAMA master on one channel, and a slave on another. Indeed, amateur radio Digipeaters (AX.25 digital repeaters) are often configured this way.

Typically, a DAMA-run network employing a bus topology (as is the case with amateur radio AX.25 networks) is managed like so:

1) Slave desires access to the network, and so, it transmits a connection request. The master will receive this request, and will add the slave's address to a "poll-list". The request is not officially acknowledged until the it is the slave's turn to access the network.

2) When the slave is polled, it may then transmit frames to the master. The master stores the packets for later processing and/or routing. Note that these packets are not acknowledged until the next poll cycle. Each packet has a destination address (which may or may not be the master's address). Packets intended for reception by a destination are queued until it's that destination node's turn to use the network. At that time, the packets are finally forwarded to their destination. (Note: this repetition is necessary, since node A may not be in communications range with node B, even if both are in range of the master node.)

3) If a node has nothing to transmit when it is polled, its poll priority is reduced (hence, it is polled less often) relative to nodes that do have packets to transmit. When it finally does have something to transmit, it's poll priority is brought back to normal. In this manner, DAMA can implement crude forms of quality of service as well, as isochronous data streams can be given much higher priorities than variable-bitrate streams.

4) If a slave node wishes to disconnect, it does so by sending special packets to the master, where-upon it will remove the slave from the poll-list.


The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • SamuelFalvo
The following authors of this page have agreed to the WlugWikiLicense.

    lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()

    lib/plugin/WlugLicense.php:111: Notice: Undefined variable: ignore_authors

    lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href=''></a>]: Wrong datatype for second argument