SlideShare a Scribd company logo
HI, I’M DAVID
://daviddias.me

://blog.daviddias.me

://github.com/diasdavid

://twitter.com/daviddias
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
RESOURCE DISCOVERY
RESOURCE DISCOVERY FOR THE
WEB PLATFORM ON TOP OF A P2P
OVERLAY NETWORK USING WEBRTC
AS THE LAYER OF TRANSPORT
THE INTERNET
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
MEMEX
URL
{

“KEY” : ”VALUE”

}
GET http://recipes.com/francesinha
GET http://recipes.com/latest
GET http://recipes.com/latest
GET http://recipes.com/latest
GET http://recipes.com/latest LB
GET http://recipes.com/latest LB
Centralized
GET http://recipes.com/latest
L
L L
L
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
DECENTRALISED
ARCHITECTURES
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
P2P networks are only as useful as their Resource
Discovery capabilities remain efficient when they scale up
GNUTELA 0.4
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
• march 2000, Justin Frankel and Tom Pepper 

• topology is completely random

• routing and search using flooding with TTL
and hop counter

• really slow

• lot’s of signalling traffic
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
GNUTELA 0.6
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
UNSTRUCTURED 

P2P NETWORKS
Without an implicit way to organize content
STRUCTURED 

P2P NETWORKS
CHORD
• DHT

• Highly scalable

• Each node only knows of m number of other nodes

• Each node has a unique identifier

• Each node is responsible for a segment of the data

• Ids are 160 bits (SHA-1 for Uniform Distribution)

• CHORD is awesome
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
02160
• 160 bit
namespace
0
1
2
3
4
5
6
7
• 3 bit
namespace

• Id = hash(IP)
0
1
2
3
4
5
6
7
• each node is
responsible for
a segment
0
1
2
3
4
5
6
7
• minimum
requirement -
each node has
to know their
successor
0
1
2
3
4
5
6
7
• each node is
going to have
it’s finger table
start interval sucessor
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m
interval(k) = start(k) = start(k+1)
sucessor - first node after start(k)
0
1
2
3
4
5
6
7
start interval sucessor
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
0
1
2
3
4
5
6
7
start interval sucessor
1
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*1-1) mod 23 ,

(0+2*2-1) mod 23) =

[1,2)
0
1
2
3
4
5
6
7
start interval sucessor
1 [1,2) 1
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*1-1) mod 23 ,

(0+2*2-1) mod 23) =
0
1
2
3
4
5
6
7
start interval sucessor
1 [1,2) 1
2
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*2-1) mod 23 ,

(0+2*3-1) mod 23)
0
1
2
3
4
5
6
7
start interval sucessor
1 [1,2) 1
2 [2,4) 3
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*2-1) mod 23 ,

(0+2*3-1) mod 23)
0
1
2
3
4
5
6
7
start interval sucessor
1 [1,2) 1
2 [2,4) 3
4
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*3-1) mod 23 ,

(0+2*4-1) mod 23)
0
1
2
3
4
5
6
7
start interval sucessor
1 [1,2) 1
2 [2,4) 3
4 [4,0) 6
start(k) = (n+2k-1) mod 2m, 1 ≤ k ≤ m

interval(k) = [start(k), start(k+1) )

sucessor - first node after start(k)
interval(k) = 

[(0+2*3-1) mod 23 ,

(0+2*4-1) mod 23)
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
• API drafted by W3C

• enables voice, video and data transfer between
browsers in a P2P fashion
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport
DEMO
WEBRTC-EXPLORER
• Chord inspired P2P overlay network
designed for the Web Platform

• Uses CHORD routing scheme

• Uses WebRTC for transport

• WebSockets for Signalling

• Peers (browsers) route messages amongst
them

• 48 bits Ids

• Brings a full DHT to the browser
WEBRTC-EXPLORER
WEBRTC-RING
http://blog.daviddias.me/
2014/12/20/webrtc-ring
HOW DOES IT WORK
var Explorer = require(‘webrtc-explorer’);

var config = {

signalingURL: '<url>'

};

var peer = new Explorer(config);

peer.events.on(‘registered', function(data) {

console.log('Id:', data.peerId);

});

peer.events.on('ready', function() {

console.log('ready to send messages');

});

peer.events.on('message', function(envelope) {

console.log(envelope);

});

peer.register();

//peer.send(‘<dst_id>’, <data_to_send>);
s-register
c-registered
{

id: “<this_node_id>”

}
1
2
c-finger-update

c-finger-update

c-finger-update
s-send-offer
c-offer-accepted
1
4
s-accept-offer
s-offer-accepted
2
3
5
DEMO
PAPERS
• A study on peer-to-peer based discovery of grid resource information by
Rajiv Ranjan, Aaron Harwood, Rajkumar Buyya

• Peer-to-peer architecture case study: Gnutella network by M. Ripeanu

• Dynamo : Amazon ’ s Highly Available Key-value Store by Giuseppe
DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash
Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, Werner
Vogels

• The Gnutella Protocol Specification v0.6 by Tor Klingberg, Raphael Manfredi

• Chord : A Scalable Peer-to-peer Lookup Service for Internet by Ion Stoica,
Robert Morris, David Karger, M Frans Kaashoek, Hari Balakrishnan Ý
THANK YOU! :D
Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport

More Related Content

PDF
Networking and Go: An Epic Journey
PDF
Sdnds tw-meetup-2
PPTX
OVN - Basics and deep dive
PDF
2015 FOSDEM - OVS Stateful Services
PDF
Linux Networking Explained
ODP
Get rid of TLS certificates - using IPSec for large scale cloud protection
PDF
Twisted Introduction
PPTX
OpenvSwitch Deep Dive
Networking and Go: An Epic Journey
Sdnds tw-meetup-2
OVN - Basics and deep dive
2015 FOSDEM - OVS Stateful Services
Linux Networking Explained
Get rid of TLS certificates - using IPSec for large scale cloud protection
Twisted Introduction
OpenvSwitch Deep Dive

What's hot (20)

PDF
SDNDS.TW Mininet
PPTX
Network programming using python
PDF
debugging openstack neutron /w openvswitch
PDF
IPTABLES_linux_Firewall_Administration (1).pdf
PDF
[Intuit] Control Everything
PDF
Kubernetes Intro
PDF
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
PDF
Monitoring with Syslog and EventMachine
PDF
Open vSwitch - Stateful Connection Tracking & Stateful NAT
PPTX
The Basic Introduction of Open vSwitch
DOCX
Open vswitch datapath implementation
PPTX
Install ovs on local pc
PDF
Mininet Basics
PDF
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
PPT
Tcp sockets
PDF
Puppet User Group Presentation - 15 March 2012
PPTX
openATTIC using grafana and prometheus
PDF
Anatomy of neutron from the eagle eyes of troubelshoorters
PDF
OpenStack networking
SDNDS.TW Mininet
Network programming using python
debugging openstack neutron /w openvswitch
IPTABLES_linux_Firewall_Administration (1).pdf
[Intuit] Control Everything
Kubernetes Intro
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
Monitoring with Syslog and EventMachine
Open vSwitch - Stateful Connection Tracking & Stateful NAT
The Basic Introduction of Open vSwitch
Open vswitch datapath implementation
Install ovs on local pc
Mininet Basics
Docker Meetup: Docker Networking 1.11, by Madhu Venugopal
Tcp sockets
Puppet User Group Presentation - 15 March 2012
openATTIC using grafana and prometheus
Anatomy of neutron from the eagle eyes of troubelshoorters
OpenStack networking
Ad

Viewers also liked (14)

DOCX
Examen de consolidacion de comunicacion 4 to grado 2015
PDF
P2P Resource Discovery for the Browser
PDF
JSConfBR - Securing Node.js App, by the community and for the community
PDF
Understanding The Community Lifecycle
PDF
Node.js Interactive
PDF
Dalla Jugoslavia alla Jugosfera
DOCX
Examen de consolidacion i bimestre comunicacion 6 t0 grado 2016.
PDF
Ponteiros2
PDF
Lisboa WebRTC - May 21, 2015 - Intro to WebRTC
DOC
La storia che scrive la geografia. La geopolitica come politica dell' espansi...
PDF
Brasile strategia di internazionalizzazione
DOCX
EXAMEN II SEMESTRE 3ER GRADO
PDF
TriConf 2014 - LXJS, the Lisbon Javascript Conference
PDF
Precision Medicine: Research Presentation
Examen de consolidacion de comunicacion 4 to grado 2015
P2P Resource Discovery for the Browser
JSConfBR - Securing Node.js App, by the community and for the community
Understanding The Community Lifecycle
Node.js Interactive
Dalla Jugoslavia alla Jugosfera
Examen de consolidacion i bimestre comunicacion 6 t0 grado 2016.
Ponteiros2
Lisboa WebRTC - May 21, 2015 - Intro to WebRTC
La storia che scrive la geografia. La geopolitica come politica dell' espansi...
Brasile strategia di internazionalizzazione
EXAMEN II SEMESTRE 3ER GRADO
TriConf 2014 - LXJS, the Lisbon Javascript Conference
Precision Medicine: Research Presentation
Ad

Similar to Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport (20)

PDF
Cncf k8s_network_part1
PPTX
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
PPTX
Docker 1.11 Presentation
PDF
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
PDF
Open stack pike-devstack-tutorial
PDF
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
PDF
От Java Threads к лямбдам, Андрей Родионов
PDF
От Java Threads к лямбдам, Андрей Родионов
PDF
Network Programming: Data Plane Development Kit (DPDK)
PDF
Run Run Trema Test
PPTX
ql.io: Consuming HTTP at Scale
PDF
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
PDF
2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...
PDF
SDN Presentation
PDF
Kubernetes for java developers - Tutorial at Oracle Code One 2018
PDF
Cotopaxi - IoT testing toolkit (3rd release - Black Hat Europe 2019 Arsenal)
PDF
2018 10-31 modern-http_routing-lisa18
PPTX
Docker Mentorweek beginner workshop notes
PDF
EBtree - Design for a Scheduler and Use (Almost) Everywhere
PDF
Docker for Java Developers
Cncf k8s_network_part1
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
Docker 1.11 Presentation
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Open stack pike-devstack-tutorial
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
От Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей Родионов
Network Programming: Data Plane Development Kit (DPDK)
Run Run Trema Test
ql.io: Consuming HTTP at Scale
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...
SDN Presentation
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Cotopaxi - IoT testing toolkit (3rd release - Black Hat Europe 2019 Arsenal)
2018 10-31 modern-http_routing-lisa18
Docker Mentorweek beginner workshop notes
EBtree - Design for a Scheduler and Use (Almost) Everywhere
Docker for Java Developers

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Big Data Technologies - Introduction.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Programs and apps: productivity, graphics, security and other tools
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Electronic commerce courselecture one. Pdf
NewMind AI Weekly Chronicles - August'25 Week I
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
sap open course for s4hana steps from ECC to s4
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
cuic standard and advanced reporting.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Big Data Technologies - Introduction.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Programs and apps: productivity, graphics, security and other tools

Resource Discovery for the Web Platform using a P2P Overlay Network with WebRTC as the layer of Transport