2

In the link agent, I came across attributes like maxPropagationDelay and reservationGuardTime. What is the role of these attributes? Where I can find more information about these attributes.

notthetup
  • 1,129
  • 9
  • 17

2 Answers2

1

These are parameters of specific LINK protocols.

  • maxPropagationDelay is used to determine timeouts based on expected round-trip-times in the network. It should be set to a value that depends on the geographical size of your network if the network is small enough for a single hop connection between any pair of nodes. Otherwise it should be set to a value based on the maximum communication range of your modem.
  • reservationGuardTime is a small extra time that a channel is reserved for, to allow for practical timing jitter of modems. Usually the default value for this provided by the agent will be good enough for most purposes.

The Underwater networks handbook to be released with the upcoming version of UnetStack3 will provide a lot more guidance on many of these parameters, and on how to set up various types of networks using Unetstack.

Mandar Chitre
  • 2,110
  • 6
  • 14
1

You can access more information about any parameters of any of the Agents in UnetStack using the help command. For the Link Agent, you'll see this in UnetStack 1.4.

> help link
link - access to link agent

Examples:
 link                           // access parameters
 link.maxRetries = 5            // set maximum retries for reliable delivery
 link << new DatagramReq(to: 2, data: [1,2,3], reliability: true)
                                // send reliable datagram

Parameters:
  MTU - maximum data transfer size
  maxRetries - maximum retries for reliable delivery
  reservationGuardTime - guard period (s)
  maxPropagationDelay - maximum propagation delay (s)
  dataChannel - channel to use for data frames (0 = control, 1 = data)

reservationGuardTime is the additional guard time that can be added to the frame duration when reserving a channel (using MAC) to ensure channel reservations have some delay in between for the nodes to be able react.

maxPropagationDelay is used to estimate the maximum time that an acknowledge to a request (or a series of requests if fragmentation is needed) might take and used to set timeouts for transmissions, or to make channel reservations (if using a MAC). Depending on your simulation/setup, you can change this number to be longest time (one-way) between two nodes which can communicate.

notthetup
  • 1,129
  • 9
  • 17