Re: [tcpm] Persist condition clarification draft, now "clarification of sending behavior" draft - comments solicited

Mahesh Jethanandani <mahesh@cisco.com> Mon, 04 August 2008 13:25 UTC

Return-Path: <tcpm-bounces@ietf.org>
X-Original-To: tcpm-archive@megatron.ietf.org
Delivered-To: ietfarch-tcpm-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8552E3A683E; Mon, 4 Aug 2008 06:25:40 -0700 (PDT)
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2E1133A683E for <tcpm@core3.amsl.com>; Mon, 4 Aug 2008 06:25:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.271
X-Spam-Level:
X-Spam-Status: No, score=-7.271 tagged_above=-999 required=5 tests=[AWL=1.327, BAYES_00=-2.599, GB_I_LETTER=-2, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nwDx4UvVX8uo for <tcpm@core3.amsl.com>; Mon, 4 Aug 2008 06:25:34 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id 504B73A680B for <tcpm@ietf.org>; Mon, 4 Aug 2008 06:25:34 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.31,304,1215388800"; d="scan'208,217";a="135459641"
Received: from sj-dkim-2.cisco.com ([171.71.179.186]) by sj-iport-6.cisco.com with ESMTP; 04 Aug 2008 13:26:02 +0000
Received: from sj-core-2.cisco.com (sj-core-2.cisco.com [171.71.177.254]) by sj-dkim-2.cisco.com (8.12.11/8.12.11) with ESMTP id m74DQ2Hv009383; Mon, 4 Aug 2008 06:26:02 -0700
Received: from [10.21.51.104] ([10.21.51.104]) by sj-core-2.cisco.com (8.13.8/8.13.8) with ESMTP id m74DQ0Ls007655; Mon, 4 Aug 2008 13:26:01 GMT
Message-ID: <48970365.6070402@cisco.com>
Date: Mon, 04 Aug 2008 06:25:57 -0700
From: Mahesh Jethanandani <mahesh@cisco.com>
Organization: Cisco Systems Inc.
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
MIME-Version: 1.0
To: Caitlin Bestler <Caitlin.Bestler@neterion.com>
References: <78C9135A3D2ECE4B8162EBDCE82CAD7704041514@nekter>
In-Reply-To: <78C9135A3D2ECE4B8162EBDCE82CAD7704041514@nekter>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=8280; t=1217856362; x=1218720362; c=relaxed/simple; s=sjdkim2002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=mahesh@cisco.com; z=From:=20Mahesh=20Jethanandani=20<mahesh@cisco.com> |Subject:=20RE=3A=20[tcpm]=20Persist=20condition=20clarific ation=20draft,=20now=20=22clarification=0A=20of=20sending=20 behavior=22=20draft=20-=20comments=20solicited |Sender:=20; bh=2/3PzNOBC94rsHlg9wxavVZdWyDVlpIaL6KEwryYE0g=; b=NJJ2CDApYA6gPl7z65ngvltb608JpEyjQO3L29krIf6oCqbeVZ1BlHv40N fPfvYhE3HqtYUtxXczdglXFEuRnZeMDi9RN3Ieno/uIY0bQJ5RVbRx3sWT5Y Q/Tq3i+h8S;
Authentication-Results: sj-dkim-2; header.From=mahesh@cisco.com; dkim=pass ( sig from cisco.com/sjdkim2002 verified; );
Cc: tcpm@ietf.org
Subject: Re: [tcpm] Persist condition clarification draft, now "clarification of sending behavior" draft - comments solicited
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1445604922=="
Sender: tcpm-bounces@ietf.org
Errors-To: tcpm-bounces@ietf.org

Changing the Subject to align it with the other thread.

Caitlin Bestler wrote:
>
> Is an RFC really needed?
>
> I've always assumed that the application layer MAY
> do pretty much whatever it wants. Further application
> layer servers SHOULD protect their own resources against
> abusive clients. Those protection mechanisms MAY include
> terminating connections.
>
That is true, and if you read 793 is states it as such. What causes some 
of confusion is the verbiage in 1122. While 1122 is not contradicting 
what is stated in 793, if you look at most implementations, the verbiage 
in 1122 is implemented to the letter T but hardly anyone has implemented 
anything mentioned in 793 for the same scenario. The result is a DoS attack.

Take Linux as an example. Here are some sample comments from the code 
base and note the confusion
> 241 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L241>         *//* *WARNING* RFC 1122 forbids this/*
> 242 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L242> */         */*
> 243 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L243> */         * It doesn't AFAIK, because we kill the retransmit timer -AK/*
> 244 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L244> */         */*
> 245 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L245> */         * FIXME: We ought not to do it, Solaris 2.5 actually has fixing/*
> 246 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L246> */         * this behaviour in Solaris down as a bug fix. [AC]/*
> 247 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L247> */         */*
> 248 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L248> */         * Let me to explain. icsk_probes_out is zeroed by incoming ACKs/*
> 249 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L249> */         * even if they advertise zero window. Hence, connection is killed only/*
> 250 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L250> */         * if we received no ACKs for normal connection timeout. It is not killed/*
> 251 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L251> */         * only because window stays zero for some time, window may be zero/*
> 252 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L252> */         * until armageddon and even later. We are in full accordance/*
> 253 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L253> */         * with RFCs, only probe timer combines both retransmission timeout/*
> 254 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L254> */         * and probe timeout in one bottle.                             --ANK/*
> 255 <http://www.gelato.unsw.edu.au/lxr/source/net/ipv4/tcp_timer.c#L255> */         *//*
>   
The actual implementation of Linux has TCP keeping track of connections 
in persist condition and terminating them when the number of "orphaned 
connections" exceeds a certain threshold.

We believe that is because of the confusion around the verbiage of 1122. 
And thus the clarification needed.
>
>
> All of that is true independent of any specific method
> of abusing server resources.
>

-- mahesh
_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www.ietf.org/mailman/listinfo/tcpm