Questions tagged [p2p]

Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the application.

Peers make a portion of their resources, such as processing power, disk storage or network bandwidth, directly available to other network participants, without the need for central coordination by servers or stable hosts. Peers are both suppliers and consumers of resources, in contrast to the traditional client–server model where only servers supply, and clients consume.

The peer-to-peer (P2P) application structure was popularized by file sharing systems like Napster. The peer-to-peer computing paradigm has inspired new structures and philosophies in other areas of human interaction. In such social contexts, peer-to-peer as a meme refers to the egalitarian social networking that is currently emerging throughout society, enabled by Internet technologies in general.

What is it?

This is a special kind of network type ('network topology' is the fancy description). It describes computers that are networked to each other without a central server being in-between.

Why was it developed?

Peer-to-peer networks are very popular with people who want to share files directly with one another. The files do not have to be stored on a central server.

Software has been developed that can even put together a file from bits of the file stored across several 'peers' on the network. For example, BitTorrent can do this. The advantage is that no single computer needs to be over-loaded when a very popular / very large file is requested.

Why is it important?

It is an important development, because it will affect the way the Internet is used in the future.

Many companies want to provide 'video on demand' services, but the problem has been how to provide the vast bandwidth needed when thousands of people are asking for the same video file, e.g., the latest episode of Lost or 24.

Peer-to-peer is an ideal solution to the problem, because hundreds of computers can hold parts of the video and so share the load.

Some companies are calling the peer-to-peer connections they are building 'The Grid' which is a trendier name for the same thing.

What about the future?

In the near future, high definition television programs may be delivered through the Internet and so peer-to-peer may be used.

References

1970 questions
39
votes
2 answers

How do you create a peer to peer connection without port forwarding or a centeralized server?

I recall reading an article about a proposed way to do this. If I recall correctly, the researchers successfully created a connection to a client on another network without port forwarding by sending HTTP packets to each other (Alice pretends that…
Crayboff
  • 493
  • 1
  • 4
  • 6
36
votes
4 answers

How does Skype work without port forwarding?

I am designing a p2p application which works on port 30000. My router is not UPnP so I required to forward a port to router. But Skype a another p2p application works without port forwarding on my pc. When I analyzed it with wireshark I found its…
Xinus
  • 29,617
  • 32
  • 119
  • 165
36
votes
5 answers

P2P library for C++

Is there any good cross-platform C++ library for P2P networking (preferably UDP but TCP would work also). Originally I planned to use libjingle but since they do not provide any precompiled libraries and sport a quite messy build system I currently…
abergmeier
  • 13,224
  • 13
  • 64
  • 120
32
votes
1 answer

How NAT traversal works in case of peer to peer protocols like bittorrent.

I know about NAT traversal and about STUN, TURN and ICE and its use. I want to know whether these are implemented in peer to peer file sharing application like bittorrent. Whether trackers facilitate peers behind NATs to communicate with each other…
user1887464
  • 533
  • 2
  • 6
  • 11
29
votes
4 answers

how do i make my own P2P software?

how can i make my own napster ? which library are these p2p programs using ? i am not too familiar with the concept of socket programming. could you make p2p program using Qt4 ? i've been wondering about this question since the Napster days. how…
wefwgeweg
  • 1,359
  • 3
  • 11
  • 15
28
votes
4 answers

Peer-to-Peer communication options

can anybody confirm what are the currently allowed methods for peer-to-peer communications within the Android framework? I need to transfer json strings and I'm currently using SMS which works ok but the problem is that the data also ends up as lots…
John J Smith
  • 11,435
  • 9
  • 53
  • 72
27
votes
5 answers

What's so hard about p2p Hole Punching?

I am trying to experiment with some p2p networking. Upon doing some research, one of the biggest obstacle I learnt is "What if a client is behind a NAT/Firewall", later on I discovered about Hole Punching but that it is not always guaranteed to…
Krimson
  • 7,386
  • 11
  • 60
  • 97
26
votes
3 answers

Is it possible to set up a socket.io client running (server-side) on a node.js server?

I'd like to enable socket-based p2p communications between two or more different node.js application servers. I'm using socket.io to handle all such communication between a given server and the web application it serves - but what I'm looking for is…
Myk
  • 6,205
  • 4
  • 26
  • 33
26
votes
3 answers

WebRTC: Matching up nearest peers

Given a single public IP address (peer A) and a list of many other public IP addresses (a mix of IPv4 and IPv6 addresses), what is the easiest way to match up peer A the IP addresses of the n nearest peers without having the peers manually ping each…
Eli Grey
  • 35,104
  • 14
  • 75
  • 93
26
votes
2 answers

How can I implement simple serverless p2p browser to browser messaging with minimal overhead?

I'm trying to create some basic implementations of simple games (tic tac toe is the starting project) which can be played over the internet without requiring a central server. The page would not even need to be hosted and could be run locally on the…
Alex Brough
  • 451
  • 1
  • 4
  • 7
25
votes
1 answer

Getting started with a custom JXTA PeerGroup

I have been working with JXTA 2.3 for the last year or so for a peer-to-peer computing platform I am developing. I am migrating to JXTA 2.5 and in the process I am trying to clean up a lot of my use of JXTA. For the most part, I approached JXTA with…
Stephen Pellicer
  • 1,543
  • 1
  • 15
  • 13
24
votes
3 answers

What does 'sdparta' stand for in a Firefox webRTC session description?

When generating offer and answer objects during webRTC signaling in Firefox, Mozilla added a pun about Session Description Protocols by returning answers and offers that say "THIS_IS_SDPARTA." Aside from being funny, does the 'arta' portion of…
BEVR1337
  • 623
  • 4
  • 10
24
votes
2 answers

Developing Peer to Peer application in Java

i've got a university project where i need to develop a peer to peer system in java for file sharing. So in essence several users should be able to share files using the Peer to Peer System. Can someone give me some guidelines about how to build…
Noor
  • 19,638
  • 38
  • 136
  • 254
24
votes
4 answers

If firewalls don't accept incoming connections by default how do p2p networks work?

If firewalls block all incoming connections by default how do p2p technologies work? Like torrents, how do you connect to everyone who shares a file and get the information from them? Does it go through a relay server or something?
KI4JGT
  • 471
  • 2
  • 5
  • 13
24
votes
3 answers

Android P2P (direct-connection) over the Internet (behind NAT)

I'm starting a small project, basically a multiplayer (as in more than two players) variation of the classic Battleship game. One problem that I'm trying to resolve before I dive into coding is the problem of communication between the multiple…
petersaints
  • 1,899
  • 3
  • 18
  • 25