https://github.com/huy-dna/p2p-file-sharing
Networking assignment implementing a P2P file sharing service without any considerations for reliability, recovery or privacy whatsoever. Only works in LAN or networks without NATs.
https://github.com/huy-dna/p2p-file-sharing
filesharing http local-area-network nodejs p2p protocol socket-programming
Last synced: 2 months ago
JSON representation
Networking assignment implementing a P2P file sharing service without any considerations for reliability, recovery or privacy whatsoever. Only works in LAN or networks without NATs.
- Host: GitHub
- URL: https://github.com/huy-dna/p2p-file-sharing
- Owner: Huy-DNA
- License: unlicense
- Created: 2023-10-21T09:13:15.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-09T05:26:57.000Z (over 1 year ago)
- Last Synced: 2024-10-16T06:44:39.795Z (8 months ago)
- Topics: filesharing, http, local-area-network, nodejs, p2p, protocol, socket-programming
- Language: TypeScript
- Homepage:
- Size: 309 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# P2P file sharing (Networking assignment)
In this project, we got to design a TCP-level protocol designed for P2P file sharing, perform some basic participant book-keeping and file-tranfers over the LAN.
Initially, we aimed towards the broader Internet by using some NAT-traversal techniques, but it was practically too hard.
As this is just an assignment, this is not very reliable or efficient such as:
* No fragmenting the file before sharing.
* No download recovery.
* Silently fail when the file is too large (I wonder why?? Could be some flow control problem?)Developer's experience-wise, it ran into the problem of no watch-mode compilation, leading to testing being a pain in the neck.
Documentation for the protocol and architecture is here: [Notion](https://painted-jodhpur-6fe.notion.site/P2P-file-sharing-application-18577ebb5b604945a47646c7814e93d0?pvs=74)