Re: [Taps] TAPS Transports and ICMP

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Thu, 04 June 2015 21:04 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D469E1AC3B8 for <taps@ietfa.amsl.com>; Thu, 4 Jun 2015 14:04:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.561
X-Spam-Level:
X-Spam-Status: No, score=-1.561 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 6krnNtN3JfAF for <taps@ietfa.amsl.com>; Thu, 4 Jun 2015 14:04:18 -0700 (PDT)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6401F1AC3B6 for <taps@ietf.org>; Thu, 4 Jun 2015 14:04:18 -0700 (PDT)
Received: from [192.168.1.200] (p508F1FC0.dip0.t-ipconnect.de [80.143.31.192]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id C1F041C104358; Thu, 4 Jun 2015 23:04:15 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <5570A452.8090209@isi.edu>
Date: Thu, 04 Jun 2015 23:04:14 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <96579AAB-7E0E-46E3-8C8F-D33CBE5EFAE4@lurchi.franken.de>
References: <00597CB8-D128-408A-8F35-BA98CDF45A62@cisco.com> <55707211.8010609@isi.edu> <26B9DE0B-4D38-430D-A9A1-921CD0067C70@cisco.com> <5570988A.6040208@isi.edu> <554F884C-642C-42B1-A976-EECD0C32928B@cisco.com> <5570A452.8090209@isi.edu>
To: Joe Touch <touch@isi.edu>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/BWrG4bnbTk5sFyKQVU4KQEtIo3A>
Cc: "Pal Martinsen (palmarti)" <palmarti@cisco.com>, "taps@ietf.org" <taps@ietf.org>
Subject: Re: [Taps] TAPS Transports and ICMP
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 21:04:20 -0000

> On 04 Jun 2015, at 21:17, Joe Touch <touch@isi.edu> wrote:
> 
> 
> 
> On 6/4/2015 12:08 PM, Pal Martinsen (palmarti) wrote:
> ...
>>> UDP passes all ICMP messages to the app. If the app doesn't listen for
>>> it, that’s the app's decision.
>>> 
>> Then there is a lot UDP application developers out there that does not care. 
>> 
>> Ill guess what I am asking if we should make life easier for them.
> 
> Again, FIRST this doc needs to explain the current abstract APIs for
> transport protocols.
> 
> THEN we can decide whether that set either needs to be augmented,
> diminished, or translated to be more useful for "applications".
> 
>>>> Unfortunately how to do this varies from OS to OS:
>>>> See https://tools.ietf.org/html/draft-martinsen-tram-stuntrace-01#appendix-A.2 for
>>>> examples.
>>> 
>>> You are confusing the OS and language-dependent implementation of the
>>> API with the abstract API.
>>> 
>> On purpose. I hate it when a feature should work because it says so 
>> in a RFC, but the implementations of it is so vastly different that
>> it is not possible to get the thing to work so the app developer just
>> chose to ignore it.
> 
> The IETF standardizes protocols and abstract APIs.
In the case of SCTP, the IETF also specifies an extension to the socket
API covering SCTP. See
https://tools.ietf.org/html/rfc6458
and corresponding "Socket API Consideration" sections in SCTP specifications.
An abstract API is specified in
https://tools.ietf.org/html/rfc4960#section-10
However, this doesn't help for writing portable application. Therefore,
having RFC 6458 has helped to guide the SCTP implementations in FreeBSD,
Linux and Solaris to provide implementations for which you can write
programs for.

Best regards
Michael
> 
> If you are concerned with differences in the implementations of those
> abstract APIs, you need to address them in other organizations (e.g.,
> POSIX, etc.).
> 
> ...
>>> RFC1122 requires that UDP implementations make the ICMP signals
>>> available to the application. It does not indicate by what mechanism.
>>> 
>>>> Listening for port unreachable can be nice to avoid spamming a host or
>>>> application that recently crashed. Detecting fragmentation or max MTU is
>>>> also a nice feature especially VoIP applications sending video can
>>>> utilise to optimise their packet sizes. 
>>> 
>>> UDP is required to pass ALL ICMP messages to the app layer, as per RFC 1122.
>> 
>> That is another problem. An app using port 5555 will receive all
>> ICMP messages also generated by other apps running on other ports.
> 
> That's an incorrect implementation. See RFC1122 Section 4.1.3.3.
> 
> ...
>> So this boils down better education of the app developers?
> 
> No, in that case you have a bug. The only thing the UDP app has to worry
> about are ICMPs from other apps using the same port.
> 
>>>>> TCP passes only dest unreachable types 0, 1, and 5, time exceeded and
>>>>> parameter problem. All others it interprets or ignores internally and
>>>>> it’s not clear it should pass up to the app.
>>>> 
>>>> That is exactly that kind of information I would find useful in the
>>>> transports draft.
>>> 
>>> Well, yes - IMO, that’s because it's part of the abstract API.
>>> 
>> Can they at least cite RFC 1122 then?
> 
> I would hope so.
> 
> Joe
> 
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps