From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Fri, 30 Apr 2010 01:01:59 -0400 To: 9fans@9fans.net Message-ID: <86e982716bcd1d3001b56d74804e34b8@kw.quanstro.net> In-Reply-To: <20100430034737.577235B81@mail.bitblocks.com> References: <5fa9fbfe115a9cd5a81d0feefe413192@quintile.net> <4fa1305e0f56a0ef89c2e05320fa5997@coraid.com> <40cf59cfc2735e232f0fd67df725e65d@kw.quanstro.net> <046b9c874815d108c6ffb7a857e847a7@kw.quanstro.net> <20100429170859.2EBE05B78@mail.bitblocks.com> <20100430034737.577235B81@mail.bitblocks.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Subject: Re: [9fans] A simple experiment Topicbox-Message-UUID: 14532d82-ead6-11e9-9d60-3106f5b1d025 > If the sender->receiver pipe can hold N bytes and the sender > is streaming (that is, keeping the pipe full), the sender > *will* be ahead of the receiver by N bytes. So a *streaming* > protcol has to allow it to be N bytes ahead. i don't think this is the normal definition. > Even if you have one ack per message, in a sliding window of > N messages (or bytes), the sender is allowed to get ahead of > the receiver by upto N more messages (or bytes). Here I am > not concerned about in-order delivery (though typically > people assume this when they talk about sliding windows). a sliding window is just a particular implementation what's required is many messages in flight. aoe for example, has a maximum outstanding (set by the target). with good client-side congestion control, tracking a window is not helpful. the client (sender) knows best. aoe has no sequence number; just a tag. the target (receiver) just echoes tags and is allowed no interpretation. they work like fids. i don't think this qualifies as a sliding window. yet the tcp congestion algorithm works well with this setup. multiple gbe links can be saturated and yet congestion is still handled. i don't see any reason why 9p couldn't use some of the same congestion control ideas. the trick would be to feed back packet loss detection and retransmission info to the point where file io gets turned into rpcs—the mount driver - erik