This repo aims to enhance my understanding of the network protocol hierarchy and flow control and error control techniques by implementing a sliding window protocol in a simulated communication network system. The programming language will be Java.
Folder structure options and naming conventions for project
Two java source files are provided:
.
βββ SWP.java # The skeleton of the Sliding Window Protocol component. Note: this is the only provided java source file that you can change. You may add new java classes in order to fully implement the sliding window protocol.
βββ PFrame.java # The frame class source file. Note: this java source file is provided for your reference in implementing sliding window protocol, but you should not change anything in this file.
A number of java class files are provided, which implement the Network Simulator component and the Sliding Window Environment component:
.
βββ NetSim.class # the main class of the Network Simulator component.
βββ Forwarder.class # an auxiliary thread class of the NetSim component.
βββ VMach.class # the main class of the Virtual Machine component
βββ SWE.class # the major class of the Sliding Window Environment component.
βββ FrameHanlder.class # an auxiliary thread class of the SWE component.
βββ NetworkSender.class # an auxiliary thread class of the SWE component.
βββ NetworkReceiver.class # an auxiliary thread class of the SWE component.
βββ EventQueue.class #an auxiliary class of the SWE component.
βββ Packet.class # an auxiliary class of the SWE component.
βββ PacketQueue.class # an auxiliary class of the SWE component.
βββ PEvent.class # an auxiliary class of the SWE component.
βββ PFrame.class # an auxiliary class of the SWE component
βββ PFrameMsg.class # an auxiliary class of the SWE component.
Two text files are provided for testing purpose. They are used by the Sliding Window Environment component to generate a sequence of packets to be sent to the other communicating machines:
.
βββ send_file_1.txt # the file is used by VMach 1 to generate a sequence of (text) packets to VMach 2
βββ send_file_2.txt # the file is used by VMach 2 to generate a sequence of (text) packets to VMach 1.
Disclaimer: This repo is deprecated and no longer maintained. The Project was submitted as part of the course project for CZ3006 Net Centric Computing at NTU in AY 17/18 Semester 1. All rights reserved to Nanyang Technological University and the Designer of course CZ3006. The author will bear no responsibilities for any issues arose from academic integrity or honor code violations of anyone who takes this repository as a reference.