Re: [tcpm] New Version Notification for draft-touch-tcpm-tcp-edo-01.txt
Joe Touch <touch@isi.edu> Mon, 05 May 2014 15:41 UTC
Return-Path: <touch@isi.edu>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ACC301A03B9 for <tcpm@ietfa.amsl.com>; Mon, 5 May 2014 08:41:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.551
X-Spam-Level:
X-Spam-Status: No, score=-2.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4tmd-II3Kj07 for <tcpm@ietfa.amsl.com>; Mon, 5 May 2014 08:41:05 -0700 (PDT)
Received: from darkstar.isi.edu (darkstar.isi.edu [128.9.128.127]) by ietfa.amsl.com (Postfix) with ESMTP id 11A311A038D for <tcpm@ietf.org>; Mon, 5 May 2014 08:41:05 -0700 (PDT)
Received: from [192.168.1.93] (pool-71-105-87-112.lsanca.dsl-w.verizon.net [71.105.87.112]) (authenticated bits=0) by darkstar.isi.edu (8.13.8/8.13.8) with ESMTP id s45FeUD0002254 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 5 May 2014 08:40:33 -0700 (PDT)
Message-ID: <5367B0F1.1000403@isi.edu>
Date: Mon, 05 May 2014 08:40:33 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: Olivier.Bonaventure@uclouvain.be, "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
References: <20140425221257.12559.43206.idtracker@ietfa.amsl.com> <2586_1398464386_535ADF82_2586_915_1_535ADF56.9050106@isi.edu> <CF8D8E25-E435-4199-8FD6-3F7066447292@iki.fi> <5363AF84.8090701@mti-systems.com> <5363B397.8090009@isi.edu> <CAO249yeyr5q21-=e6p5azwULOh1_jUsniZ6YPcDYd69av8MMYw@mail.gmail.com> <DCC98F94-EA74-4AAA-94AE-E399A405AF13@isi.edu> <655C07320163294895BBADA28372AF5D2CFE36@FR712WXCHMBA15.zeu.alcatel-lucent.com> <536548D7.5030802@uclouvain.be>
In-Reply-To: <536548D7.5030802@uclouvain.be>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/Jsa2WUdiMk49WeZI76PvCcZdTNQ
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] New Version Notification for draft-touch-tcpm-tcp-edo-01.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 May 2014 15:41:06 -0000
On 5/3/2014 12:51 PM, Olivier Bonaventure wrote: > Michael, > > >> Thus, instead of further arguing about process aspects, I am more >> interested in thoughts on: >> >> * From designers of TCP extensions requiring more option space: Is >> draft-touch-tcpm-tcp-edo a good solution for your needs and thus the >> right way to move forward? >> >> * From implementers: Are there deployment issues beyond what is >> described in the draft already? And, would this mechanism be >> implemented in the Internet? > > My main concern with this draft are the possible interactions with > segment splitting/coalescing middleboxes. These already affect a few things - splitting replicates timestamps and repeats ACKs, and coalescing might need to drop SACK blocks and drops some of the timestamp info. A key question for the group is the extent to which we want to support these or even detect them in our core mechanisms, or whether we should suggest that they be detected (and replaced) by existing mechanisms (e.g., TCP-AO or IPsec). > The draft considers that these middleboxes are rare and should not > constitute a problem. Unfortunately, I have to disagree with this > statement. An important concern are the recent NICs that support TSO or > GRO. These are not merely middleboxes that resegment. They ought to be integrated with the endsystem sufficient to support TCP. So we should consider the impact of network rewriting boxes vs. TSO/GRO NICs as separate issues, IMO. > These NICs are very widely used today and there are environments > where it is very difficult for a TCP stack to determine whether it runs > with such a NIC a not. A typical case is a virtual machine running on a > host that exposes a driver that does not correspond to the physical NIC > that is actually used. > > The EDO option proposed in this draft does not unfortunately work > correctly through a middlebox that splits segments. Again, we're back to the middlebox example: > Concerning the > following example. > > A host that has negotiated EDO during the three way handshake sends a > segment that contains : > - TCP header indicates 4 bytes of option, followed by EDO option > indicating an option of 100 bytes, 100 bytes of option (e.g. a very long > SACK), 1000 bytes of data > > The middlebox does not understand the EDO option but needs to split the > segment. Some middleboxes will copy all options in the two segments. A middlebox that examines the contents of TCP traffic - or worse, modifies it - needs to follow all of RFC1122 host requirements. It's interpreting content - if it sees a SYN with an unknown option, it ought to have removed it or dropped the SYN. If it doesn't, you have a device that is broken and needs to be replaced. We should design TCP to be liberal in what it accepts, but no Internet protocol should be designed to overcome deliberate implementation errors. > This results in : > > segment 1 : TCP header indicates 4 bytes of option, followed by EDO > option indicating an option of 100 bytes, 100 bytes of option (e.g. a > very long SACK), 500 bytes of data > > segment 2 : TCP header indicates 4 bytes of option, followed by EDO > option indicating an option of 100 bytes, 500 bytes of data > > The receiver will try to parse 100 bytes of option in the second segment... Agreed. However, now you're back to the NIC issue (which ought not be related): > In their IMC paper entitled "Is it Still Possible to Extend TCP?", > Michio Honda et al. provide the following recommendation > http://conferences.sigcomm.org/imc/2011/docs/p181.pdf > > "All the NICs we tested correctly copied the options to all the split > segments. TSO is now sufficiently commonplace so that designers of > extensions to TCP should assume it. The implication is that TCP options > must be designed so that when they are duplicated on consecutive > segments, this does not adversely affect correctness or performance." This tells me your TCP interface was implemented incorrectly. The correct interface passes options (including the extended option *and its associated contents*) ***SEPARATELY*** from the user data. If that is done all the way down to the TSO, the TSO will correctly copy the option into individual segments correctly. If, however, you implement this badly - and pass TCP segments as a whole to the offload engine, then the offload engine *has no business* splitting or coalescing segments. > EDO should be modified to take this recommendation into account to be > deployable in today's Internet. > > One possibility could be to include a checksum inside the EDO option. > > > +--------+--------+--------+--------+----------+----------+ > | Kind | Length | Header_length | Checksum | > +--------+--------+--------+--------+----------+----------+ That logic would apply too EVERY option, and now we have a TCP that wastes space primarily to locate and debug implementation errors. I don't agree that TCP should be designed to overcome deliberate implementation errors. Joe
- [tcpm] Fwd: New Version Notification for draft-to… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Pasi Sarolahti
- Re: [tcpm] New Version Notification for draft-tou… Wesley Eddy
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Yoshifumi Nishida
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Scharf, Michael (Michael)
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Olivier Bonaventure
- Re: [tcpm] New Version Notification for draft-tou… Scharf, Michael (Michael)
- Re: [tcpm] New Version Notification for draft-tou… Costin Raiciu
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Wesley Eddy
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Costin Raiciu
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Scheffenegger, Richard
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Wesley Eddy
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… David Borman
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… David Borman
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- [tcpm] timestamp options (was Re: New Version Not… Eggert, Lars
- Re: [tcpm] timestamp options (was Re: New Version… Brian Trammell
- Re: [tcpm] timestamp options (was Re: New Version… Scharf, Michael (Michael)
- Re: [tcpm] timestamp options (was Re: New Version… Scheffenegger, Richard
- Re: [tcpm] timestamp options (was Re: New Version… Scharf, Michael (Michael)
- Re: [tcpm] timestamp options (was Re: New Version… Scheffenegger, Richard
- Re: [tcpm] timestamp options (was Re: New Version… Scharf, Michael (Michael)
- Re: [tcpm] timestamp options (was Re: New Version… Yoshifumi Nishida
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Yoshifumi Nishida
- Re: [tcpm] timestamp options (was Re: New Version… Scheffenegger, Richard
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Christoph Paasch
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… Bob Briscoe
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Olivier Bonaventure
- Re: [tcpm] New Version Notification for draft-tou… Olivier Bonaventure
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… John Leslie
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Olivier Bonaventure
- Re: [tcpm] New Version Notification for draft-tou… Olivier Bonaventure
- [tcpm] More TCP option space on SYNs Bob Briscoe
- Re: [tcpm] More TCP option space on SYNs Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- Re: [tcpm] New Version Notification for draft-tou… Joe Touch
- [tcpm] SYN extension using ACK=0 data packets Bob Briscoe
- Re: [tcpm] SYN extension using ACK=0 data packets Joe Touch
- Re: [tcpm] More TCP option space on SYNs Bob Briscoe
- Re: [tcpm] SYN extension using ACK=0 data packets Bob Briscoe
- Re: [tcpm] timestamp options (was Re: New Version… Yoshifumi Nishida
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Mark Allman
- Re: [tcpm] timestamp options (was Re: New Version… Mark Allman
- Re: [tcpm] timestamp options (was Re: New Version… Scharf, Michael (Michael)
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Scharf, Michael (Michael)
- Re: [tcpm] timestamp options (was Re: New Version… Mark Allman
- Re: [tcpm] timestamp options (was Re: New Version… Mark Allman
- Re: [tcpm] timestamp options (was Re: New Version… Joe Touch
- Re: [tcpm] timestamp options (was Re: New Version… Yoshifumi Nishida
- Re: [tcpm] timestamp options (was Re: New Version… Yuchung Cheng
- Re: [tcpm] timestamp options (was Re: New Version… Mark Allman
- Re: [tcpm] timestamp options (was Re: New Version… Yuchung Cheng
- Re: [tcpm] More TCP option space on SYNs Martin Duke
- Re: [tcpm] More TCP option space on SYNs Joe Touch