[rohc] Re: IMPL-EFF TCP/IP EPIC profile
"West, Mark (ITN)" <mark.a.west@roke.co.uk> Thu, 07 March 2002 19:02 UTC
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged))
by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA15329
for <rohc-archive@odin.ietf.org>; Thu, 7 Mar 2002 14:02:20 -0500 (EST)
Received: from optimus.ietf.org (localhost [127.0.0.1])
by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id NAA21526;
Thu, 7 Mar 2002 13:59:01 -0500 (EST)
Received: from ietf.org (odin [132.151.1.176])
by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id NAA21493
for <rohc@optimus.ietf.org>; Thu, 7 Mar 2002 13:58:59 -0500 (EST)
Received: from rsys000a.roke.co.uk (rsys000a.roke.co.uk [193.118.201.102])
by ietf.org (8.9.1a/8.9.1a) with SMTP id NAA15036
for <rohc@ietf.org>; Thu, 7 Mar 2002 13:58:54 -0500 (EST)
Received: by rsys001a.roke.co.uk with Internet Mail Service (5.5.2653.19)
id <1XV9A72F>; Thu, 7 Mar 2002 18:57:08 -0000
Received: from roke.co.uk (itn-pool4.roke.co.uk [193.118.194.54]) by
rsys002a.roke.co.uk with SMTP (Microsoft Exchange Internet Mail Service
Version 5.5.2653.13) id G3566P3J; Thu, 7 Mar 2002 18:56:57 -0000
From: "West, Mark (ITN)" <mark.a.west@roke.co.uk>
To: Julije Ozegovic <julije@fesb.hr>
Cc: "Hongbin Liao (Intl Staffing)" <i-hbliao@microsoft.com>, Qian Zhang
<qianz@microsoft.com>, rohc <rohc@ietf.org>
Message-ID: <3C87B7F8.6030807@roke.co.uk>
Date: Thu, 07 Mar 2002 18:56:56 +0000
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US;
rv:0.9.4) Gecko/20011019 Netscape6/6.2
X-Accept-Language: en-us
MIME-Version: 1.0
References: <F4C77846CEE593418BE5AB7B6A83111E0465F4B9@bjs-msg-01.fareast.corp.microsoft.com>
<3C869799.5030706@roke.co.uk> <3C877B68.4030705@fesb.hr>
Content-Type: multipart/mixed;
boundary="------------InterScan_NT_MIME_Boundary"
Subject: [rohc] Re: IMPL-EFF TCP/IP EPIC profile
Sender: rohc-admin@ietf.org
Errors-To: rohc-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Robust Header Compression <rohc.ietf.org>
X-BeenThere: rohc@ietf.org
Hi all,
As ever, comments in-line...
Cheers
Mark.
Julije Ozegovic wrote:
> Hi,
>
> I think this important issue deserves new thread!
>
> The question of computing efficacy (when compressing and decompressing)
> starts with "implementation specific" dilemma:
>
I hope it's a choice, rather than a dilemma..!
;-)
> 1. Interpreter:
>
> Interpreting implementation benefits of larger flexibility in changing
> and adding supported profiles.
>
> Of course, I do not mean pure "text" interpreter, but rather specific
> "profile compiler" that builds necessary data structures in "off line
> processing phase", and then traverses through them during the
> compression and decompression process ("on line processing phase").
>
> In this approach, it is easy to submit new profile and compile it,
> without need to change internal interpreting engine. that means that
> application does not need to be changed or recompiled for every new
> profile.
>
Which is, of course, a large part of the basis of EPIC(-lite).
> 2. Compiler:
>
> Compiled implementation is much more "computational efficient",
> regarding the fact that profile structure is built in code itself.
> However, adding new profile requires application to be recompiled. It
> can hardly be done online.
>
> Toolbox methods and general online framework can be common, and
> recompiled for every (set of) supported profile(s). A kind of EPIC
> library can be distributed to ease this procedure.
>
This is quite interesting. I haven't really though too much about this
approach. I'm not entirely sure how much of a performance gain this
would actually give, though. A lot of the complexity (such as it is) is
in the processing of the encoding methods (which are always [?]
compiled). All you are saving here is some kind of list traversal,
which should be pretty quick?
We have used a 'hybrid' approach, which we mentioned briefly a long time
ago, when trying to get some performance metrics from an earlier
implementation. In this case we were looking at an RTP profile. It was
clear that the most common packet format (the equivalent of the UO-0
packet in RFC-3095) was much more likely to occur than any other.
So, we added some code to predict the changes for this most likely case
and treat it 'optimally'. This meant that we avoided any of the header
parsing and mapping normally required in this case -- it makes a
substantial difference to the performance.
However, this cannot be regarded as compiling the profile - it's a very
specific 'tweak'.
> 3. Conclusion:
>
> It seem that everybody is concerning "interpreting application".
>
Personally, my view is that the 'interpreter' view is the most useful
starting point. As you may have noticed, profiles in the early stages
of development need to be tested and change quite regularly ;-)
An interpreting compressor/decompressor makes it easy to try out ideas
and see what works and what effect this has on efficiency. This may
well be easier than making changes in a compiled environment.
Also, I'll be interested to see how fast an 'interpreting'
implementation works. If it's 'fast enough' for most applications then
there may not be a pressing need to go for compilation.
> 4. UNI Split implementation
>
> Implementation at University of Split is interpreting one. We build
> dynamic (profile specific) structures in the memory from the text
> written profile. Compressor - decompressor engine is protocol
> independent. Its duty is to engage appropriate toolbox method, regarding
> state of the engine, context, and state of the process (header field
> concerned, along the profile). At the moment, the "simple TCP/IP
> profile" is supported.
>
Our implementation is also interpretation based.
When you say the 'simple TCP/IP profile is supported' I assume you mean
that this is the only profile you have currently run? That is, since
it's protocol independent, you don't care what the profile is for?
> When rising the issue of complexity few days ago, I was motivated by
> the complexity of data structures needed to support protocol independent
> engine of interpreting implementation, regarding the new "complex TCP/IP
> profile". However, we did not succeed to compile it yet, so I can not
> give you actual numbers.
>
Well, there are clearly some bugs with the more complex profile that we
haven't sorted out yet. But I'm not sure that there's anything
dramatically more *complex* in this protocol. There's a lot more of it,
but it still follows the same rules for processing. Some of the methods
are more complex, but...
At the compressor, a profile is (essentially) a list of methods. Each
element in that list may have list of encodings associated with it. An
encoding can have a set of parameters which can be integers or pointers
to methods.
All the compressor does is traverse the list of methods, trying to find
a successful encoding for each one. Some nodes will expand into
sub-trees, which simply repeats this process. Some encodings can invoke
other methods - but this is written into the implementation of the encoding.
The processing of any profile is really quite straight-forward and does
not get any more complex for a bigger profile. There's just more to do...
> Best regards,
> Julije Ozegovic
>
>
--
Mark A. West, Consultant Engineer
Roke Manor Research Ltd., Romsey, Hants. SO51 0ZN
Phone +44 (0)1794 833311 Fax +44 (0)1794 833433
(Yes, I do know that my disclaimer is in an attachment. And, no, I
didn't ask for it to be that way)
- [rohc] TCP/IP EPIC profile Julije Ozegovic
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile Julije Ozegovic
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- [rohc] NBO- TCP/IP EPIC profile Julije Ozegovic
- Re: [rohc] TCP/IP EPIC profile tijana
- [rohc] rohc over xxx? Wang Hui
- [rohc] Re: NBO- TCP/IP EPIC profile West, Mark (ITN)
- [rohc] Re: NBO- TCP/IP EPIC profile Julije Ozegovic
- [rohc] Re: NBO- TCP/IP EPIC profile West, Mark (ITN)
- [rohc] TCP/IP EPIC profile Maja
- [rohc] RE: TCP/IP EPIC profile Surtees, Abigail
- [rohc] Re: NBO- TCP/IP EPIC profile Julije Ozegovic
- RE: [rohc] TCP/IP EPIC profile Qian Zhang
- [rohc] Re: NBO- TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- [rohc] Re: NBO- TCP/IP EPIC profile Julije Ozegovic
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- [rohc] IMPL-EFF TCP/IP EPIC profile Julije Ozegovic
- [rohc] Re: IMPL-EFF TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- Re: [rohc] IMPL-EFF TCP/IP EPIC profile Julije Ozegovic
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Lars-Erik Jonsson (EPL)
- Re: [rohc] IMPL-EFF TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- RE: [rohc] TCP/IP EPIC profile Per Synnergren (EPL)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Qian Zhang
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- RE: [rohc] TCP/IP EPIC profile Qian Zhang
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)
- RE: [rohc] TCP/IP EPIC profile Qian Zhang
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- Re: [rohc] TCP/IP EPIC profile West, Mark (ITN)
- RE: [rohc] TCP/IP EPIC profile Qian Zhang
- RE: [rohc] TCP/IP EPIC profile Hongbin Liao (Intl Staffing)