Post by exaltedvanguard on Jan 4, 2021 17:20:37 GMT -5
There's been some talk about using Netduma routers to manipulate matchmaking recently, so I figured this would be a good place to write up what's actually happening with them.
I'd like to start off by saying that this project was not inspired by any desire to manipulate SBMM. While I dislike it, I feel like it's gotten significantly less aggressive since launch. I also feel like purposefully manipulating matches for easy wins is a grey area that's approaching the realm of cheating/exploiting.
I was first inspired to investigate the servers after the recent SBMM analysis showed that SBMM can affect ping. Since seeing those videos, I started checking my ping each match. I don't claim to be a pro by any means, but I think that when I'm sweating it out I would be at the very least within the top 10% of players - so there's a chance that my ping might be affected. Lo and behold, I found that switching my ping was fluctuating greatly depending upon my play. My ping to some servers was 20ms, while others was 40ms. My ping was literally DOUBLING. Theoretically due to SBMM. While 40ms is certainly an entirely playable ping, I find it unacceptable that my connection, which could literally be twice as good, is being hamstrung by this system. Ping. Is. King.
So down the rabbit hole we go.
So first off, the most well known solution to managing server selection is the Netduma routers which let you establish a "geo-filter" to make it so you connect only to servers within a specified region. This is a fancy UI over the most basic of networking tools - a firewall. Netduma has simply compiled a list of CoD server IPs and their approximate location. Select an area on a map and it accepts connection to the servers located there, while dropping connections from any other servers. Presumably it does some idiot proofing and uses the best fit if you select an area with no servers at all. But that's really all it is. A fancy firewall that blocks every server in your region except the ones you choose.
Since the game can no longer connect to any other server, it is forced to put you within the servers you chose. There is nothing magical about this and, given a list of server IPs, you could replicate this on pretty much any router on the market. Or in windows. Without paying like $300 for a router. You literally just have to monitor your connections to the game and write down IPs (or their WHOIS address ranges), then add them to a firewall rule.
Now let me explain why Netduma's geofiltering is dumb. It can actually HARM your performance. The internet does not always follow a geographical route that might intuitively make sense. I live on the western side of Florida. One might think that the best servers for me would be the ones in Miami. They're close, right? And if I used geofiltering, that's what I'd get. But I actually get a better connection to the servers in Atlanta than I do to the servers in Miami, despite Miami being significantly closer. This is because of my ISP's routing.
ISPs partner at various server farms called data exchanges. This is where the data from one network can enter into a different network. Its how someone's connection from the ISP Comcast could reach a server that's hosted on the ISP Spectrum's network.
In order to reach the Miami servers, my connection actually travels up the west coast to a data exchange located in Atlanta Georgia, then comes back down the east coast of Florida to reach Miami. That's a whole lot of extra travel when I could have just connected to a server in Atlanta. So just because a server is geographically closer doesn't necessarily mean it will have a lower ping. But If I did the intuitive thing that geofilter would suggest, I would be picking a suboptimal server.
The only way to guarantee good performance is to actually test it yourself. If you're being connected to servers with higher than normal ping, log the IP and block that address range in your firewall. Repeat until you're only connecting to servers with acceptable performance. (Protip, only block the connection to that server to your console/PC instead of your entire network to avoid adverse effects).
On to SBMM manipulation.
Can this be used to manipulate SBMM? Yes. No. Sort of. If you are restricted to only connecting to a select group of servers, that means that you are limiting the number of players you can be connected to. Since there is a smaller pool of players to choose from, it will be more difficult for the matchmaking algorithm to find players at the extreme ends of the skill spectrum. So theoretically speaking, a high level player could get easier lobbies since there will be fewer players of his skill in the reduced player pool.
However in practice it doesn't quite work out that way. While the exact number isn't public there are roughly 15 server farms serving North America. And 1/15 of the North American population is... Still a ton of people. So can it help? Theoretically. But it's not like you're just going to be fighting timmy-no-thumbs all day.
You could also attempt to restrict your connection to some other world region you believe to be generally less-skilled than your own, but you will take a significant hit in ping/connection quality. This is simply not going to be an option for NA players. This *might* be feasible for European players, but I doubt it. And regardless, you'll likely run into the same issue: any given server is likely going to have enough players that you're going to be playing against similarly skilled players.
So there you have it. Geofiltering demystified.
I will add that my tinkering has revealed two other ways to potentially manipulate matchmaking, however I can't think of any legitimate use for them (like improving ping) so I will not be sharing them.
I'd like to start off by saying that this project was not inspired by any desire to manipulate SBMM. While I dislike it, I feel like it's gotten significantly less aggressive since launch. I also feel like purposefully manipulating matches for easy wins is a grey area that's approaching the realm of cheating/exploiting.
I was first inspired to investigate the servers after the recent SBMM analysis showed that SBMM can affect ping. Since seeing those videos, I started checking my ping each match. I don't claim to be a pro by any means, but I think that when I'm sweating it out I would be at the very least within the top 10% of players - so there's a chance that my ping might be affected. Lo and behold, I found that switching my ping was fluctuating greatly depending upon my play. My ping to some servers was 20ms, while others was 40ms. My ping was literally DOUBLING. Theoretically due to SBMM. While 40ms is certainly an entirely playable ping, I find it unacceptable that my connection, which could literally be twice as good, is being hamstrung by this system. Ping. Is. King.
So down the rabbit hole we go.
So first off, the most well known solution to managing server selection is the Netduma routers which let you establish a "geo-filter" to make it so you connect only to servers within a specified region. This is a fancy UI over the most basic of networking tools - a firewall. Netduma has simply compiled a list of CoD server IPs and their approximate location. Select an area on a map and it accepts connection to the servers located there, while dropping connections from any other servers. Presumably it does some idiot proofing and uses the best fit if you select an area with no servers at all. But that's really all it is. A fancy firewall that blocks every server in your region except the ones you choose.
Since the game can no longer connect to any other server, it is forced to put you within the servers you chose. There is nothing magical about this and, given a list of server IPs, you could replicate this on pretty much any router on the market. Or in windows. Without paying like $300 for a router. You literally just have to monitor your connections to the game and write down IPs (or their WHOIS address ranges), then add them to a firewall rule.
Now let me explain why Netduma's geofiltering is dumb. It can actually HARM your performance. The internet does not always follow a geographical route that might intuitively make sense. I live on the western side of Florida. One might think that the best servers for me would be the ones in Miami. They're close, right? And if I used geofiltering, that's what I'd get. But I actually get a better connection to the servers in Atlanta than I do to the servers in Miami, despite Miami being significantly closer. This is because of my ISP's routing.
ISPs partner at various server farms called data exchanges. This is where the data from one network can enter into a different network. Its how someone's connection from the ISP Comcast could reach a server that's hosted on the ISP Spectrum's network.
In order to reach the Miami servers, my connection actually travels up the west coast to a data exchange located in Atlanta Georgia, then comes back down the east coast of Florida to reach Miami. That's a whole lot of extra travel when I could have just connected to a server in Atlanta. So just because a server is geographically closer doesn't necessarily mean it will have a lower ping. But If I did the intuitive thing that geofilter would suggest, I would be picking a suboptimal server.
The only way to guarantee good performance is to actually test it yourself. If you're being connected to servers with higher than normal ping, log the IP and block that address range in your firewall. Repeat until you're only connecting to servers with acceptable performance. (Protip, only block the connection to that server to your console/PC instead of your entire network to avoid adverse effects).
On to SBMM manipulation.
Can this be used to manipulate SBMM? Yes. No. Sort of. If you are restricted to only connecting to a select group of servers, that means that you are limiting the number of players you can be connected to. Since there is a smaller pool of players to choose from, it will be more difficult for the matchmaking algorithm to find players at the extreme ends of the skill spectrum. So theoretically speaking, a high level player could get easier lobbies since there will be fewer players of his skill in the reduced player pool.
However in practice it doesn't quite work out that way. While the exact number isn't public there are roughly 15 server farms serving North America. And 1/15 of the North American population is... Still a ton of people. So can it help? Theoretically. But it's not like you're just going to be fighting timmy-no-thumbs all day.
You could also attempt to restrict your connection to some other world region you believe to be generally less-skilled than your own, but you will take a significant hit in ping/connection quality. This is simply not going to be an option for NA players. This *might* be feasible for European players, but I doubt it. And regardless, you'll likely run into the same issue: any given server is likely going to have enough players that you're going to be playing against similarly skilled players.
So there you have it. Geofiltering demystified.
I will add that my tinkering has revealed two other ways to potentially manipulate matchmaking, however I can't think of any legitimate use for them (like improving ping) so I will not be sharing them.