Re: [Spud] Putting Network-Layer Information in the Network Layer
Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> Mon, 13 July 2015 11:43 UTC
Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id F41ED1A9078
for <spud@ietfa.amsl.com>; Mon, 13 Jul 2015 04:43:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.21
X-Spam-Level:
X-Spam-Status: No, score=-1.21 tagged_above=-999 required=5
tests=[BAYES_50=0.8, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3,
T_RP_MATCHES_RCVD=-0.01] 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 eup0eMzwXin2 for <spud@ietfa.amsl.com>;
Mon, 13 Jul 2015 04:43:04 -0700 (PDT)
Received: from smtp.ee.ethz.ch (smtp.ee.ethz.ch [129.132.2.219])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 961841A9069
for <spud@ietf.org>; Mon, 13 Jul 2015 04:43:03 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
by smtp.ee.ethz.ch (Postfix) with ESMTP id 998BAD9305;
Mon, 13 Jul 2015 13:43:01 +0200 (MEST)
X-Virus-Scanned: by amavisd-new on smtp.ee.ethz.ch
Received: from smtp.ee.ethz.ch ([127.0.0.1])
by localhost (.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id TWHXsBHQhksX; Mon, 13 Jul 2015 13:43:01 +0200 (MEST)
Received: from [192.168.178.33] (x4d02d263.dyn.telefonica.de [77.2.210.99])
(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
(No client certificate requested) (Authenticated sender: mirjak)
by smtp.ee.ethz.ch (Postfix) with ESMTPSA id BB1CED9302;
Mon, 13 Jul 2015 13:43:00 +0200 (MEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: =?utf-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <55A04731.90209@isi.edu>
Date: Mon, 13 Jul 2015 13:42:59 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <4B016995-0037-42B2-B504-35D5D2726732@tik.ee.ethz.ch>
References: <176C39DB-16F3-4E46-9A1D-22290A38FBA6@tik.ee.ethz.ch>
<CALx6S37Eo6eAE4GTkAWGe+w0ZhDHyuMym7+txgjai5GRw+pgiQ@mail.gmail.com>
<7158BF85-8731-40A0-9920-36D21D73D7F2@trammell.ch>
<CALx6S37w1J=v48gFCH18E-3UZyfC28_d_LTuKjC5VHtXC0eu2Q@mail.gmail.com>
<5A64B99E-89C5-4D5C-BFF2-C5F0C25EC35D@trammell.ch> <559D8301.2020604@isi.edu>
<006C9182-7352-4086-AF18-785AEFD44979@trammell.ch> <559EB134.2090905@isi.edu>
<CB3FEFD0-1FE0-49D4-A650-349218ABD00A@trammell.ch> <559FFD93.8010307@isi.edu>
<20150710204514.GA23837@cisco.com> <55A03CCC.1060904@isi.edu>
<CALx6S34QT3ffis3Sq9+RQJ1H5Ve_cMwbMyBSrXv_KSfzSvwPJA@mail.gmail.com>
<55A04731.90209@isi.edu>
To: Joe Touch <touch@isi.edu>
X-Mailer: Apple Mail (2.2102)
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/McDUhikTIV4fSeHGEurueubRBWI>
Cc: Tom Herbert <tom@herbertland.com>, Toerless Eckert <eckert@cisco.com>,
spud@ietf.org, Brian Trammell <ietf@trammell.ch>
Subject: Re: [Spud] Putting Network-Layer Information in the Network Layer
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>,
<mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>,
<mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Jul 2015 11:43:08 -0000
+1 Now this extra space is for me the place where you put a SPUD header (no matter how this header looks like). I personally was seen SPUD over UDP also as a way to make UDP extensible. So you could also add end-to-end information to SPUD e.g. timestamp information, if these information are useful for different overlaying protocols… The little 'hack' you describe below is great to address the discover problem: How do I know the other end is SPUD enable…? - I don’t care… Mirja > Am 11.07.2015 um 00:29 schrieb Joe Touch <touch@isi.edu>du>: > > > > On 7/10/2015 3:19 PM, Tom Herbert wrote: >> On Fri, Jul 10, 2015 at 2:44 PM, Joe Touch <touch@isi.edu> wrote: >>> +1, for somewhat different reasons, notably the problem deploying new IP >>> options and layer separation. >>> >>> This really hints that UDP isn't quite sufficient without its own >>> options. There seems only one place to do this - using the UDP length >>> field. >>> >>> E.g., let's say you have a 1500B IP packet with a 20B IP header, leaving >>> 1480 for UDP. But instead of saying that UDP's Length is 1280, we say >>> it's 1400; in that case, the last 80 bytes could be used as a 'trailer >>> option area'. >>> >> You get UDP data on a UDP socket, so 1400 bytes is returned. > > Sure - to the user. > >> Returning >> the extra bytes would be a simple kernel and API change (at least in >> Linux). > > You'd keep that within "UDP". If you want to get at that portion, it'd > be like accessing a raw IP socket. > >> Besides that, I imagine that HW vendors probably want the >> options to be in the headers due to the HW limitations of packet >> processing. > > They just want a quick way to find them. ;-) > >> >>> This is somewhat like UDP-lite, except that instead of declaring the >>> length to indicate "checksum coverage", it would just indicate the UDP >>> payload vs. extended header, and it would use the existing UDP protocol >>> number (17) rather than that of UDPlite (136). >>> >>> --- >>> The reason why this mechanism can use the current UDP protocol number is >>> that we're not changing the semantics of UDP or the length of the data >>> delivered to the application vs. the existing UDP length field. >>> >>> Because we're still assuming that the UDP checksum covers only the >>> length indicated in the UDP header, there should be no inconsistency >>> with "mismatching pseudoheaders" - I think. I'll check with the UDPlite >>> crowd (unless any are already on this list - Gorry?) >>> --- >> >> IIRC there was a proposal to contort the UDP checksum to become >> something closer to a UDP-lite checksum. The idea was to indicate this >> mode by setting a UDP length less than 8, and inferring the actual >> length of the UDP payload from the IP total length. Conceptually, this >> same hack could be used to add options to UDP. > > Yes, that's what I am proposing. The difference with UDP-lite is that I > would not be returning the extra UDP header option space to the user; > UDP-lite treats that space as "not covered by the checksum" but also > returned to the user. > > Joe > >>> I'm still not convinced it's safe, though. It would not be covered by >>> the UDP checksum. I have no idea whether existing stacks would handle it >>> correctly (i.e., ignoring the extra bytes) vs. shortening the IP packet >>> to make the lengths match. >>> >>> NOTE: this appears valid per RFC1122 and RFC768, but I haven't tried it >>> to see whether it makes various OSes blow up yet... >>> >>> Hmmm. >>> >>> Joe >>> >>> On 7/10/2015 1:45 PM, Toerless Eckert wrote: >>>> IMHO, IP options do not get us anywhere. >>>> >>>> I want a solution that works against the lowest common denominator >>>> of APIs for applications that i have across not only platfornms, >>>> but also application development environments. I have UDP APIs on >>>> a lot more SDKs that UDP + IP options. I bet if i looked, i wouldn't >>>> find IP optoins in a lot of interpreted language SDKs. >>>> >>>> Even if supported by language SDK, its an OS issue whether IP optoins >>>> are supported. I remember that some investigation for a project we did >>>> 2? years back now resulted in us finding that at C level system APIs, >>>> android for example was not supporting IP router alert for a UDP socket >>>> for IPv6, even though it supported it for IPv4 (i hope i remember these >>>> details correctly). And its just one example. >>>> >>>> If all of this stuff is fine, i am totally not persuaded that IP >>>> options are going to be accepted by network operators. There is no >>>> way to guarantee to a network operator that packets with IP options are >>>> NOT punted and cause performance impacts. >>>> >>>> We went through this exercise with ECN, and still haven't moved ahead. >>>> After 10 years or so. Where is the stealth data-collection facility in >>>> eg: firefox that tries randomn ECN flows not only to see whether they >>>> pass through, but also checking latency & jitter to validate that >>>> these ECN packets where not punted in routers when they did pass through ? >>>> >>>> I am not saying we shouldn't have a glorified plan for STUN that ALSO >>>> includes the architecture for doing it correctly for the >>>> 1980's Internet architecture, but please lets not make this plan A. >>>> >>>> The Internet architecture has evolved on so many fronts. Can we not >>>> learn in the network/transport layer structure too how to get the >>>> best solutions for reality ? >>>> >>>> Just saying. >>>> >>>> Toerless >>>> >>>> On Fri, Jul 10, 2015 at 10:14:59AM -0700, Joe Touch wrote: >>>>> Hi, Brian, >>>>> >>>>> On 7/10/2015 3:44 AM, Brian Trammell wrote: >>>>>> >>>>>>> On 09 Jul 2015, at 19:36, Joe Touch <touch@isi.edu> wrote: >>>>> ... >>>>>>> IPv4 options can be jumped over in one step using the IHL field. >>>>>> >>>>>> yes, |set| = 1. >>>>> >>>>> Well, it's actually also because the offset is in the default header and >>>>> nowhere else. The number of options varies, as does the length of many >>>>> options. >>>>> >>>>>>> There's >>>>>>> no such field for IPv6 - routers have to walk the chain of headers one >>>>>>> by one. >>>>>> >>>>>> Right. It seems to me the way out of this (which is not just a >>>>>> problem for boxes that want to muck about in transport protocols, but >>>>>> ones thatwant to properly process hop by hop options) would be to >>>>>> define a new(small) set of IPv6 options headers that themselves would >>>>>> (1) not be combinable and (2) have a fixed length, allowing the >>>>>> next-header field to be _treated_ in constant time / with relatively >>>>>> few gates as the IHL field. >>>>> >>>>> There are several hurdles, not the least of which is that the length of >>>>> HBH options can change in transit. >>>>> >>>>> You don't really need a fixed length to solve this, or even a fixed set. >>>>> The options can even be mutable. >>>>> >>>>> What you really need is a "jump to transport" header that comes before >>>>> all the others, and that is maintained by any device that adds, deletes, >>>>> or changes the length of an option. >>>>> >>>>> The real problem there isn't doing that; its knowing whether you've >>>>> traversed a router that obeys those rules without dropping packets at >>>>> routers that don't. That would kill IPv6. >>>>> >>>>>> I haven't followed 6man, though I presume this approach or >>>>>> approaches like it have been discussed there ad nauseam. >>>>> >>>>> See above. >>>>> >>>>>> The fixed-lengthness of these new v6 options headers would make them >>>>>> problematic for freely extensible options, though one could use these >>>>>> to stick common fast path options in the "fixed" point of the header, >>>>>> and otherwise point to space elsewhere in the packet for things that >>>>>> can happen slowly. You eat the cost of following pointers and doing >>>>>> the more expensive deframing only if you need to in this case. >>>>> >>>>> The real issue, AFIACT, is detecting the behavior of legacy devices that >>>>> wouldn't know to follow these rules - without having them drop the >>>>> packet because it is an unknown option (i.e., you can set "drop if >>>>> unknown", but that would be bad; if you don't set that bit, then you >>>>> can''t detect when changes occur easily). >>>>> >>>>>>>>> I suspect you'll find that IP options are basically a non-starter except >>>>>>>>> for research purposes. >>>>>>>> >>>>>>>> For the story on the v4 side, do you know of anything newer than >>>>>>>> Fonseca et al "IP Options are Not and Option" (tech report version at >>>>>>>> http://www.eecs.berkeley.edu/Pubs/TechRpts/2005/EECS-2005-24.pdf)? It's >>>>>>>> ten years old -- but given where the engineering effort has gone during >>>>>>>> that decade, I doubt strongly much has changed here. >>>>>>> >>>>>>> Not much. Those old studies have been used in other WGs to drive >>>>>>> documents (IMO, unfortunately). >>>>>> >>>>>> I've been thinking about whether it would be worth the effort to do >>>>>> an updated IP options transparency study. >>>>> >>>>> The IETF has a persistent problem with extensibility. Vendors don't make >>>>> money supporting capabilities not in current use, but that ossifies the >>>>> protocols badly. >>>>> >>>>> Joe >>>>> >>>>> _______________________________________________ >>>>> Spud mailing list >>>>> Spud@ietf.org >>>>> https://www.ietf.org/mailman/listinfo/spud
- [Spud] Fwd: New Version Notification for draft-ku… Mirja Kühlewind
- Re: [Spud] Fwd: New Version Notification for draf… Tom Herbert
- Re: [Spud] Fwd: New Version Notification for draf… Smith, Kevin, (R&D) Vodafone Group
- Re: [Spud] Fwd: New Version Notification for draf… Szilveszter Nadas
- Re: [Spud] New Version Notification for draft-kue… Brian Trammell
- [Spud] 答复: Fwd: New Version Notification for draf… Youjianjie
- Re: [Spud] New Version Notification for draft-kue… Toerless Eckert
- Re: [Spud] New Version Notification for draft-kue… Tom Herbert
- Re: [Spud] New Version Notification for draft-kue… Ken Calvert
- Re: [Spud] New Version Notification for draft-kue… Brian Trammell
- Re: [Spud] New Version Notification for draft-kue… Joe Touch
- Re: [Spud] New Version Notification for draft-kue… Joe Touch
- Re: [Spud] New Version Notification for draft-kue… Brian Trammell
- Re: [Spud] New Version Notification for draft-kue… Joe Touch
- Re: [Spud] New Version Notification for draft-kue… Tom Herbert
- Re: [Spud] New Version Notification for draft-kue… Joe Touch
- [Spud] Putting Network-Layer Information in the N… Brian Trammell
- Re: [Spud] Putting Network-Layer Information in t… Tom Herbert
- Re: [Spud] Putting Network-Layer Information in t… Ted Hardie
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- Re: [Spud] Putting Network-Layer Information in t… Toerless Eckert
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- Re: [Spud] Putting Network-Layer Information in t… Tom Herbert
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- Re: [Spud] Putting Network-Layer Information in t… Mirja Kühlewind
- Re: [Spud] Putting Network-Layer Information in t… Tom Herbert
- Re: [Spud] Putting Network-Layer Information in t… Brian Trammell
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- Re: [Spud] Putting Network-Layer Information in t… Toerless Eckert
- Re: [Spud] Putting Network-Layer Information in t… Joe Touch
- [Spud] a UDP option area Joe Touch