P2P-SIP P2P-SIP Peer to peer Internet telephony Peer to peer Internet telephony using SIP (Session Initiation using SIP (Session Initiation Protocol) Protocol) Kundan Singh and Henning Schulzrinne Columbia University, New York June 2005 http://www.cs.columbia.edu/IRT/ p2p-sip
38
Embed
P2P-SIP Peer to peer Internet telephony using SIP (Session Initiation Protocol)
P2P-SIP Peer to peer Internet telephony using SIP (Session Initiation Protocol). Kundan Singh and Henning Schulzrinne Columbia University, New York June 2005 http://www.cs.columbia.edu/IRT/p2p-sip. Introduction What is SIP? Why P2P-SIP? Architecture - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
P2P-SIPP2P-SIPPeer to peer Internet telephony using Peer to peer Internet telephony using SIP (Session Initiation Protocol)SIP (Session Initiation Protocol)
Kundan Singh and Henning Schulzrinne Columbia University, New York
June 2005http://www.cs.columbia.edu/IRT/p2p-sip
2
AgendaAgenda Introduction
What is SIP? Why P2P-SIP? Architecture
Design choices: SIP using P2P vs P2P over SIP; Components that can be P2P
Implementation Choice of P2P algorithm (DHT); Node join,
leave; message routing Conclusions and future work
3
What is SIP? Why P2P-SIP?What is SIP? Why P2P-SIP?
What else can be P2P?What else can be P2P? Rendezvous/signaling (SIP) Configuration storage Media storage (e.g., voice mail) Identity assertion (?) Gateway (?) NAT/media relay (find best one)
7
What is our P2P-SIP?What is our P2P-SIP? Unlike server-based SIP architecture Unlike proprietary Skype architecture
Robust and efficient lookup using DHT Interoperability
DHT algorithm uses SIP communication Hybrid architecture
Lookup in SIP+P2P Unlike file-sharing applications
Data storage, caching, delay, reliability Disadvantages
Lookup delay and security
8
Background: DHT (Chord)Background: DHT (Chord) Identifier circle Keys assigned to
successor Evenly distributed
keys and nodes Finger table: logN
ith finger points to first node that succeeds n by at least 2i-1
18
14
21
3238
58
47
10
2430
54
38
42
Key node
8+1 = 9 148+2 = 10
14
8+4 = 12
14
8+8 = 16
21
8+16=24
32
8+32=40
42Find
Map key to nodeJoin, Leave, or Failure
Update the immediate neighborsSuccessor and predecessor
Stabilize: eventually propagate the info
ReliabilityLog(N) successors; data replication
9
Design AlternativesDesign Alternatives
65a1fc
d13da3
d4213f
d462bad467c4
d471f1
d46a1c
Route(d46a1c)
18
14
21
3238
58
47
10
24 30
54
38
42
Use DHT in server farm
Use DHT for all clients; But some are resource limited
Use DHT among super-nodes
1. Hierarchy2. Dynamically adapt
servers
clients
1
10
2430
54
38
10
ArchitectureArchitecture
User interface (buddy list, etc.)
SIPICE RTP/RTCPCodecs
Audio devicesDHT (Chord)
On startup
Discover
User location
Multicast REGISTERPeer found/Detect NAT
REGISTERREGISTER, INVITE,MESSAGE
Signup,Find buddies
JoinFind
Leave
On resetSignout,transfer
IM,call
SIP-over-P2PP2P-using-SIP
11
Node StartupNode Startup SIP
REGISTER with SIP registrar DHT
Discover peers: multicast REGISTER
SLP, bootstrap, host cache Join DHT using node-
key=Hash(ip) Query its position in DHT Update its neighbors Stabilization: repeat periodically
Distributed Hash TablesDistributed Hash Tables Types of search
Central index (Napster) Distributed index with flooding (Gnutella) Distributed index with hashing (Chord)
Basic operationsfind(key), insert(key, value), delete(key), no search(*)
Properties/types Every peer has complete table
Every peer has one key/value
Search time or messages
O(1) O(n)
Join/leave messages
O(n) O(1)
27
ChordChord Identifier circle Keys assigned
to successor Evenly
distributed keys and nodes
18
14
21
3238
58
47
10
2430
54
38
42
0 1 2 3 4 5 6 7 8
28
ChordChord
Finger table: logN ith finger points to first node
that succeeds n by at least 2i-1
Stabilization after join/leave
18
14
21
3238
58
47
10
2430
54
38
42
Key node
8+1 = 9 148+2 = 10
14
8+4 = 12
14
8+8 = 16
21
8+16=24
32
8+32=40
42
29
ComparisonComparisonProperty/scheme
Un-structured
CAN Chord Tapestry
Pastry Viceroy
Routing O(N) or no guarantee
d x N1/d log(N) logBN logBN log(N)
State Constant 2d log(N) logBN B.logBN log(N)Join/leave
Constant 2d (logN)2 logBN logBN log(N)
Reliability and fault resilience
Data at Multiple locations;Retry on failure; finding popular content is efficient
Multiple peers for each data item; retry on failure; multiple paths to destination
Replicate data on consecutive peers; retry on failure
Replicate data on multiple peers; keep multiple paths to each peers
Routing load is evenly distributed among participant lookup servers
30
Server-based vs peer-to-Server-based vs peer-to-peerpeer
Reliability, failover latency
DNS-based. Depends on client retry timeout, DB replication latency, registration refresh interval
DHT self organization and periodic registration refresh. Depends on client timeout, registration refresh interval.
Scalability, number of users
Depends on number of servers in the two stages.
Depends on refresh rate, join/leave rate, uptime
Call setup latency
One or two steps. O(log(N)) steps.
Security TLS, digest authentication, S/MIME
Additionally needs a reputation system, working around spy nodes
Maintenance, configuration
Administrator: DNS, database, middle-box
Automatic: one time bootstrap node addresses
PSTN interoperability
Gateways, TRIP, ENUM Interact with server-based infrastructure or co-locate peer node with the gateway
31
Related work: Skype Related work: Skype From the KaZaA communityFrom the KaZaA community
Host cache of some super nodes Bootstrap IP addresses Auto-detect NAT/firewall settings
STUN and TURN Protocol among super nodes – ?? Allows searching a user (e.g., kun*) History of known buddies All communication is encrypted Promote to super node
Based on availability, capacity Conferencing
P
P
PP
PP
P P
P
P P P
32
Reliability and scalabilityReliability and scalabilityTwo stage architecture for CINEMATwo stage architecture for CINEMA
Why we chose Chord?Why we chose Chord? Chord can be replaced by another
As long as it can map to SIP High node join/leave rates Provable probabilistic guarantees Easy to implement X proximity based routing X security, malicious nodes
35
Related workRelated workJXTA vs Chord in P2P-SIPJXTA vs Chord in P2P-SIP JXTA
Protocol for communication (peers, groups, pipes, etc.)
Stems from unstructured P2P P2P-SIP
Instead of SIP, JXTA can also be used Separate search (JXTA) from signaling
(SIP)
36
Find(user)Find(user) Option-1: No REGISTER
Node computes key based on user ID
Nodes join the overlay based on ID
One node one user
Option-2: With REGISTER REGISTERs with nodes
responsible for its key Refreshes periodically Allows offline messages (?)
12
24
42 14
32
5812
24
56
42REGISTER alice=42
REGISTER bob=12
alice=42
sam=24
bob=12
37
P2P-SIPP2P-SIPSecurity – open issues (threats, solutions, issues)Security – open issues (threats, solutions, issues) More threats than server-based
Privacy, confidentiality Malicious node
Don’t forward all calls, log call history (spy),… “free riding”, motivation to become super-node