Skip to content

nadilahmad13/TCP-like-Go-Back-N

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IF3130 - Jaringan Komputer 2023

Tugas Besar - IF3130 Jaringan Komputer 2023

About

This is a simple file transfer program using UDP protocol. The program is written in Python 3.10 and tested on Windows 11 and MacOS.

Contributors

Kelompok 1 K03 - GunungE

NIM Nama
13521004 Henry Anand Septian Radityo (Manusia Rasis)
13521007 Matthew Mahendra (Si Bucin ke Bandung Mulu)
13521015 Hidayatullah Wildan Ghaly (Manusia Penggali)
13521024 Ahmad Nadil (yg paling normal)

Kelompok 1 K03

Features

Main Features

  • Reliable data transfer using UDP protocol and sliding window protocol
  • Handle data transfer in bad network condition (Tested using Clumsy)

Bonus Features

  • Streaming process using Seek()
  • Metadata transfer (file name and extension)
  • Peer to Peer file transfer
  • Parallel processing for handshake and data transfer in server
  • Error Correcting Codes (ECC) using Hamming Code
  • End to End device communication
  • TicTacToe game using UDP protocol

How to Run

  1. Run the server
python server.py -i <server_ip> -p <server_port> -f <file_input_path>
  1. Run the client
python client.py -ci <client_ip> -cp <client_port> -i <server_ip> -p <server_port> -f <file_output_path>

There is default value for each argument, so you can run the program without any argument

Alternatively, you can run the main program to switch between server and client mode

python main.py

Folder Structure

┣ 📂.github
┃ ┗ 📜.keep
┣ 📂lib
┃ ┣ 📜__init__.py
┃ ┣ 📜Connection.py
┃ ┣ 📜Constant.py
┃ ┣ 📜Hamming.py
┃ ┣ 📜Logger.py
┃ ┣ 📜Node.py
┃ ┣ 📜Segment.py
┃ ┣ 📜SegmentFlag.py
┃ ┗ 📜Utils.py
┣ 📂output
┃ ┗ 📜.gitkeep
┣ 📜.gitignore
┣ 📜client.py
┣ 📜main.py
┣ 📜README.md
┗ 📜server.py

References

About

Tugas Besar 1 IF3130 - Jaringan Komputer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%