making our own napster so we can party like it’s 1999!
summary
Recreates a tiny Napster: reverse-engineers opennap protocol, implements length/type/data packets and hex headers, uses Python sockets over TCP, encodes data with ASCII, and implements a single-byte ACK plus file transfer in 1024-byte chunks. Central index model is simulated, about a handful of the original ~130 Napster messages are used, and the toy server is actually deployed to AWS and successfully downloads an MP3 that plays in Winamp.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:02Napster and peer-to-peer
- 2:27Sockets power the internet
- 3:10TCP sockets and HTTP
- 4:54Napster protocol with sockets
- 6:38Binary vs ASCII in messages
- 7:39Core Napster messages
- 8:41Downloading MP3 peer-to-peer
- 10:07Live demo
- 11:12Closing thoughts
related talks
18mCounterfeiting the Pipes with FakeNet 2.0 (Part 2/2)
47mRippin' off Python
16mNeST: A Python based Network Emulator for Education and Research
32mSpotify and Python: love at first sight
43mReverse-Engineering a Proprietary Game Server with Erlang
25mDIY Internet: Snappy, Secure Networking with MinimaLT
33mArtisanal Async Adventures
25mIntroduction to Python Network Libraries (Netmiko, NAPALM, Nornir, and More)
