Re: Protocol Definition

John Day <jeanjour@comcast.net> Mon, 09 January 2012 15:37 UTC

Return-Path: <jeanjour@comcast.net>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 13C1D21F87A8 for <ietf@ietfa.amsl.com>; Mon, 9 Jan 2012 07:37:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.409
X-Spam-Level:
X-Spam-Status: No, score=-102.409 tagged_above=-999 required=5 tests=[AWL=-0.410, BAYES_00=-2.599, J_CHICKENPOX_15=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ijoa5QpCN2kj for <ietf@ietfa.amsl.com>; Mon, 9 Jan 2012 07:37:04 -0800 (PST)
Received: from qmta07.westchester.pa.mail.comcast.net (qmta07.westchester.pa.mail.comcast.net [76.96.62.64]) by ietfa.amsl.com (Postfix) with ESMTP id 88A0B21F8795 for <ietf@ietf.org>; Mon, 9 Jan 2012 07:37:04 -0800 (PST)
Received: from omta23.westchester.pa.mail.comcast.net ([76.96.62.74]) by qmta07.westchester.pa.mail.comcast.net with comcast id KQCY1i0091c6gX857Td5Gt; Mon, 09 Jan 2012 15:37:05 +0000
Received: from [10.0.1.26] ([24.218.154.214]) by omta23.westchester.pa.mail.comcast.net with comcast id KTd21i02u4dorGg3jTd36G; Mon, 09 Jan 2012 15:37:05 +0000
Mime-Version: 1.0
Message-Id: <a06240809cb30b7a03ac3@[10.0.1.26]>
In-Reply-To: <4F0AFC1C.1060905@dcrocker.net>
References: <CAD7Ssm-Vetqmh3sxMWRiOHysp+XUaas7XuBkeg803mkTCsA0vQ@mail.gmail.com><alpin e.OSX.2.01.1201031756290.15402@rcdn-vpn-client-10-89-1-59.cisco.com><07F7D 7DED63154409F13298786A2ADC9042C5169@EXRAD5.ad.rad.co.il><4F05B856.9050205@ dcrocker.net> <3013.1325775717.451646@puncture><4F05DA49.8050802@dcrocker.net> <4F05E3B8.5030305@mail-abuse.org><3013.1325799709.099423@puncture> <4F06647E.2010905@dcrocker.net><4F06662A.6070504@joelhalpern.com> <4F0667B9.30604@dcrocker.net> <000b01cccddb$fd4214c0$4001a8c0@gateway.2wire.net> <4F0AFC1C.1060905@dcrocker.net>
Date: Mon, 09 Jan 2012 10:36:59 -0500
To: dcrocker@bbiw.net, "t.petch" <daedulus@btconnect.com>
From: John Day <jeanjour@comcast.net>
Subject: Re: Protocol Definition
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Cc: dcrocker@bbiw.net, IETF-Discussion <ietf@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Jan 2012 15:37:05 -0000

At 6:39 -0800 2012/01/09, Dave CROCKER wrote:
>On 1/8/2012 12:03 AM, t.petch wrote:
>>I agree that a message is not the right word, but I think that protocol is:-)
>
>There is a specific distinction that is intended by having two 
>different words:  description vs. operation.
>
>A program is a description of behavior.  A process is the operation 
>of the description.  It is the behavioral performance.
>
>Protocol refers to the description of an interaction.  The term 
>being explored is for the operation of that description. It is the 
>interaction.
>

Agreed.

>>For the abstract side of networking, I would use the same 
>>terminology as I would
>>use for a 'program'.
>
>If you mean that you would say 'process' for both, that does have 
>the appeal of familiarity, but the problem of overloading.  Worse, 
>I'd fear that it encourages a failure to appreciate the differences 
>between networking architecture and software implementation.  Since 
>this failure is quite prevalent, I suggest we not encourage it.

Well, pretty close.  There is a copious literature on the formal 
description and verification of protocols beginning in the 70s.

There are two major issues that is not normally found in defining a 
"program":  1) is specifying the asynchrony, ensuring no races, and 
2) keeping the specification implementation independent.  One does 
not want the specification to unnecessarily constrain the 
implementation strategy.  The general rule is Day's First Rule of 
Architecture:  Anything you can get away with that is undetectable 
from the outside is legal.  Or when it comes to implementation sleaze 
the architecture.

We have seen the problems of code monoculture or just assuming the 
other guys knew how to code.

Take care,
John