Re: [hybi] Ping/Pong body (was Re: TSV-Directorate review of draft-ietf-hybi-thewebsocketprotocol-07)

Takeshi Yoshino <tyoshino@google.com> Thu, 26 May 2011 04:35 UTC

Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 32FB9E069C for <hybi@ietfa.amsl.com>; Wed, 25 May 2011 21:35:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.676
X-Spam-Level:
X-Spam-Status: No, score=-105.676 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_52=0.6, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a9LyIgeLig1u for <hybi@ietfa.amsl.com>; Wed, 25 May 2011 21:35:20 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by ietfa.amsl.com (Postfix) with ESMTP id 1F83AE0686 for <hybi@ietf.org>; Wed, 25 May 2011 21:35:19 -0700 (PDT)
Received: from hpaq6.eem.corp.google.com (hpaq6.eem.corp.google.com [172.25.149.6]) by smtp-out.google.com with ESMTP id p4Q4ZIic009943 for <hybi@ietf.org>; Wed, 25 May 2011 21:35:18 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1306384518; bh=TjHV8RvG17VOAHINdw9jAzP/OKk=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=XZN8ZwqfMRkEHERjn05O+xpkHNFIjUBXCuHYPdQ6oXXhuPwUu/7zpladh88cD7CIO eOGZWxPLBQl83QjbjSVhA==
Received: from gxk21 (gxk21.prod.google.com [10.202.11.21]) by hpaq6.eem.corp.google.com with ESMTP id p4Q4ZGgr026409 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <hybi@ietf.org>; Wed, 25 May 2011 21:35:17 -0700
Received: by gxk21 with SMTP id 21so171476gxk.5 for <hybi@ietf.org>; Wed, 25 May 2011 21:35:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=hlezY6mW+vVZ4z0c5Kts4pDRj9Ba9GGB4SCxeYnHwg8=; b=RM9RRUIlXA1OcSpnrfmUPouLkyxuK4KWIwDtaBckra/VgcCBZTU2Dzpk1Ys+LwCjMi MI/SUWzEg9Vc3jNgZknA==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=PsXP+YuHZ8guhukHios3oI24LcqsKvBLpFk85HQfOg0X/FoPsEQxqtUGMuQ45PwNOs ZBkgYaJrvi1a8ntTVuCQ==
Received: by 10.90.151.15 with SMTP id y15mr464853agd.55.1306384516143; Wed, 25 May 2011 21:35:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.91.53.15 with HTTP; Wed, 25 May 2011 21:34:56 -0700 (PDT)
In-Reply-To: <1306321812.1782.60.camel@ds9>
References: <ED13A76FCE9E96498B049688227AEA292C6A81E4@TK5EX14MBXC206.redmond.corp.microsoft.com> <4DD9686C.7020509@callenish.com> <BANLkTin2LcHgPH7s4-T_1LJa_UhkigJziw@mail.gmail.com> <1306285493.1782.33.camel@ds9> <BANLkTino-_v8VKMXaUG0WH9HgsFedWgHtg@mail.gmail.com> <1306294656.1782.50.camel@ds9> <BANLkTikx=mg_ACZDjhSvD+gma5UgMbJq7g@mail.gmail.com> <1306321812.1782.60.camel@ds9>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Thu, 26 May 2011 13:34:56 +0900
Message-ID: <BANLkTi=9pSRER21nCiBS6f=vV-DBis300A@mail.gmail.com>
To: Patrick McManus <pmcmanus@mozilla.com>
Content-Type: multipart/alternative; boundary="00163630efe7065a0c04a426595b"
X-System-Of-Record: true
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Ping/Pong body (was Re: TSV-Directorate review of draft-ietf-hybi-thewebsocketprotocol-07)
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 May 2011 04:35:21 -0000

On Wed, May 25, 2011 at 20:10, Patrick McManus <pmcmanus@mozilla.com> wrote:
>
> But if A's algorithm is "unpredictable random sequence" then B cannot
> realistically match A's value even if they are uncoordinated. Just make
> the random space sufficiently large - these are infrequent events after
> all.
>

Yes. I know.

My point is the trade off between "please choose and implement some
algorithm (e.g. random 3, 4 or more octet) that very possibly never
generates body which collide with others' by yourself when necessary" and
"the spec clearly disambiguates them by 1 octet indicator".

I think the former works practically. But that's not what something called
"specification" should do I think in principle. Things people may leave
under-specified are things that defined in lower or under layer which have
their own agreement/spec, or extensions that has negotiation mechanism by
which entities can coordinate their behavior. This is not the case.


> that does break interoperability, though. a Ping of "0x23 0x24 0x25
> 0x26" is legal under -07 and invalid under that text. s/must/SHOULD
> would repair that, I suppose.
>

Yes. For non-empty cases, it does break.


> -07 rules? It's time to ship the protocol already.
>

I'm ok with this shipped without adding indicator if no one else thinks it's
necessary. It's time to ship, yes. Personally I have no plan to use
non-empty ping/pong body.

As Bruce listed, there're some other issues raised recently. Here are my
thoughts on them.

a) Allow multiple in-flight Pings?
Yes. Harmless. Jamie's opinion makes sense. Keep the current text.

b) Allow Ping and Pong to have a body?
Yes. Harmless. Keep the current text.

b-yes-1) Disambiguate solicited and unsolicited Pong by the spec?
I can live without this, but I think we should.

b-yes-2) Allow the Pong body to contain extra data beyond just echoing the
Ping body?
OK. Harmless. I don't have any preference on this. This needs text change.

c) Have solicited Pong respond to only the most recent Ping?
I don't understand why we allow this kind of unsynchronized behavior
purposely. It's not a good way to discourage multiple in-flight Pings. If
it's good to disallow multiple in-flight Pings, the spec should say
"multiple in-flight Pings MUST not be sent" directly. I think most of
implementation would handle received data frame-by-frame. Once it sees a
Ping frame, it will enqueue a Pong to its sending queue, forget it and move
on the next frame. This text looks just confusing.
Again, I can live with this.

Thanks,
Takeshi