Hi, I have Queue for limit clients speed but when my source line is between 80-90% of total, the speed test goes at 50%… for example, if I give 20M to my clients, when my source line (150 Mb) is about 110Mb… the speed test results are about 10-12 Mb…
It’s very difficult to match “speed test” traffic:
Speed test sites use lots of IP addresses everywhere
The IP addresses change all the time as new nodes become available and as nodes are taken down
The IP addresses are from the various companies that volunteer to host speedtest nodes, and not some centralized network like Netflix or something like that
The bandwidth has already been consumed on your Internet feed by the time it reaches your router, so you cannot give “priority” in a downstream direction very effectively. The ISP has already dropped a speed test packet that you would have prioritized, had it reached your router.
Speed tests use few connections in contrary to huge amount of connections running through your network out. Normally all connections share the bandwidth equally. Therefore it looks like speed tests show less than they should. You can implement a priority queue for those speed tests. But it is kind of cheating against the not always “correct” values shown by speed tests.
Well, I just did a wireshark capture of my own speedtest somewhere, and one thing that jumped right off the page is that the port number was 8080… and that the content contains DOWNLOAD JABCDEFGHIJABCDEFGHIJ
Note that this is just speedtest.net and of course there are many other speed test sites out there, and putting a content check can add overhead to your router because it’s now going to be forced to inspect all the way up to layer 7 and run regex expressions against the first 20KB or so (I forget the exact number) of each and every socket that matches the port number (I assume that netfilter is smart enough to check the faster things like port number before proceeding to do a content check)
You would need to do this kind of matching in the mangle table and do a connection mark whenever the match takes place. Finally, your priority queue would look for packets marked speedtest (by another rule which marks packets based on their connection mark)
And at the end of the day, I don’t think you’re going to be able to give lots of priority because of the fact that you’re downstream from the bottleneck.
Hi, and any way for example… people that are downloading at 100% (at 20Mb), when are downloading a biggest file to reduce the speed (at 10Mb) of this user only and when finish download the speed come back at 20 Mb, this looks good, but how can implement it?
Needs to be dynamic, for user that start download a file/s and keep downloading for x minutes, then Mikrotik reduce the connection of this user.
But my question is… this limit to all users to 1M when packets marked, right? Or limit each user to 1Mb? I mean, if 5 users downloading files more than 30 Mb, the 5 downloads will be reduced to 1M (1 Mb / 5 downloads = 200k each), is this?