| Multicast Broadcast using UDP 1
1. Objective
The objective of this programming project is to learn UDP reliable client-server interaction using UDP
socket interface in C programming language. After completing the project, you will have a basic
understanding of the steps required to add reliability features in UDP applications for developing a
networking application.
2. Project Specification
Multicast only applies to UDP, which is connectionless and provide no reliability. Multicast is unreliable
as there is no guarantee that every multicast message destined for the same multicast group address will
e received by every host subscribing to this multicast group. In order to fit the reliability needs of
multicast applications, many schemes have been proposed. In this project, you are required to implement
a Multicast Server and a Client in C language that implements a simple version of multicasting. Allow up
to 5 clients to simultaneously subscribe to the multicast group served by your Multicast Server. Each of
the subscribing clients will be executed on a distinct host in the CS GPEL machine, and the multicast server
will keep track of all cu
ent subscribed clients every time the server multicasts a message.
CS XXXXXXXXXX: Data Networks
Project-3
Multicast Broadcast using UDP
Due Date:
Upload to Canvas
11/27/2022
100 pts
Multicast Server
Join Join
join
Join
Join
Broadcast Data
Broadcast Data
Broadcast Data
Subscriber
Subscriber
Subscriber Subscriber
Subscriber
Broadcast Data
Broadcast Data
Fall - 2022
| Multicast Broadcast using UDP 2
2.1. Multi-cast Server Behavior:
• At startup, the server takes an argument that specifies the port number that it is listening to. You
have to use (5000+last 4 digits of your student-id number) to avoid requesting same port by
multiple students.
• After successful startup, the multi-cast server program will ask the user to create a group (e.g.,
OUCS) and maximum number of clients (e.g., 5) can join in the group to receive
oadcast
messages.
• Next, your multicast server should prompt the user to enter the number of messages to be multi-
casted among clients. At the same time, your multicast server should listen for joining and leaving
equests from the clients, until the user finishes inputting all messages.
• As clients may use the message “JOIN” to join the multicast group and “QUIT” to leave from the
group, server needs to maintain the active client list for message
oadcasting purpose. If the
client is unable to join the multicast group, send an e
or message to client (e.g., more than
maximum number of clients join the multicast group). If any client is removed from the active
client list, the server should print out the client IP + port information.
• When sending out a message, your multicast server should display the content of the message.
• When accepting a message, your multicast client should display the content of the message.
• Server requires unsubscribing all clients from the group (e.g., OUCS) as soon as it receives the
string “CLEARALL” from user input.
2.2. Client Behavior:
• Your client program needs to take two arguments from user during startup that specifies the IP
address and port number of the multi-cast server it wants to access.
• After a successful startup, your sender program will first prompt a welcome message that asks
the user to input a group name (e.g., OUCS) it wants to join.
• Next, client requires to send the message “JOIN” to join the multicast group to receive messages
from the multi-cast server.
• Similarly, client can send the message “QUIT” to unsubscribe from the group and receive no
further messages from the server.
• When accepting a message, your multicast client should display the content of the message.
3. Programming Notes:
You have to use UDP sockets for implementing both client and server programs. You are allowed to
use multi-threading in this project, if requires. You should program each process to print an
informative statement whenever it takes an action (e.g., sends or receives a message, detects
termination of input, etc.), so that you can see that your processes are working either co
ectly or not.
One should be able to determine from this output if your processes are working co
ectly. You should
hand in screen shots (or file content, if your process is writing to a file) of these informative messages.
| Multicast Broadcast using UDP 3
Make sure, your multicast server allow the user to specify the listening port number and multicast
group name during startup. Make sure you close every socket that you use in your program. If you
abort your program, the socket may still hang around and the next time you try and bind a new socket
to the port ID you previously used (but never closed), you may get an e
or. Also, please be aware
that port ID's, when bound to sockets, are system-wide values and thus other students may be using
the port number you are trying to use though it’s not recommended. If you need to kill a process after
you have started it, you can use the LINUX kill command. Use the LINUX ps command to find the
process id of your server.
Any clarifications and revisions to the project will be posted on the course web page on Canvas.
Students are encouraged to start this project early and use the project discussion group on Canvas
for any general questions so that everyone can benefit from the replies.
4. File names:
File names for this project are as follows:
Client: lastNameReliableUDPClient.c
Multi-cast Server: lastNameReliableUDPServer.c
5. Points Distribution:
Bits and pieces Points
Multicast Client Program 30
Multicast Server Program 40
Program Style (Coding style, comments etc.) 10
Documentation 20
| Multicast Broadcast using UDP 4
6. Submission Instructions:
This project requires the submission of a soft copy. Plagiarism will not be tolerated under any
circumstances. Participating students will be penalized depending on the degree of plagiarism.
Soft Copy (Due November 27, 2022, 11:59 pm)
The soft copy should consist of:
• source code of the Client program,
• source code of the Multicast server program,
• any header file(s), and
• detailed documentation(4 to 5 pages long in 1.5 line space and a font size of 11) should consist
of:
o discussion of your problem solving approach,
o detailed analysis of your implemented codes,
o any legitimate assumption(s) with justification, and
o screen shots of outputs
These must be submitted through Canvas.
7. Late Penalty:
Submit your project on or before the due date to avoid any late penalty. A late penalty of 15% per day
will be imposed after the due date. After one week from the due date, you will not be allowed to submit
the project.
Good Luck!!