voip over peer-to-peer r94921046 歐政穎 r94921042 羅成俊 r94921027 黃家俐 r93922064...
TRANSCRIPT
VOIP over Peer-to-Peer
R94921046 歐政穎R94921042 羅成俊R94921027 黃家俐R93922064 蔡明倉
Road Map
IntroductionBackgroundVOIP with P2P architecture
SIPMedia routing
Interwork with PSTNProblemsSummary
Introduction
Advantages of P2P systems High scalabilityRobustnessFault toleranceNetwork self-organizes Intelligence (cooperation)
How can VOIP be integrated within a P2P system?
Road Map
IntroductionBackgroundVOIP on P2P architecture
SIPMedia routing
Interwork with PSTN ProblemsSummary
P2P Architecture
Centralized Directory is stored in one server, but data is transfer
red between peers Napster
Pure Directory is stored in each peer, and lookup is by flo
oding query messages Gnutella
Hybrid (super-node) Directory is stored in each super node, and lookup i
s by requesting super-nodes Kazza
P2P Architecture
Distributed Hash Table
Chord, Pastry, CAN, Tapestry, … Lookup styles directly map to the redirect and
proxy server
Chord
P2P Comparison
Property/
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
Server-based vs. Peer-to-PeerReliability, 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
Road Map
IntroductionBackgroundVOIP on P2P architecture
SIPMedia routing
Interwork with PSTN ProblemsSummary
VOIP on P2P Architecture
Block diagram of a P2P-SIP nodeSIP
InitializationRegistration and Peer discoveryDialing outNode shutdown
Media routingFirewall and NAT traversal Intelligent routing
Block diagram of a P2P-SIP node
Initialization
Initialization
Calculate the key for DHT by IP 7
Contact one of the node in DHT network Request
REGISTER sip:128.59.15.31 SIP/2.0
To: <sip:[email protected]>
From: <sip:[email protected]>
ResponseSIP/2.0 200 OK
To: sip:[email protected]
Contact: <sip:[email protected]>; predecessor=sip:[email protected]
Initialization
Insert self into correct position Between predecessor: 1 and successor: 10
Build routing table 10>= 7+2i-1, i = 1, 2 Send sip REGISTER from 11 (= 7+23-1)
REGISTER sip:128.59.15.55 SIP/2.0To: <sip:[email protected]>From: <sip:[email protected]>
Respond by 15SIP/2.0 200 OKTo: <sip:[email protected]>Contact: <sip:[email protected]>; predecessor=sip:[email protected]
…
Initialization
Registration and Peer Discovery
SIP REGISTER with SIP registrar
DHT Discover peers: bootstrap node Join DHT using node-key =Has
h(ip) REGISTER with DHT using us
er-key =Hash([email protected])
REGISTER
DB
sipd
Detect peers
columbia.edu
14
32
5812
42
REGISTER alice=42
REGISTER bob=12
Dialing Out
Call, instant message, etc.INVITE sip:[email protected] sip:[email protected]
If existing buddy, use cache first
If not found SIP-based lookup (DNS NAPT
R, SRV,…) P2P lookup
Send to super-nodes: proxy Use DHT to locate: proxy or redir
ect
DHT
INVITE key=42
302
42
INVITE
Node shutdown
Graceful termination 7 will send unregister message to its predecessor:1 and succe
ssor: 10REGISTER sip:[email protected] SIP/2.0To: <sip:[email protected]>From: <sip:[email protected]>Expires: 0Contact: <sip:[email protected]>; q=1.0; predecessor=sip:[email protected]: <sip:[email protected]>; q=.8…
REGISTER sip:[email protected] SIP/2.0To: <sip:[email protected]>From: <sip:[email protected]>Expires: 0Contact: <sip:[email protected]>; q=1.0; predecessor=sip:[email protected]
DHT system will re-organize
Node shutdown
Node failureWhen nodes find a remote node failure, it
removes it from its routing tableResend the original query request to the
new failover hop
Firewall & NAT Traversal
SignalingSIP symmetric response routingConnection reuse
Use existing connections to transmit signals
Media ICE (interactive connectivity establishment)
for media sessionSTUN and TURN
Intelligent Routing
In an overlay network, there are diverse paths through relay nodes
But how to select a good one? It needs extra measurements!
Criterions for selecting pathsPacket loss rateEnd-to-end delayAvailable bandwidth
Intelligent Routing
Most of those measurements require the cooperation of middle nodes
They are easier to be implemented in P2P architecture than others
Road Map
IntroductionBackgroundVOIP on P2P architecture
SIPMedia routing
Interwork with PSTN ProblemsSummary
Interwork with PSTN (1/4)
How do they verify that the user owns the number if he registers his number?Every gateway node can reach potentially eve
ry phone number in the world – at very different rates.
Registering a telephone prefixUse tel URI (Not conformant with RFC 3966)
“tel:;phone-context=+1-212” “sip:[email protected];user=phone”
Interwork with PSTN (2/4)
Calling a telephone numberINVITE tel:+1-212-939-7040 SIP/2.0
To: <tel:+1-212-939-7040>
From: <sip:[email protected]>
Request-Disposition: redirect
The basic key, K0, is “tel:+12129397040” derived from To header after removing any fillers.
Other keys, Kn−i, is computed as “tel:;phone-context=+first i digits prefix”, for i=1,2,..n-1, where n is total number of digits.
Interwork with PSTN (3/4)
Incoming INVITE handlingThe canonical “tel” URI is formed to compute t
he DHT key by removing fillers and converting “sip” URI to “tel” URI.
For example, “sip:[email protected]; user=phone” is converted to “tel:;phone-context= +1212939”.
This is used as the key to compute the next hop in routing.
Interwork with PSTN (4/4)
ResponseSIP/2.0 302 Moved temporarilyTo: <tel:;phone-context=+1212939>Contact: <sip:phone.cs.columbia.edu;lr> cost=0; q=1.0
SIP/2.0 302 Moved temporarilyTo: <tel:;phone-context=+1212>Contact: <sip:phone.cs.columbia.edu;lr> cost=USD.03/6s; q=1.0Contact: <sip:manhattan.verizon.com;lr>; cost=USD.06/60s; q=.8
SIP/2.0 302 Moved temporarilyTo: <tel:;phone-context=+1>Contact: <sip:mci.com;lr> cost=USD.10/120s; q=1.0Contact: <sip:att.com;lr>; cost=USD.09/60s; q=.8
Road Map
IntroductionBackgroundVOIP on P2P architecture
SIPMedia routing
Interwork with PSTN ProblemsSummary
Problems
Security issues in peer-to-peer system Malicious program
break-in, spying or spread virus, spy-wares or worms Reducing risks by
Software developed by trusted entities or open source community Running the application as a regular user instead of an
administrator (on Windows) or super-user (on Unix)
Copyright violation Easily extended to support file transfer Reducing risk by
P2P-SIP does not have an efficient search method
Problems
Stolen identity A malicious user may steal the identify of another user Solved by doing Authentication
User identify must be a valid email address System generates a password for the user identify and sends
it to the email address Using MD5 hash function
Data Privacy Public/Private/Protected Data Solved by using Public key mechanism
Problems
Trust Misbehaving peers that route calls incorrectly or log information
for misuse Solved by
Hide the security algorithms
Summary
P2P useful Scalable, reliable No configuration Not as fast as client/server
P2P/SIP Basic operations easy Some potential issues
Security Performance Quality (audio)
Reference
Kundan Singh and Henning Schulzrinne, "Peer-to-peer Internet Telephony using SIP", NOSSDAV. Skamania, Washington, June 2005.
Kundan Singh and Henning Schulzrinne, "Peer-to-peer Internet Telephony using SIP", New York Metro Area Networking Workshop, Sep 2004.
Kundan Singh and Henning Schulzrinne, "Peer-to-peer Internet Telephony using SIP", Columbia University Technical Report CUCS-044-04, Oct 2004.
http://www1.cs.columbia.edu/~kns10/research/p2p-sip/ http://www.p2psip.org/
Reference
An extension to the session initiation protocol (SIP) for symmetric response routing. RFC 3581, Internet Engineering Task Force, Aug. 2003
Connection reuse in the session initiation protocol (SIP). Internet Draft draft-ietf-sip-connect-reuse-00, Internet Engineering Task Force, Aug. 2003
Interactive connectivity establishment (ICE): a methodology for network address translator (NAT) traversal for the session initiation protocol (SIP). Internet Draft draft-ietf-mmusic-ice-00, Internet Engineering Task Force, Oct. 2003
Improving VoIP Quality Through Path Switching, in Proceedings of IEEE INFOCOM 2005, Miami, March, 2005
Exploring the Performance Benefits of End-to-End Path Switching. In Proceedings of ACM Sigmetrics/Performance (Extended Abstract), New York, June 2004