More speed for test speed websites

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…

Who I can fix it for priorize speed test?

Regards!!

Unfortunately, you’re pretty much screwed.

  1. 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
  1. 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.

Thanks for reply

But it´s not possible with Layer 7 Protocol, using the website address?

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.

Regards!!

I am trying this:

/ip firewall mangle
add action=mark-packet chain=prerouting comment=30M~ connection-bytes=30720001-0 disabled=no in-interface=WAN new-packet-mark=www_in_30M passthrough=no protocol=tcp src-port=80

/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=1M name=www_down_30M-~ packet-mark=www_in_30M parent=global-in priority=8 queue=default

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?

Hi, how can I limit for each client?