Re: Summary of responses so far and proposal moving forward[WasRe: [tcpm] Is this a problem?]

David Borman <david.borman@windriver.com> Thu, 29 November 2007 17:09 UTC

Return-path: <tcpm-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1IxmtR-00077q-CB; Thu, 29 Nov 2007 12:09:41 -0500
Received: from tcpm by megatron.ietf.org with local (Exim 4.43) id 1IxmtQ-00077f-Ig for tcpm-confirm+ok@megatron.ietf.org; Thu, 29 Nov 2007 12:09:40 -0500
Received: from [10.90.34.44] (helo=chiedprmail1.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IxmtP-00077V-V3 for tcpm@ietf.org; Thu, 29 Nov 2007 12:09:40 -0500
Received: from mail.windriver.com ([147.11.1.11] helo=mail.wrs.com) by chiedprmail1.ietf.org with esmtp (Exim 4.43) id 1IxmtP-0008CZ-At for tcpm@ietf.org; Thu, 29 Nov 2007 12:09:39 -0500
Received: from ALA-MAIL03.corp.ad.wrs.com (ala-mail03 [147.11.57.144]) by mail.wrs.com (8.13.6/8.13.6) with ESMTP id lATH9V4A007897; Thu, 29 Nov 2007 09:09:31 -0800 (PST)
Received: from ala-mail06.corp.ad.wrs.com ([147.11.57.147]) by ALA-MAIL03.corp.ad.wrs.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Nov 2007 09:09:31 -0800
Received: from [172.25.34.21] ([172.25.34.21]) by ala-mail06.corp.ad.wrs.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Nov 2007 09:09:31 -0800
Message-Id: <C186A11B-5858-4905-A4F9-E6DFC920B585@windriver.com>
From: David Borman <david.borman@windriver.com>
To: MURALI BASHYAM <murali_bashyam@yahoo.com>
In-Reply-To: <389727.79747.qm@web31710.mail.mud.yahoo.com>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v915)
Subject: Re: Summary of responses so far and proposal moving forward[WasRe: [tcpm] Is this a problem?]
Date: Thu, 29 Nov 2007 11:09:29 -0600
References: <389727.79747.qm@web31710.mail.mud.yahoo.com>
X-Mailer: Apple Mail (2.915)
X-OriginalArrivalTime: 29 Nov 2007 17:09:31.0193 (UTC) FILETIME=[9B550A90:01C832AA]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: d8ae4fd88fcaf47c1a71c804d04f413d
Cc: TCP Maintenance and Minor Extensions WG <tcpm@ietf.org>, Mark Allman <mallman@icir.org>, Joe Touch <touch@isi.edu>
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Errors-To: tcpm-bounces@ietf.org

On Nov 28, 2007, at 7:32 PM, MURALI BASHYAM wrote:
...
> The second aspect is the ability of the application to explicitly  
> cause the TCP connection
> to leave the ZWP state at the specified time independent of  
> available resources. There are
> applications where having this level of control over the TCP  
> connection makes sense (web, game servers).
> But aborting this connection with trigger from TCP or OS or  
> application is a protocol violation, i don't buy the fact
> that if the OS does it, it's not a violation, that's what i was  
> referring to as pure wordplay.

Fine.  Call it wordplay.  There's nothing wrong with that, because you  
*have* to get the words right.  You have to be crisp on the protocol  
definition.  The implementation can blur the boundaries, but the  
protocol definition can't.   The aborting of a connection (whether in  
persist or any other state) when the other side is alive and  
responding has to be done by the application.  TCP should not be doing  
that without direct instructions from the application.  Whether that  
is done directly by the application by using the existing abort or  
user timeout interface, or whether a new interface is defined to allow  
the application tells the OS to run a timer and abort the connection  
when the timer goes off, it is still being done under the direction of  
the application.


> A protocol is a contract between the sender and receiver here, and  
> the contract defines the wire
> behaviour.

The TCP protocol is what is defined in RFC 793/1122, and any other  
RFCs that are applicable.  It is more than just the wire behavior.


> I care about the wire behaviour of the
> connection, and if i observe the behaviour of the connection in the  
> ZWP state prior to this change, i see
> ACKs and probes exchanged infinitely. With this change (no matter  
> who does it, OS, app, TCP), i see
> ACKs and probes being exchanged for some time, followed by a RST  
> segment to abort the connection.
>
> Do you agree that if we do the latter without changing the wording  
> of RFC1122, it's a protocol
> violation?
> My claim all along has been that it is.

There already exists two mechanisms for the application to abort a  
connection, directly with the abort interface, or indirectly with the  
user timeout on the send interface, and you will get the same wire  
behavior, a connection in persist state gets aborted.

The only protocol problem here is to have TCP abort a connection in  
ZWP state without the application having first explicitly asked for  
that to happen.  And if you need a new interface to provide that  
functionality, then that will be a change to the TCP protocol.

The OS freeing up resources when they run out by doing things like  
aborting connections is not a protocol violation, because it isn't TCP  
making that decision.  Take that to the extreme, and you'd be arguing  
that the system crashing is a TCP protocol violation, and that's just  
silly.

>
>
> If we agree that it's a violation, then it's a standards track  
> nature of draft.

If it changes TCP, in this case adding a new User/TCP interface, then  
it should be on the standards track.

			-David Borman



_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www1.ietf.org/mailman/listinfo/tcpm