Re: [sipcore] draft-ietf-sipcore-keep-04 - Paul's comments on symmetric path

Paul Kyzivat <pkyzivat@cisco.com> Tue, 03 August 2010 14:18 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0D27C3A67F0 for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 07:18:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.175
X-Spam-Level:
X-Spam-Status: No, score=-10.175 tagged_above=-999 required=5 tests=[AWL=-0.176, BAYES_00=-2.599, J_CHICKENPOX_47=0.6, RCVD_IN_DNSWL_HI=-8]
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 1z8cy2L2NBmt for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 07:18:06 -0700 (PDT)
Received: from rtp-iport-1.cisco.com (rtp-iport-1.cisco.com [64.102.122.148]) by core3.amsl.com (Postfix) with ESMTP id E9BF33A6874 for <sipcore@ietf.org>; Tue, 3 Aug 2010 07:18:05 -0700 (PDT)
Authentication-Results: rtp-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEADPCV0xAZnwM/2dsb2JhbACgCnGoBptWhTkEiQI
X-IronPort-AV: E=Sophos;i="4.55,309,1278288000"; d="scan'208";a="142730695"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-1.cisco.com with ESMTP; 03 Aug 2010 14:18:34 +0000
Received: from [10.86.245.127] ([10.86.245.127]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o73EIXAn011417; Tue, 3 Aug 2010 14:18:34 GMT
Message-ID: <4C582539.6050606@cisco.com>
Date: Tue, 03 Aug 2010 10:18:33 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>
References: <7F2072F1E0DE894DA4B517B93C6A05850B5C22@ESESSCMS0356.eemea.ericsson.se>, <4C56DD2F.9060508@cisco.com> <7F2072F1E0DE894DA4B517B93C6A05850B5C32@ESESSCMS0356.eemea.ericsson.se> <7F2072F1E0DE894DA4B517B93C6A05850CA5A9@ESESSCMS0356.eemea.ericsson.se>
In-Reply-To: <7F2072F1E0DE894DA4B517B93C6A05850CA5A9@ESESSCMS0356.eemea.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: SIPCORE <sipcore@ietf.org>
Subject: Re: [sipcore] draft-ietf-sipcore-keep-04 - Paul's comments on symmetric path
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Aug 2010 14:18:08 -0000

Christer Holmberg wrote:
> Hi Paul,
> 
> Some proposed new text based on your comment regarding symmetric path. 

I think the statements you have added below seem reasonable as far as 
they go, but they only go half way. They say nothing about what the 
*recipient* of keepalives must do when sending requests. And I have a 
strong suspicion this is pretty far along toward reinventing -outbound-.

I would like to have comments on this from somebody more intimately 
familiar with -outbound- than I am.

	Thanks,
	Paul

> -----------------
>  
>>>>> Section 4.2.2:
>>>>>
>>>>> IIUC, the keepalive is associated with a flow as defined in 5626. 
>>>>> Hence it isn't appropriate to use this negotiation mechanism on a 
>>>>> registration that doesn't specify a flow. I don't see that stated anywhere.
>>>>>
>>>>> (If there was no flow, what would the keepalive state be associated 
>>>>> *with*?)
>>>> The second paragraph describes the case when outbound is 
>>>> used, and when you do have flows.
>>>>
>>>> The generic procedure is described in the first paragraph 
>>>> of the section, and it does not talk about flows - it talks 
>>>> about registrations.
>>> I don't see how that works (in the non-outbound case):
>>>
>>> The purpose of these keepalives is to keep a nat binding open.
>>> But that is only useful if the neighboring node then uses 
>>> that path to send outbound requests. What is there in the keep draft that even
>>> *talks* about that?
>>>
>>> If the keepalives are sent via TCP, then the neighbor will 
>>> have to use that same TCP connection for outbound requests in order to gain any 
>>> benefit from the keepalive. If the keepalives are send via UDP, then 
>>> the neighbor will have to send requests symmetrically from the 
>>> address/port on which the keepalives are received.
>> That's a good point.
>>
>> I have probably been assuming that the symmetric path usage 
>> is part of the keep-alive mechanism itself, defined in 
>> outbound, so there is no need to repeat that.
>>
>> But, I guess that it is actually part of the outbound 
>> mechanism, so we would need to say that it applies also to 
>> entities that are willing to send and/or receive keep-alives.
>>
>> -----------------
>>
>>> If you were to specify that, wouldn't it begin to duplicate outbound?
>> It would duplicate that specific requirement of Outbound, yes.
>>
>> But, it's still not a duplication of the whole Outbound 
>> mechanism. For example, registrar support is still not required.
>>
>> And, the keep mechanism can be used between any two SIP entities.
> 
> For section 4.3, I suggest the following text:
> 
> 	"A SIP entity that has negotiated sending of keep-alives associated with a registration (registration flow if Outbound is used) MUST be prepared to receive 
> 	SIP messages (requests and responses) associated with the registration from the receiver of the keep-alives on the same IP port:address 
> 	from where the keep-alives are sent. Likewise, a SIP entity that has negotiated sending of keep-alives associated with a dialog 
> 	MUST be prepared to receive SIP messages associated with the dialog from the receiver of the keep-alives on the same IP port:address from 
> 	where the keep-alives are sent."
> 
> For section 4.4, I suggest the following text:
> 	
> 	"A SIP entity that has negotiated receiving of keep-alives associated with a registration (registration flow if Outbound is used) MUST 
> 	send SIP messages (requests and responses)  associated with the registration towards the sender of the keep-alives using the IP address:port 
> 	from where the keep-alives where received. Likewise, a SIP entity that has negotiated receiving of keep-alives associated with a dialog MUST 
> 	send SIP messages associated with the dialog towards the sender of the keep-alives using the IP address:port from where the keep-alives where received."
> 
> Regards,
> 
> Christer