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

MURALI BASHYAM <murali_bashyam@yahoo.com> Sat, 01 December 2007 02:02 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 1IyHgW-0000Jl-FW; Fri, 30 Nov 2007 21:02:24 -0500
Received: from tcpm by megatron.ietf.org with local (Exim 4.43) id 1IyHgV-0000JU-5V for tcpm-confirm+ok@megatron.ietf.org; Fri, 30 Nov 2007 21:02:23 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IyHgU-0000JI-SH for tcpm@ietf.org; Fri, 30 Nov 2007 21:02:22 -0500
Received: from web31710.mail.mud.yahoo.com ([68.142.201.190]) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1IyHgS-0007KZ-0v for tcpm@ietf.org; Fri, 30 Nov 2007 21:02:22 -0500
Received: (qmail 6334 invoked by uid 60001); 1 Dec 2007 02:02:19 -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=HYVyunCNx2COKg6s8zkZKEjKBadyn0bDZP6hhVh+7ktDbQz2IDdjoSYY52gZQRnpHiUCt6dZtnJ3d3V5FpIffmzckTQ7T7w8jd3HmoNJCcgNDcyxiWGluM594YcnfTXYlsit5tE5tTnBeksl6lGMY225XkRxaucX6kRThE7AG5c=;
X-YMail-OSG: P.158tgVM1kbYIZhptRFyfAXNIf0kvv8YxM2xruiRjWRGkzylXtTkV3vsCuZQMETV0Ypi5XWK_hO6rDdzv2e_5vmJPbSZa1JybDnIcxHqtOTVwlcBP9t8ed1Yu9K.g--
Received: from [69.3.29.18] by web31710.mail.mud.yahoo.com via HTTP; Fri, 30 Nov 2007 18:02:19 PST
X-Mailer: YahooMailRC/818.27 YahooMailWebService/0.7.157
Date: Fri, 30 Nov 2007 18:02:19 -0800
From: MURALI BASHYAM <murali_bashyam@yahoo.com>
Subject: Re: Summary of responses so far and proposal moving forward[WasRe:[tcpm] Is this a problem?]
To: David Borman <david.borman@windriver.com>, Anantha Ramaiah <ananth@cisco.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Message-ID: <354788.4675.qm@web31710.mail.mud.yahoo.com>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 0770535483960d190d4a0d020e7060bd
Cc: TCP Maintenance and Minor Extensions WG <tcpm@ietf.org>
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


----- Original Message ----
> From: David Borman <david.borman@windriver.com>
> To: Anantha Ramaiah <ananth@cisco.com>
> Cc: TCP Maintenance and Minor Extensions WG <tcpm@ietf.org>
> Sent: Friday, November 30, 2007 9:49:04 AM
> Subject: Re: Summary of responses so far and proposal moving forward[WasRe:[tcpm] Is this a problem?]
> 
> Anantha,
> 
> You're still hung up on the differentiation between the protocol  
> design and the implementation.  You have to make a choice.  Something  
> is either specified within the TCP protocol, and hence is on the  
> standards track, or it is outside the scope of the TCP protocol and  
> would only be an informational RFC; there may be things in both
> areas.
> 
  
> But if you can't cleanly separate the protocol design from the  
> implementation, then you will not be able to make progress in either  
> area.
> 
> The issue is not about where the functionality is implemented, but
> how
> 
  
> it is documented and whether or not it changes the design of the TCP  
> protocol.  My guess is that the best you can hope for in modifying
> TCP
> 
  
> is to add a User/TCP interface that allows the application to set a  
> new timer to abort the connection if it remains too long in persist  
> state (and you'll probably still have resistance).  The interface has  
> to be clearly defined, as well as the semantics on when the timer
> gets
> 
  
> started, restarted and disabled, and what happens when the timer goes  
> off.  Think of it this way: what would you add to RFC 793?  A
> separate
> 
  
> description would describe how an application/OS might make use of  
> this, but that would be informational only.

I think we have enough clarity to do this. The protocol events that start, 
and stop the timer are very well-defined. 

Timer is started when the receiver advertises
a zero window and we enter a state where we are going to be probing the receiver.

Timer is stopped when the receiver advertises a non-zero window that actually allows
the sender to  send data out. Note the distinction that requires the sender to actually
stop the timer when it is allowed by the receiver  to  send data out, preventing tiny window 
(smaller than MSS) advertisements from prematurely  stopping the timer (should not happen
if the receiver silly window avoidance is in effect). Possibly, there is some merit in 
restarting the timer when the receiver offers a tiny window, allowing the receiver some grace
period.

Upon timer expiry, we terminate the connection. If TCP terminates the connection, it works
under all circumstances. The issue here is that TCP cannot inform the application and have the 
application initiate the abort, because it is  not necessary that the application has that connection state 
around anymore, it could have been destroyed already, i've alluded to  this issue before. 

> 
>             -David Borman
> 
> On Nov 29, 2007, at 9:21 PM, Anantha Ramaiah (ananth) wrote:
> 
> > Hi David,
> >
> > Firstly, I appreciate your explanations on TCP design and the
> > differences between standard and implementation, those are all good.
> >
> > That said, it appears that this is what is being said (at least
> that
> 
  
> > is
> > what is being inferred in the email exchanges) :-
> >
> > Case 1:
> > Abort by the application and OS
> > ==================================
> >
> > "The application OR any entity (like OS) which is instructed by the
> > application to abort the TCP connection when deemed necessary".
> "The
> 
  
> > OS
> > can abort the TCP connection when deemed necessary". These actions  
> > seems
> > to enjoy full compliance of RFC 793/1122.
> >
> > Also an example : if there are 270 connections hanging out in persist
> > state for 110 days, the system administrator chooses to clear some of
> > these connections, now system administrator is acting on behalf
> of
> 
 the
> > system and may not be the application, this is not a violation of the
> > RFC, it appears.
> >
> > WHEREAS
> >
> > Case 2:
> > Aborts done inside TCP layer
> > ============================
> >
> > Assuming that one implementation chooses to have a design like :
> > instructs each individual components in the system like transports  
> > layer
> > to abort some connections and thereby relinquish system
> resources
> 
 when
> > deemed necessary using an explicit or implicit feedback from the
> OS.
> 
  
> > Now
> > this action seems to be violating the RFC since it was done
> inside
> 
 the
> > jurisdiction of TCP code. I am having hard time understanding
> this.
> 
 To
> > me, it is pure implementation thingy.
> >
> > To me all the above actions (case 1 and 2), either are all
> compliant
> 
  
> > to
> > RFC OR all of them aren't. May be it is just me.
> ...
> 
> 
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www1.ietf.org/mailman/listinfo/tcpm
> 




      ____________________________________________________________________________________
Be a better sports nut!  Let your teams follow you 
with Yahoo Mobile. Try it now.  http://mobile.yahoo.com/sports;_ylt=At9_qDKvtAbMuh1G1SQtBI7ntAcJ


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