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
15
votes
4 answers

Understanding the Bittorrent Protocol

I am looking for some books, tutorial sites . I want to understand how Bittorrent protocol works and later to implement my own tracker . I don't have a big knowledge in network protocols so I am looking for a newbie stuff . Have seen following posts…
Night Walker
  • 20,638
  • 52
  • 151
  • 228
15
votes
2 answers

Remote VideoStream not working with WebRTC

EDIT: I wrote a detailed tutorial explaining how to build an simple Videochat-application including a signaling server: Tutorial: Create your own Videochat-Application with HTML and JavaScript Please tell me if you find it helpful & understandable.…
Felix Hagspiel
  • 2,634
  • 2
  • 30
  • 43
15
votes
7 answers

Use node.js as a WebRTC peer?

What modules are in existence to use node.js as a peer in WebRTC? I'd like to use WebRTC in a more client/server fashion than P2P for its apparent ability to send packets unreliably. (AKA, I don't want the huge delay TCP makes by guaranteeing…
user1916428
14
votes
4 answers

Twisted and p2p applications

Can you tell me: could I use twisted for p2p-applications creating? And what protocols should I choose for this?
Max Frai
  • 61,946
  • 78
  • 197
  • 306
14
votes
2 answers

Python Sockets Peer to Peer

I'm trying to make a simple Peer to Peer Network in Python 2.7. The problem is, I can't seem to be able to create a connection between two machines in which they both act as a server and a client. I can get it to work when one is a server and the…
user3566150
  • 233
  • 1
  • 3
  • 10
13
votes
7 answers

Python Library/Framework for writing P2P applications

Is there any library or framework for writing P2P applications in Python ? I know the initial Bittorrent client was written in Python. I'm looking something like JXTA but for Python.
Manuel Ceron
  • 8,268
  • 8
  • 31
  • 38
13
votes
2 answers

What is hyperdrive and how is that different from dat?

I've been trying to get into dat recently and I'm wondering about the difference between dat and the hyperdrive module.
rtn
  • 127,556
  • 20
  • 111
  • 121
13
votes
3 answers

UDP Holepunching behind NAT

I am trying to implement a simple sketch of UDP-Holepunching in Java to test it's concept and use it in my C/C++ application later on. Concept: As from Wikipedia I understood the concept as this: Let A and B be clients behind an undefined…
Prior99
  • 619
  • 5
  • 13
13
votes
1 answer

Realtime P2P communication between mobile devices

I am building a mobile device that needs to send realtime information to other devices. I have considered XMPP but I do not have a server, so the communication must be only between the devices. Is there a way to communicate using XMPP between mobile…
fernandohur
  • 7,014
  • 11
  • 48
  • 86
13
votes
5 answers

How to transfer "data" between two device (android,iphone)?

How can i transfer data between two device? I would like to transfer data (mostly image file) between different platforms (android,iphone). Is it possible to use p2p or should i use client-server? Any help will be appreciated.
Parvin Gasimzade
  • 25,180
  • 8
  • 56
  • 83
12
votes
1 answer

How the DHT protocol works ? Are my thoughts correct?

Im trying to understand how the DHT protocol works, specially on the file-sharing-torrent world. I read many articles, but im still confused with the filename-value hash generation. My thoughs how the dht works are the following: Lets say im joining…
user711189
  • 4,383
  • 4
  • 30
  • 48
12
votes
3 answers

I want to build a decentralized, reddit-like system using P2P. What existing p2p library should I base it on?

I want to build a decentralized, reddit-like system using P2P. Basically, I want to retain the basic capabilities of reddit, but make it decentralized, to make it more robust and immune to censorship. This will also allow people to develop different…
static_rtti
  • 53,760
  • 47
  • 136
  • 192
12
votes
2 answers

Behind NAT to behind NAT connection

I've come across an interesting problem. Basically I have 2 mobile phones that are both behind NATs. I want to communicate directly between the 2 devices using UDP. I know if I initiate a connection from the phones to a server then I can push data…
Goz
  • 61,365
  • 24
  • 124
  • 204
12
votes
4 answers

How do I make a TCP server work behind a router (NAT) without any redirection configuration needed

The scenario is the following. I have two machines A and B: A: Client (behind NAT) B: Server (behind NAT) I want B to be able to listen on any given port, so that A can send packets to B through that specific TCP port and receive any response. If…
Chetane
  • 240
  • 1
  • 3
  • 10
12
votes
3 answers

Unity3D for iOS and Android: Multiplayer (Bluetooth Connection)

i'm looking for a way to connect two devices using Bluetooth in Unity iOS and Android Basic for Multiplayer-Gaming. I found: AllJoyn by Qualcomm - Bluetooth works apparently only with Root-Android Devices and currently not with iOS. iOS GameKit…
Oli
  • 1,407
  • 3
  • 30
  • 47