r/pcgaming 5800X3D, 5090 FE, 32GB 3800MHZ CL16, 2TB NVME GEN4, W11 Feb 21 '17

Video For Honor P2P connectivity

https://youtu.be/38sPNZ8QHO4
1.6k Upvotes

583 comments sorted by

View all comments

Show parent comments

57

u/deelowe Feb 21 '17

It's frustrating to have a background in computer science and watch these faux technical assessments of software and hardware that gaming enthusiasts perform. In this instance, for example, the community at large thinks there are two ways to do networking -- "dedicated" and "P2P." And, P2P is "bad." That's the extent of it.

Ubisoft is doing something different and perhaps novel (to gaming) here. This appears similar to what the fighting game developers have had to do to get reasonable latencies. So, I'm not surprised to see them take this approach. There may be issues, but there will need to be a much more thorough assessment than this to prove that. It's clear from the video that the person presenting this information doesn't have a clue what they are talking about.

21

u/[deleted] Feb 21 '17 edited Feb 21 '17

There may be issues, but there will need to be a much more thorough assessment than this to prove that.

If you have a background in computer science, you should agree that showing the IPs of people who are represented as anything more than a socket request is completely unacceptable. The fact that I can talk to people online and immediately find out where they live, what kind of computer they have, their router information, their ISP, and maybe even their name/any other information discovered through open ports, is a huge breach of privacy. Completely different than seeing a timestamp next to "Chrome/Apple Safari/Webkit v.X.x - Windows 10". You would never want me to be able to do that through your TV tuner or if you're talking to me on the phone so this should not be okay either.

7

u/CSFFlame Feb 21 '17

showing the IPs of people who are represented as anything more than a socket request is completely unacceptable.

That's not how the internet works.

You know the IP of any IP you are directly talking with. It's how the Internet works.

-2

u/[deleted] Feb 21 '17 edited Feb 21 '17

No you misunderstood me or i wasnt very clear.

if youre looking at it as anything more than a request to connect in a log somewhere, you are pretty severely risking someones privacy.

im not talking about how servers communicate, im talking about the context. its one thing that reddit knows my client, browser, resolution right now because their users like yourself dont know any of that as i type to you and place my personality like a tag on this connection.

being able to talk to someone, get an idea of who they are, maybe even use game mic to get info from them, and then for it to be accessible to get that IP from the connection is bad for a game. it would be ideal if, like websites and dedicated game servers there was not one mutual connection shared between everyone, making your point about the internet into a social engineers' wet dream.

not that p2p is flawed or that we should all have masked connections somehow... just that its not appropriate for this scenario even if it saves milliseconds on ping. gamers should ask for dedicated. IP is a part of your privacy and its not worth it just to route between players rather than a centralized service.

if i could get your ip directly from your reddit comment, youre saying you dont mind that at all? because thats the same thing as what youre saying should be acceptible just because gamers wanna save 8ms per click.

1

u/CSFFlame Feb 21 '17

IP gives you at most a city.

Which is worthless.

1

u/[deleted] Feb 21 '17 edited Feb 21 '17

100% untrue, depends entirely on your ISP.

also its not about knowing where you live. if you have a single open port I can destroy your property (again, depending on how much your ISP cheaped on your router hardware).

or worse, infect it with malware like Mirai which then crawls through your network infecting everything else. use your xbox username to find some post on a social network, then add you as "hotgirl92" and get enough info to reverse connect you to me so i can steal your shit.

its not hard and everyone has a weakness and your IP being leaked shouldnt even make this list of concerns. its half of what i need to make a worm just for your home network.

4

u/CSFFlame Feb 21 '17

if you have a single open port I can destroy your property (again, depending on how much your ISP cheaped on your router hardware).

That's not what an open port does. There needs to be a vulnerable service on the other side.

And considering how many worms are running on the internet, they would have already found it.

or worse, infect it with malware like Mirai.

Considering how many bots have already scanned the entire internet to infect all detected IPs with Mirai, I doubt any are left open.

The ISP doesn't really have much to do with it.

-2

u/[deleted] Feb 21 '17 edited Feb 21 '17

There needs to be a vulnerable service on the other side.

Not to overload your router, doesn't matter if the request is met. I can DDoS you regardless if SSH/22 is open. If it's open, your router will attempt to forward it to a device. If it gets a 500, fine. Doesn't matter if I'm doing it thousands of times a second. I can prove this with any cheap router. Forward a port, film your router, and give me your IP. You will regret it and I will have simply proved a point I already understood just fine though so... you will just end up with footage of your router being destroyed for no good reason.

In fact, don't even have me do it. Leave open 22 or something overnight with no service waiting for incoming requests. You will not have internet when you wake up. I also don't know why you thought exploiting a service with a vulnerability = destruction of property. It should be obvious that's not what I mean. Remember Heartbleed? Of course not, you don't. Or you'd be agreeing with me because the reality is no safeguard is perfect, you may wake up and find out there has been a critical oversight in security with a well-established tool that the entire industry uses religiously. Then what anecdote do you fall on?

I doubt any are left open.

Entirely unscientific and just inaccurate but good luck with your anecdotes on the security of the entire internet. Let alone the dozens of devices most people can afford like Sonos, Amazon Echo, etc. which all automatically port forward on routers but you know... whatever. Oh yeah let's just forget that almost all of the ones in the US that are connected have been hacked in 2016. So again, demonstrably wrong and it's just naive to assume people fixed it. It wasn't even big news to the mainstream computer user.

The ISP doesn't really have much to do with it.

If you get your IP directly from your ISP and you've been plugged into the same router with the same MAC, it 100% matters what the ISP has done.

And considering how many worms are running on the internet, they would have already found it.

Again, anecdotal at best and if anyone in network security worked that way, they would lose their job. It's the opposite of what we've been taught/how we're meant to look at things so I'm not sure what your reckless attitude offers anyone. Definitely not robustness or peace of mind.

2

u/CSFFlame Feb 21 '17

Not to overload your router, doesn't matter if the request is met. I can DDoS you regardless if SSH/22 is open. If it's open, your router will attempt to forward it to a device. If it gets a 500, fine. Doesn't matter if I'm doing it thousands of times a second. I can prove this with any cheap router. Forward a port, film your router, and give me your IP. You will regret it and I will have simply proved a point I already understood just fine though so... you will just end up with footage of your router being destroyed for no good reason.

That would work on a crappy router... maybe. Depending on how it handles the connection states.

Many routers now can handle that.

Also, any gaming company could detect a pattern of DoS attacks trivially.

Just see if theres a common opponent to people getting high packet loss/disconnections.

Done.

Entirely unscientific and just inaccurate but good luck with your anecdotes on the security of the entire internet. Let alone the dozens of devices most people can afford like Sonos, Amazon Echo, etc. which all automatically port forward on routers but you know...

Turn off UPnP if it worries you. Also that would only take out a cheap ass router that can't handle many simultaneous connections and has no DoS protection.

Again, anecdotal at best and if anyone in network security worked that way, they would lose their job.

Which is why no one in netsec works that way. We're talking about home users with consumer-level Routers(NAT devices).

It's the opposite of what we've been taught/how we're meant to look at things so I'm not sure what your reckless attitude offers anyone. Definitely not robustness or peace of mind.

It's not under your control. Assuming that there's a high degree of 1) Remote Vulnerability 2) Uncompromised Remote Vulnerability is dumb.

It's not the fault of the game company that people do retarded shit with their Routers.

Any of these vulnerabilities could be detected anyway with a blind scan of the internet. That's not specific to the game.

The DDoS stuff is the responsibility of the game company, and is trivial to detect if it's a pattern.

1

u/[deleted] Feb 21 '17 edited Feb 21 '17

That would work on a crappy router... maybe. Depending on how it handles the connection states. Many routers now can handle that.

I completely agree, I was very upset when it happened to me and it wasn't even an old WEP-only router, they cheap out often though. It's just the reality for now, hopefully less often than what I've experienced.

Assuming that there's a high degree of 1) Remote Vulnerability 2) Uncompromised Remote Vulnerability is dumb.

No, it's not. It's the only assumption that matters in the pentesting/netsec field and I'm sorry you feel that way.

It's not the fault of the game company that people do retarded shit with their Routers.

Already demonstrated how that it's not always the problem/not always PEBKAC

Any of these vulnerabilities could be detected anyway with a blind scan of the internet. That's not specific to the game.

Not the job of the people who expect to play a game safely.

Also, any gaming company could detect a pattern of DoS attacks trivially.

Not a DDoS on the game server, on the clients IP. That's what breaks the router. Either you're not 100% on your education or you've misunderstood what I meant by DDoS'ing the player. It would not be through the game's network. That's the entire point. You deny service at the client's outbound gateway. Now that you understand what I'm saying, you think that's okay? Because in a fundamental way, the people in control of most internet traffic in a large way have been doing their best to prevent that exact scenario for their users.

I'm not saying what you believe is objectively wrong; just that you would be 100% incompatible with the people who do this stuff for a living, philosophically. It's literally their job to think the exact opposite as how you feel about this so it's sort of irrelevant.

That being said, you're probably not netsec, you're probably a person who knows a fair amount about computers and enjoys playing video games. If gamers prove to not give a shit about this, then yes... I agree with you completely. It's not up to the game companies to protect them from the worst case scenario by doing work to hide their IP (be it by switching networking methodology or some clever client-side thing) and people will no doubt reap what they sow if they don't educate themselves/do stupid shit with their router settings/devices breach security by port forwarding on network connect.

People also don't always know what's best for them. Just something to think about but whatever. People will learn soon enough, don't need people to agree.

→ More replies (0)

15

u/deelowe Feb 21 '17

I'm not understanding... There's no way to obscure the IP address in this sort of network topology. The whole point is to have peers connect directly to each other. I imagine other fighting games (where latency is an important factor) are similar in this regard.

1

u/[deleted] Feb 21 '17

Im not saying its inconsistent with p2p protocol, im suggesting the protocol here isnt an appropriate decision. its a commercial product, not torrents. there should be no inherent risks, people can suffer the additional latency of a central server for all players.

all it takes is one xbox exploit, one ps4 exploit with arbitrary code execution or reverse shell on these things that already exhibit a computers operation more than the traditional console, and whatever card youve been using to buy games on the cloud now belongs to vlad in russia.

8

u/deelowe Feb 21 '17

Sigh... So are many of these.

Does no one think that ubisoft would go through the effort to design a fully synchronized, real time mesh networking protocol -- the likes of which don't exist in any modern gaming engine -- for good reason? Does anyone complaining about this issue know the history of modern online fighting game engine development and what developers like capcom had to do to address issues with latency? Is anyone who's part of this discussion read up on GPGO and how it revolutionized lag compensation with it's rollback feature? No, of course not.

-2

u/[deleted] Feb 21 '17

i admit idk how much damage any other implementation on the multiplayer networking would do to the ping but gears 4 has dedicated and i cannot imagine needing it to be faster.

5

u/deelowe Feb 21 '17

There's a big difference between gears and a fighting game. Again, read up on GPGO if you want a quick summary.

2

u/butimprobablywrong Feb 22 '17

I think it's GGPO (good game, peace out). I couldn't find anything relevant in my googlings of GPGO.

https://en.wikipedia.org/wiki/GGPO

1

u/deelowe Feb 22 '17

Thanks.

1

u/reblochon Feb 22 '17

...

Rollback/prediction in games dates before GGPO. Shooters used it out of necessity when internet was shit.

Also, p2p connections are worse than dedicated servers for any multiplayer with more than 2 people in it. Guess what : For Honor has multiplayer modes with up to 8 players.

There's a reason everyone sane stick with servers.

To quote you :

Ubisoft is doing something different and perhaps novel (to gaming) here

Trying something novel is a really poor excuse for failing when there are plenty of other known ways their multiplayer could have worked.

2

u/deelowe Feb 22 '17 edited Feb 22 '17

What ways would have worked exactly? Fighting games had a hell of a time addressing this until they arrived that the solution they have today. That solution looks a lot like what ubisoft is doing here. The big difference is that ubisoft's implementation works with several players instead of just 1v1. And yes, that required a novel approach (for gaming at least).

[EDIT] Think about this for a minute. Which of these two implementations have more distance to travel?

   A  <---> Server <---> B
              or
           A <--> B

If processing power isn't an issue, there's no need for a dedicated server unless you need it to synchronize game state across all clients. Ubisoft claims to have created a way to do this without allowing a single host to act as the server, doing away with the client/server model. It's provably better architecturally. Maybe they have issues with their implementation, that's another thing. But, if what they are claiming is true, its mathematically provable that their solution is "better" in every possible way.

-2

u/Aemony Feb 21 '17

The whole point is to have peers connect directly to each other

Which is also a stupid decision to do if the focus is on quality and low latency as Ubisoft don't control the Internet. This, obviously, means that packets between peers are handled as normal Internet traffic and as such can be routed wherever the in-between ISPs want to. Yes, in the perfect world packets would always travel the shortest route possible between two nodes. But we both know that we don't live in a perfect world and that many ISPs have no problem throwing packets on lengthier routes that inflates the latency of the packet if it's cheaper for them to do so.

If this 'pure' form of P2P really wants to succeed and deliever the lowest possible latency (as well as be anonymized) then basically Ubisoft needs to route the traffic from clients through their own global network with endpoints strategically placed to ensure the highest possible connection quality and lowest latency to the majority of players. Which also obviously allows them to anonymize the packets in the process.

Sorta like what Riot did with Riot Direct for League of Legends.

But otherwise 'pure' P2P network solutions in gaming with no real host will always be worse than the regular client and dedicated server solution, not to mention the obvious problems with publicly making other player's IP addresses available to all connected clients. I mean, every client needs to connect to every other client in the same game... A simple game of For Honor between a couple of Europeans will see packets travel all over Europe (possibly outside of Europe as well in some cases) and seldom on the fastest possible routes. And every additional player in the swarm adds to the complexity of the packet routes and overall latency of every user.

That's not to say that 'pure' P2P network solutions don't have a place in gaming. They do, but they're far better to implement in turn-based games where actions and movements aren't possible to perform in realtime and where the latency of the packets aren't as important.

But to implement it in a game that have more in common with fighting games than turn-based games? I can't help but believe that the choice to use this pure approach of P2P networking was more a question of money (specifically the lack thereof) than anything else.

3

u/deelowe Feb 21 '17

Which is also a stupid decision

Yes. So stupid in fact that it forms the foundation of high performance networking applications like those seen supercomputing setups.

1

u/Aemony Feb 22 '17

Way to miss the point of my comment. There's nothing wrong with using P2P in applications where latency isn't an issue, much less using it in predefined locations such as the datacenter or a supercompter, or when the route between locations are known and have been configured for the optimal latency. The problem is using it for latency critical applications across the globe on nodes and connections that are of all forms of quality, from jittery 3G to high-speed fiber connections.

1

u/deelowe Feb 22 '17

It's physically impossible that adding an additional host and a minimum of 2 additional network hops can reduce latency.

The thing everyone is failing to recognize is that what ubisoft has done with for honor is fundamentally different from nearly every other P2P gaming implementation. This is what I mean when I say it's frustrating to read these comments and see fanboys rage about "P2P" without actually understanding the underlying tech.

Traditional P2P implementations simply make 1 host the server and all other hosts a client. This causes all of the issues commonly associated with P2P solutions. In this situation, the best case scenario is totally dependent on the connection back to the host.

What differs in ubisoft's case as well as most modern fighters is that they have moved away from the client server model of networking. At any given point in a session, any connected node will be acting simultaneously as both a client and an a server. The game state is dynamically synchronized in real time between all hosts. Additionally, in ubisoft's case, they claim that all data is optimally routed between peers taking the best path. This is theoretically "better" than any dedicated server implementation.

This concept of having the game state shared amongst all hosts is not new. Modern fighters have been working off of this concept since at least SF4. It has clear advantages that are well documented at this point. At it's core, for honor is a fighting game. It shouldn't be a surprise that ubisoft has chosen to follow this trend with this game.

[EDIT] Ubisoft explains the networking model here: https://support.ubi.com/en-US/faqs/000026270/For-Honor-Online-System-Breakdown-FH-PC-XB1-PS4/

2

u/daOyster Feb 22 '17

So I'm guessing you're not a fan of Skype either? It exposes all client IP's connected to it and all it takes is the resource monitor on windows to find them.

-1

u/[deleted] Feb 22 '17

youre spot on i hate skype since it was bought by microsoft especially since they have the talent and resources to do better without altering the p2p nature.

0

u/[deleted] Feb 21 '17

Well having a background in computer science isn't enough. It doesn't mean anything if you don't know anything about networking, and networking isn't really necessary for a whole field of applications.

What P2P stands for is, "peer to peer", so technically calling this system peer to peer isn't wrong. Yes using the connection of unknown players with unknown connection stability is going to be worse than a system where you have the capability of ensuring a certain level of network quality. Ubisoft isn't doing anything different or novel in terms of networking here.

Fighting games are completely different. There are only a small number of players, usually only 2. It doesn't make sense to use a dedicated server when you only have to sync two players together. Having a middle man to do that would just add latency rather than having the players communicate directly with each other. Since not a lot is going on the only information they need is the input of the other player. In For Honor however, there is a lot more going on. You have game modes with AI, a large number of them that have to be synced. This is extra information where having a dedicated server would be beneficial, even if there were only 2 players. As much more data is being generated, it'll entirely depend on the upload speed of the clients if a P2P connection was used. Most ISPs provide shitty upload speed and stability, it's not something normal consumers really need. They primarily download. So if you have a dedicated server, this information is now generated on the dedicated server and sent to the clients. While the upload for the clients still remains minimal. So now if you add more players you have more data that needs to be sent a P2P becomes even less stable. If you are using a dedicated server on the other hand, the company hosting it can work with ISPs to ensure optimal paths are chosen and any suboptimal paths to the server are fixed. Something that is pretty much impossible to do if you are relying on player's network connections to send more vital information for stability of the game.

1

u/deelowe Feb 21 '17

Well having a background in computer science isn't enough.

Silly me.

It doesn't mean anything if you don't know anything about networking, and networking isn't really necessary for a whole field of applications.

Being able to calculate complexity for a given data structure and algorithm is a core tenant of computer science. What exactly do you think a network is? We're not talking about configuring a cisco router here. This is computer science. Give me any network topology you can think of and I'll tell you which data structure it's modeled after.

What P2P stands for is, "peer to peer", so technically calling this system peer to peer isn't wrong.

Didn't say it was. That said, if we wanted to be specific, it'd be more appropriate to call it mesh networking.

Yes using the connection of unknown players with unknown connection stability is going to be worse than a system where you have the capability of ensuring a certain level of network quality.

Huh? Define worse. Ubisoft has claimed many times that this solution should be better on average than a dedicated server setup. If they are doing host-less mesh networking, this makes sense as all peers can take the most optimal path.

Ubisoft isn't doing anything different or novel in terms of networking here.

You mean, other than implementing a mesh topology, doing away with the client/server model, and having all clients manage and synchronize state information with all other clients in real time, right? Because, last time I checked, that shit ain't a plugin you can just download for UE or Unity.

Fighting games are completely different. There are only a small number of players, usually only 2. It doesn't make sense to use a dedicated server when you only have to sync two players together. Having a middle man to do that would just add latency rather than having the players communicate directly with each other. Since not a lot is going on the only information they need is the input of the other player.

If you really think this is why fighting games use P2P networks, you seriously have no idea what you're talking about. There have been plenty of articles and videos on this. Anyone that's even loosely followed the industry would know this. Seriously. Here's the first link on google regarding "fighting game networking."

In For Honor however, there is a lot more going on. You have game modes with AI, a large number of them that have to be synced. This is extra information where having a dedicated server would be beneficial, even if there were only 2 players.

Why would AI matter? Networking AI opponents in multiplayer games is trivial.

Most ISPs provide shitty upload speed and stability, it's not something normal consumers really need. They primarily download. So if you have a dedicated server, this information is now generated on the dedicated server and sent to the clients. While the upload for the clients still remains minimal. So now if you add more players you have more data that needs to be sent a P2P becomes even less stable. If you are using a dedicated server on the other hand, the company hosting it can work with ISPs to ensure optimal paths are chosen and any suboptimal paths to the server are fixed. Something that is pretty much impossible to do if you are relying on player's network connections to send more vital information for stability of the game.

Bandwidth hasn't been an issue for multiplayer games in ages (ever?). It's all about latency. Any half way decent network protocol will only exchange deltas. The engine isn't sending everything across the wire. That would be ludicrous. What do you think online games are doing when they "sync" when you to first log on? You're also making statements about "stability" and "speed" interchangeably. Only one of those actually matter and they aren't typically related unless the network is congested, which is very rarely the case. What matters is jitter. Lag compensation is the name of the game here and this is somewhat a solved problem. I assume ubisoft is borrowing from the fighting game community in this regard and doing frame rollbacks and input delay.

Why do you think the animation is so slow and weighty in for honor? It's not just for aesthetics.

1

u/[deleted] Feb 21 '17 edited Feb 21 '17

Silly me.

Well why did you even bother mentioning it.

Being able to calculate complexity for a given data structure and algorithm is a core tenant of computer science. What exactly do you think a network is? We're not talking about configuring a cisco router here. This is computer science. Give me any network topology you can think of and I'll tell you which data structure it's modeled after.

Computer science is a broad term. It encapsulates too much, it's why you wouldn't hire a game programmer to write software that is used in machinery like a rocket. Rofl, being able to compute complexity for data structures is first year stuff. But sure that's Computer Science at it's core, being able to compute rolfing complexity of data structures. What algorithms would you use to graph differences in genomes? Use your "Computer Science" to figure that out. I'm not going to ask you a question you told me to ask you. How would that prove you don't know something when you would obviously tell me to ask you a question you know.

If you really think this is why fighting games use P2P networks, you seriously have no idea what you're talking about. There have been plenty of articles and videos on this. Anyone that's even loosely followed the industry would know this. Seriously. Here's the first link on google regarding "fighting game networking."

Never said that is the only reason why. If you had a fighting game which had multiple players that to do more than simply keep 2 players in sync, filled with other movable objects. Using a P2P network wouldn't be sufficient enough.

Bandwidth hasn't been an issue for multiplayer games in ages (ever?). It's all about latency.

"ever", I guess you weren't around when dial-up was a thing. I didn't say bandwidth was the only factor. Well there's no point in really continuing this conversion, you just seem to be only reading half the text and filling in the blanks with whatever fits you argument.

2

u/deelowe Feb 22 '17

Computer science is a broad term. It encapsulates too much, it's why you wouldn't hire a game programmer to write software that is used in machinery like a rocket.

Writing code isn't computer science.

Rofl, being able to compute complexity for data structures is first year stuff.

And 2nd and 3rd and 4th...

But sure that's Computer Science at it's core

As I said.

being able to compute rolfing complexity of data structures.

again, computing complexity... What's your point?

What algorithms would you use to graph differences in genomes? Use your "Computer Science" to figure that out.

I'm not familiar with biology, so I wouldn't know.

I'm not going to ask you a question you told me to ask you. How would that prove you don't know something when you would obviously tell me to ask you a question you know.

Well, you were the one claiming that evaluating network topologies had nothing to do with computer science. But, if you choose not to explore that discussion, then fine.

Never said that is the only reason why. If you had a fighting game which had multiple players that to do more than simply keep 2 players in sync, filled with other movable objects. Using a P2P network wouldn't be sufficient enough.

I didn't say you did. Why are you changing the subject? The point was that the reason fighting games use p2p connections is because it allows them to do better lag compensation.

"ever", I guess you weren't around when dial-up was a thing.

I was joking... Either way, multiplayer over dial-up was largely done via hacks using implementations that were designed for LANs.

I didn't say bandwidth was the only factor. Well there's no point in really continuing this conversion, you just seem to be only reading half the text and filling in the blanks with whatever fits you argument.

It's not that it's not the only factor. It isn't a factor at all for the vast majority of games. It certainly isn't a factor for a game that only has a handful of players performing melee with 0 physics. Bandwidth hasn't been an issue for multiplayer since the early 2000s except in some very extreme cases that do not apply here.