SIMPLE Presence Traffic Optimization and Server Scalability

Slides:



Advertisements
Similar presentations
SIP, Presence and Instant Messaging
Advertisements

Presence, Security and Privacy. VON The Current Environment Many Faces of Security Authentication Verify someone is who they.
Presence and IM as SIP Services Jonathan Rosenberg Chief Scientist.
VoN Developers Conference -- July 2000 Introduction to IMPP Jonathan Rosenberg Chief Scientist.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
Fall IM 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
IM May 24, 2000 Introduction to SIP Jonathan Rosenberg Chief Scientist.
VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
XCAP Tutorial Jonathan Rosenberg.
Vishal K. Singh, Henning Schulzrinne
W3C Workshop on Web Services Mark Nottingham
SIMPLE Presence Traffic Optimization and Server Scalability Vishal Kumar Singh Henning Schulzrinne Markus Isomaki Piotr Boni IETF 67, San Diego.
NGMAST’08 – Jani Pellikkawww.mediateam.oulu.fi 1 Partially Decentralized Context Management for P2P Communities Jani Pellikka, Timo Koskela, Mika Ylianttila.
Using Presence Information to Develop Converged Telecom Services Standards and Challenges Parijat Garg Computer Science, IIT Bombay.
Sharmistha Chatterjee 82349D 82349D Helsinki University of Technology Instant Messaging and Presence with SIP.
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University
March 2004SIMPLE - IETF 59 (Seoul)1 Rich presence: RPID, CIPID, future-presence draft-ietf-simple-rpid draft-ietf-simple-cipid draft-ietf-simple-future.
SIMPLEStone – A presence server performance benchmarking standard SIMPLEStone – A presence server performance benchmarking standard Presented by Vishal.
1 The Mystery of Cooperative Web Caching 2 b b Web caching : is a process implemented by a caching proxy to improve the efficiency of the web. It reduces.
Presence Vishal Kumar Singh and Henning Schulzrinne Feb 10, 2006.
IETF 68 – SIMPLE WG SIMPLE Problem Statement draft-ietf-simple-interdomain-scaling-analysis-00 Avshalom Houri – IBM Tim Rang - Microsoft Edwin Aoki – AOL.
Application-Layer Anycasting By Samarat Bhattacharjee et al. Presented by Matt Miller September 30, 2002.
RPIDS - Rich Presence Information Data Format for Presence Based on the Session Initiation Protocol (SIP) Henning Schulzrinne (ed.) Vijay Gurbani Krisztian.
1 Event Throttle draft-niemi-sipping-event-throttle th IETF, Minneapolis.
IETF 69 SIPPING WG Meeting Mohammad Vakil Microsoft An Extension to Session Initiation Protocol (SIP) Events for Pausing and Resuming.
SIP PUBLISH draft-ietf-simple-publish-01 Aki Niemi
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
IETF 67 – SIMPLE WG SIMPLE Problem Statement Draft-rang-simple-problem-statement-01 Tim Rang - Microsoft Avshalom Houri – IBM Edwin Aoki – AOL.
March 25, 2009SIPPING WG IETF-741 A Batch Notification Extension for the Session Initiation Protocol (SIP) draft-johnston-sipping-batch-notify-00 Alan.
SIP PUBLISH Method Jonathan Rosenberg dynamicsoft.
SIP file directory draft-garcia-sipping-file-sharing-framework-00.txt draft-garcia-sipping-file-event-package-00.txt draft-garcia-sipping-file-desc-pidf-00.txt.
IETF 70 – SIMPLE WG SIMPLE Problem Statement draft-ietf-simple-interdomain-scaling-analysis-03 Avshalom Houri – IBM Tim Rang, Sriram Parameswar - Microsoft.
SIP Events: Changes and Open Issues IETF 50 / SIP Working Group Adam Roach
Call Completion using BFCP draft-roach-sipping-callcomp-bfcp IETF 67 – San Diego November 7, 2006.
1 © NOKIA Presentation_Name.PPT / DD-MM-YYYY / Initials Company Confidential XCAP Usage for Publishing Presence Information draft-isomaki-simple-xcap-publish-usage-00.
SIPPING Drafts Jonathan Rosenberg dynamicsoft. Conferencing Package Issues Only one – scope Depends on broader work in conferencing May include –Participant.
A SIP Load Control Event Package draft-shen-sipping-load-control-event-package-00.txt Charles Shen, Henning Schulzrinne, Arata Koike IETF 72, Dublin Ireland.
IETF 66 – SIMPLE WG SIMPLE Problem Statement Draft-rang-simple-problem-statement-00 Tim Rang - Microsoft Avshalom Houri – IBM Edwin Aoki – AOL.
1 Implementation of IMS-based S-CSCF with Presence Service Jenq-Muh Hsu and Yi-Han Lin National Chung Cheng University Department of Computer Science &
Company LOGO OMA Presence SIMPLE. What is OMA? The Open Mobile Alliance (OMA) is a standards body which develops open standards for the mobile phone industry.
Emdeon Office Batch Management Services This document provides detailed information on Batch Import Services and other Batch features.
Ad-hoc Resource Lists using SUBSCRIBE
Jonathan Rosenberg dynamicsoft
Performance Study of Congestion Price Based Adaptive Service
Mobile IP.
Hydra: Leveraging Functional Slicing for Efficient Distributed SDN Controllers Yiyang Chang, Ashkan Rezaei, Balajee Vamanan, Jahangir Hasan, Sanjay Rao.
Resource List Server (RLS)
Implicit Subscriptions
Markus Isomäki Eva Leppänen
Peer-to-peer networking
Multi-Channel MAC for Ad Hoc Networks: Handling Multi-Channel Hidden Terminals Using A Single Transceiver Jungmin So and Nitin Vaidya Modified and Presented.
An introduction to Transactions & Dialogs
Dynamic Feature Extensions to the Presence Information Data Format Location Object (PIDF-LO) draft-singh-geopriv-pidf-lo-dynamic-00.txt Vishal K. Singh.
Utilization of Azure CDN for the large file distribution
BGRP (Border Gateway Reservation Protocol) A Tree-Based Aggregation Protocol for Inter-Domain Reservations Ping Pan Ellen Hahne.
Event notification and filtering
Composing Presence Information
Staged Refresh Timers for RSVP
Charles Shen, Henning Schulzrinne, Arata Koike
Jonathan Rosenberg dynamicsoft
EE 122: Lecture 22 (Overlay Networks)
Henning Schulzrinne Columbia University
Vehicle Info Event Package draft-singh-simple-vehicle-info-00.txt
RPIDS - Rich Presence Information Data Format for Presence Based on the Session Initiation Protocol (SIP) Henning Schulzrinne (ed.) Vijay Gurbani Krisztian.
Henning Schulzrinne Columbia University
An Architecture for Secure Wide-Area Service Discovery
Policy enforcement and filtering for geospatial information
BINDing URIs to SIP AORs
Distributed Systems and Algorithms
Presentation transcript:

SIMPLE Presence Traffic Optimization and Server Scalability Vishal Kumar Singh Henning Schulzrinne Markus Isomaki Piotr Boni IETF 67, San Diego

Presence Problems Revisited Resource list server and conditional NOTIFY using entity-tags in SUBSCRIBE address 40% of total inter-domain presence traffic NOTIFY = 60% of traffic Traffic scaling Access network Low bandwidth (wireless) Traffic bursts due to user synchronization Inter-domain traffic Steady-state NOTIFY message volume Intra-domain traffic Server scaling Partial notify, privacy filtering, composition, …  limited request rate per server

Proposed Solutions Common NOTIFY for multiple watchers in a domain Useful in inter-domain scenario Batched NOTIFY Useful both in access network and inter-domain scenarios Timed-status User can choose to get notified based on calendar information of watcher On-demand presence Useful in all scenarios Adapting the notification rate

Traffic Reduction Vs. Server Load Technique Access (BW) Backbone (BW) Server (load) RLS + (SUBSCRIBE) + - (dialog maintained) Conditional NOTIFY + (NOTIFY) Partial publication + (payload ~ ¼) - Watcher filtering + (smaller payload or # of messages) SIGCOMP Common NOTIFY = + (messages) ? Batched NOTIFY + (header overhead) On-demand presence Timed status (+) improves, (-) worsens

Common NOTIFY for Multiple Watchers Multiple watchers subscribe to same presentity in another domain (Popular user, co-workers on a project) Presentity’s presence server sends a single NOTIFY to watcher’s domain presence server Watcher domain presence server distributes it to individual watchers Issues Privacy filtering Failure aggregation Watcher list to watcher’s domain presence server Domain A Domain B NOTIFY (PIDF + subscriber list) PUBLISH (PIDF) Presentity Privacy Filtering SUBSCRIBE (To same presentity) Watcher

Batched NOTIFY Bundled notification (reverse of RLS) One or more watchers subscribe to multiple presentities in same or another domain Presentity’s presence server sends a single aggregated NOTIFY To watcher – per watcher aggregation To watcher domain presence server – per domain aggregation Watcher domain presence server distributes NOTIFY messages to individual watchers Multiple presence document in same NOTIFY MIME multipart – PIDF concatenation, PIDF-diff concatenation Identifying and sending the changes only  new event package Domain A Domain B NOTIFY (Multiple PIDFs) PUBLISH (PIDF) Presentity Watcher Privacy Filtering Multiple SUBSCRIBE

Timed Presence General availability information instead of notification for every status change calendar information only limit notification to (say) once a day, not for every new appointment limit range of time  don’t include year’s calendar in each update  combine with partial notification Watcher may turn subscriptions on and off based on <timed-status> Watchers can achieve this using watcher filtering Currently, watcher filtering does not support timestamp comparison based triggers

On-demand Presence Watchers don’t need every presence update of every presentity only care about small (but changing) subset e.g., those that person is working with currently SUBSCRIBE with expiration interval set to zero No state created on the server Examples Google Talk? Presence-based call routing: fetch presence state using SUBSCRIBE to learn whether and where the callee is available, on demand Reduces traffic in all the three scenarios

Adaptive NOTIFY Rate Variation of on-demand presence Adjusting the requested rate of notification Based on statistical information about multimedia sessions with other users Estimate: 60-70% of the calls/IM messages with 20% of the buddies Nearly 50% of the buddies are rarely contacted Buddies from old city, previous company, college Hybrid approach Regular updates On-demand presence Adapted rate of notification

20 watchers from same domain Traffic Analysis Presentity Domain Watcher Domain NOTIFY PUBLISH (PIDF) SUBSCRIBE/ Watchers 3/hr State changes 1,000,000 Presentities (Np) SUBSCRIBE 5 watchers/domain For each presentity 20 watchers from same domain 2-5 domains Common NOTIFY for multiple watcher considering only inter-domain steady state Reduction in traffic by a factor of the average number of watchers per remote domain total inter-domain watchers/ number of domains for presentity Batched NOTIFY Reduction in traffic by a factor of number of presentities watched by a single watcher in the remote domain

Conclusion Common NOTIFY for multiple watchers reduces inter-domain traffic by average number of watchers per domain Bundled NOTIFY useful both for access network and inter-domain scenario Aggregation of multiple presence document or changes to documents Heuristics (timed-presence, on-demand presence) don’t require protocol work But watcher filtering needs to be extended to improve scaling of timed-status

Back Up Slides SIMPLE Problem Statement Traffic with no optimization Traffic with RLS and Entity Tags Issues with common NOTIFY Issues with bundled NOTIFY Example of timed presence Traffic analysis

SIMPLE Problem Statement I Presence traffic is divided into 3 parts Initial SUBSCRIBE/NOTIFY Steady state (SUBSCRIBE refresh, NOTIFY) Sign out (SUBSCRIBE/NOTIFY termination) Resource list server and conditional NOTIFY using entity-tags in SUBSCRIBE addresses 2/5 of total inter-domain presence traffic NOTIFY constitutes 3/5 of total steady state traffic (details in next 3 slides)

SIMPLE Problem Statement- II PARAMETERS TO CALCULATE PRESENCE TRAFFIC (A01) Subscription lifetime (hours) (A02) Presence state changes / hour (A03) Subscription refresh interval / hour (A05) Number of dialogs to maintain per watcher (A04) Total federated presentities per watcher (A06) Number of watchers in a federated presence domain (A07) Initial SUBSCRIBE/200 per watcher = A5*2 (message and an OK) (A08) Initial NOTIFY/200 per watcher = A5*2 (message and an OK) (A09) Total initial messages = (A7+A8)*A6 (A10) NOTIFY/200 per watched presentity = (A2*A1*A4*2) (message and an OK) (A11) SUBSCRIBE/200 refreshes = (A1/A3)*A5*2 (message and an OK) (A12) NOTIFY/200 due to subscribe refresh - In a deployment where the notification optimization is not deployed this number will be ((A1/A3)*A5), otherwise it is 0 (A13) Number of steady state messages = (A10+A11+A12)*A6 (A14) SUBSCRIBE termination = A5*2 (message and an OK) (A15) NOTIFY terminated = A5*2 (message and an OK) (A16) Number of sign-out messages = (A7+A8)*A6 (A17) Total messages between domains (both directions where users from domain A subscribe to users from domain B and vice versa)= (A9+A13+A16)*2 (A18) Total number of messages / second = A17/A1/3600 (seconds in hour)

Traffic (no optimization) Two presence domains, Each with 20,000 federating users. 4 contacts in the peer domain (A01) Subscription lifetime (hours) 8 (A02) Presence state changes / hour 3 (A03) Subscription refresh interval / hour 1 (A04) Total federated presentities per watcher 4 (A05) Number of dialogs to maintain per watcher 4 (A06) Number of watchers in a federated presence domain 20,000 (A07) Initial SUBSCRIBE/200 per watcher 8 (A08) Initial NOTIFY/200 per watcher 8 (A09) Total initial messages 320,000 (A10) NOTIFY/200 per watched presentity. 192 (A11) SUBSCRIBE/200 refreshes 64 (A12) NOTIFY/200 due to subscribe refresh 64 (A13) Number of steady state messages 6,400,000 (A14) SUBSCRIBE termination 8 (A15) NOTIFY terminated 8 (A16) Number of sign-out messages 320,000 (A17) Total messages between domains 14,080,000 (A18) Total number of messages / second 489

Traffic (With RLS & Entity Tags) Two presence domains, Each with 20000 federating users. 4 contacts in the peer domain (A01) Subscription lifetime (hours) 8 (A02) Presence state changes / hour 3 (A03) Subscription refresh interval / hour 1 (A04) Total federated presentities per watcher 4 (A05) Number of dialogs to maintain per watcher 1 (A06) Number of watchers in a federated presence domain 20,000 (A07) Initial SUBSCRIBE/200 per watcher 2 (A08) Initial NOTIFY/200 per watcher 2 (A09) Total initial messages 80,000 (A10) NOTIFY/200 per watched presentity. 192 (A11) SUBSCRIBE/200 refreshes 16 (A12) NOTIFY/200 due to subscribe refresh 0 (A13) Number of steady state messages 4,160,000 (A14) SUBSCRIBE termination 2 (A15) NOTIFY terminated 2 (A16) Number of sign-out messages 80,000 (A17) Total messages between domains 8,640,000 (A18) Total number of messages / second 300 Reduction in NOTIFY/200 because of SUBSCRIBE refresh and SUBSCRIBE count. NO GAIN in NOTIFY which constituted 3/5 of Steady State Messages.

Traffic Optimization Approaches RLS Access network Only for SUBSCRIBE messages Conditional SUBSCRIBE Only for NOTIFY corresponding to SUBSCRIBE refresh SIGCOMP Watcher filtering Server load + Client support Partial publication and notification Server load + Client support

Proposed Solutions Common NOTIFY for multiple watchers Batched NOTIFY Useful mainly in inter-domain scenario Batched NOTIFY Useful both in access network and inter-domain scenarios Timed-status User can choose to get notified based on calendaring information On-demand presence Useful in all scenarios Adapting the notification rate

Issues with Common NOTIFY for Multiple Watchers Privacy filtering Per domain filters Watcher domain filter performs the privacy filter XCAP based privacy filter downloads Layer 8 negotiation between presence servers of two domains Failure aggregation Failure of NOTIFY causes subscription termination Update notification server about delivery failures.

Issues with Common NOTIFY for Multiple Watchers Watcher list to watcher’s domain presence server Watcher domain presence server maintains subscription of all the client’s from its domain to the presentity Presentity’s domain presence server sends the list of watchers in each NOTIFY message Watcher’s domain server subscribes using WINFO event package to get the list of watchers from its domain

Issues with Batched NOTIFY Presence status update for presentities may not occur simultaneously Watchers need to specify a tolerable delay for receiving presence state update for each presentity Probably using a watcher filter NOTIFY delivery failure indication and subscription termination ‘Subscription-state’ header in the NOTIFY message is indicates subscription termination Bundled notification doesn’t indicate subscription termination, hence, terminating NOTIFY messages cannot be sent using this mechanism Notifier needs to know if the NOTIFY was delivered successfully or not

Example of Timed-Presence PIDF <presence xmlns="urn:ietf:params:xml:ns:pidf“ xmlns:ts="urn:ietf:params:xml:ns:pidf:timed-status“ entity="pres:someone@columbia.edu"> <tuple id="c8dqui"> <status> <basic>open</basic> </status> <ts:timed-status from="2006-11-04T10:20:00.000-05:00" until="2006-11-08T19:30:00.000-05:00"> <ts:basic>closed</ts:basic> </ts:timed-status> <contact>sip:Vishal@cs.columbia.edu</contact> <note>I'll be in San Diego, IETF meeting</note> </tuple> </presence>

20 watchers from same domain Traffic Analysis - I Presentity Domain Watcher Domain NOTIFY PUBLISH (PIDF) SUBSCRIBE/ Watchers 3/hr State changes 1,000,000 Presentities (Np) SUBSCRIBE 5 watchers/domain For each presentity 20 watchers from same domain 2-5 domains NOTIFY traffic Np x rate x Num_watchers [ local + remote domains] + log-in + log-out Np x rate x [ 20 + (2 to 5) x 5 ] + initial + final PUBLISH Np x rate SUBSCRIBE Np x Num_watchers [ local + remote domains] x refresh rate + initial + final Np x refresh rate The above is after applying RLS and conditional NOTIFY

Traffic Analysis - II Common NOTIFY for multiple watcher considering only inter-domain steady state Reduction in traffic by a factor = Average number of watchers per remote domain For widely distributed inter-domain presence in SIMPLE problem statement 5 federations and 20 federated watchers Number of NOTIFY = ¼ times the number of NOTIFY in steady state. Batched NOTIFY Reduction in traffic by a factor (at least) = Average number of presentities watched by a single watcher per remote domain

Presence Traffic Size Size of SIMPLE message Size of a single tuple ~ 400 bytes Size of SIP header ~ 450 bytes Size of body with single tuple ~ 600 bytes Rate of change of presence = 3/hr Watchers = 20+10 [intra-domain + inter-domain (2 domains with 5 watchers each)] Let number of user be N = 20,000 PUBLISH = N x 3/hr x [1200 + 600] SUBSCRIBE = N x 2 (RLS), Ignoring NOTIFY for this NOTIFY = N x 3/hr x (intra-domain watcher + inter-domain watcher) x [size of NOTIFY + size of 200 OK] Total traffic from server = 0.93 MB /sec Inter-domain traffic from server = 0.3 MB/sec Inter-domain traffic from server ~ 0.055 MB/sec (with Common NOTIFY) Total traffic from server = 0.70 MB/sec (with Common NOTIFY)

Server Costs Vs. Network Cost Some optimization techniques incur heavy load on the server Tradeoff between server scalability vs. traffic scalability Typical presence server scalability (based on Columbia’s presence server performance measurement) 600 messages per second or 2 million messages per hour. Publish processing (composition), subscription handling and notification. Scalability in terms of number of users: With 1 endpoint per user and 50 buddies per user With 2 status changes per hour per user Approx number of concurrent users supported is 20,000 per server (NOTIFY only considered)