Re: [tcpm] draft-ananth-tcpm-persist-00.txt as a WG document

"Murali Bashyam" <> Fri, 03 October 2008 19:36 UTC

Return-Path: <>
Received: from [] (localhost []) by (Postfix) with ESMTP id C9A423A6A07; Fri, 3 Oct 2008 12:36:45 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4F5553A6859 for <>; Fri, 3 Oct 2008 12:36:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id tsHNSmNTqB5b for <>; Fri, 3 Oct 2008 12:36:42 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id F2E403A67FD for <>; Fri, 3 Oct 2008 12:36:41 -0700 (PDT)
Received: by gxk9 with SMTP id 9so3078804gxk.13 for <>; Fri, 03 Oct 2008 12:37:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=UuaeG/pEfT6QqxQoKZaDxsjD8SHiOOml/QnYXRJ88Zg=; b=W1I6y5zrScJ3yJD5XIXLx8K3RL3wWABT++OYfnvrkwYU5YfTLCvkcNYB/GjY83BdMV m6E8kD1fxTKVLZSy1I2ZlGPvkHfr7Ree7ZagQz/foCV11VjbOPeqmJJgjJLuSrUgU3Il bW0fZirOYow2A1v4J9KA/E24ptNrXtFe48ubQ=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=TTMVrrtXa+6Uq17/xTrQMiGSY0vawNLD9lCNLRq/1YKgSm/cJbf/x/ivJIXK0NJFCh ERwGR2WCAcK+i4kohnkGDdt5TVl6oKbwMUs/Nj2AK850wyz9qZpTbik146cfqx1bO8wi iOQrZIM5OoIsbw2HIwKGR5agi5FB04/ULMTic=
Received: by with SMTP id v14mr530369wfv.133.1223062630563; Fri, 03 Oct 2008 12:37:10 -0700 (PDT)
Received: by with HTTP; Fri, 3 Oct 2008 12:37:10 -0700 (PDT)
Message-ID: <>
Date: Fri, 03 Oct 2008 12:37:10 -0700
From: Murali Bashyam <>
To: Ted Faber <>
In-Reply-To: <>
MIME-Version: 1.0
References: <> <> <EC7B72027914A242B991C029F5F213CF2AB0CCA6AA@exchsvr01.ocarina.local> <>
Cc: David Borman <>, "" <>, "Anantha Ramaiah (ananth)" <>, Murali Bashyam <>
Subject: Re: [tcpm] draft-ananth-tcpm-persist-00.txt as a WG document
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
Content-Type: multipart/mixed; boundary="===============1601036274=="

On Fri, Oct 3, 2008 at 11:37 AM, Ted Faber <> wrote:

> I don't mean to be answering from John, but your comments interested me.
> On Thu, Oct 02, 2008 at 05:13:50PM -0700, Murali Bashyam wrote:
> >
> > > From: John Heffner []
> > > I have reservations about moving forward with this draft as a wg
> > > document.  While the information is technically correct, it is overly
> > > specific to the point of possibly being misleading rather than
> > > clarifying.  An operating system may terminate a tcp connection at any
> > > time, not just when the connection is in the persist state.  Further,
> > > I would actually argue that terminating a connection *because* it's in
> > > the persist state is a bad idea and should be discouraged.  (The
> > > reason for termination should be for its use of resources, not TCP's
> > > state.)
> >
> > No implementation today (the well-known ones BSD, Windows and Linux)
> > terminates the TCP connection in that persist state as long as ACKs
> > are being reliably received from the peer. Those three implementations
> > are not doing what you are saying they should be doing, and if it's
> > crystal clear from the standard that they should be doing so, why
> > aren't they?
> Your comment is a little ambiguous.  John says that he believes that
> persist state is not necessarily a good marker for aborting connections
> when resources are scarce.  To take him to task because implementations
> are not using it as a marker - because the implementers agreed with
> his position - is a little unfair, IMHO.

My intent was that even where TCP implementations have a scheme for
dropping connections in the event
of resource exhaustion (such as the Linux one does), they have excluded
connections in this state.
The point i am trying to convey is that the 1122 portion has (mis)guided
them in that direction.

> On the WG item:
> As a bigger picture issue, I find it helpful to remember that
> protocol standards, like 1122, are primarily interoperation documents.
> As such, they tend to focus on what protocol implementers must do to
> talk with one another successfully, not to nail down all possible
> choices.
> Once we start offering advice (or stronger) to developers, we're leaving
> the interoperability domain.  We, as a standards body, have to assume
> that implementers know their application and their environment better
> than we do, and that they can and will make appropriate decisions if we
> give them the room to do so.
> Where a standard has unnecessarily tied the hands of implementers, that
> standard should be changed, IMHO.  I am also sympathetic to clarifying
> the standards body's intent where poor language has obscured it.  I
> don't see that kind of confusion in the text the authors are addressing
> (that is RFC 1122 Section, but reasonable people can disagree
> on such things.
> As such, taking on this work item - clarifying 1122 - doesn't
> excite me, but I don't oppose it.
> The draft should, IMHO, point out that 1122 has nothing to say about
> resource management.  Designers and implementers are free to be as
> clever or foolish as they'd like.

I agree, the primary intention of this draft is not to restrict or present
any resource management schemes, it's to clarify 1122.
In addition,  we are trying to highlight the need for resource management in
this scenario because it leads upto a DoS potential.

> End of thoughts on the WG item.
> As for the draft itself, I'm concerned that it seems to be advocating a
> particular resource management position more strongly than simply
> pointing out that RFC1122 should not affect resource allocation
> decisions.  I also see some misplaced standards language that is
> somewhat confusing.  I'm looking at this paragraph in Section 2:
>        An extensive discussion took place recently about this issue on
>        the TCPM WG mailing list [TCPM].  The general opinion seemed to
>        be that terminating a TCP connection in persist condition does
>        not violate RFC 1122.  In particular the operating system, a
>        resource manager, or an application can instruct TCP to abort a
>        connection in the persist condition.  TCP itself SHOULD not take
>        any action and continue to keep the connection open as mandated
>        by RFC 1122 unless otherwise instructed to do so.  The exact
>        mechanism by which the instruction to abort the connection is
>        conveyed to TCP is an implementation decision and falls beyond
>        the scope of the current memo.
> There's no instruction going on, and one doesn't request an abort.
> Abort is a command in the TCP interface (defined in RFC 793, p. 50) that
> destroys a TCP connection.  Abort works in any state.  Anything with
> access to the TCP interface, including the OS, a resource manager, or an
> application, can call it.  A TCP abort is "the exact mechanism by which
> the instruction to abort the connection is conveyed to TCP", and the
> only reason that it's outside the scope of this document is that it's
> defined in 793.

> In light of that I think that the sentence about "TCP itself SHOULD
> not[sic] take any action..." is more confusing than the 1122 section.
> It seems to imply that TCP might react differently to an abort than
> the single paragraph in 793, and I don't think that's the case.

What's meant here is that it's okay for the connection to get aborted in
this state, whatever the mechanism for doing
so maybe: TCP can abort the connection and inform the application, similar
to the retransmit/persist timeout mechanisms
already in place, or the application can choose to abort the connection
based policy, or the OS can do so based
on resource management criteria. We can re-word that sentence and paragraph
to reflect this.

> Now, a strictly defined abort command seems to somewhat contradict my
> earlier comments about allowing implementers some freedom.  This is a
> spot where the standards body has required a specific tool to be
> available to applications (and OSes and resource managers): there must
> be a way to annihilate a TCP connection from outside without regard to
> its state or anything else.  The standard is silent about how the
> command is used; that's the flexibility here.

The abort semantics as specified by 793 are clear, they are not specific to
a particular state, it's the opinion
of the authors that 1122 excludes it from being applied in this state.


> --
> Ted Faber
> <>           PGP:
> Unexpected attachment on this mail? See
> _______________________________________________
> tcpm mailing list

Murali Bashyam
(c) (510)6736915

----------------------------- CONFIDENTIAL  --------------------
This telecommunication and any data attached to, or included in it
is considered confidential, and is intended only for use by the named
recipient. The contents may be legally protected as any one or more of:
copyrighted material, trade-secret protected material, attorney-client
privileged material, attorney workproduct, or as material covered by
any other legally available means. If you received this material in
error, please notify the sender and destroy the original and all copies,
whether electronic or otherwise. Thank you.
------------------------------ CONFIDENTIAL  --------------------
tcpm mailing list