Title: PeertoPeer SIP
1Peer-to-Peer SIP
- David Bryan
- July 27, 2005
2Affiliation(s)
3Overview
- Motivation
- What is Peer-to-Peer?
- Why P2P SIP?
- P2P basics
- Approaches to P2P SIP
- P2P SIP/SOSIMPLE
- Problems, barriers, and future work
4What is Peer-to-Peer?
- Peer-to-Peer (P2P) technology
- Fundamentally different than client server
- Nodes cooperate to provide (collectively) the
functionality a central server would provide - Not all nodes provide all services/know
everything, but as a group they do
5What is Peer-to-Peer?
Client Server
???
???
???
???
6What is Peer-to-Peer?
Peer-to-Peer
???
???
???
???
7Motivating Cases
- Small deployments
- Security
- Lack of resource
- Limited/No Internet connectivity
- Ad-Hoc and ephemeral groups
- Censorship or impeded access
- Large scale decentralized communications
- Skype (sort of)
8Client/Server Session
9Problem w/Remote Server
10Why P2P?
- Infrastructure independence
- No central servers
- Dont need connectivity
- Simple discovery and setup
- Privacy
- Highly scalable
- Lack of central control
- Dynamic DNS doesnt offer all of this
11P2P Session
12Why SIP?
- Widely established protocol
- Standards based
- Compatibility with existing equipment
- Reuse existing software components
- Many problems already solved
- SIP is already mostly P2P
- SIP vs. H.323
- Support for both IM and VoIP
- SIP/SIMPLE vs. XMPP
13Related Work
- Skype
- Not as P2P as they imply, non-standard
- EarthLinks SIP Share
- Use SIP messages to encode filesharing DHT
- Others in this area
- Kundan Singh/Henning Schulzrinne at Columbia
University
14P2P Basics
- Most famous use of P2P is file sharing
- Most famous infamous use of P2P is file sharing
- Each user stores some number of files on the
network, ask peers for the file - Can also share other resources or services, no
need to be files - Connected to each other in a logical network
called an overlay
15Overlay Network
- Collection of nodes, connected logically in some
way - The connections in the overlay are frequently not
related to those in the physical network
16Flooding w/TTL
Node broadcasts to neighbors Node(s) respond
directly
TTL 1
TTL 2
TTL 3
17Problems w/Flood
- Inefficient!
- Lots of network traffic
- Multiple nodes respond (can be good or bad)
- No guarantee of completion some outside of TTL
horizon - Nodes working on behalf of others
- DOS risk, but doubles traffic otherwise
- Gnutella was a flood based design
18Structured P2P
- Basic idea is that what you are looking for has
an identifier - Locate items in the overlay based on the
identifier - Distributed Hash Table (DHT), Content Addressable
Networks (CAN) - Since everything has its place, eliminate false
negatives - Since you can go (close to) directly to the item
you want, more efficient
19Distributed Hash Tables
- Every resource has a keyword, hashed to produce a
Resource ID, or key - Every node participating hashes a unique property
(IP address) to produce a Node ID - The resource itself, or information about how to
find it, for a particular Resource ID is stored
at a node with a similar Node ID
20Chord
- Algorithm/Implementation for a DHT in a circular
namespace - 0 and max ID are neighbors
- A resource w/key k is stored by the first node
with Node ID k - This node is called the successor node of key k
21Example Chord Ring
- Example namespace is 0-31
- Wraps at 0/31
- Values increase clockwise
- Sometimes called an identifier circle
0
31
1
2
3
4
5
6
7
15
22Example Chord Ring
Node A Node-ID 2
Item A, key 5
Node D Node-ID 29
Stores Item C, key 30
Item B, key 18
Item C, key 30
Node C Node-ID 18
Stores Item B, key 18
Node B Node-ID 13
Stores Item A, key 5
IDs/key namespace is 0-31
23Finger Tables
- Each node keeps n fingers spaced around the
ring to route messages (where address space is
2n) - Fingers point 1, 2, 4, 2n-1 away from the node
the ring, so nodes know more about neighbors than
distant nodes - Most distant finger is ½ the distance across the
identifier ring, so all fingers are in the nodes
half - If no node at the exact value the finger should
point to, points to the next actual node
24Example Finger Table
- Namespace 0-31 is size 25, so 5 fingers
- Node is 3, so fingers are
0
31
1
2
3
4
5
6
7
15
25Example Finger Table
- Namespace 0-31 is size 25, so 5 fingers
- Node is 3, so fingers are
3
4
5
7
11
19
26Example Finger Table
- If only nodes 3, 6, 11 are in the overlay
3
6
11
27Routing in Chord
- Chord routes by sending messages to some node
nearer the desired resource - The nearer node sends to an even closer node on
behalf of sender - Process repeats until a node receiving the
message knows its successor controls that space - Returns address of successor, sender and
responsible node then exchange data
28Applying this to SIP
- Use pure DHT to find the other UAs
- Could leverage standards for DHT, but there
arent any - Some firewalls block DHT traffic as file
sharing - Use DHT for location, but implemented as SIP
messages - Essentially, use DHT as another
registration/location mechanism - Requires some tweaks to Chord
- Use standard SIP to signal once resources are
located
29SOSIMPLE
- Protocol suggested by myself and Cullen Jennings
of Cisco - Available as IETF Internet-Draft
- Implemented and being studied at William Mary
- Implements a Chord-like DHT using SIP
- All traffic is SIP messages
- Very similar to Chord, only slight changes
30Node vs. User Operations
- Operations can be either Node operations, or User
operations - Node operations are DHT related a node joining,
a node leaving, a node updating its finger table - Use REGISTER for much of this
- User operations are completely separate
- More traditional SIP registration here
- Registration is stored by Resource ID of hashed
username - A users node has a Node ID, but their User ID,
and thus registration, will be stored at a
different node - Once a users node joins, only means the node is
in the DHT. Still need to do a user registration
to make calls
31Node Joining
Joining Node Node-ID 503
1. REGISTER
Bootstrap Node Node-ID 023
302 Node B
2. REGISTER
Node B Node-ID 245
302 Node C
3. REGISTER
Differences from Chord node answers for itself
doesnt return successor that controls, iterative
vs. recursive
200 OK
Node C Node-ID 520
4. Joining node after join Node-ID 503
32User Registration
Node A Node-ID 023
Node B Node-ID 245
Stores Alices Registration
Node C Node-ID 520
Alices Node Node-ID 503
33Session Establishment
Alice hashes Bob and gets 011 Alice searches for
a registration with User ID 011, sends invite
to Node A (023)
Node A Node-ID 023
Bob-gt Bobs Node
Bobs Node Node-ID 683
Alice (User ID 234)
Node B Node-ID 245
Bob (User ID 011)
Node C Node-ID 520
Alice-gt Alices Node
Alices Node Node-ID 503
34Session Establishment
Node A stores a registration for Bob (User ID
011) and returns Bobs Node as a contact in a 302
Node A Node-ID 023
Bob-gt Bobs Node
Bobs Node Node-ID 683
Alice (User ID 234)
302 Contact Bobs Node
Node B Node-ID 245
Bob (User ID 011)
Node C Node-ID 520
Alice-gt Alices Node
Alices Node Node-ID 503
35Session Establishment
Alices UA now invites Bobs UA Call set up
proceeds as normal
Node A Node-ID 023
Bob-gt Bobs Node
Bobs Node Node-ID 683
Alice (User ID 234)
2. INVITE Bob
Node B Node-ID 245
Bob (User ID 011)
100, 180, 200
Node C Node-ID 520
Alice-gt Alices Node
Alices Node Node-ID 503
36Session Establishment
Node A Node-ID 023
Bob-gt Bobs Node
Bobs Node Node-ID 683
Media and further signaling flow directly between
UAs
Alice (User ID 234)
Node B Node-ID 245
Bob (User ID 011)
Node C Node-ID 520
Alice-gt Alices Node
Alices Node Node-ID 503
37Presence/Buddies
- Subscribe/Notify used for presence
- Subscribe to all available buddies at startup and
periodically - Serve as additional finger table entries
38Encoding P2P in SIP
- SIP URI parameters
- alg (defined in draft-ietf-sip-identity) to
convey hash algorithm used - usernode used when messages are about node
operations, rather than user - resourceID used on user messages to indicate
what a resource hashes to - overlay-name indicates name of the particular
overlay (can be more than 1)
39Encoding P2P in SIP
- New headers
- DHT-NodeID defines sending nodes node ID
- DHT-Link used by nodes to exchange information
about fingers, successors, predecessors
40Encoding P2P in SIP
Register for a node first joining the overlay
REGISTER sip10.7.7.1 SIP/2.0 To
sip4737a8fe3d_at_10.4.2.2usernodealgrsa-sha1ove
rlaychat From sip4737a8fe3d_at_10.4.2.2usernode
algrsa-sha1overlaychat Contact
sip4737a8fe3d_at_10.4.2.2usernodealgrsa-sha1ove
rlaychat Expires 600 DHT-NodeID rsa-sha1
4737a8fe3d 10.4.2.2 Require dht Supported dht
41Encoding P2P in SIP
Response from accepting node
SIP/2.0 200 OK To sip4737a8fe3d_at_10.4.2.2usern
odealgrsa-sha1overlaychat From
sip4737a8fe3d_at_10.4.2.2usernodealgrsa-sha1ove
rlaychat Contact sip4737a8fe3d_at_10.4.2.2userno
dealgrsa-sha1overlaychat Expires
600 DHT-NodeID rsa-sha1 34f2a82eee
10.7.7.1 DHT-Link P 1 rsa-sha1 312a18dd12
10.8.7.5 DHT-Link S 1 rsa-sha1 3863a23ad1
10.11.22.233 DHT-Link F 2 rsa-sha1 459a1211df
10.101.0.45 DHT-Link F 3 rsa-sha1 a61bd8c100
10.210.78.101 Supported dht Require dht
42Encoding P2P in SIP
User Registration
REGISTER sip10.5.22.112 SIP/2.0 To
sipalice_at_10.4.2.2 algrsa-sha1overlaychatreso
urce-ID51a6f9098d From sipalice_at_10.4.2.2algrs
a-sha1overlaychatresource-ID51a6f9098d Contact
sipalice_at_10.4.2.2algrsa-sha1overlaychatres
ource-ID51a6f9098d Expires 600 DHT-NodeID
rsa-sha1 4737a8fe3d 10.4.2.2 Require
dht Supported dht
43Problems with P2P SIP
- Like most things SIP, NATs
- Same problems, plus some new ones
- Super nodes?
- Security
- Sybil attacks
- DOS (through traffic and true denial)
- Encryption
- Information leakage
- Choosing node locations to divert/block
-
44Future Work
- Improved Security
- Adding features
- Configuration information, VM storage
- Using overlay for voice traffic as well
- Alternate methods for routing
- Comparing different P2P approaches
45References
- draft-bryan-sipping-p2p-01
- D. A. Bryan, B. B. Lowekamp and C. Jennings,
SOSIMPLE Towards a Serverless, Standards-based,
P2P Communication System, AAA-IDEA, June 2005 - Stoica et al., Chord A Scalable Peer-to-Peer
Lookup Protocol for Internet Applications,
IEEE/ACM Transactions on Networking (to appear) - (Dont use the algorithms from SIGCOMM paper by
same authors with same title it contains some
algorithmic errors) - I maintain a list of references at
- http//www.p2psip.org
- Contact me via email
- bryan at ethernot dot org