Re: [Spud] Putting Network-Layer Information in the Network Layer
Joe Touch <touch@isi.edu> Fri, 10 July 2015 22:29 UTC
Return-Path: <touch@isi.edu>
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 AD04E1A0022
for <spud@ietfa.amsl.com>; Fri, 10 Jul 2015 15:29:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, 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 s1qc8j747nPH for <spud@ietfa.amsl.com>;
Fri, 10 Jul 2015 15:29:50 -0700 (PDT)
Received: from nitro.isi.edu (nitro.isi.edu [128.9.208.207])
(using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 3074A1A0011
for <spud@ietf.org>; Fri, 10 Jul 2015 15:29:50 -0700 (PDT)
Received: from [128.9.160.211] (mul.isi.edu [128.9.160.211])
(authenticated bits=0)
by nitro.isi.edu (8.13.8/8.13.8) with ESMTP id t6AMT5mU017399
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT);
Fri, 10 Jul 2015 15:29:05 -0700 (PDT)
Message-ID: <55A04731.90209@isi.edu>
Date: Fri, 10 Jul 2015 15:29:05 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64;
rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Tom Herbert <tom@herbertland.com>
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>
In-Reply-To: <CALx6S34QT3ffis3Sq9+RQJ1H5Ve_cMwbMyBSrXv_KSfzSvwPJA@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-MailScanner-ID: t6AMT5mU017399
X-ISI-4-69-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/Y3kZBh3C2BDbHlqBEEzNcmDbnHQ>
Cc: Brian Trammell <ietf@trammell.ch>, Toerless Eckert <eckert@cisco.com>,
spud@ietf.org,
=?UTF-8?B?TWlyamEgS8O8aGxld2luZA==?= <mirja.kuehlewind@tik.ee.ethz.ch>,
touch@isi.edu
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: Fri, 10 Jul 2015 22:29:52 -0000
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