Presentation is loading. Please wait.

Presentation is loading. Please wait.

ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer University of Vienna Department of Distributed.

Similar presentations


Presentation on theme: "ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer University of Vienna Department of Distributed."— Presentation transcript:

1 ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer University of Vienna Department of Distributed and Multimedia Systems Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility

2 ANM 2008, Phoenix, April, 18 th Problem Statement Open protocols -Multiple vendors -Compatibility depends on the accurateness of implementations Example: SIP (Session Initiation Protocol) for VoIP -Vendors publish lists of compatible hard phones -Remaining problems with SIP dialects How to overcome incompatibilities of peers?

3 ANM 2008, Phoenix, April, 18 th Use Techniques from Autonomic Computing Analogy to the human autonomic nervous system Investigated to increase autonomicity in computing systems IBM initiative from 2001 [1] Self-x properties Self-configuring Self-protecting Self-healing Self-optimizing etc. Artificial Intelligence research Autonomous software agents, robots Planning, reasoning, and learning [1] Richard Murch. Autonomic Computing. IBM Press. 2005

4 ANM 2008, Phoenix, April, 18 th Outline of the Talk SIP (Session Initiation Protocol) Autonomic SIP adaptation C4.5 tree Babel-SIP Experiments Quantitative results Qualitative results

5 ANM 2008, Phoenix, April, 18 th SIP (Session Initiation Protocol) REGISTER sip:Domain SIP/2.0 To: From: Via: SIP/2.0/UDP IPAdress:Port Call-ID: NDYzYzMwNjJhMDRjYTFj CSeq: 1 REGISTER Contact: Max-Forwards: 70 Session management of the Internet Multimedia Subsystem (IMS) of Next Generation Networks, Voice over IP (VoIP) Defined in RFC 3261 (and additional RFCs for different aspects like RFC 3262, 3263, 3265, 3515, 3311, 3665, and others) Uses TCP/IP protocol stack SIP header fields Functions User location User availability User capabilities Session setup Session management

6 ANM 2008, Phoenix, April, 18 th Autonomic SIP Adaptation Problem of transient incompatibilities Introduce a module for arbitrary proxies: Classification of messages (accepted/rejected) Adaptation of messages to avoid rejections Generic approach (not specific for SIP)

7 ANM 2008, Phoenix, April, 18 th C4.5 Decision Trees Used for classification, to identify relevant header parameters causing rejections Training phase required to build the tree Avoids over-fitting, capable to deal with incomplete data For SIP messages: headers, header fields, and standard values are defined as tree attributes 274 attributes per (REGISTER) message Implementation: WEKA machine learning library, J48 C4.5 tree Attributes are stored in Attribute Relation File Format (ARFF) Input: attribute vector A Output: attribute vector A with new values FOREACH (Ai in A) Ai.value = 0 IF (Ai.name in SIP message) THEN IF (SIP message field is numeric) THEN Ai.value = value of SIP message field ELSE Ai.value = 1

8 ANM 2008, Phoenix, April, 18 th Example C4.5 Tree (Trained with REGISTERs) Replaces <= 0 | Allow_DO <= 0 | | Content-Language <= 0 | | | Contact_methods <= 0 | | | | To_user <= 0: ACCEPTED (112.0/5.0) | | | | To_user > 0 | | | | | Contact_q <= 0 | | | | | | Call-ID <= 0: REJECTED (2.0) | | | | | | Call-ID > 0: ACCEPTED (12.0/1.0) | | | | | Contact_q > 0: REJECTED (2.0) | | | Contact_methods > 0 | | | | Accept <= 0: REJECTED (6.0/1.0) | | | | Accept > 0: ACCEPTED (11.0/1.0) | | Content-Language > 0 | | | Contact_flow-id <= 0: REJECTED (6.0/1.0) | | | Contact_flow-id > 0: ACCEPTED (2.0) | Allow_DO > 0 | | Allow-Events_talk <= 0: REJECTED (6.0) | | Allow-Events_talk > 0: ACCEPTED (3.0/1.0) Replaces > 0: REJECTED (11.0) Hierarchy shows the importance of parameters Number of messages classified / wrong classifications

9 ANM 2008, Phoenix, April, 18 th Babel SIP Automatic protocol adapter Placed between the proxy socket and the UA Observes rejected/accepted messages to train C4.5 tree Classifies messages and adapts likely rejected messages m i Distance metric d(m i,m j ) to choose the message m c from the set of known accepted messages most similar to m i Current implementation: Weka Euclidean Distance Derive most problematic field in mi and replace it with the corresponding field in m c

10 ANM 2008, Phoenix, April, 18 th Experiments REGISTER message headers Using a commercial SIP proxy server (from a major Austrian telecom equipment provider): guaranteed to work with two hard phones and one soft phone First experiments: monitoring of nine most popular hard phones Example findings: one hard phone A uses less than 10 header fields, phone B uses 15 header fields; the header field also differed Second experiments Artificial messages (random combinations of observed SIP header fields, header field values, and header field parameters from observed hard phones and additional from RFC 3261) 344 different REGISTER message headers (78 rejected; ~22.67%)

11 ANM 2008, Phoenix, April, 18 th Training and Test Sets Training data set Accepted messages: 39 / 78% Rejected messages: 11 / 22% Total number: 50 Test data set Accepted messages: 227 / 77.21% Rejected messages: 67 / 22.79% Total number: 294 Experiment: 15 replicated experimental runs (4400 messages per run chosen at random from test data); training after each 20 messages

12 ANM 2008, Phoenix, April, 18 th Rejection Rate Observed over Time Rejection ratio of overlapping bins of 100 messages (1-100, , etc.), smoothing and calculating the mean and 90% confidence interval

13 ANM 2008, Phoenix, April, 18 th Redials over Time Assuming phones that redial after a rejection r times Experiments: training and test phase (15 runs) Results: r is best set to 4/5 – increasing does not lead to better result

14 ANM 2008, Phoenix, April, 18 th Analysis of Babel-SIP Behavior Mean aggregated over all 15 runs Rejection of previously accepted messages Unacceptable behavior Additional experiments: 14 hard -, 5 soft phones and 227 test messages (known to be accepted) None of these messages was rejected

15 ANM 2008, Phoenix, April, 18 th Qualitative Insights Example REGISTER C4.5 tree gives good insights (e.g., for not so well trained protocol newbies): top down / bottom up CSeq is mandatory parameter (as defined in RFC 3621) CallID mandatory

16 ANM 2008, Phoenix, April, 18 th Conclusions and Future Work Babel-SIP: automatic, self-learning SIP-message translator Generic approach --> can be applied to other protocols Important for the transient phase between creating a new SIP stack and final release of a 100% reliable new proxy Experiments with REGISTER message header rate of rejected message could be nearly halved (22.67% to 13.12%) So far: we did not include the semantics of the header fields - first idea: take a rule based approach Investigate other SIP message types (INVITE) Extend the approach to other application protocols, like HTTP or RTSP

17 ANM 2008, Phoenix, April, 18 th Thank you ! … Announcement:


Download ppt "ANM 2008, Phoenix – April, 18 th Helmut Hlavacs, Andrea Hess, Michael Nussbaumer University of Vienna Department of Distributed."

Similar presentations


Ads by Google