Advertisement Jump to content
Sign in to follow this  

A Network Design

This topic is 4894 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

ok, I'm attempting to design a networking system, no just restricted to server / client, but also, peer 2 peer, and other systems. I came up with this. It is a crude attempt, but I'd like to start on networking, since well, it tends to be my job after all. 1) A machine is basically a server. It holds a list of accepted conenctions (to other machines). 2) Machines are controled through callbacks and commands. For example, in case of a pure server / client architecture, a client would never have more than one connection, and that connection would be to the server. The negociator would work only as a client (never accept connections directly, but manage responses from the server). 3) A negociator will authorise a connection from another machine, or not. This also allows to go through the NAT negociation process, and so on (passwords, encrypting keys, ...). It is also controlled by callback mechanisms (to allow only a max number of connections, for example). It has a ban list, to specific forbidden IPs (or connections, ISPs, ect...). Pending connections are connections being in the process of authorisations. One a handful of pending connections is allowed, to prevent DOS and other nasties. If an incoming connection request is received, either send a BUSY directly to the IP, or nothing. 4) Connections handles the machine-to-machine traffic and states. Sockets have a incoming bitstream, to bundle data into packets of desirable size. One problem I haven't accounted for, is packet being chopped and split into several messages (due to MTU and such). 5) Sockets, are just that. A plug between two machines. There will also be a lag simulator (I have a very broad use of the word lag), to simulate packet drops, duplication, out-of-order, latencies. My ultimate goal is to design a UDP-only net protocol, which will deal with these problems. Again, fragmentation (when a packet is chopped to fit the net requirements) is a huge problem, I'm not sure how to tackle it. so, wadayathink? :) This 'architecture' should allow me to design server / clients, as well as peer to peer, or both at the same time (say, for voice comms). Also, I have the possibility to run several machines on one computer, for bots (Battefield style), or a non-dedicated server.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!