1 - URGENT: Congestion/flow control (CHANNEL):
2 + estimate max bandwidth using bursts and use to for CONGESTION CONTROL!
3 (and figure out how/where to use this!)
4 + get current RTT from connection; use that for initial retransmissions!
5 + figure out flow control without ACKs (unreliable traffic!)
7 - HIGH: revisit handling of 'unbuffered' traffic! (CHANNEL/TUNNEL)
8 (need to push down through tunnel into connection selection);
9 At Tunnel-level, try to create connections that match channel
10 preferences (buffered/unbuffered) and select connections for
11 channel traffic that match channel preferences.
12 BUT: not sure this is ideal, discloses traffic type to
13 routers. We don't want that! (Maybe revise decision to do this?)
15 - HIGH: revisit handling of 'buffered' traffic: 4 is a rather small buffer; (CHANNEL)
16 maybe reserve more bits in 'options' to allow for buffer size control?
17 Or: maybe even better, calculated required buffer size based on latency
18 and throughput (and available memory)
20 - HIGH: if we receive BROKEN messages, cut down corresponding PATH (up to the
21 point of breakage) as well as connection/route (CORE)
23 - OPTIMIZATION: proper connection evaluation during connection management:
24 + PATHS: path desirability score calculations are not done
26 * consider quality of current connection set when deciding
27 how often to do maintenance
28 * interact with PEER to drive DHT GET/PUT operations based
29 on how much we like our connections
32 - OPTIMIZATION: optimize stopping/restarting DHT search to situations
33 where we actually need it (i.e. not if we have a direct connection,
34 or if we already have plenty of good short ones, or maybe even
35 to take a break if we have some connections and have searched a lot (?)) (PEER)