The Sliding Window Lab
Introduction
Computer systems (such as computer networks) are often too complex to analyze formally. Performing measurements in such systems can also be impossible due to practical reasons. It is therefore common that they are evaluated by simulation.
In this lab, you will study reliable transport protocols with the use of a discrete-event driven simulator. Specifically, you will calculate and measure the efficiency of a stop-and-wait protocol. You will also implement a pipelined reliable transport protocol and evaluate its properties.
It is important that you understand the fundamentals of reliable transport protocols before you engage in this lab. Make sure to read the introduction of Chapter 3.4 and Chapters 3.4.1-3.4.3 before you start.
Notes
- You may work alone, or in groups of two. No more than two (2) people are allowed in a group.
- The deadline will be enforced. Make sure you hand in on time.
- The instructions described on these pages specify how you use the java command-line tools to compile and run your code. Java code can be edited with any text editor. Notepad, TextEdit, emacs and vi are all good enough to do the things you are supposed to do. If you use an IDE (like Eclipse, Visual Studio or Xcode), and that IDE has problems with the code, you'll have to sort it out yourself.
How to Approach this Lab
- Before starting to work on a solution, read all the information that is available on this page.
- Also, make sure you have read and understood Chapters 3.4.1-3.4.3 from the textbook. If you understand the concepts described in the textbook, the lab will not be too hard to solve.
- Once you have read all information on the lab page and read the book chapters, start working on the tasks described on the assignment page.
- The solution that is required in this lab is not very complicated. If you find yourself writing hundreds of lines of code, then your approach is probably more complex than required. In this case, go back to the book, read the information on these pages, discuss with your class mates, or contact the TAs.
The Simulator
The Assignment
- Read the description of the assignment.
- There are some hints available.
Hand-In Procedure
Run your code against the simulator. Once you have achieved a full solution that works for any test case, you are ready to hand-in. Upload your ReliableSender.java file to a file in the Assignment area in the student portal along with the following information:
- The names of all students that implemented the solution.
- The answers to the assignment questions in a plain text file. Do not upload Word-documents or similar.
Your work will be commented on electronically via the portal, and a short report telling you what you need to address will be uploaded if you need to make corrections or extensions to your work in order to achieve a pass grade.