-- URGENT: implement path desirability calculations (lack of them is confusing!)
-
- URGENT: Congestion/flow control (CHANNEL):
+ estimate max bandwidth using bursts and use to for CONGESTION CONTROL!
(and figure out how/where to use this!)
- + calculate current RTT if possible, use that for initial retransmissions
- (NOTE: needs us to learn which connection the tunnel uses for the message!)
- + figure out flow control without ACKs (unreliable traffic!)
-
-- HIGH: revisit message buffer, have global buffer instead per-route, but then
- make sure it is shared fairly across routes and connections (CORE);
- also, do not buffer if the connection is set to unbuffered!
- HIGH: revisit handling of 'unbuffered' traffic! (CHANNEL/TUNNEL)
(need to push down through tunnel into connection selection);
At Tunnel-level, try to create connections that match channel
preferences (buffered/unbuffered) and select connections for
- channel traffic that match channel preferences.
+ channel traffic that match channel preferences.
+ BUT: not sure this is ideal, discloses traffic type to
+ routers. We don't want that! (Maybe revise decision to do this?)
- HIGH: revisit handling of 'buffered' traffic: 4 is a rather small buffer; (CHANNEL)
maybe reserve more bits in 'options' to allow for buffer size control?
point of breakage) as well as connection/route (CORE)
- OPTIMIZATION: proper connection evaluation during connection management:
- + PATHS: path desirability score calculations are not done
- + CONNECTION: keep per-connection performance metrics;
- in particular, interact with channel (!) to see
- if we get ACKs indicating successful payload delivery.
+ TUNNELS:
- * when managing connections, distinguish those that
- have (recently) had traffic from those that were
- never ready (or not recently)
* consider quality of current connection set when deciding
how often to do maintenance
* interact with PEER to drive DHT GET/PUT operations based