Re: [Spud] Putting Network-Layer Information in the Network Layer

Tom Herbert <tom@herbertland.com> Mon, 13 July 2015 15:11 UTC

Return-Path: <tom@herbertland.com>
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 DC20C1B2B57 for <spud@ietfa.amsl.com>; Mon, 13 Jul 2015 08:11:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7] 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 qO4rEZxuEuLT for <spud@ietfa.amsl.com>; Mon, 13 Jul 2015 08:11:03 -0700 (PDT)
Received: from mail-ig0-f176.google.com (mail-ig0-f176.google.com [209.85.213.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 060E61B2B8B for <spud@ietf.org>; Mon, 13 Jul 2015 08:11:02 -0700 (PDT)
Received: by iggp10 with SMTP id p10so77813593igg.0 for <spud@ietf.org>; Mon, 13 Jul 2015 08:11:02 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=IESy5wEU5Lo4RiJAxIYjqFQi7dCH0adoxwecO+aAlM0=; b=JI75fStEDjYhXvyE8oQy3N0csRe2Mag1tUuOAULXJVICmxubu4TkSm2DZXbeKLnXg3 BQHRZT9wu3GYdMFDcPapOR9tz+C5NH7ZwU5Az3Tez5Og16Wqw89x6diL2uUfAi3yBxZI ouf1M0SVlUXznFksplDmzrvpp/w4rk/UqHeQQjdPJ6k+23Phx7SvAG0xFBWDxDlVE2ax Ws9leLbsTujSzyE/LEKYlL7bDk2Gqo5LwXqHmcUoGfOqSYkQ2U8dY8DoYV/pNsHKphm/ 2n9eLA0ANHLUke0oGIeJfXUuI0bDqwR9Nh0vcvRMCCvCso0yw3Sws212/daBz/+tV1jC WlPg==
X-Gm-Message-State: ALoCoQmRpU+QKvlB4q/M4p8G9uAGQ05IF812xFGyWntheQ79k6Rm15+j8qiDMcOPmv3wXTvq9AZa
MIME-Version: 1.0
X-Received: by 10.107.165.142 with SMTP id o136mr21138705ioe.120.1436800262468; Mon, 13 Jul 2015 08:11:02 -0700 (PDT)
Received: by 10.107.142.86 with HTTP; Mon, 13 Jul 2015 08:11:02 -0700 (PDT)
In-Reply-To: <559FFD93.8010307@isi.edu>
References: <20150703151910.417.20312.idtracker@ietfa.amsl.com> <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>
Date: Mon, 13 Jul 2015 08:11:02 -0700
Message-ID: <CALx6S37TuP98ZFtu455gQ-apOq5=TSEMXEC=jE3h8s4CXVoqaw@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
To: Joe Touch <touch@isi.edu>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/2MWHdJ2njmUDf1Y38JZd8aPhAms>
Cc: Brian Trammell <ietf@trammell.ch>, =?UTF-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>, spud@ietf.org
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 15:11:06 -0000

On Fri, Jul 10, 2015 at 10:14 AM, Joe Touch <touch@isi.edu> 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).
>
Hi Joe,

Trying to bring up new protocols or features with legacy devices is a
problem that appears in several different contexts. For example we see
this when bringing up IPv6, using UDP on the Internet, running SCTP or
other protocols. In the absence of negotiation with all the relevant
devices or explicit knowledge that all the devices in the path support
the new feature, the typical solution is to try using the feature and
see what the effects are. If we see that packets are being dropped
(lack of acknowledgments) or error messages are seen, then we know
backoff to some "simpler" mode that is known to work. For instance,
use TCP instead of UDP when we see UDP is not making forward progress
for an application (Christian mentioned this in reference to Skype and
gaming protocols). This works as long as devices are dropping packets
because of things they don't understand. Presumably this method could
be employed for hosts to send IP options on the Internet, that is try
sending options and if there are problems stop sending them to that
destination (by definition, options should never required!).

Tom

>>>>> 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