Yes, Bakul, keeping a central RTT cache per destination is a good idea.
Most good stacks use it already. I think it was recommended in Host
Requirements circa 1989.
Keeping a per destination cache of Path RTT, Path MTU, and a Quality
measurement was required in my initial IPng Neighbor Discovery design
several years ago, before that was destroyed in the rewrite by committee.
From: Bakul Shah <email@example.com>
[Thinking aloud here...]
Perhaps a part of the TCP congestion avoidance algorithm can be
factored out in some sort of a `traffic central' module that tries
to give you the best bandwidth/packet loss estimate it has for a
given route provided you keep it updated with what you learn (i.e.
TCP tells it when a packet is lost etc). A new TCP connection can
then immediately start off with a bigger window (and won't open the
window too wide too quickly). Multiple connections between two
hosts can avoid what would be largely redundant estimate
computation. Even a UDP app. can try to benefit from this (such as
for communication where bounded delay is more critical than packet
loss). Other `traffic conditions' input can also be fed into this
module [perhaps as part of some future routing protocol]. Combining
this `quality' of a route aspect into routing protocols may make
sense in the long run....
Key fingerprint = 17 40 5E 67 15 6F 31 26 DD 0D B9 9B 6A 15 2C 32
Key fingerprint = 2E 07 23 03 C5 62 70 D3 59 B1 4F 5E 1D C2 C1 A2