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
12
votes
5 answers

An algorithm for distributed or decentralised reputation/trust

Does anyone know of an algorithm for computing how much you 'trust' another user (their reputation) in a decentralised system. Sites like this one use a centralised authority to track reputation points, but when you can't trust an authority to…
Kothar
  • 6,579
  • 3
  • 33
  • 42
11
votes
7 answers

Is it possible to connect a socket between two mobile devices (iPhones) over the internet?

Is it possible to connect a socket between two mobile devices (iPhones) over the internet? I am trying to discover the IP of each device and connect directly. I know it can be done with Bonjour but that only works on local networks. I need a high…
Jamey McElveen
  • 18,135
  • 25
  • 89
  • 129
11
votes
2 answers

Controlling your phone from laptop

Idea: create a remote control for your android phone. Why: I like listening music on my phone in a dock station with speakers connected. Now sometimes I want to turn the volume up/down, change the song, etc. So I need to unlock the phone, locate app…
Audrius
  • 2,836
  • 1
  • 26
  • 35
11
votes
4 answers

Could Node.js run client side in Chrome with its native client (to be released soon)

Google Chrome's native client is soon to be released. http://blog.chromium.org/2011/02/native-client-getting-ready-for-takeoff.html Would this allow node.js to be run within the browser enabling distributed applications to communicate with each…
Sycren
  • 539
  • 2
  • 5
  • 15
11
votes
1 answer

setting up iPhone P2P only over bluetooth and without GKPeerPickerController

I want to use a custom interface to connect with other iDevices in a p2p game. I know I can either use GKSession and GKSessionDelegate or use the lower level Bonjour browsing. But both of them will search for devices both over bluetooth AND wifi. I…
Marco Mustapic
  • 3,879
  • 1
  • 21
  • 20
11
votes
1 answer

Working Hello World WebRTC DataChannel Examples with Signaling Implemented

The intent is for this to become a Community Wiki post that is kept up-to-date so developers interested in implementing communication of JSON messages browser-to-browser (p2p) with WebRTC DataChannels have simple yet functional examples. WebRTC…
Lightbeard
  • 4,011
  • 10
  • 49
  • 59
11
votes
2 answers

Are there any mature P2P frameworks/libraries in C#?

I am looking for a reliable P2P framework or library, preferrably natively written in C#, but can also work with something C# can interface with. Have you came across or have worked with a solid one?
Etamar Laron
  • 1,172
  • 10
  • 23
11
votes
6 answers

GKSession - what if I have Bluetooth and Wi-Fi turned off?

I'm working on an iPhone app that will allow for peer-to-peer connections. From what I understand, I have the choice between using GKPeerPicker or the GKSession. I don't like the idea of using the PeerPicker because I want to show a custom…
bpapa
  • 21,409
  • 25
  • 99
  • 147
11
votes
4 answers

Can we send data from an android device to another android device directly (p2p) without server in the middle?

I need to send data from one android device to another android device directly(p2p) after they find each other through a server. I read some stuff that this can't be done but I don't understand why a device that can access the internet (it has an IP…
armin
  • 1,985
  • 6
  • 38
  • 52
11
votes
1 answer

WebRTC ~ Possible to connect when knowing IP and PORT without using Intermediate Servers

I know there is lot's of documentation about WebRTC out there so I am sorry if I missed it: My question is the following: Is it possible to connect from client to client without using an intermediate server. ( Including an intermediate server to set…
user896326
11
votes
2 answers

Broadcast or peer discovery with PeerJS

I am evaluating PeerJS in order to implement a simple two-player online game. It seems that once I transfer the id of one player’s connection to the other, they can open a channel via PeerJS and are good to go. But if two players want to play that…
Joachim Breitner
  • 25,395
  • 6
  • 78
  • 139
11
votes
2 answers

Adding new nodes to Kademlia, building Kademlia routing tables

I can't quite wrap my brain around the joining process of Kademlia DHTs. I've seen a few tutorials and presentations online, but they all seem to say things the same way and all psedo code etc is the same in most (actual copy/paste). Can somebody…
JSON
  • 1,819
  • 20
  • 27
11
votes
3 answers

How does a node join a Distributed Hash Table (DHT) cluster?

I'm trying to learn about the Distributed Hash Table (DHT) paradigm, as it fits into a P2P or fully distributed computing architecture. From a theoretical standpoint, once a cluster is established, it makes some deal of sense how it manages to swarm…
David Elner
  • 5,091
  • 6
  • 33
  • 49
10
votes
2 answers

How to understand the Kademlia(KAD) protocol

Recently, I've read a document of the Kademlia Protocol, I tried to understand the protocol, but I still have some question: Why a node must find another node when he knows its ID but ip or port? Why he has the ID while he doesn't know the ip or…
rock_cloud
  • 123
  • 1
  • 1
  • 7
10
votes
3 answers

twisted - get OS-chosen listen port

I am writing a twisted P2P client using the application framework. The listen port for incoming connections will be on a random (OS-determined) port. However, I need a way to determine what that port is after creating it: import twisted...…
vsekhar
  • 5,090
  • 5
  • 22
  • 23