signaling compression
TRANSCRIPT
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
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
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