EECS 3214 : Programming Assignment 2

Submit this assignment using the submit command (see the instructions below). The deadline is April 13, 10 am.

Objective:

The objective of this lab is to synchronize several clients to connect to a server at a predetermined time. This is a part of the requirements of a Distributed Denial of Service (DDoS) attack.

The parties involved in this project are
(a) a coordinator who communicates to the attackers a time of attack
(b) attackers who serve as clients to open a connection to the server and
(c) the server, who allows TCP connections on some designated port. The objective of the attackers is to open a TCP connection (each) to the server at as close a time to the time specified by the coordinator as possible. Notice that for this functionality to be supported the attackers must be in server mode (listening on a port) until they hear from the coordinator and then they switch to being in client mode, connecting to the server at the specified time.

Demonstrate that your program works by using one coordinator, 4 clients and a server. Record the times of opening the connections at the server as accurately as you can. Keep each connection alive 10-30 seconds to allow overlap between connections. Have the server write the log of connections to a file.

Instructions for submitting assignment 2 Submit the programs using the following command:

  1. The programs you submit should work and be documented.
  2. Your assignment should include a separate (typed) document containing the results (You can hand this in the class). This document should contains details of
    1. the overall program design, a textual description of "how it works", and design decisions made.
    2. possible improvements and extensions to your program that you would do if you had more time.
    3. situations (if any) when your program may not work correctly.
    4. how the grader can compile and run your program.
Demonstration The TA will ask you to demonstrate to him that your program works on the departmental Linux machines. You will run the coordinator, the server, and 4 clients and show that the program implements the specifications described above.

Grading

Program works correctly : 50%
quality of code and in-line documentation : 25%
report : 25%

NOTE: Late submissions get no credit.

Copying, teamwork

Copying of programs (also written homeworks and exams) or teamwork on an assignment (written or programming) is not permitted.  No form of copying is tolerated in this (or any) course, in accordance with departmental policy.