vatavu-sara / UDPfiletransfer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UDPfiletransfer

Networks 1 project

Bachelor in Applied Information Technology 2nd year, University of Luxembourg

Server to n clients file transfer using UDP and transmitting using the Go-Back-N Algorithm.

Arguments:

  • server: <portNumber> <numberOfClients> <fileWanted> <windowSize>
  • client: <portNumber> <numberOfClients> <indexOfClient> <chanceOfPacketLost(/100)> <windowSize>

Features:

  • intuitive launcher to launch a number of clients and set the arguments to each
  • statistics file provided at the end
  • simulates packet loss and treats the case
  • every packet needs to first get(safely) to all clients and then the next one is read from the initial and sent to everyone
  • uses go-back-N method: starts sending N packets to each client and treats them as following:
    • if one packet is lost for client i, all next packets in the window will be ignored
    • after all clients finished receiving, the window is moved by the number packets received by everyone, and retransmission may start for only the packets missed by a certain client

Bugs:

  • may crash if window size too big
  • may crash if number of packets too big(files of tens of GB tho)
  • Working kind of concurrently(when it comes to listening for confirmations), but not fully since parelizing all threads made problems.

About


Languages

Language:Java 100.0%