anm 2008, phoenix – april, 18 th helmut hlavacs, andrea hess, michael nussbaumer...
TRANSCRIPT
ANM 2008, Phoenix – April, 18th
Helmut Hlavacs, Andrea Hess, Michael [email protected]
University of ViennaDepartment of Distributed and Multimedia Systems
Babel-SIP: Self-learning SIP Message Adaptation for Increasing SIP-Compatibility
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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?
Proxy biloxy.com
Registrar
1. REGISTER
2. 200 OK
Location Server
Bob’s UA
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
Outline of the Talk
SIP (Session Initiation Protocol)
Autonomic SIP adaptation- C4.5 tree- Babel-SIP
Experiments- Quantitative results- Qualitative results
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
SIP (Session Initiation Protocol)
REGISTER sip:Domain SIP/2.0To: <sip:UserID@Domain>From: <sip:UserID@Domain>Via: SIP/2.0/UDP IPAdress:PortCall-ID: NDYzYzMwNjJhMDRjYTFjCSeq: 1 REGISTERContact: <sip:UserID@IPAdress:Port>Max-Forwards: 70
Proxy biloxy.com
Registrar
1. REGISTER
2. 200 OK
Location Server
Bob’s UA
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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)
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
C4.5 Decision TreesUsed 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 AOutput: attribute vector A with new valuesFOREACH (Ai in A)Ai.value = 0IF (Ai.name in SIP message) THEN IF (SIP message field is numeric) THEN Ai.value = value of SIP message field ELSE Ai.value = 1
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.atBabel SIP
Proxy biloxy.com
Registrar
Bob’s UA
1. REGISTER 4. 200 OK
Location Server
Babel-SIP
2. REGISTER
3. 200 OK
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 mi
• Distance metric d(mi,mj) to choose the message mc
from the set of known accepted messages most similar
to mi
Current implementation: Weka Euclidean Distance
• Derive most problematic field in mi and replace it with
the corresponding field in mc
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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%)
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
Rejection Rate Observed over Time
Rejection ratio of overlapping bins of 100 messages (1-100, 21-120, etc.), smoothing and calculating the mean and 90% confidence interval
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
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
AN
M 2
00
8, P
hoenix
, April,
18
th
karin
.hum
mel@
univ
ie.a
c.at
Thank you !
… Announcement: