p2psim: Roll Your Own P2P Protocol
Anonymous Coward writes "p2psim is a free, multi-threaded, discrete event simulator developed at MIT to evaluate and investigate p2p protocols. You can quite easily add your own p2p protocol and compare it with others to make sure it runs well before you write the real thing. p2psim runs in Linux and FreeBSD."
...at least, in terms of duplicated code clumps as reported by CPD.
Here's the report... not bad at all.
The Army reading list
Hmmm, both p2p and "rolling your own" are two things that people could make a lot of money off of if they just made it legal :-)
They need to implement older protocols like Gnutella's and Fasttracks.
It would be interesting to see if there simulator comes close to real world performance of these networks after that !
Yay, we have networks simulating networks. Kazaa Reloaded !
Help pay for my wedding! Go to my kickass website
I mean, does it contain a simulated RIAA that will come and sue you for distribution of copyrighted simulated material?
"Success is based on knowing how far to go in going too far"
I've seen this program a short while ago, so feel I can comment :)
While it is a good idea, and can be worked on it does have some small problems, mainly that it isn't quite "dirty" enough. It tends to believe people will behave better than you'd expect them to, not be evil leechers and also not have very dodgy net connections which go up and down every 10 minutes (which to be fair happens to alot of people on ADSL and such like, their uploads get saturated and all their download connections drop because their ACKs aren't getting out)
Having said that, this is a good program, and I hope will be improved as one of the hardest parts about p2p networks is keeping up a good solid network without it taking up a significant proportion of the network, and nowadays few people want to risk running a server if they can avoid it...
Combination - fun iPhone puzzling
Does p2psim simulates RIAA suing you? This would be the "de facto" p2p simulator.
Comment removed based on user account deletion
> Employed in the computer industry. ... long walks in the woods.
>
Works with computers *and* gets outside? I'm confused, now.
roll you own lawsuit against your p2p network
Do you have to pay a virtual SCO for every virtual linux node on the virutal network?
Its a virtual post, but I have karma to burn off.
Music is everybody's possession.
It's only publishers who think that people own it.
Fuck Beta
~John Lenno
How about, instead of having a few dozen networks, we just come up with one? It works fine for things like the phone system and email (even though there're seperate companies, they're one network), so why not just have one protocol with everything built in?
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
Does anyone else think it's odd to have a screenshot of the program running in an X-terminal?
<pre>Paste text from xterm here</pre>
Just one note, before anyone goes spewing about copyrights and morality, could you please type in "Against Copyrights" into any internet search engine and get your facts straight first. Hint (copying is not piracy, nor steeling food out of the mouths of artists, and it's not property).
Thank You, now please continue....
In addition to a cool sim, p2psim gives you a stubbed out protocol to play around with. Build your own and guage efficiency! Check it:
protocols/sillyprotocol.h and protocols/sillyprotocol.C contain the outline of a new, but unimplemented peer-to-peer protocol. Implement join() and lookup() to your liking. Look at the other protocols (in the protocols/ directory) for more example code. Then run your SillyProtocol as follows:
p2psim/p2psim example/silly-prot.txt example/silly-top.txt example/silly-events.txt
Kudos to a great release and the promotion of additional research and general purpose learning.
"My mother never saw the irony in calling me a son-of-a-bitch." - Jack Nicholson
He cleans the floor at the Interland's NOC.
WTF am I doing replying to an AC at 5 A.M on a Friday night?
It lives on here:
http://waste.sourceforge.net/
Uh...I think you want Fark.com and their personals. It's personals for geeks. You'll fit in nicely.
i believe it was called WASTE and you can still easily find it on places (like suprnova.org) and other places, hopefully something will come of it soon. since Nullsoft (justin) also released the proof of concept Gnutella client and that's huge now, hopefully the same will happen with WASTE.
This tool seems like a stripped down version of NS2. With NS2 you can roll your own protocol and implement it using their reasonably powerfull scripting language (oTcl .. pronounce Oh - tickle) or create your own C++ code to do the job. They have every wired protocol I can think of implemented, 95 percent of wireless ones (including some satellite) and it also comes with NAM; a GUI to show you the nodes and flow and such. Runs on *nix and windows with cygwin
WASTE seems to be stalled. I'm not sure about the sourceforge project (page seems pretty minimal), but I know the Yahoo group devoted to WASTE is pretty silent. There are tough use issues with WASTE - you need to be an expert user to get it working (and sometimes that is not enough). I'm sure some company out there is working on making secure, distributed groups easy to use.
smd4985
Very interesting. So Robert T. Morris has cleaned up his coding since the days of the Morris Worm
Read the above link and then read RTM's bio page. Same guy?
Btw his dad was working for NSA back in the days of the worm. Coincidence?
I imagine the technology used to simulate p2p netwroks can also be embeded in an app that could have a dynamic user configurable protocol one could change on the fly.
That would be the ultimate chaotic p2p network, and would be something ultimately funny to see go live.
-><- no
Does anyone know what a good sort of p2p "kit" is, say if you want to include p2p networking (like, the ability to create and work with a self-managing p2p network) in an application but don't want to write your own p2p protocol/network code?
I know there must be a couple. What are some good ones?
I heard Sun has one? What's it called? "JXTA"? Has anyone worked with that, is it any good? Can it work with nodes that are behind NAT?
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
Can someone have some AI build a better P2P? Once you think about it, wouldn't that be the easiest way to come up with the next bestest efficient P2P protocol?
Since when do you have to be an expert user to get it working? Just follow the instructions. To wit; go through key generation, which you are automatically prompted to do, and then go through a manual key exchange. The problem is that the GUI client is windows-only, a problem which would have been nonexistent if frankel had whipped up a GTK application instead of a Win32-specific one. However I am grateful to him for what he HAS made, as I use it daily.
With those things said, WASTE is not a complete solution. It needs the option for a centralized keyserver, and for the revocation of keys. It also needs some type of per-user access control. Without these items it is only suitable as a tool for very small groups of like-minded people. If you would like to use it for widespread p2p (it could easily do all the things that HOTLINE does now) then you will have to rectify these features, and implement some kind of managed trusts.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
I have a great new P2P protocol. You get instant exchange of 10's of CD's at a time. It's called "in person". Generally, you have to provide money to the other person, e-mailing back and forth, etc. They burn you the CD's you want, and then you meet "in person", and exchange the money for their time in producing the CD's for you. It's great!
stuff |
Back in the early day of WASTE, after it's relase and subsequent pull, i helped test the network load of 100+ nodes. Nobody really knew what would happen at that load. Turns out that the mesh it creates suckes when it gets scaled over 100 nodes. You could hack the protocol to provide for a central mediation server (and keyserver), but that would detract from the fluidity of the mesh. WASTE is a exellent tool for people who need to share files and chat in an strongly encrypted enviroment, like a dev house, but for a widespread P2P app, it would need some serious development work.
++mse61--
P2P as a network protocol is evolving into something that actually works, as opposed to the state that it was at previously. It used to be that you connected to a single fault point, selected a single file from another user, and began downloading. Oh, do that while praying that neither of you got be cut off.
.torrent is adding accountability to the mix, which adds great legal uses, along with better HTML integration.
Then download resuming was added. Gnutella removed the central point of failure. Downloading from multiple sources was added. Kazaa added the concept of the supernode. eDonkey allows you to upload files that you haven't finished downloading yet. Soon we will probably see beginning-of-download randomization, so that complete files can be downloaded on a network even if nobody has finished getting it yet.
What more will we see in a protocol? Who knows. Encryption? Better IM capabilities? Webcams? Plug-ins? Preview from remote computer? While we still haven't figured out what the parameters of the network should be we shouldn't agree on the holy standard of the one true network.
"If we knew what we were doing it wouldn't be research"
The ______ Agenda
I love screenshots. Everybody does.
1) Build new p2p system
2) Get sued by RIAA, MPAA, BSA, etc..
3) ???
4) Profit (if you're the Addams family anyways)
...in bed
Also I believe that the encryption is link level, so everything gets reencrypted as it flows across the mesh, which means a man in the middle attack on waste should be trivial, though it will require you be a member, a router, and in between two people. Still, I don't believe there is really anything in place to prevent such a thing from being done. I don't understand why there is only encryption at the link level and not at the message level. I would think that some of each would be in order.
My ideal WASTE-like P2P app would include centralized management (as an option, certainly the way waste works now fits some usage patterns), encryption at both link and message level, and user rights. The most important of these are rights and the message level encryption. If you have these two things, then while anyone can be added to the network, no one can get access to any of your data without your permission. Adding these two things to waste would make it twice the application it is now - and I like it a lot as it is.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Gjezus man are they nuts...
:D
I do that for free
Speaking of older protocols.
Can anyone post a summary of the currently used P2P protocols (and the clients that implement them)with some pros and cons of each?
MITs p2psim is a little late on the scene - check out all the other p2p sims available in the summary paper in the p2pjournal: http://p2pjournal.com/issues/November03.pdf Think about using the NeuroGrid simulator if you want to simulate something other than just a boring DHT :-)