Kitz ADSL Broadband Information
adsl spacer  
Support this site
Home Broadband ISPs Tech Routers Wiki Forum
 
     
   Compare ISP   Rate your ISP
   Glossary   Glossary
 
Please login or register.

Login with username, password and session length
Advanced search  

News:

Author Topic: Modem loading factor  (Read 862 times)

Weaver

  • Senior Kitizen
  • ******
  • Posts: 11459
  • Retd s/w dev; A&A; 4x7km ADSL2 lines; Firebrick
Modem loading factor
« on: April 11, 2019, 11:47:07 PM »

Those of you who have followed my earlier posts will have read how I have set upstream speed limiter rates in my Firebrick router for each one of my modems in a bonded set of dsl lines. The idea is that the router will apportion the correct fraction of the outbound traffic to each modem according to how fast that line is when taking overheads into account. I look at sync rates of the modems, apply a little maths to reduce sync rates to a figure that allows for protocol overheads and then multiply by yet another magic number which I call the modem loading factor.

This latter ‘modem loading factor’ is just derived by voodoo; I have settled on ≤~96% based on many experiments if the ‘protocol overhead factor’ is 0.8844. I have found that pushing the modems too hard is not such a good thing - it certainly doesn’t give any speed benefit, at any rate, but I have found it hard to put into words exactly what is bad about overcooking it.

The product of these two, modem loading factor multiplied by protocol overhead factor does not have a decent name, so for want if imagination I just term it the ‘fudge factor’, so that is the IP rate divided by modem sync rate.

I could do with some advice guidance on setting this. I have been fiddling around for the best part of a decade without any clue on what I am doing and without even any ideas about methodology. Guidance and discussion would be most appreciated.

One thing that has recently occurred to me: why is this a multiplier? Should there be a fixed, absolute value reduction? Or a linear equation ? Or something more complicated?

One benefit of a linear equation is that the constant could be used as an absolute minimum limit on the amount of speed reduction applied if it is felt that such a thing is needed.

However one could have some equation, of whatever form, and just add a min() or even also a max() function as final steps. Could it perhaps be argued that speed reduction amounts down to a figure a certain distance below the best-case max theoretical capacity should not exceed a certain absolute max amount?

Some guidance would be helpful here too, re concerns about linear equations’ worth and inclusion of min / max.

I also wonder about what should be done about the various modems - should they all use the same parameters in the one equation? Should the slowest modem be treated differently?

I had a go at writing some iOS Shortcuts code to take a look at which modems are the slowest and then apply a more general function. This turned out to be a nightmare because of limitations with Shortcuts but also because I realised that the question is ill though through. ‘The slowest modem’ - what happens if several are equal in speed and this speed may be slower than that of all others. Starting to parametrise all the cases, all modems approximately the same speed, exactly the same speed, one is the slowest, two have the same speed but it is slower than the others? What about very small differences? Say that so two modems have almost the same speed, and this tiny difference means that the situation goes into the classification of ‘one is slowest’, but barely.

Do we want to check our equations to ensure that there are never any discontinuities if things change by minute amounts and that affects things based on the count_n( subset_cond_contenders )? Or could it be argued that in some analysis discontinuities of that kind might be a good thing because it is argued that that is how systems of modems do happen to behave in practice ?

It might be that the likes of me myself are used to watch out for some behaviours that we would normally want to take care to avoid, because they are signs of an unphysical model and not good if it is physics that we are modelling. However it is not necessarily physics that we are modelling at all, but a combination of hardware and possibly software, but I’m very unsure about that.

I need a textbook on queuing theory for dimwits too.

Coming back to the special treatment for the slowest modem thing. I do need to write some code to find which modem(s) are the slowest ones dynamically because it is not cool putting in tweaked numbers that are different for line 3 based on the assumption that line 3 is always going to be the rubbish one and that will never change.

What is an intelligent and user-friendly way of expressing that in terms of functions and parameters ? I’m wondering about if_slowest( if_true_params ; if_false_params ) where you have two sublists of parameters. But what do do about the second-place-to-slowest and so on? And what about the case where there are two slow modems that are slower but have equal values? Again, what about the case where all modems have the same speed ? Or approximately so? Does it really matter if there is a tiny variation and aside from that all the modems have the same speed ? That would be a ‘no-clear-winner’ vs ‘clear difference in speeds’ case.

I currently have a system of simple modem loading factors that are multiplication factors so one-parameter only equations and there is a table based on modem index numbers, the most straightforward approach you can think of. But instead of straightforward index numbers, I could imagine a list of ‘speed for slowest’, speed for second-to-lowest and so on. If it were decided that slowest modems need special treatment then that would be a neat and robust way of expressing it

But yet again, how to handle the case of ‘two in joint-slowest position’ counts with or without some kind of fuzzy banding / approximation / quantisation / who knows what system to hide close-but-unequal values, how to express that? It is a bit like sports results - n contenders in joint p’th place.

I need someone with a brain to deconfusr me.

I also though need some help understanding what is going on when you start to overload a modem, or nearly so. Unfortunately I also don’t understand what the Firebrick router is doing here and I’ve read the manual, which I don’t find very helpful (the FB2900 manual is available on the web), and that’s probably my fault.
Logged

burakkucat

  • Respected
  • Senior Kitizen
  • *
  • Posts: 38300
  • Over the Rainbow Bridge
    • The ELRepo Project
Re: Modem loading factor
« Reply #1 on: April 12, 2019, 02:34:01 AM »

Quote
Unfortunately I also don’t understand what the Firebrick router is doing here and I’ve read the manual, which I don’t find very helpful (the FB2900 manual is available on the web), and that’s probably my fault.

No, I don't think it's your fault. I have tried to understand the the Firebrick manuals (for the FB105, FB2500, FB2700 and FB2900) and find that they are quite opaque and tend veer off into "I'm going to lecture you mode". In a nutshell, they are poorly written and do not cater for the average, normal, person who just needs a little guidance in configuring the device.

As for your plea for help, I really do not know what to suggest.  :(
Logged
:cat:  100% Linux and, previously, Unix. Co-founder of the ELRepo Project.

Please consider making a donation to support the running of this site.
 

anything