Re: [tcpm] Is this a problem?

MURALI BASHYAM <murali_bashyam@yahoo.com> Tue, 06 November 2007 21:36 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 1IpW5w-0005Br-Nv; Tue, 06 Nov 2007 16:36:24 -0500
Received: from tcpm by megatron.ietf.org with local (Exim 4.43) id 1IpW5v-0005BW-8P for tcpm-confirm+ok@megatron.ietf.org; Tue, 06 Nov 2007 16:36:23 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IpW5u-0005Af-Uj for tcpm@ietf.org; Tue, 06 Nov 2007 16:36:22 -0500
Received: from web31711.mail.mud.yahoo.com ([68.142.201.191]) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1IpW5r-0000Qn-El for tcpm@ietf.org; Tue, 06 Nov 2007 16:36:22 -0500
Received: (qmail 38852 invoked by uid 60001); 6 Nov 2007 21:36:18 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Message-ID; b=5j7AHkvCMgRJDkKxLRvZptGjHNgYwZ0mpaPnbhWYQrsrDgeuho4SDbHcDm70SADhgmt0FQghNdaPLzKTmGa2+izKhXTt6kjkeTzrMzRXBQTL01i6AUoAVFDJxMFPJCMh7z68HtIzBOU2pnCvG7YVZZwZbJfDQgkmbiwm8miyXmk=;
X-YMail-OSG: eDgQT7sVM1nhmJKYIvdFaa9mNFg0NDfjapCkrKnnjcLnWnDG4RBc9SMX0GaTtULkOWuysq5_JDr8uVaqK1SSkZELHbKbK9ITdR16WZmUo1ld0XM6Zqk-
Received: from [69.3.29.18] by web31711.mail.mud.yahoo.com via HTTP; Tue, 06 Nov 2007 13:36:18 PST
X-Mailer: YahooMailRC/814.05 YahooMailWebService/0.7.152
Date: Tue, 6 Nov 2007 13:36:18 -0800 (PST)
From: MURALI BASHYAM <murali_bashyam@yahoo.com>
Subject: Re: [tcpm] Is this a problem?
To: Ethan Blanton <eblanton@cs.ohiou.edu>, Joe Touch <touch@ISI.EDU>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Message-ID: <895257.37528.qm@web31711.mail.mud.yahoo.com>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: c0bedb65cce30976f0bf60a0a39edea4
Cc: tcpm@ietf.org, Lloyd Wood <L.Wood@surrey.ac.uk>
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

The problem is also harder to solve in the HTTP context, for persistent connections, where the server
can write the tail of the HTTP response to the connection send buffer, and then it keeps the connection around
(i.e no app close) waiting for a new HTTP request from any clients out there. It has
no way of detecting whether forward progress has been made for that particular response, because it is now
completely in TCP's send buffer to deliver it. These are scenarios where it seems acceptable for TCP to accomodate
what the application wants (don't hang indefinitely to deliver that response).

Murali

----- Original Message ----
From: Ethan Blanton <eblanton@cs.ohiou.edu>
To: Joe Touch <touch@ISI.EDU>
Cc: MURALI BASHYAM <murali_bashyam@yahoo.com>om>; tcpm@ietf.org; Lloyd Wood <L.Wood@surrey.ac.uk>
Sent: Tuesday, November 6, 2007 11:08:45 AM
Subject: Re: [tcpm] Is this a problem?


Joe Touch spake unto us the following wisdom:
> MURALI BASHYAM wrote:
> > We want to limit the timer to the sender's persist state only, any
> > other timeout overloads the semantics of the application, and may
 also
> > cause unnecessary timeouts for the application. In fact there are
> > instances where the application may not even have the connection
 state
> > around to implement the timout correctly, like the tail of a long
 HTTP
> > response. After sending the tail of the response, the application
 can
> > close the connection and release its connection memory, during this
> > window only TCP has the connection state. We've done a lot of
 testing
> > and design for handling all these cases, and to implement this
> > correctly, we need TCP's involvement.
> 
> It still sounds like you have a poorly written application to me;
 anyone
> else?

This comment of Murali's, specifically, is a case that the application
*cannot* (portably or cleanly) handle, at least under the Berkeley
sockets API.  He is correct that once an application writes the end of
its data and calls close() or shutdown(), the TCP socket may persist
indefinitely in the kernel, and the application would never know (if
there are no application-level acknowledgments, as there are not in
simple HTTP responses).

It does not seem unreasonable to add a zero-window timeout tunable to
any given TCP implementation; I don't necessarily think it is a TCP
standardization issue, however, as there is no wire impact.

Ethan

-- 
The laws that forbid the carrying of arms are laws [that have no remedy
for evils].  They disarm only those who are neither inclined nor
determined to commit crimes.
        -- Cesare Beccaria, "On Crimes and Punishments", 1764




__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


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