Server & User Communication: Discovery, Maintenance, and Direct Chat Protocol, Study Guides, Projects, Research of Computer Science

The design of a protocol for server-to-server communication during server discovery and maintenance, as well as user-to-user communication through direct chat. The protocol includes messages such as 'server hello', 'server hello acknowledgement', 'server connect', 'server count estimate', 'server user/agent list update', 'server user/agent list query', 'server user/agent search query', 'server alive', and messages for user-agent communication like 'user/agent set alias', 'user/agent alive', and 'user search query'. The protocol assumes servers connect to a well-known multicast address and port, and uses both multicast and unicast messages for different objectives.

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 09/17/2009

koofers-user-dgi
koofers-user-dgi 🇺🇸

10 documents

1 / 4

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Project 3 Protocol Design
Francisco J. Garcia-Ascanio
Patrick Dugan
Project 3 Protocol Design
The following assumptions are made for server to server communication:
At launch servers are able to connect to a well known multicast address and port.
Servers connect to N neighbors based on the following equation:
N = Ceil( log2(Number of Servers in the Network) + 1 )
All messages send, either multicast or unicast, are serialized objects.
Server Discovery Protocol
Server to Server
Message: Server Hello
Objective: Server sends this message to initiate the discovery process. If there is a name collision
the server name must be changed by the user and then this message is resent.
Medium: Multicast
Structure:
[Server name]
[Server listening unicast address]
[Server listening unicast port]
Message: Server Hello Acknowledgement
Objective: Server sends this message when it receives a “Server Hello Command”.
Medium: Unicast
Structure:
[Server name]
[Number of neighbors]
[Server listening unicast address]
[Server listening unicast port]
Message: Server Hello Negative Acknowledgement
Objective: Server sends this message after receiving a “Server Hello” message and there is a name
conflict either because it shares the same name of the server that sent the message or one of its
neighbors shares the same of that server. Therefore the server that sent the “Server Hello” message
may receive multiple NAKs.
Medium: Unicast
Structure:
[Failure message]
Message: Server Connect
Objective: Server sends this message after receiving a “Server Hello Acknowledgement” and there
is no name conflict, or if there is no longer a name conflict. The server determines to connect to N
neighbors who have the least number of neighbors.
Medium: Unicast
Structure:
[Server name]
[Server listening unicast address]
[Server listening unicast port]
Message: Server Count Estimate
Objective: After sending a successful “Server Connect” message the server sends this message to
all servers to update their global variable containing the number of total servers in the system.
Medium: Multicast
pf3
pf4

Partial preview of the text

Download Server & User Communication: Discovery, Maintenance, and Direct Chat Protocol and more Study Guides, Projects, Research Computer Science in PDF only on Docsity!

Francisco J. Garcia-Ascanio Patrick Dugan

Project 3 Protocol Design

The following assumptions are made for server to server communication:

  • At launch servers are able to connect to a well known multicast address and port.
  • Servers connect to N neighbors based on the following equation: N = Ceil( log 2 (Number of Servers in the Network) + 1 )
  • All messages send, either multicast or unicast, are serialized objects.

Server Discovery Protocol

Server to Server

Message: Server Hello Objective: Server sends this message to initiate the discovery process. If there is a name collision the server name must be changed by the user and then this message is resent. Medium: Multicast Structure: [Server name] [Server listening unicast address] [Server listening unicast port]

Message: Server Hello Acknowledgement Objective: Server sends this message when it receives a “Server Hello Command”. Medium: Unicast Structure: [Server name] [Number of neighbors] [Server listening unicast address] [Server listening unicast port]

Message: Server Hello Negative Acknowledgement Objective: Server sends this message after receiving a “Server Hello” message and there is a name conflict either because it shares the same name of the server that sent the message or one of its neighbors shares the same of that server. Therefore the server that sent the “Server Hello” message may receive multiple NAKs. Medium: Unicast Structure: [Failure message]

Message: Server Connect Objective: Server sends this message after receiving a “Server Hello Acknowledgement” and there is no name conflict, or if there is no longer a name conflict. The server determines to connect to N neighbors who have the least number of neighbors. Medium: Unicast Structure: [Server name] [Server listening unicast address] [Server listening unicast port]

Message: Server Count Estimate Objective: After sending a successful “Server Connect” message the server sends this message to all servers to update their global variable containing the number of total servers in the system. Medium: Multicast

Francisco J. Garcia-Ascanio Patrick Dugan

Structure: [Total number of Server Hello Acknowledgments + 1]

Server to User/Agent

Message: Server Details Objective: After successful connection to a neighbor, this message is sent by the neighbor(s) and the connecting server to their User/Agent(s). Medium: Unicast Structure: [Neighbor name] [Neighbor listening unicast address] [Neighbor listening unicast port]

Server Maintenance Protocol

Server to Server

Message: Server User/Agent List Update Medium: Unicast Objective: This message is sent in the following scenarios:

  1. After a server receives a “Server Connect” message it send this message to its new neighbor
  2. After a server sends a “Server Connect” message it sends this message to all of its neighbors
  3. After an User/Agent is added to its server the server sends this message to its neighbors
  4. After an User/Agent is removed from its server the server sends this message to its neighbors Structure: [User/Agent Collection] The user/agent collection is composed of the following elements: [User/Agent(s) name] [User/Agent(s) listening unicast address] [User/Agent(s) listening unicast port]

Message: Server User/Agent List Query Medium: Unicast Objective: Server sends this message after if recovers from a failure. The server loads a configuration file containing its last known neighbors and then asks its neighbors for its own last known user list. Structure: [Server name] [Server listening address] [Server listening port]

Message: Server User/Agent List Query Acknowledgement Medium: Unicast Objective: Server sends this message after receiving a “Server User/Agent List Query” message. The server sends the last known user collection of the requesting server. Structure: [User/Agent Collection] The user/agent collection is composed of the following elements: [User/Agent(s) name] [User/Agent(s) listening unicast address] [User/Agent(s) listening unicast port]

Francisco J. Garcia-Ascanio Patrick Dugan

Server to User/Agent

Message: Server Set Alias Acknowledgment Medium: Unicast Objective: If no user/agent name collision occurred. Structure: [Message letting user/agent know that alias was successfully set.]

Message: Server Set Alias Negative Acknowledgment Medium: Unicast Objective: If user/agent name collision occurred. Structure: [Message letting user/agent know that alias was not successfully set.]

Direct Chat Protocol

User to User/Agent

Message: User Search Query Medium: Unicast Objective: User is requesting the address and port of a user/agent on the network. Structure: [User/Agent name that you are searching for]

User/Agent to Server

Message: User/Agent Search Query Medium: Unicast Objective: User/Agent is requesting the address and port of a user/agent on the network. Structure: [User/Agent name that you are searching for] [User/Agent listening unicast address] [User/Agent listening unicast port]

Server to User/Agent

Message: Server User/Agent Search Query Acknowledgment Medium: Unicast Objective: This message is sent when the server finds the user/agent defined in a “User/Agent Search Query” message Structure: [User/Agent name] [User/Agent listening address] [User/Agent listening port]