Add acn
This commit is contained in:
96
docs/lectures/acn/06_DTN_congestion_control.md
Normal file
96
docs/lectures/acn/06_DTN_congestion_control.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# 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**
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||

|
||||
$$
|
||||
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.
|
||||
Reference in New Issue
Block a user