GNUnet  0.11.x
Data Fields
GNUNET_TRANSPORT_CommunicatorGenericFCLimits Struct Reference

Message used to tell a communicator about the receiver's flow control limits and to acknowledge receipt of certain messages. More...

#include </home/handbook/gnunet/src/transport/communicator.h>

Collaboration diagram for GNUNET_TRANSPORT_CommunicatorGenericFCLimits:
[legend]

Data Fields

struct GNUNET_MessageHeader header
 Type is GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_FC_LIMITS. More...
 
uint32_t msg_window_size
 Maximum number of messages beyond the acknowledged message number that can still be transmitted concurrently without further acknowledgements. More...
 
uint64_t msg_cummulative_ack
 Up to which message number were all messages received. More...
 
uint64_t bytes_window_size
 Maximum number of payload bytes beyond the acknowledged number of bytes can still be transmitted without further acknowledgements. More...
 
uint64_t bytes_cummulative_ack
 Cummulative acknowledgement for number of bytes received. More...
 

Detailed Description

Message used to tell a communicator about the receiver's flow control limits and to acknowledge receipt of certain messages.

Note that a sender MAY choose to violate the flow-control limits provided in this message by a receiver, which may result in messages being lost (after all, transport is an unreliable channel). So if the sender violates these constraints, it should expect that the receive will simply discard the (partially) received "old" messages.

This way, if a sender or receiver crashes, there is no protocol violation.

Note that this style of flow control typically only applies for communicators where the underlying network protocol does not already implement flow control. Furthermore, this is just the recommended "generic" style, communicators are always free to implement original designs that better fit their requirements.

Definition at line 92 of file communicator.h.

Field Documentation

◆ header

struct GNUNET_MessageHeader GNUNET_TRANSPORT_CommunicatorGenericFCLimits::header

◆ msg_window_size

uint32_t GNUNET_TRANSPORT_CommunicatorGenericFCLimits::msg_window_size

Maximum number of messages beyond the acknowledged message number that can still be transmitted concurrently without further acknowledgements.

Definition at line 104 of file communicator.h.

◆ msg_cummulative_ack

uint64_t GNUNET_TRANSPORT_CommunicatorGenericFCLimits::msg_cummulative_ack

Up to which message number were all messages received.

Definition at line 109 of file communicator.h.

◆ bytes_window_size

uint64_t GNUNET_TRANSPORT_CommunicatorGenericFCLimits::bytes_window_size

Maximum number of payload bytes beyond the acknowledged number of bytes can still be transmitted without further acknowledgements.

Definition at line 116 of file communicator.h.

◆ bytes_cummulative_ack

uint64_t GNUNET_TRANSPORT_CommunicatorGenericFCLimits::bytes_cummulative_ack

Cummulative acknowledgement for number of bytes received.

Definition at line 121 of file communicator.h.


The documentation for this struct was generated from the following file: