Re: [rohc] RE: [Sipping] SIGCOMP and large binary content SIP messages

Carsten Bormann <cabo@tzi.org> Fri, 28 March 2003 15:32 UTC

Received: from www1.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03822 for <rohc-archive@odin.ietf.org>; Fri, 28 Mar 2003 10:32:50 -0500 (EST)
Received: (from mailnull@localhost) by www1.ietf.org (8.11.6/8.11.6) id h2SFseL13702 for rohc-archive@odin.ietf.org; Fri, 28 Mar 2003 10:54:40 -0500
Received: from ietf.org (odin.ietf.org [132.151.1.176]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h2SFseO13699 for <rohc-web-archive@optimus.ietf.org>; Fri, 28 Mar 2003 10:54:40 -0500
Received: from www1.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03809 for <rohc-web-archive@ietf.org>; Fri, 28 Mar 2003 10:32:19 -0500 (EST)
Received: from www1.ietf.org (localhost.localdomain [127.0.0.1]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h2SFsQO13689; Fri, 28 Mar 2003 10:54:26 -0500
Received: from ietf.org (odin.ietf.org [132.151.1.176]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h2SFrGO13660 for <rohc@optimus.ietf.org>; Fri, 28 Mar 2003 10:53:16 -0500
Received: from nmh.informatik.uni-bremen.de (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA03746 for <rohc@ietf.org>; Fri, 28 Mar 2003 10:30:55 -0500 (EST)
Received: from tzi.org (IDENT:rwbaTIIyolk1SfilvbqmHAAS4Odtagwi@roman.informatik.uni-bremen.de [134.102.218.120]) by nmh.informatik.uni-bremen.de (8.12.8/8.10.1) with ESMTP id h2SFXHkh019203; Fri, 28 Mar 2003 16:33:17 +0100 (MET)
Date: Fri, 28 Mar 2003 16:24:13 +0100
Subject: Re: [rohc] RE: [Sipping] SIGCOMP and large binary content SIP messages
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Mime-Version: 1.0 (Apple Message framework v551)
Cc: Carsten Bormann <cabo@tzi.org>
To: rohc@ietf.org
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <A943FD84BD9ED41193460008C7918050072E90B6@ESEALNT419.al.sw.ericsson.se>
Message-Id: <54B6239E-6131-11D7-881C-00039390397C@tzi.org>
Content-Transfer-Encoding: 7bit
X-Mailer: Apple Mail (2.551)
Content-Transfer-Encoding: 7bit
Sender: rohc-admin@ietf.org
Errors-To: rohc-admin@ietf.org
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
List-Id: Robust Header Compression <rohc.ietf.org>
List-Post: <mailto:rohc@ietf.org>
List-Help: <mailto:rohc-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

ROHCers,

in San Francisco, I promised to come back to the "binary multiplexing"
issue after the IETF.

It has taken me a while to even understand what is being talked about:
There is an assumption in this whole thread that I don't know where it
came from.

We designed SigComp messages so that they always start with a byte
that cannot be used as a coding symbol in UTF-8 (see
draft-yergeau-rfc2279bis-04.txt for the updated version of RFC2279
that defines the contemporary version of UTF-8).  The assumption was
that most signalling protocols would use UTF-8 headers, so this would
allow some self-describing-ness of SigComp messages.

RFC3320 says:

    All SigComp messages contain a prefix (the five most-significant bits
    of the first byte are set to one) that does not occur in UTF-8
    encoded text messages [RFC-2279], so for applications which use this
    encoding (or ASCII encoding) it is possible to multiplex uncompressed
    application messages and SigComp messages on the same port.
    Applications can still reserve a new port specifically for SigComp
    however (e.g., as part of the discovery mechanism).

I now see that this might be phrased a bit misleading
("multiplexing").  But clearly, the scheme discussed is about using
the same port for two different *transports*: the raw transport and
the SigComp-compressed transport.  Nowhere does it say that you would
multiplex messages from these two *on the same connection*.  I don't
believe this is possible or even necessary.

Record Marking (4.2.2) is used to delimit SigComp messages on stream
transports (TCP, TLS).  The assumption, of course, is that the
connection carrying these messages already has been disambiguated to
run SigComp instead of the raw transport protocol.

This is the end of my main argument for this message.  If you disagree
with it, please discuss it and not the interesting speculation below.

<div class="speculation">

It is somewhat conceivable to occasionally intersperse uncompressed
messages in the SigComp record marking transport, but it remains clear
that the record marking layer is in effect at all times:

    For a stream-based transport, the dispatcher delimits messages by
    parsing the compressed data stream for instances of 0xFF and taking
    the following actions:

So, we are talking about a situation where the data flows to a SigComp
dispatcher, not to an entity that still needs to find out whether we
are running SigComp or not.

Could SigComp record marking be used to carry both compressed and
uncompressed messages on one connection?  (Remember that this is not
part of the standard, but of course could be part of an extension to
RFC 3320.)

In principle, yes, but there is a problem (see below).  In any case,
though, Content-Length headers or any other application message
delimiting protocol would not enter the picture at all -- the SigComp
record marking layer remains in effect throughout a SigComp
connection.

Now the problem: If you don't have any other way to find out (e.g.,
different port numbers for compressed and uncompressed), it becomes
hard to decide whether such a compressed/uncompressed multiplexed
stream is SigComp or not.  If it starts with a non-UTF-8 coding
symbol, you know it's SigComp.  But if the first message you want to
send on the connection happens to be uncompressed, you need another
way of indicating that a SigComp transport is being used.  Of course,
you could simply send 0xFFFF and trust that the receiver will discard
empty messages.  So to make this multiplexing business work, you will
have to add a mandate that says empty messages (or at least one 0xFFFF
at the beginning of the connection) are discarded.

Of course, none of this applys to any hypothetical SigComp application
that does not use UTF-8 headers in their messages -- the multiplexing
would not work this way at all, period.  So you would devise another
way of multiplexing, which I'm too lazy to do right now.

</div>

Oh, and we still have to do the work on the SIP binding for SigComp,
which is completely unrelated to this whole thread.  There is no known
problem with SigComp-compressing large binary layloads in SIP messages
(except, maybe, that there won't be very good compression schemes for
data that already have been compressed).

Gruesse, Carsten

_______________________________________________
Rohc mailing list
Rohc@ietf.org
https://www1.ietf.org/mailman/listinfo/rohc