Re: [tcpm] Congestion control in face of ICMP unreachable messages
Ted Faber <faber@ISI.EDU> Fri, 07 September 2007 00:44 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 1ITRxG-0003nK-RW; Thu, 06 Sep 2007 20:44:14 -0400
Received: from [10.90.34.44] (helo=chiedprmail1.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1ITRxG-0003nE-6W for tcpm@ietf.org; Thu, 06 Sep 2007 20:44:14 -0400
Received: from boreas.isi.edu ([128.9.160.161]) by chiedprmail1.ietf.org with esmtp (Exim 4.43) id 1ITRxF-0005Gm-Fs for tcpm@ietf.org; Thu, 06 Sep 2007 20:44:14 -0400
Received: from hut.isi.edu (hut.isi.edu [128.9.168.160]) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id l870hZMW028672 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 6 Sep 2007 17:43:35 -0700 (PDT)
Received: (from faber@localhost) by hut.isi.edu (8.14.1/8.14.1/Submit) id l870hZa0050569; Thu, 6 Sep 2007 17:43:35 -0700 (PDT) (envelope-from faber)
Date: Thu, 06 Sep 2007 17:43:35 -0700
From: Ted Faber <faber@ISI.EDU>
To: Daniel Schaffrath <daniel.schaffrath@mac.com>
Subject: Re: [tcpm] Congestion control in face of ICMP unreachable messages
Message-ID: <20070907004335.GB48227@hut.isi.edu>
References: <8B61F72F-2F75-4388-976F-9748F8784AB3@mac.com> <20070817162542.GA2511@hut.isi.edu> <4AD719E5-AF65-4D4C-8BE8-B070793F69C3@mac.com>
Mime-Version: 1.0
In-Reply-To: <4AD719E5-AF65-4D4C-8BE8-B070793F69C3@mac.com>
User-Agent: Mutt/1.4.2.3i
X-url: http://www.isi.edu/~faber
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: faber@hut.isi.edu
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 2857c5c041d6c02d7181d602c22822c8
Cc: 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>
Content-Type: multipart/mixed; boundary="===============1238649063=="
Errors-To: tcpm-bounces@ietf.org
Acting in no official capacity, I say: On Fri, Sep 07, 2007 at 12:13:51AM +0200, Daniel Schaffrath wrote: > > On 2007/08/17 , at 18:25, Ted Faber wrote: > > >On Fri, Aug 17, 2007 at 06:06:55PM +0200, Daniel Schaffrath wrote: > >>Dear Community, > >> > >>I was wondering if there are any recommendations regarding congestion > >>control in face of ICMP (host/network) unreachable messages. If I am > >>not mistaken there is nothing in the various TCPM documents... nor in > >>any RFC. > >> > >>Maybe you have any pointers? > > > >Sure. If the code in the destination unreachable message is 2-4 abort > >the connection. Otherwise, don't. RFC 1122. > Ok... however, aborting a connection seems somewhat a bit too harsh > congestion control to me :) Assuming you believe these are valid messages, those codes indicate that the entity you want to talk to is not there or has gone away and isn't coming back. The sender is required to terminate the connection because the network has told it that the receiver cannot be reached and that further packets will not be delivered. Sending any packets under those conditions will just take up space until they're dropped. > > >I wouldn't use ICMP reachability information in congestion control, > >and I don't believe that any standard requires an implementer to do > >so. > >If packets aren't being delivered, the sending endpoint(s) will slow > >down pretty dramatically, pretty quickly without intervention. A > >retransmisson timeout puts the endpoint into slow start. > Yes. And that exactly what I am after. Don't you think that this a > bit to conservative? Especially if you consider exponential back-off. > I mean, if TCP retransmits after RTO and gets no reply, this > indicates severe congestion and back-off is fine. But if it gets an > ICMP unreachable message again, this might allow a less conservative > behavior? Huh? If TCP has gotten to the point where a retransmission timer has gone off not only has the transmission of the packet to be retransmitted failed, but enough other packets have been lost that the fast retransmit algorithm (3 dupacks) has also not happened (yes, the window needs to have grown to 4...). In short, there's something very wrong with the communication between the endpoints, and drastic action is called for. Specifically, the sender acts as though the connection is almost new - window is as small as possible and the ssthresh is halved. Your text above sounds like you're saying that if a sender has heard the network say that there's a connectivity problem between the sender and receiver (ICMP destination unreachable) the sender is entitled to react less conservatively, even though all the evidence is that the link is congested. I don't understand that logic at all. Even if you believe that the ICMP messages indicate a transient condition and that the connection to the receiver will eventually be restored, the sender's best information is that something in the network is confused about how to the destination (ICMP unreachable) and that the receiver is unable to communicate with the sender (no ACKs for an RTO). All evidence is that your packets are doing no good and possible harm (congesting links over which they're being wrongly routed). Explain to me why ICMP messages indicating that your packets are not being delivered indicate you should not slow down. > > Another thing is that RTO needs to expire to reach slow-start > recovery. If my understanding of RFC 1122 is correct, it's still > standard compliant to continue sending after having received the > first appropriate ICMP message. Maybe that's a bit too aggressive (as > opposed to slow-start recovery after an "ICMP induced" RTO). I believe your understanding of RFC 1122 is incorrect. I don't believe that receiving an ICMP message of any kind has any effect on the TCP congestion control algorithms whatsoever (other than aborting the connection in the case above). ICMP messages are not part of a TCP connection, and receiving one does not count as receiveing a TCP packet, much less an ACK. After all, an ICMP message may well be coming from an intermediate gateway. What text have I missed? -- Ted Faber http://www.isi.edu/~faber PGP: http://www.isi.edu/~faber/pubkeys.asc Unexpected attachment on this mail? See http://www.isi.edu/~faber/FAQ.html#SIG
_______________________________________________ tcpm mailing list tcpm@ietf.org https://www1.ietf.org/mailman/listinfo/tcpm
- [tcpm] Congestion control in face of ICMP unreach… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Ted Faber
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Ted Faber
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Ted Faber
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Daniel Schaffrath
- Re: [tcpm] Congestion control in face of ICMP unr… Joe Touch
- Re: [tcpm] Congestion control in face of ICMP unr… Ted Faber