1) self stabilizing parameters/values
e.g. Increased initial window.
Use: A server operating system (e.g VMware's ESX server) might be deployed in networks of different speed thus it would be efficient if the TCP IP stack can set its parameters depending on network speed and usual network traffic.
2) Dynamically switching between different congestion avoidance algorithms.
Use: laptops which roam in networks of different throughput. Different congestion avoidance are effective in different networks thus to find the optimum algorithm for that specific network. e.g. it should switch to TCP Hybla when using wireless interface and to HS-TCP when it is connected to wired link.
Another parameter to change congestion avoidance can be network bandwidth
3) Connection based - congestion avoidance algorithm based on tracert or hop count
It is very unfair to server a client in china as compared to client sitting in CA, which is the same place where the server is located. TCP hybla suggestion an avoidance algorithm which is not based on RTT e.g A client using virtual machine running in california from india should use TCP Hybla and a client sitting in same building should use TCP westwood.
4) congestion avoidance algorithm based on the type of traffic. E.g. calculate the behavior of window as a function of type of data. Large file, chat application, etc (not sure how this can be done)
5) Initial window size probing using ICMP or UDP protocol.
(An approach equivalent to Autotuning with Autobuf has been shown to improve file transfer speeds (goodput), and is therefore an extremely useful tool for speeding up large file transfers.)