Re: [middisc] TCP middlebox option requirements

Mark Day <Mark.Day@riverbed.com> Fri, 28 May 2010 16:18 UTC

Return-Path: <Mark.Day@riverbed.com>
X-Original-To: middisc@core3.amsl.com
Delivered-To: middisc@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4EB9D3A6A44 for <middisc@core3.amsl.com>; Fri, 28 May 2010 09:18:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.476
X-Spam-Level: *
X-Spam-Status: No, score=1.476 tagged_above=-999 required=5 tests=[AWL=-0.433, BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_ILLEGAL_IP=1.908]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1QDexOsiCCX7 for <middisc@core3.amsl.com>; Fri, 28 May 2010 09:18:50 -0700 (PDT)
Received: from smtp1.riverbed.com (smtp.riverbed.com [208.70.196.45]) by core3.amsl.com (Postfix) with ESMTP id 4FD263A6A3A for <middisc@ietf.org>; Fri, 28 May 2010 09:18:50 -0700 (PDT)
Received: from unknown (HELO exhub2.nbttech.com) ([10.16.4.1]) by smtp1.riverbed.com with ESMTP; 28 May 2010 09:18:40 -0700
Received: from mailboxes2.nbttech.com ([fe80:0000:0000:0000:99bf:a4d0:243.141.8.211]) by exhub2.nbttech.com ([10.16.0.165]) with mapi; Fri, 28 May 2010 09:18:40 -0700
From: Mark Day <Mark.Day@riverbed.com>
To: Ron Frederick <ronf@bluecoat.com>, "Knutsen, Andrew" <andrew.knutsen@bluecoat.com>
Date: Fri, 28 May 2010 09:17:46 -0700
Thread-Topic: [middisc] TCP middlebox option requirements
Thread-Index: Acr95bMQ0YGqutSLTRWeFG1mRRrlIAAltGBw
Message-ID: <AF3CDDFAE1BB6C41B8F9EF3F4ADA9D11ADB9D7B9@MAILBOXES2.nbttech.com>
References: <0C53DCFB700D144284A584F54711EC5809BD740A@xmb-sjc-21c.amer.cisco.com> <4BF6CF8A.5030707@bluecoat.com> <AF3CDDFAE1BB6C41B8F9EF3F4ADA9D11ADAB3597@MAILBOXES2.nbttech.com> <4BFC6B29.1080706@bluecoat.com> <2A7D4A79-0E08-480F-A67B-35338D226E14@bluecoat.com> <AF3CDDFAE1BB6C41B8F9EF3F4ADA9D11ADB9D3D6@MAILBOXES2.nbttech.com> <93730462-B3C5-4ACA-8C0A-C69F52BF0822@bluecoat.com> <B583FBF374231F4A89607B4D08578A4303EB17F3@bcs-mail03.internal.cacheflow.com> <ECD8F3EA-A5DB-4B47-B33F-E8952A6D2B4E@bluecoat.com>
In-Reply-To: <ECD8F3EA-A5DB-4B47-B33F-E8952A6D2B4E@bluecoat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_AF3CDDFAE1BB6C41B8F9EF3F4ADA9D11ADB9D7B9MAILBOXES2nbtte_"
MIME-Version: 1.0
Cc: "middisc@ietf.org" <middisc@ietf.org>
Subject: Re: [middisc] TCP middlebox option requirements
X-BeenThere: middisc@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Discussions on TCP option for middlebox discovery." <middisc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/middisc>, <mailto:middisc-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/middisc>
List-Post: <mailto:middisc@ietf.org>
List-Help: <mailto:middisc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/middisc>, <mailto:middisc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 May 2010 16:18:55 -0000

Regarding sending options in the middle of a stream, I must admit that I'm still nervous about that, especially around how the middleboxes doing this will handle retransmissions of data packets originally sent with the option. However, I can see legitimate use cases for doing this, and I can see how an implementation could work if the options were just treated as essentially best-effort delivery with it being up to the specific middlebox implementation to handle any reliability concerns when sending such mid-stream options.

I may have inadvertently created this concern, and if so I'd like to clarify my position to see if we can get it off the table.

I objected to the requirement for restriction of options to headers with the SYN bit set, since Riverbed products do use options in other cases.  However, I don't believe there is any case in which we start adding options in the middle of a stream.  Sometimes an option appears only on a few packets at the start of a stream and is no longer used after some number of exchanges; in other cases, an option is used for the entire duration of a connection. I don't believe that we have any need for an option to suddenly appear midstream on a flow that did not previously use it.

As is correctly noted, it would not be reasonable to assume that a packet with a newly-added option will still be able to reach the destination, since something along the route may suppress it. If the middlebox had added a new option and was not receiving acks from the other side, it's not clear what the right behavior would be. When I think it through a little, all of the choices seem problematic. It seems like a whole can of worms that is best avoided.

--Mark