I've similar problems with my ADSL line, which is fully rate adaptive, so it might change its speed while I'm online. Fortunately, my modem has a webgui where it shows at which speed it is syncronized. So I have a machine on my lan which runs 24/7 and checks these values every 5 minutes. If they change, it updates the traffic shaper values by accessing the m0n0wall webgui. Before I found out my modem has a webgui, my idea was to have the computer on my LAN ping a server like google's every few seconds and take an average every few minutes. Then make a rule in the traffic shaper that pings at least from that machine have highest priority. Then some experimenting is neccessary to find out the average ping when the line is fully loaded, with pipes that do not overestimate your current bandwith. Then you just need a clever algorithm that decreases the bandwidth of the pipes if the ping goes to high, and slowly increases the bandwith as long as the ping is fine. You most probably want to focus on the upload here I guess, cause it is impossible to make any assumptions about whether the upstream or downstream is clogged if the delay increases. You would have to make speedtests all the time to find out, which would periodically block all the up- and download for other computers. Fairly complicated, but to my knowledge the only way on a dynamic bw line.
|