Skip to content

πŸ”²Project to enhance understanding of network protocol hierarchy, flow and error control techniques

Notifications You must be signed in to change notification settings

LZhemin/sliding-window-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sliding Window Protocol 6

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 Conventions

Folder structure options and naming conventions for project

Source Files

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.

Class Files

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.

Testing Text Files

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.

About

πŸ”²Project to enhance understanding of network protocol hierarchy, flow and error control techniques

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages