You are going to implement and research on two generic forms of pipelined approaches in transport service, go-Back-N (GBN) and selective repeat (SR), through software simulations. As you may already know, these two approaches have their advantages and disadvantages. In nature, some upcoming packets may be lost or have to be re-sent due to premature timeout or delayed ACK. Since the behavior of data transfer is not fully predictable, it is hard to tell which approach is superior. Through this project, you investigate the performance difference from the simulated results between these two methods.
There are several factors, such as window size, transmission delay, propagation delay, timeout setting, and packet loss rate, which may affect the performance. You will record the simulated results by adjusting relevant variables such as those mentioned above. Finally, you summarize your findings in a report.
You need to submit the following two items separately:
1) A typed report with 5-10 pages (single space paragraph) including figures and citations. The report should contain all necessary/applicable introduction, assumptions, definitions, arguments, experimental design, discoveries, comparisons, discussions, and conclusion. Neither source code nor plain screenshot shall appear in the report. Pseudo-code is okay provided that it catches the core functions of the program. Performance results should be made with computer generated charts or figures.
2) A compressed file (e.g. .zip) that includes all source codes of your program. Only source code is needed. No compiled objects, no executable files, no debug files, and no runtime environment. At this moment, a read-me file is not needed in this submission. However, your program must be working and you should be ready to execute your program in class by the end of the semester if you are chosen for demonstration.