Re: Protocol Definition

John Day <jeanjour@comcast.net> Mon, 09 January 2012 12:13 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 C116E21F8715 for <ietf@ietfa.amsl.com>; Mon, 9 Jan 2012 04:13:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.487
X-Spam-Level:
X-Spam-Status: No, score=-103.487 tagged_above=-999 required=5 tests=[AWL=1.113, BAYES_00=-2.599, GB_I_LETTER=-2, 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 0jRxw5Y03451 for <ietf@ietfa.amsl.com>; Mon, 9 Jan 2012 04:13:58 -0800 (PST)
Received: from qmta12.westchester.pa.mail.comcast.net (qmta12.westchester.pa.mail.comcast.net [76.96.59.227]) by ietfa.amsl.com (Postfix) with ESMTP id F1D1721F870B for <ietf@ietf.org>; Mon, 9 Jan 2012 04:13:57 -0800 (PST)
Received: from omta06.westchester.pa.mail.comcast.net ([76.96.62.51]) by qmta12.westchester.pa.mail.comcast.net with comcast id KQDQ1i00216LCl05CQDypT; Mon, 09 Jan 2012 12:13:58 +0000
Received: from [10.0.1.26] ([24.218.154.214]) by omta06.westchester.pa.mail.comcast.net with comcast id KQDw1i00t4dorGg3SQDxMX; Mon, 09 Jan 2012 12:13:58 +0000
Mime-Version: 1.0
Message-Id: <a06240801cb308339f287@[10.0.1.26]>
In-Reply-To: <4F0A893B.4080104@250bpm.com>
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> <a06240871cb2f30d9735f@[10.0.1.26]> <4F0A1AE4.3050306@250bpm.com> <a06240874cb301ba706ea@[10.0.1.26]> <4F0A893B.4080104@250bpm.com>
Date: Mon, 09 Jan 2012 07:08:05 -0500
To: Martin Sustrik <sustrik@250bpm.com>, John Day <jeanjour@comcast.net>
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 12:13:58 -0000

At 15:29 +0900 2012/01/09, Martin Sustrik wrote:
>On 01/09/2012 01:35 PM, John Day wrote:
>>At 23:38 +0100 2012/01/08, Martin Sustrik wrote:
>>>On 08/01/12 13:00, John Day wrote:
>>>
>>>>You are also correct that strictly speaking the words "protocol" and
>>>>"algorithm" are probably the same.
>>>
>>>That is an interesting point.
>>>
>>>What I encounter often is the belief that protocol is just
>>>"description of bytes on the wire". People often forget about the
>>>stuff that cannot be seen on the wire (e.g. TCP state machine).
>>
>>This is clearly not the case and has never been the case.
>>
>>In fact, "bytes on the wire" is probably the smallest part of a protocol
>>specification. A protocol specification must specify what to do with the
>>"bytes on the wire/"
>>
>>The next time someone suggests that merely ask, what do you do with the
>>bytes on the wire? Where is that specified? The action to be taken when
>>a message arrives is all there is.
>>
>>There was once a group who thought that names of the fields in their
>>protocol was sufficient to specify what was to be done with them. I
>>pointed out the them that a legal value of every field in their protocol
>>was the letter "Z". They objected to this quite strenuously, but I asked
>>to show me where it said this was not the case. ;-)
>>
>>Anyone who says that merely specifying the format of messages (bytes on
>>the wire, as you say) constitutes a protocol specification is clearly
>>not competent to be making such pronouncements.
>
>Agreed. However, consider following problem: Imagine there's a 
>specification that doesn't define any new wire formats, only 
>specific ways to handle existing messages (UDP packets, SCTP 
>messages or whatever). Is it still eligible to become an IETF 
>protocol?

Two problems here:  1)  The scope of the IETF has nothing to do with 
the original question of "what is a protocol?"  For that you will 
have to consult the rules of the IETF.

2)  The specifications of UDP, SCTP, etc provide the full and 
complete specification of their messages.  So you must be defining 
something else, or you are proposing modifications to these 
protocols, so you should be working with their groups.  In the case 
of UDP, I highly doubt this.

Sounds to me that you are working with the very old phone company 
"beads-on-a-string" model rather than the more modern layered model. 
But then that seems to be fairly prevalent in the IETF.

>
>>>The area I work in has little or no special "bytes on wire" (simple
>>>message-based underlying transport is sufficient) but a lot of
>>>algorithmic stuff. Consequently, it was often dismissed as not being a
>>>protocol.
>>
>>"has little or no special "bytes on wire" (simple message-based
>>underlying transport is sufficient)" I have no clue what this phrase
>>could possibly mean. If you are passing messages, there must be "bytes
>>on the wire" otherwise, the messages have not been exchanged.
>
>What I am working on is business messaging (a.k.a. message-oriented 
>middleware). In lot of cases it works ok with existing message 
>formats (e.g. UDP packets, PGM APDUs, SCTP messages etc.) and 
>doesn't require any additional data to be passed on the wire.

This makes no sense whatsoever.  UDP and SCTP messages change the 
state (not much in the case of UDP) of their protocol machines, etc. 
If what you say is true, i.e. doesn't require any additional data to 
be passed on the wire, then I can guarantee that your "business 
messaging" does nothing.

UDP and SCTP messages are consumed by those protocols machines.

>
>What the specification focuses on are things like: If TCP is used to 
>form a one-to-many message distribution tree, how should we handle 
>TCP flowcontrol/pushback in such a way that a single slow receiver 
>doesn't block the whole message distribution tree? Or: How to 
>receive messages from multiple sources without allowing one sender 
>to starve out the receiver and thus block the other senders (some 
>form of fair-queueing is needed)? Etc.

These are local matters unless feedback is used.  In which case there 
is a protocol.  Having worked through these issues years ago, it 
sound to me like you don't have a clear picture of the model.

Take care,
John Day

>Martin