signaling compression

25
Signaling Compression (SigComp)

Upload: ravi-surulikamu

Post on 17-Aug-2015

66 views

Category:

Engineering


4 download

TRANSCRIPT

Signaling Compression

(SigComp)

Agenda

●Core SigComp●Negative Acknowledgment●SigComp for SIP●SigComp in P-CSCF●Testing SigComp

What is SigComp?

●A Solution to compress application protocols●Applied on any request - response type

application○ Eg. SIP, RTSP etc.

●Independent of compression algorithm●Defined in RFC 3320

Why SigComp?

●Protocols like SIP are text based●Engineered for bandwidth rich link ●Transmission delay is significant

○ Increases call setup time●Bandwidth savings is not a main goal

A Simple Compression

A Simple Decompression

SigComp Architecture

Compartment

Compartment

●Stores SigComp parameters●Stores states corresponding to a compartment●Stores feedback item●Maintained in State Handler

States

●A State is a plain string○ Can be uniquely identified by a state identifier

●Statically Created○ SIP/SDP Static Dictionary (RFC 3485)○ Presence Static Dictionary (RFC 5119)

●Dynamically Created○ Created dynamically during compression

SigComp Parameters

●SigComp Version●Decompression memory size (DMS)●State memory size (SMS)●Cycles per bit (CPB)●Locally available states

SigComp Callflow

SigComp Architecture

Compressor Dispatcher

●Interfaces with application○ Compress a message○ Close a compartment

●Accepts message & Compartment ID from application

● Invokes appropriate Compressor●Receives compressed message from

Compressor●Performs "byte stuffing" if required ●Sends the compressed message

Decompressor Dispatcher

●Interfaces with application○ Returns decompressed message○ Accept compartment ID to save states

●Receives compressed message from network●Removes "byte stuffing" if required ● Invokes a single instance of UDVM per

message●Receives the decompressed message from

UDVM

Compressor

●Compresses the message●Interacts with State handler

○ Create unacknowledged states○ Access saved states○ Access requested feedback data

State Handler

●Compartment maintenance○ Create compartment○ Add/Delete state to/from compartment○ Add/Access requested feedback in a compartment

●State maintenance○ Access state given state identifier

UDVM

●Virtual Machine to run SigComp bytecode●Designed solely for the purpose of running

decompression algorithms

Negative Acknowledgment for SigComp

●Version 2.0 of SigComp●Handle decompression failure

○ Generate NACK on decompression failure○ NACK carries all the failure details to correct the

compartment●Make adjustments to compartment on receipt of

NACK●Defined in RFC 4077

SigComp for SIP

●Defined in RFC 3486 & 5049●Demultiplex SigComp & SIP message

○ First 5 bits of SigComp message is '11111'●Mechanism for SIP entity to report its

willingness to support SigComp●SigComp requirements for a SIP entity

SigComp RequirementsRFC 5049 3GPP TS 24.229

Minimum DMS 8 kB 8 kB

Minimum SMS 2 kB 4 kB

Minimum CPB 16 16

SigComp Version 2.0 2.0

Locally Available States SIP/SDP (RFC 3485) SIP/SDP (RFC 3485)Presence (RFC 5112)

'comp=sigcomp' parameter

○ SIP URI parameter

○ sip:[email protected];comp=sigcomp

○ Via header parameter

○ Via: SIP/2.0/UDP server1.foo.com:5060;branch=z9hG4bK87a7;

comp=sigcomp

When to Compress?

●Route target has 'comp=sigcomp' parameter○ For response, Via header is route target○ For request, Route header or Request URI is route

target● 'comp=sigcomp' is just a request to accept

SigComp message○ For eg. We do not compress messages towards

core network side even if the route target has 'comp=sigcomp'

Willingness to support SigComp

●Add 'comp=sigcomp' parameter in Via header●Add 'comp=sigcomp' parameter in Record-

Route●An OPTIONS request send to proxy should

return 200 ok with 'comp=sigcomp' in Contact header

References

●RFC 3320 (Core SigComp)●RFC 3321 (SigComp Implementation)●RFC 3485 (SIP/SDP Static Dictionary)●RFC 3486 (Compressing SIP)●RFC 4077 (NACK)●RFC 5119 (Presence Static Dictionary)