DESERT 4.0.0
uwsr.h File Reference

UnderWater Selective Repeat (UWSR) this is basically a selective repeat ARQ protocol that coordinates the transmitter and receiver in time. In more detail, the transmitter sends Data packets and waits for a given time period between subsequent packets; the receiver knows the timing of the transmitter and sends acknowledgement (ACK) packets so that they arrive at the transmitter when it is listening. The protocol is effective because the channel propagation delay, underwater, is sufficiently large to accommodate more than one packet transmission within one round-trip time (RTT). Some parameters of the protocol can be tuned: for example, setting a higher number of packets to be transmitted within one RTT makes the transmission process more efficient, but also more prone to interference in a multiuser network. More...

Go to the source code of this file.

Classes

class  MMacUWSR
 This is the base class of MMacUWSR protocol, which is a derived class of MMac. More...
 
class  MMacUWSR::UWSRTimer
 
class  MMacUWSR::BackOffTimer
 
class  MMacUWSR::AckTimer
 
class  MMacUWSR::ListenTimer
 
class  MMacUWSR::WaitTxTimer
 

Typedefs

typedef int pktSeqNum
 
typedef double txStartTime
 
typedef int macAddress
 
typedef int txRounds
 
typedef pair< macAddress, pktSeqNumusrPair
 
typedef pair< double, double > rttPair
 
typedef pair< int, int > txStatusPair
 

Variables

packet_t PT_MMAC_ACK
 

Detailed Description

UnderWater Selective Repeat (UWSR) this is basically a selective repeat ARQ protocol that coordinates the transmitter and receiver in time. In more detail, the transmitter sends Data packets and waits for a given time period between subsequent packets; the receiver knows the timing of the transmitter and sends acknowledgement (ACK) packets so that they arrive at the transmitter when it is listening. The protocol is effective because the channel propagation delay, underwater, is sufficiently large to accommodate more than one packet transmission within one round-trip time (RTT). Some parameters of the protocol can be tuned: for example, setting a higher number of packets to be transmitted within one RTT makes the transmission process more efficient, but also more prone to interference in a multiuser network.

Author
Saiful Azad
Version
1.0.0

Typedef Documentation

◆ macAddress

typedef int macAddress

◆ pktSeqNum

typedef int pktSeqNum

◆ rttPair

typedef pair<double, double> rttPair

◆ txRounds

typedef int txRounds

◆ txStartTime

typedef double txStartTime

◆ txStatusPair

typedef pair<int, int> txStatusPair

◆ usrPair

typedef pair<macAddress, pktSeqNum> usrPair

Variable Documentation

◆ PT_MMAC_ACK

packet_t PT_MMAC_ACK
extern