Subject: [Sipping] SIP/SDP dictionary for SigComp

From: Gonzalo Camarillo <[email-masked]>
Date: Mon, 28 Oct 2002 22:16:55 +0200

Folks,

It seems that there is only one open issue remaining in the draft below:
http://www.ietf.org/internet-drafts/draft-ietf-sipping-sigcomp-sip-dictionary-04.txt

The draft currently says that every SIP implementation that supports
SigComp MUST implement this dictionary. The size of the dictionary is
around 8 KB.

Some people had some concerns about the memory needed for this
dictionary, and proposed to make it optional.

If somebody thinks that this dictionary should be optional rather than
mandadory, speak up now and state your reasons. We would like to have
this work finished pretty soon.

Thanks,

Gonzalo
_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP

---

From: [email-masked]
Date: Tue, 29 Oct 2002 11:16:26 -0600

Hi,

I'm pro mandatory. One additional point for mandatory: if the static
dictionary is not mandatory, some form of dictionary needs to be
uploaded to boost compression ratio. That introduce overhead on
the wire (or wireless). Not mentioning the state_memory_size
(default is 0) announcement that has to precede the dictionary uploading.

(Of course, one can choose not to use any dictionary at all. But
that has been shown not a good idea.)

We have SigComp implementation, but haven't put it in a real 3G
handset as Adam has. I'm wondering why "additional 8kb required 
for the SigComp SIP dictionary is the make-or-break decision ..."?
The current dictionary size is less than 4900 bytes. It can be
further reduced as Carsten pointed out below. Then if we consider
the memory needed to have SigComp code itself, does the 4KB or
less difference make the SigComp over some memory threshold
and thus not acceptable?

BR,
Zhigang

> -----Original Message-----
> From: ext Carsten Bormann [mailto:[email-masked]]
> Sent: October 29, 2002 7:16 AM
> To: Adam Roach
> Cc: Carsten Bormann; 'Gonzalo Camarillo'; sipping; Miguel Angel;
> [email-masked]; [email-masked]; Dean Willis; 
> Rohan Mahy
> Subject: [Sipping] Re: SIP/SDP dictionary for SigComp
> 
> 
> In my view the arguments are:
> 
> Pro mandatory:
> -- this is the right choice for the general Internet.
>     Here, often, SIP entites have not talked to each other before 
> exchanging invites.
>     Having a known good compression dictionary actually saves 
> bytes on 
> this initial exchange.
> -- the dictionary is highly compressible itself.  
>     Since any sigcomp implementation ostensibly already has a 
> UDVM and a 
> decompressor it can send to the other side, the dictionary can be 
> stored in compressed form, reducing flash size.  With some 
> application-specific compression added, the LZ78 part becomes very 
> small.
> -- in a tight device, the dictionary can be shared with the string 
> table the SIP implementation needs anyway.
> 
> Pro optional:
> -- this is the right choice for application-specific SIP, where a 
> device already has met its proxy/CSCF/whatever before invites are 
> exchanged.
> -- even the compressed/shared dictionary is still large 
> enough to cause 
> headaches.
> 
> I don't quite buy the latter (red herring alert), but then I have not 
> been there.  Adam has.
> 
> Gruesse, Carsten
>

---

From: Adam Roach <[email-masked]>
Date: Tue, 29 Oct 2002 14:47:03 -0600

From: [email-masked] [mailto:[email-masked]]
> that has been shown not a good idea.)

Really? Our experience has been that, at least for SIP, there is
so much commonality between messages that the static dictionary gets
hit extremely rarely, if ever, after the first one or two messages
are exchanged.

Further, with many algorithms (e.g. deflate) the dictionary
gradually becomes inaccessible (for deflate, in ~2 to ~40
messages, depending on the decompression_memory_size and the
size of SIP messages being used).

What evidence do you have to back up your assertion that not
using a static dictionary is substantially bad?

/a

---

From: [email-masked]
Date: Tue, 29 Oct 2002 15:53:24 -0600

Adam,

Perhaps you misread my email. Please note what I wrote was "not to 
use *any* dictionary at all" is not a good idea. By that I mean 
it's not a good idea to do per-message compression without *any* 
dictionary (either static, user-specific, dynamic or whatever). 

You're not arguing against this, aren't you?

BR,
Zhigang

> From: ext Adam Roach [mailto:[email-masked]]
> Sent: October 29, 2002 2:47 PM
> To: Liu Zhigang.C (NRC/Dallas); [email-masked]; Adam Roach
> Cc: [email-masked]; [email-masked];
> [email-masked]; [email-masked];
> [email-masked]; Dean Willis; [email-masked]
> Subject: RE: [Sipping] Re: SIP/SDP dictionary for SigComp
> 
>

---

From: Adam Roach <[email-masked]>
Date: Tue, 29 Oct 2002 16:34:15 -0600

> You're not arguing against this, aren't you?

I apparently misread what you were proposing. I agree with you that
using a history of past messages is, as you suggest, very important
in getting good compression ratios.

My misreading was largely based on cues I picked up from the
following passage:

 "...if the static dictionary is not mandatory, some form of
  dictionary needs to be uploaded to boost compression ratio.
  That introduce overhead on the wire (or wireless)."

For most compression algorithms, this "dictionary" is built out
of a history of past messages. There is no need for an explicit
upload of strings that you expect to use in future messages.
Your contention that building such a dictionary imposes additional
over-the-air load  would imply that you think otherwise. Is this
just another case of my misunderstanding what you're saying?

/a

---

From: "Lars-Erik Jonsson (EAB)" <[email-masked]>
Date: Wed, 30 Oct 2002 16:42:06 +0100

Hi all,

I tend to agree with Zhigang. The reason we initiated this work in
the first place was because we wanted to define THE mandatory 
dictionary for SigComp-SIP, which would be useful even for the
very first message.

Considering previous postings, we seem to agree that a mandatory
dictionary is a good thing, but the size seems to be a potential
problem.

So, what we need to do is to focus on the size issue and decide
whether the current size is really a problem so that we should
reduce the dictionary, or if we can go on with the current one.

/L-E

> Again, it all boils down to the additional cost to ROM. The size
> of SIP/SDP dictionary is now less than 5KB, and can be further
> reduced as Carsten mentioned. We still need to understand why 
> this 5KB or less makes such a big difference. If 5KB is too much,
> then what is the acceptable threshold? We can simply define a
> smaller version of the static dictionary under that threshold,
> which contains the literals for the first few SIP messages
> (e.g. INVITE). Then we can mandate version. It's still better 
> than nothing.

---

From: Adam Roach <[email-masked]>
Date: Wed, 30 Oct 2002 10:28:23 -0600

> > - SigComp has methods for discovery of offered states, and they are
> >   rather trivial to implement. They can be used to advertise
> >   availability of the SIP dictionary.
> 
> I was wondering what happens with the first message that two entities
> exchange. Since they cannot know whether or not the dictionary is
> supported at the other end, they would not be able to use it, right? 

That's correct. Only the second and subsequent messages would be
able to take advantage of it.

I'll admit that my view of the topic might be a bit narrow.
I will summarize my assumptions and their implications.

The main application, IMHO, for SigComp is across slow radio
links. The only place that I expect to see such links is in a
mobile-phone type environment (1xRTT, 1xEV, UMTS, GPRS, etc).

The networks that are being deployed for this sort of service,
to the best of my knowledge, all have edge nodes (e.g. the P-CSCF
in the 3GPP network) that handsets use as a local outbound proxy.
This node acts as the other end of the SigComp connection, and
speaks uncompressed SIP towards the network.

The other assumption is that one of the major user-impacting
relics that compression is attempting to address is the 
latency of sending messages over the air. Traffic volume is,
of course, a secondary concern.

Given these assumptions, then the first compressed message
exchanged a node will typically be a REGISTER message. This
exchange isn't particularly sensitive to message latency --
and a good thing, too, since you need to transfer bytecodes
at the same time. Further, you need to make some rather
conservative assumptions about the capabilities of the
receiving endpoint (2k decompression memory size, etc). Given
these constraints, the first message won't be getting a very
good compression ratio anyway; leaving off use of the dictionary
will hardly make much of an impact at all. (Empirically, I've
measured a difference of about 150 bytes for a 1kb message).

As I said, my view on the topic might be a bit narrow. Are
there other contexts in which people are planning to use
SigComp? If so, does making the SIP dictionary non-mandatory
cause significant harm?

/a

---

From: [email-masked]
Date: Wed, 30 Oct 2002 09:30:27 -0600

> Having said that, I would like to understand, and if deemed document,
> the procedures that Sigcomp offers to guess if a dictionary is 
> implemented in the decompressor prior for the compressor to use it.
> Help from the Sigcomp guys would be benefitial.

For that purpose, an SigComp endpoint B can announce the SIP/SDP
dictionary as a locally available state to SigComp endpoint A 
(see section 9.4.9, Figure 13). After receiving the announcement, 
compressor at A can use the dictionary to compress subsequent messages. 

So, finding out if the SIP/SDP dictionary is there is not an issue.
The issue is more about if we want to compress efficiently the first 
few messages before the announcement, and weighing that benefit against
the ROM cost. Also note that the announcement has overhead (though 
small) and it can be lost.

Zhigang

---

From: Adam Roach <[email-masked]>
Date: Wed, 30 Oct 2002 10:37:13 -0600

Consensus seems to be to keep the dictionary mandatory.
While I still disagree, I'm willing to withold further
objection so that this work can move forward.

/a

> From: Lars-Erik Jonsson (EAB) 
> [mailto:[email-masked]]
> Sent: Wednesday, October 30, 2002 9:42
> To: [email-masked]'; [email-masked]
> Cc: [email-masked]; [email-masked]; [email-masked]