Task 1: Java programming: Design and code a program to communicate between two devices – a client and a server (sender and receiver) over UDP suing Java (Liberica JDK 11)
1. Write the code that will act as the sender (client) and another program to act as the receiver (server) – these will send over UDP to communicate.
2. You must write the code to perform a STOP and WAIT – this will be a sliding window size = 1.
3. Once this runs, you are going to expand on your program to increase the sliding window to size=5 and use GO-BACK-N for retransmission
4. Your program should have a sequence number = SN and the data should be part of the data packet.
5. The server, upon receipt, should examine the SN and if it matches the SN it is expecting, print the data to the screen or file and transmit ACK back to the sender, remembering that the sliding window is size=5.
Task 2: As part of a structured report, discuss the programme you have produced (500 words) making sure you include the following:
1. An overview of your solution - a discussion of how your design and the selected constructs support the functional requirements.
2. An overview of the program design, and how the main components support client and server interactions and communications.
3. Briefly discuss the suitability of Java for demonstrating port and socket communications over UDP.
Task 3: Continue your report with a discussion on “why, when using UDP, you need to use sequence numbers”, ensuring you consider the following (1500 words):
I. Discuss the reliability and security considerations when transmitting data over UDP.
II. Evaluate its effectiveness for certain situations; an example might be gaming.
III. You will need to do some background research and clearly state any assumptions you make.
IV. Your discussion should be supported by appropriate references to the literature and should use accurate technical terms.
Finally, critically evaluate the following:
I. Security and ethical implications of protocols and why TCP might be a better solution for data transmission.
II. Wireshark and its use in LANs and WANs as a monitoring tool.
III. You must include a discussion on modern security over LANs and the Internet, including modern encryption methods.