UDP is used to support mulicast. Recall that UDP is connectionless and non reliable. Hence, there is no guarantee that a multicast message will be received by all a group hosts. The aim of this project is to implement a solution that provides reliability for multicast applications under UDP. For more information, check the following site which provides different solutions to multicast reliability:
In this project, you will write two classes RMulticastServer (called server in the following) and RMulticastClient (called client in the following) in Java that implement a simple solution to provide reliability in multicast. You have to allow up to 10 RMulticastClient to have the possibility of parallel subscribing to the multicast group address that your RMulticastServer will serve. This server has to keep tracks of all the clients that have subscribed. For each message multicasted by the server, the latter should receive an acknowledgment sent by the clients that have subscribed. If not all the acknowledgments (from all clients) have been received by the server during a timeout period, the server will send the message in unicast to all the clients that have subscribed but which fail to send an acknowldgement. The server will not serve the next multicast message until all acknowledgment are received In particular, the server has to provide the following:
The server and clients have to allow the user to indicate the multicast group address and the port number. In addition, the clients have to make it possible to a user to indicate which server he will use for subscription
The server has to ask the user to provide the number of messages that the server will multicast. In addition, the server will continue to listen the requests from clients (join and leave requests) until all messages from the user are entered.
You have to simulate message loss: this achieved by letting the server and clients accept only ninety percent (90%) of the messages that have been received: a. The server and clients discard 10% of the messages b. The acknowledgment of the clients will be sent only for the messages that haves been accepted (ie those messages that have been not discarded). c. The server will discard 10% of acknowledgements
The server will use a timeout of five seconds, that is, if an acknowledgement from some clients does not come before the expiration of this timeout, the server will retransmit, in unicast, the message that have not been acknowledged before the timer expiration to all the concerned clients (ie the clients that have not succeed to sent an acknowledgement or if the acknowledgement has been discarded as mentioned in step 3 above).
The content of the sent message has to be displayed by the server: a. A message has been sent as multicast or as a re-transmission and in this latter case you have to provide the destination of the message
After a message has been accepted by a client, the content of the message has to be displayed. In addition the client has to specify if the message is multicast or unicast (re-transmission).
plz help me in solving this