Subject: Re: [hybi] multiplexing

From: "Andy Green (林安廸)" <[email-masked]>
Date: Thu, 01 Sep 2011 15:27:53 +0800

On 09/01/2011 02:57 PM, Somebody in the thread at some point said:
> Hi,
>
> Draft 13 says:
>
> "A secondary use-case for fragmentation is for multiplexing, where it
> is not desirable for a large message on one logical channel to
> monopolize the output channel, so the MUX needs to be free to split
> the message into smaller fragments to better share the output
> channel."
>
> The above doesn't play well with TCP pushback. If there are two streams
> passed on top of single TCP connection, and the application doesn't keep
> up with reading one stream, the other stream gets stuck as well.

You are quite right.

> Is the intention not to use pushback as a means of flow control? In
> other words, if you can't process a message immediately, you must read
> it anyway so as not to block other streams? That sounds like a recipe
> for running out of memory.

No there are mechanisms in x-google-mux to provide per-subchannel flow 
control, using a subchannel send quota that isn't renewed until it sees 
the other side has taken the in-flight subchannel payload.

That way you just need buffering for one quota max of data per channel.

The actual meaning of the quote is that say you have two subchannels 
being bound into one muxed channel, ch A and ch B.

ch A decides to issue a 63-bit length frame.  If the mux is not able to 
refragment that monster frame, ch B will never get a chance to send a 
frame on the shared transport (at least, not for 1000 years or so).

-Andy

---

From: Martin Sustrik <[email-masked]>
Date: Thu, 01 Sep 2011 10:22:33 +0200

> the other side has taken the in-flight subchannel payload.

I see. Is there a specification for x-google-mux somewhere? I can't find 
it...

Martin

---

From: Iñaki Baz Castillo <[email-masked]>
Date: Fri, 2 Sep 2011 13:41:24 +0200

> I see. Is there a specification for x-google-mux somewhere? I can't find

AFAIK there is not. All the people here talk about Google's MUX
extension but I don't know what they are speaking about since there is
no draft or published documentation (hope I'm wrong).

-- 
Iñaki Baz Castillo
<[email-masked]>

---

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 06 Sep 2011 11:17:34 -0600

<hat type='individual'/>

> no draft or published documentation (hope I'm wrong).

Source code is the best documentation? ;-)

http://code.google.com/p/nullfxp/source/browse/vendor/kitphone/libwss/extension-x-google-mux.c?spec=svn896&r=896

I agree that a spec would be helpful.

/psa