Forgot your password?
typodupeerror
User Journal

Chacham's Journal: Question: Define "Client-Server" and "Peer to Peer" 7

Journal by Chacham

Can you define "Client-Server" and "Peer to Peer". What's the difference inbetween them. Which is AIM, X, a web server, or other applications?

Someone I know is working on some protocol and needed a definition. I need to ask him again what his definition was, because it got me thinking and I forgot exactly what he said. :P So I came up with something, which he mentioned was too shaky allowing many things to be classified as both. So I came up with others. I need to bounce them off him when I see him again. I found the thought alone somewhat intriguing, and decided to ask here.

Regardless of what other people say it is, what do you think it is?

This discussion has been archived. No new comments can be posted.

Question: Define "Client-Server" and "Peer to Peer"

Comments Filter:
  • Can you define "Client-Server" and "Peer to Peer". What's the difference inbetween them. Which is AIM, X, a web server, or other applications?

    Client-server: Two programs performing distinct functions, the server providing a service to the client but not vice-versa. AIM, X and web servers are all in this category: you have distinct clients and servers.

    Peer-to-peer: A single program (or type of program) communicating with other such programs, each providing services to the other. A fax machine could be in

    • Don't forget the sometimes-considered backwards client/server of X. Here the user is running the server and the backend machine is the client. Then toss in XDMCP broadcasts and you've got a really intersting mix of servers and clients.

      There's another thing I'd like to point out that yes your napster view is a correct mix of p2p and client server, but sometimes people confuse the napster hirarchy with a game server (for example the new Wolfenstein: Enemy Territory). Here there two client/server setups, o
      • Don't forget the sometimes-considered backwards client/server of X. Here the user is running the server and the backend machine is the client. Then toss in XDMCP broadcasts and you've got a really intersting mix of servers and clients.

        Yep, X's terminology gets a lot of people confused. It makes sense with the right viewpoint, though: the server is the program which sits around waiting for network traffic asking it for a service, the client is the program which appears and starts talking to an existing ser

        • To confuse things further, you could have a P2P game: especially for two-player games, the "server" would just act as a directory to locate your opponent's IP, then the game traffic would be P2P...

          I've designed and implemented true P2P games, the traditional approach is that one machine is acting as the central control, but any client could be promoted to do such a thing. Thus, each applicaiton running contains all of the tools needed to entirely support the system and take and relinquish control on the
  • Client server, draw a circle in the middle of a piece of paper. Make it medium sized. Now draw a bunch of small circles everywhere else. Connect each small circle to the medium server by drawing a line between them. That is client server (its just a simple example, you can put a few more medium circles, but lines are small circle to medium circle, or medium to medium; no small to small).

    Now, draw the same circles, but connect any two types of circles to one another. You can connect one small to five
  • We prefer the terms "resource" and "consumer" to "server" and "client", and we apply them at the process level, not the machine. Thinking about it that way makes it a lot cleaner - no need to tie yourself in knots trying to remember its the opposite way round for X for example. A consumer connects to a resource. A process that is both a consumer and a resource is a "filter". A "peer" in our application is an identical resource or filter used for load balancing. I don't think we have any circular relationshi

He's dead, Jim.

Working...