This commit is contained in:
John Gatward committed 2026-10-04 15:24:17 +01:00
1 parent d0f27f276b
commit d6f54d4ec2
103 files changed
+3663 -3779

No files matched your search

+19 -19
View File
@@ -1,28 +1,28 @@
# 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
DTNs mainly focus on increasing the probability of delivery 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
- 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
- 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 changes 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**
3. Predictive **ego network congestion**
![img](img/g.png)
Each layer you go up, the more information is exchanged between the nodes.
As you move up each layer, more information is exchanged between the nodes.
### Metrics
@@ -34,43 +34,43 @@ $$
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 $X$ has a buffer of size $B_c(X)$. When a message of size $M^i_{size}$ is sent to node $X$, its available 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
- 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.
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. This 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
- Aims to avoid or decrease sending rates to **nodes** that become congested at a 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.
Estimates the time between a node being full and becoming 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.
- 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)$
Gets the average retentiveness of node $X$ and its neighbours $c_i(X)$.
###### Ego Network Receptiveness
* Aims to replicate less at **parts of the network** with higher delays.
- 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))
@@ -79,7 +79,7 @@ $$
###### 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.
- This is useful if a node isn't congested but all connected nodes are. It stops the node from being used.
$$
EN_{CR}(X) = \frac{1}{N}\sum^N_{i=1}CR_i(X)
@@ -93,6 +93,6 @@ $$
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.
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.