IP Address question
Say you have a game that is hosted on multiple computer.
Client logs into a connection server at IP address 192.168.000.001 That server takes login name, password from the player and does what it has to do with it. Probably begins the loading of that players stats and inventory. The last time the player logged out he was in zone X. Question is, the server running Zone X is going to be behind the connection server with a different IP address of it''s own (say 192.168.000.005).
Does the connection server form a link between the two servers or does it send back a new IP address and Port for the client to connect to on the Zone server? That seems risky as anyone with the IP address and port would have access to this so I''m thinking that all connections flow through the main server but this means that the main connection server could have a tremendous load.
Guess I need to look up some stuff on server architectures (mainly how the physical machines are laid out and how traffic between them is handled). Anyone with some references on this?
This would be in reference to MMO setups as that''s the kind of network coding I am most interested in. Simple peer-to-peer and small client server setup and fairly easy, larger scale stuff involving multiple server machines is a bit more confusing because I have absolutely no knowledge on how these are typically set up.
Thanks for any input,
Webby
In the jargon among MMO programmers, the front-end server that takes the user''s name and password and then hands the connection off is a "front-end server" or "user server." Different teams use different names, but those are the two the guys around here use.
Because some players will be behind firewalls, you can''t initiate a connection from a different game (zone) server to the user; you have to tell the client which server to connect to, then let the client initiate the connection. You can warn the zone ahead of time; even pre-certify the player, to prevent hackers from some DOS attacks or establishing bogus connections.
You can still route all connections through one or more user servers for a given server cluster; since those servers don''t do any processing, their CPU load is small, and then all you need to worry about is handling all of those connections simultaneously, for which you will need to read up on high-load server architectures. Check into kqueue, poll, /dev/poll, and the like for more info.
-Hierophante
Because some players will be behind firewalls, you can''t initiate a connection from a different game (zone) server to the user; you have to tell the client which server to connect to, then let the client initiate the connection. You can warn the zone ahead of time; even pre-certify the player, to prevent hackers from some DOS attacks or establishing bogus connections.
You can still route all connections through one or more user servers for a given server cluster; since those servers don''t do any processing, their CPU load is small, and then all you need to worry about is handling all of those connections simultaneously, for which you will need to read up on high-load server architectures. Check into kqueue, poll, /dev/poll, and the like for more info.
-Hierophante
ehh.ehh.....192.000.000.001 is an illegal ip-address....try 192.0.0.1 instead...or 192.168.0.1, it makes more sense.
Goodnight
Goodnight
Step 1. Client A connects to Login Server.
Step 2. Login Server checks Client A''s login & password.
Step 3. Login Server determines that Client A should use Server Q.
Step 4a. Login Server tells Server Q to expect Client A.
Step 4b. Login Server tells Client A to use Server Q.
Step 5. Client A connects to Server Q.
Step 6. Server Q checks that Client A''s connection is expected.
Step 7. Game begins.
There are various nuances that can be added to this, such as the login server giving the client a token to authenticate with (requires some cryptography to be secure, but allows client to change IP addresses), but AFAIK this is the general scheme.
How appropriate. You fight like a cow.
Step 2. Login Server checks Client A''s login & password.
Step 3. Login Server determines that Client A should use Server Q.
Step 4a. Login Server tells Server Q to expect Client A.
Step 4b. Login Server tells Client A to use Server Q.
Step 5. Client A connects to Server Q.
Step 6. Server Q checks that Client A''s connection is expected.
Step 7. Game begins.
There are various nuances that can be added to this, such as the login server giving the client a token to authenticate with (requires some cryptography to be secure, but allows client to change IP addresses), but AFAIK this is the general scheme.
How appropriate. You fight like a cow.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement