Files
notes/docs/lectures/acn/06_DTN_congestion_control.md
John Gatward c1b84c7f7d Add acn
2026-03-25 15:04:03 +00:00

3.3 KiB

Framework for Congestion Control in Delay Tolerant Opportunistic Networks

DTNs mainly focus on increasing the probability to deliver to the destination and on minimising delays

  • Using complex graph theory techniques
  • Where load is unfairly distributed towards the better connected nodes
  • May lead to network congestion

CAFREP

CAFREP or Congestion Aware Forwarding and Replication

  • Detects the congested nodes and parts of the network
  • Moves the traffic away from hot-spots and spreads it around while preserving the directionality of the traffic and not overwhelming non-interested nodes with unwanted content
  • Adaptively change message replication rates

When deciding on the best carrier and the optimal number of messages, CAFREP dynamically combines three heuristics

  1. Contact analytics
  2. Predictive node congestion (node storage and in-network delays)
  3. Predictive ego network congestion

img

Each layer you go up, the more information is exchanged between the nodes.

Metrics

Node Retentiveness
  • Aims to avoid or replicate proportionally less at the nodes that have lower buffer availability.

Ret(X) = B_c(X) - \sum^N_{i=1} \space M^i_{size}(X)

For a node X, it has buffer of size B_c(X). When a message of size M^i_{size} is sent to node X, it's buffer size is the total buffer minus the memory taken by the sum of all messages in the buffer.

Node Receptiveness
  • Aims to avoid or decrease sending rates to the nodes that have higher in network delays

Rec(X) = \sum^N_{i=1}(T_{now} - M^i_{received}(X))

How long a node keeps a message before forwarding it on. If a high level of receptiveness is found on a node, it means the node isn't useful as messages aren't forwarded. Could mean the node has limited connections.

Node Congestion Rate
  • Aims to avoid or decrease sending rates to nodes that congest at the higher rate

CR(X) = \frac{100\cdot T_{FullBuffer}(X)/T_{TotalTime}(X)}{\frac{1}{N}\cdot \sum^N_{i=1}(T_iend(X) - T_istart(X))}

Estimates the time between a node being full and full again. Measures the time the node is unusable.

Ego Network Congestion Metrics

Ego Network Retentiveness
  • Aims to replicate less at the parts of the network with lower buffer availability.

EN_{Ret}(X) = \frac{1}{N}\sum^N_{i=1}Ret(C_i(X))

Gets the average of the retentiveness of node X and it's neighbours c_i(X)

Ego Network Receptiveness
  • Aims to replicate less at parts of the network with higher delays.

EN_{Rec}(X) = \frac{1}{N}\sum^N_{i=1}Rec(c_i(X))
Ego Network Congestion Rate
  • Aims to send less to the parts of the network that have higher congestion rates.
  • This is useful as if a node isn't congested, but all connected nodes are. It stops it from being used.

EN_{CR}(X) = \frac{1}{N}\sum^N_{i=1}CR_i(X)

Contents of CAFREP Node

img


Replication\space rate = M \times \frac{TotalUtil(Y)}{TotalUtil(X) + TotalUtil(Y)}

Total utility, changes constantly. The replication limit grows to take advantage of all available resources, and backs off when congestion increases.

Social utility prevents replication at a high rate on free nodes that are not on the path to the destination.