Re: [Anima-signaling] GRASP and unicast UDP

Brian E Carpenter <brian.e.carpenter@gmail.com> Thu, 18 August 2016 04:42 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima-signaling@ietfa.amsl.com
Delivered-To: anima-signaling@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CC1812D0CD for <anima-signaling@ietfa.amsl.com>; Wed, 17 Aug 2016 21:42:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 3JL39pmwGFDM for <anima-signaling@ietfa.amsl.com>; Wed, 17 Aug 2016 21:42:04 -0700 (PDT)
Received: from mail-pa0-x243.google.com (mail-pa0-x243.google.com [IPv6:2607:f8b0:400e:c03::243]) (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 B6B7312D09C for <anima-signaling@ietf.org>; Wed, 17 Aug 2016 21:42:04 -0700 (PDT)
Received: by mail-pa0-x243.google.com with SMTP id hh10so927719pac.1 for <anima-signaling@ietf.org>; Wed, 17 Aug 2016 21:42:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=pien0S3esGXcAhGtHOX704aMGlAZk9hZmHezpnK1NCU=; b=BiCYJfWDOTMOAkmGvY/GfnC7LTRiqY+kiKMqpvi3EB6vRDbJ5r+3iQ0qh0E2gG6RjS VlEMa1HqFZPBAcMqPpL50zata2UqKYzGmUulGdYLogLe9DfAVWdJeOG5usX2Rt9KtqTz KMRFue2q/V7cX1mqqt2uNfwLERBH+D8LysBEphAf24eV5mbu4FMH9XmI4Fz808xLxR/G 5HywdoW/Cr2krLG5+OZtJsJSnJkq0Dor9Qz4d05eMj05dNDoW+oQWC3464fu6WG4sC1/ YaOleW/1aG8rPfDoXO1YdeHwA7fuEs6UNI03A8WhAo4zHQuSNgAzVYVkpMzBTWHD6q5L IA4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=pien0S3esGXcAhGtHOX704aMGlAZk9hZmHezpnK1NCU=; b=mWCe9nciXTIVdR1BkzHI54I4uyio9rkiSI241gjxEPDs3nSAv8UYlSw1YLj4A738Yg I+dL7RR+KaUMF3qjp1mWujGD2QyfxXXOGo2o5QNN5zX70AV1DL86xi00N3YaTbTEqp0m G3zwrNnmWlSxCCGtCtcJQX1NNZ85n8f7Ui/io7ZIPTqFwKyve6oLDUngGxTIjkEaqEw9 mTEr9boyTrfUiw1i3jeYA9nXdNyk4n+c79YJnCuclzG//EUNOrSZD8tPY1PL5zae9gV9 YRqipqKWu7FPSAO3sTs5pW+1Aiez3Zh69GE+t74xxyx3Zn653B9tmpI+S1O24CGD70qM ZczQ==
X-Gm-Message-State: AEkoouvpuRfDhvygx81J8VF2zvo14hNT++2o+QMK/B94Lsdhx59YbcL63coX8I0FdYAmHw==
X-Received: by 10.67.7.170 with SMTP id dd10mr468926pad.152.1471495324263; Wed, 17 Aug 2016 21:42:04 -0700 (PDT)
Received: from ?IPv6:2406:e007:6d22:1:28cc:dc4c:9703:6781? ([2406:e007:6d22:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id sy7sm335414pac.42.2016.08.17.21.42.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Aug 2016 21:42:03 -0700 (PDT)
To: Toerless Eckert <eckert@cisco.com>
References: <c4d6fc66-a95f-83e3-1f65-1e7aec1c2696@gmail.com> <20160817062314.GA21039@cisco.com> <3b8b143c-fae8-9e77-f32b-0ba2b6f72654@gmail.com> <20160817201531.GG21039@cisco.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <98a1f7f3-49aa-f640-bbc1-df98ab08c61f@gmail.com>
Date: Thu, 18 Aug 2016 16:42:07 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <20160817201531.GG21039@cisco.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima-signaling/drnLhkRnfUe7y765RuavU5zZ-cM>
Cc: Carsten Bormann <cabo@tzi.org>, Anima signaling DT <anima-signaling@ietf.org>
Subject: Re: [Anima-signaling] GRASP and unicast UDP
X-BeenThere: anima-signaling@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Mailing list for the signaling design team of the ANIMA WG <anima-signaling.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima-signaling/>
List-Post: <mailto:anima-signaling@ietf.org>
List-Help: <mailto:anima-signaling-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Aug 2016 04:42:06 -0000

On 18/08/2016 08:15, Toerless Eckert wrote:
> Thanks, Brian
> 
> I think your self-experience with UDP should help to rule that out.
> Not sure how much of that experience summary could go for example
> into explanatory draft text. I am always a fan of that, but most people
> on the IETF seemingly not.

I will tune the section on Transport Layer Usage accordingly, and
maybe add a note to the Implementation Status section.

> Wrt to CoAP: I would hope that similar to bootstrap, we could define
> CoAP as an extension, so that we can continue to keep the main GRASP
> draft on a fast track to WGLC.

Yes, I agree. I will also add a note that other transports are "out
of scope for this document."

    Brian

> 
> Cheers
>     Toerless
> 
> On Thu, Aug 18, 2016 at 08:10:23AM +1200, Brian E Carpenter wrote:
>> On 17/08/2016 18:23, Toerless Eckert wrote:
>>> Thanks a lot for the insight. How about trying CoAP ?
>>
>> Two comments on that.
>>
>> 1) I woke up before the alarm went off this morning, and had exactly that
>> thought. But I'd have to study CoAP in detail to understand whether it
>> helps. Maybe Carsten can advise on this.
>>
>> (In GRASP, you may get multiple simultaneous requests or multiple simultaneous
>> discovery responses. The problem in a nutshell is that with TCP you have
>> accept(), which fires up a new socket for each incoming transaction, but with
>> UDP you have to manage sharing the socket yourself.)
>>
>> 2) I also realised that we can't leave it open in GRASP whether discovery
>> uses TCP or UDP for the discovery response. Otherwise discovery might not work
>> between two random implementations.
>>
>>    Brian
>>
>>>
>>> On Wed, Aug 17, 2016 at 04:42:40PM +1200, Brian E Carpenter wrote:
>>>> To entertain myself while waiting for comments on other matters, I spent
>>>> quite some time (and swear words) on hacking the prototype GRASP to use
>>>> UDP instead of TCP for unicast operations (i.e. discovery responses,
>>>> synchronization responses, and negotiation).
>>>>
>>>> My conclusion is that it's a fairly silly thing to do, except possibly
>>>> for discovery, which only involved a normal amount of debugging. I'm sure
>>>> this is something that DNS server developers are very familiar with:
>>>> writing a robust server handling things over UDP is a great deal harder
>>>> than doing it with TCP. In fact I gave up when I realised that for
>>>> the negotiation case (where there are an unpredictable number of messages
>>>> in both directions) I was basically going to have to rewrite half of TCP,
>>>> and still not have a robust solution. Without a lot more work, the UDP
>>>> solution is riddled with timing-dependent issues. (At one point, adding
>>>> a print statement for debugging fixed the bug, so that I simply couldn't
>>>> debug it...)
>>>>
>>>> Of course, all this could be solved with more work, but I'm really not
>>>> sure we should recommend UDP at all, except for discovery responses.
>>>> I can't really imagine a real autonomic node that doesn't have TCP code.
>>>>
>>>> Comments?
>>>>
>>>>     Brian
>>>>
>>>> _______________________________________________
>>>> Anima-signaling mailing list
>>>> Anima-signaling@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/anima-signaling
>>>
>