Re: Protocol Definition

Joe Touch <touch@isi.edu> Thu, 19 January 2012 02:24 UTC

Return-Path: <touch@isi.edu>
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 6904411E80ED for <ietf@ietfa.amsl.com>; Wed, 18 Jan 2012 18:24:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.216
X-Spam-Level:
X-Spam-Status: No, score=-103.216 tagged_above=-999 required=5 tests=[AWL=-0.617, BAYES_00=-2.599, 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 Wv1tg9eTWUjH for <ietf@ietfa.amsl.com>; Wed, 18 Jan 2012 18:24:08 -0800 (PST)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by ietfa.amsl.com (Postfix) with ESMTP id 8586D11E80F9 for <ietf@ietf.org>; Wed, 18 Jan 2012 18:24:04 -0800 (PST)
Received: from [128.9.160.252] (pen.isi.edu [128.9.160.252]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id q0J2Nebo023366 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 18 Jan 2012 18:23:41 -0800 (PST)
Message-ID: <4F177EAC.7060407@isi.edu>
Date: Wed, 18 Jan 2012 18:23:40 -0800
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20111105 Thunderbird/8.0
MIME-Version: 1.0
To: Kaushal Shriyan <kaushalshriyan@gmail.com>
Subject: Re: Protocol Definition
References: <CAD7Ssm-Vetqmh3sxMWRiOHysp+XUaas7XuBkeg803mkTCsA0vQ@mail.gmail.com>
In-Reply-To: <CAD7Ssm-Vetqmh3sxMWRiOHysp+XUaas7XuBkeg803mkTCsA0vQ@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: 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: Thu, 19 Jan 2012 02:24:09 -0000

On 1/3/2012 5:53 PM, Kaushal Shriyan wrote:
> Hi,
>
> Can someone please explain me the term "Protocol". Does it also mean it
> has some software code underlying beneath it. Please help me understand.

My 2 cents:

A protocol is a defined set of rules that function at multiple locations 
(communication endpoints) that enable shared state (communication), and 
is composed of:

	a defined set of messages ("on the wire" part)
	a defined set of states (localized endpoint state)
	a set of rules that relate message arrival, message departure,
	time (optionally), and state transition

It's a lot like computation where the input is the received message 
sequence and the output is the transmitted message sequence.

A protocol is to communications as an algorithm is to computation.

Code can be used to implement an algorithm.

Code can be used to implement a protocol on an endpoint.

I.e., a protocol is just a special kind of algorithm - one that is used 
to support communication.

A running algorithm is called a process or thread (typically). Since a 
protocol *is* an algorithm, a running protocol is just called a 
communicating process or thread, IMO.

A "session" or "connection" defines an association between multiple 
parties running the same protocol and thus communicating.

Joe