


Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 4
This page cannot be seen from the preview
Don't miss anything!



Francisco J. Garcia-Ascanio Patrick Dugan
The following assumptions are made for server to server communication:
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]
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
Message: Server User/Agent List Update Medium: Unicast Objective: This message is sent in the following scenarios:
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
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
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]
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]
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]