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."
I don't think I have ever seen or read anything that states that p2p is not legal. Maybe I'm just way behind the times, but it was my understanding that p2p itself is legal, it's what the network is used for that is illegal.
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
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
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?
I am just starting a project using JXTA. So far I am very impressed with the technology, although it is perhaps a bit bloated (This is my impression of the code and is not based on any comparison with other P2P protocols, since I haven't used any others ;-) JXTA does support tunneling over HTTP which gets you around most firewalls and NAT and such. It also has a real interesting architecture where certain nodes can be promoted to act as relays. Among other uses, this could allow a public machine to act as a proxy for messages to peers behind a firewall/NAT.