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

Takeshi Yoshino <tyoshino@google.com> Tue, 17 May 2011 11:03 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 F3B7DE0715 for <hybi@ietfa.amsl.com>; Tue, 17 May 2011 04:03:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.976
X-Spam-Level:
X-Spam-Status: No, score=-105.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 4j6GpJEakCzg for <hybi@ietfa.amsl.com>; Tue, 17 May 2011 04:03:48 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by ietfa.amsl.com (Postfix) with ESMTP id 31529E070B for <hybi@ietf.org>; Tue, 17 May 2011 04:03:47 -0700 (PDT)
Received: from wpaz37.hot.corp.google.com (wpaz37.hot.corp.google.com [172.24.198.101]) by smtp-out.google.com with ESMTP id p4HB3kou029743 for <hybi@ietf.org>; Tue, 17 May 2011 04:03:46 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1305630227; bh=xoNiRvS6eA4T09n9j7mH0pQZZ9k=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Content-Type; b=ZWQGw4wlFwaSLeSBWkKkfuzpgIM9+hrFWn8XHbYvREa9k93DLL9nODdQS0JjmIMcW oZvN96poolvCMQRI+eOuw==
Received: from yxa15 (yxa15.prod.google.com [10.190.1.15]) by wpaz37.hot.corp.google.com with ESMTP id p4HB356G012752 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <hybi@ietf.org>; Tue, 17 May 2011 04:03:45 -0700
Received: by yxa15 with SMTP id 15so103876yxa.9 for <hybi@ietf.org>; Tue, 17 May 2011 04:03:45 -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:content-type; bh=maYdQL+85g5VljORGLQASqnp1ptznvR/ZpYfeQIG5iI=; b=Bn0RMHmUUZ3HwUz2gFkvHK7wNgz1M6wioflTdZMn09lVa5fBGyPtyar2R/he4LLX3o dxdDoN7IVDji15pBT1uA==
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 :content-type; b=TZeqkbLROXgF+EsYUFBGHFY6Mmc4/ye1o06/Fp869+KEL2GMmoHNaMm7eYYpFHggQ4 sPFN65rL1H4YEJh87tRQ==
Received: by 10.150.69.27 with SMTP id r27mr351436yba.114.1305630225149; Tue, 17 May 2011 04:03:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.150.50.13 with HTTP; Tue, 17 May 2011 04:03:25 -0700 (PDT)
In-Reply-To: <4DCD620C.6090508@callenish.com>
References: <BANLkTi=-ZD024mJ99P8acwZZOQqFkv+O0w@mail.gmail.com> <4DCCD027.5030002@ericsson.com> <4DCD620C.6090508@callenish.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Tue, 17 May 2011 20:03:25 +0900
Message-ID: <BANLkTikMoLd_ih3=zfAQROkCX_-WgUQesQ@mail.gmail.com>
To: hybi@ietf.org
Content-Type: multipart/alternative; boundary="000e0cd5905ac72f8d04a376b968"
X-System-Of-Record: true
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: Tue, 17 May 2011 11:03:49 -0000

Full body matching requirement has been introduced by
http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-03 for both
close and ping/pong. What was the original goal of this requirement for
ping/pong? Is it still valid? Full body matching requirement for close
frames has been thrown away after long discussion.

Now it looks like it's sufficient to have single boolean to indicate it's
nop or reply in application data.

Here's relaxed version.

foo and bar mean "any string"

a) implement heartbeat by diverting Pong
- Ping would be "Ping foo"
- to reply to "Ping foo", send "Pong \x00 bar" (bar is foo by default)
- to send unsolicited Pong, send "Pong \x01 bar"

b) implement heartbeat by diverting Ping
- to send Normal-Ping, send "Ping \x00 foo"
- to send NOP-Ping, send "Ping \x01 foo"
- to reply "Ping \x00 foo", send "Pong bar" (bar is foo by default)
- just ignore "Ping \x01 foo" when received

to adopt Bruce's idea, change "(bar is foo by default)" to "(bar is foo +
buz)". it implements echo and allows the receiver to send additional info.

I've removed unnecessary \x00 and \x01, but it's fine for me to keep them to
keep framing symmetric.

Takeshi