The satteline link enhancements project looks at ways for providing a better utilization of satellite links for Internet content retreival.
Note from Robert Cohen:
We have a satellite circuit with RTT of about 500 millisec. We also have a terrestrial connection. The satellite is fixed price bandwidth but we pay by the meg for the terrestrial link. So what I want to achieve is to use the satellite when possible and fall over to the the landline when the satellite is overloaded.
The traditional squid setup for this would be to use squids on the other side of each link as parents and weight them appropropriatly. The downside with this is that it involves a ICP ping for each request. The satellite latency is already high and an ICP ping for each request doubles it.
A background ping option for parents
This sends an ICP ping to parents only occasionally (default 30 sec) to keep the RTT info updated.
A Weighted Round Robin Option for parents
This divides traffic between parents of this kind proportionally to their weighted RTT. A parent with half the weighted RTT gets twice the traffic.
The justification for the weighted round robin option is that using a standard parent with a background ping option is inappropriate as the "best" parent would get all the traffic until the next ping was sent.
Basetime when weighting parents
I also have the problem that the existing weight option for parents doesnt work well in these circumstances. I would have to set such a high weight for the satellite that the difference between a slow satellite link and a fast satellite link gets lost in the noise. To address this, I added a basetime option for parents. This is subtracted from the RTT before dividing by the weight when choosing parents.