Re: [Sip] PING/PONG [bcc][faked-from][heur] [mx][spf]

"Spencer Dawkins" <spencer@mcsr-labs.org> Fri, 12 November 2004 15:17 UTC

Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA11422 for <sip-web-archive@ietf.org>; Fri, 12 Nov 2004 10:17:38 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CSdCd-0002Ps-RF for sip-web-archive@ietf.org; Fri, 12 Nov 2004 10:19:08 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CSd50-0003ob-Sa; Fri, 12 Nov 2004 10:11:14 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CSd0I-0001Ww-5f for sip@megatron.ietf.org; Fri, 12 Nov 2004 10:06:22 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id KAA09501 for <sip@ietf.org>; Fri, 12 Nov 2004 10:06:19 -0500 (EST)
Received: from rwcrmhc11.comcast.net ([204.127.198.35]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CSd1g-000260-7j for sip@ietf.org; Fri, 12 Nov 2004 10:07:48 -0500
Received: from dfnjgl21 (unknown[130.129.135.144]) by comcast.net (rwcrmhc11) with SMTP id <2004111215054001300rnabbe>; Fri, 12 Nov 2004 15:05:41 +0000
Message-ID: <08c101c4c8c9$31df8390$90878182@DFNJGL21>
From: Spencer Dawkins <spencer@mcsr-labs.org>
To: Christian Jansson <christian.jansson@hotsip.com>, Christian Stredicke <Christian.Stredicke@snom.de>
References: <B7192C0D8D60754DADA9E22294C573696316D3@mailserver.hotsip.com>
Subject: Re: [Sip] PING/PONG [bcc][faked-from][heur] [mx][spf]
Date: Fri, 12 Nov 2004 10:06:30 -0500
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="iso-8859-1"; reply-type="original"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-Spam-Score: 0.0 (/)
X-Scan-Signature: e1b0e72ff1bbd457ceef31828f216a86
Content-Transfer-Encoding: 7bit
Cc: sip@ietf.org
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: Spencer Dawkins <spencer@mcsr-labs.org>
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
Sender: sip-bounces@ietf.org
Errors-To: sip-bounces@ietf.org
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 9a2be21919e71dc6faef12b370c4ecf5
Content-Transfer-Encoding: 7bit

Hi, Christian (J),

Ah, your note was very helpful. thank you for continuing to follow up 
when we weren't together yet. I've been responding to a vague uneasy 
feeling, and this note helped me understand my own concerns.

The behavior of applications potentially attempting to set up TCP 
connections very aggressively is what concerns me. Think, "close the 
connection, wait some minimal period of time before trying to reopen 
it, what's the minimum period of time, and is there a backoff at the 
application level?"

I would be concerned about large numbers of clients reopening TCP 
connections through a NAT (for instance) trying to restart.

I agree with the rest of what we're talking about here.

Spencer

----- Original Message ----- 
From: "Christian Jansson" <christian.jansson@hotsip.com>
To: "Spencer Dawkins" <spencer@mcsr-labs.org>; "Christian Stredicke" 
<Christian.Stredicke@snom.de>
Cc: <sip@ietf.org>
Sent: Friday, November 12, 2004 4:00 AM
Subject: RE: [Sip] PING/PONG [bcc][faked-from][heur] [mx][spf]



>From: Spencer Dawkins [mailto:spencer@mcsr-labs.org]
>
>OK, I'm still confused here. Please help me.
>
>The apparent choices include "Keep-alives for TCP should be CRLF
>(default-interval TBD)".
>
>Sending keep-alives over TCP may be interesting, but I'm really
>confused about what you think is a reasonable action when you send a
>PING over TCP and don't get a PONG back.


When sending the CRLF over TCP you should not get anything back if the
connection is still there. If the TCP connection is down or fails 
while
sending the CRLF on the other hand you will get a notice from your IP
stack of the failure. Then that socket should be closed, and the UA 
may
try to set up a new connection if wants to.


>
>If you change a status indicator on a user display that says "may 
>have
>lost connectivity", that's fine. If you try to retransmit requests,
>I'm concerned.
>
>My definition of "reasonable" includes "don't send multiple new
>packets into a network path that is not returning PONGs, when the
>problem may be that the network path is losing packets because it is
>already congested." Retransmitting requests requires exactly this
>(tear down existing TCP connection, because it's still 
>retransmitting,
>open a new TCP connection, and then retransmit the request at the
>application level).
>
>There is no way for the endpoints to know that loss is NOT due to
>congestion, and putting TCP-based "lost packet multipliers" in place
>in end systems that can't know they aren't facing congestion is not
>something I'm comfortable with.


I'm not sure how often keep-alives have to be sent over TCP to ensure
that NAT/FWs do not remove the state. Preferabely NAT/FWs never remove
the state, but I have heard that it happens. Does anyone have a
reference to test statistics of NAT/FWs behavior? The keep-alive 
default
interval should probably be set just below the shortest of all 
detected
values. My guess is that the value will be around 5 minutes. Sending a
TCP packet with CRLF every 5 minutes can't really be a big source for
congestion. The keep-alives would also not be sent if any other 
traffic
had been sent to or from the UA.

>
>If TCP isn't the right answer, using TCP and sending multiple new TCP
>packets when a connection won't PING/PONG isn't helpful.

Given that the keep-alives are spaced with a couple of minutes, and 
that
this interval is much greater than the TCP error timeouts, I do not 
see
the problem. If those keep-alives would have been sent every 10 
seconds
I would have agreed on the problems you describe.

/ Christian Jansson




_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip