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

Christer Holmberg <christer.holmberg@ericsson.com> Tue, 03 August 2010 15:29 UTC

Return-Path: <christer.holmberg@ericsson.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 954C53A68AF for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 08:29:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.394
X-Spam-Level:
X-Spam-Status: No, score=-3.394 tagged_above=-999 required=5 tests=[AWL=-1.395, BAYES_00=-2.599, J_CHICKENPOX_47=0.6]
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 lyFo1jO0Vebg for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 08:29:22 -0700 (PDT)
Received: from mailgw9.se.ericsson.net (mailgw9.se.ericsson.net [193.180.251.57]) by core3.amsl.com (Postfix) with ESMTP id 214E13A68B6 for <sipcore@ietf.org>; Tue, 3 Aug 2010 08:29:21 -0700 (PDT)
X-AuditID: c1b4fb39-b7b91ae000001aef-3a-4c5835ed2cbd
Received: from esessmw0197.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw9.se.ericsson.net (Symantec Mail Security) with SMTP id D2.42.06895.DE5385C4; Tue, 3 Aug 2010 17:29:50 +0200 (CEST)
Received: from ESESSCMS0356.eemea.ericsson.se ([169.254.1.104]) by esessmw0197.eemea.ericsson.se ([153.88.115.87]) with mapi; Tue, 3 Aug 2010 17:29:49 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Paul Kyzivat <pkyzivat@cisco.com>
Date: Tue, 03 Aug 2010 17:29:49 +0200
Thread-Topic: [sipcore] draft-ietf-sipcore-keep-04 - Paul's comments on symmetric path
Thread-Index: AcszFsVdU0goUnZzSwWmCDutGnJBrQACCKqv
Message-ID: <7F2072F1E0DE894DA4B517B93C6A05850B5C3C@ESESSCMS0356.eemea.ericsson.se>
References: <7F2072F1E0DE894DA4B517B93C6A05850B5C22@ESESSCMS0356.eemea.ericsson.se>, <4C56DD2F.9060508@cisco.com> <7F2072F1E0DE894DA4B517B93C6A05850B5C32@ESESSCMS0356.eemea.ericsson.se> <7F2072F1E0DE894DA4B517B93C6A05850CA5A9@ESESSCMS0356.eemea.ericsson.se>, <4C582539.6050606@cisco.com>
In-Reply-To: <4C582539.6050606@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
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 15:29:23 -0000

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. 

That is meant to be covered by the text I suggetsed for section 4.4. It says that the receiver of keep-alives must send messages towards the sender of those keep-alives using the address and port from where the keep-alives arrived.

>And I have a strong suspicion this is pretty far along toward reinventing -outbound-.

I don't agree. Symmetric routing wasn't invented by Outbound. It is used in NAT scenarios even if you don't use Outbound, in order to ensure that messages pass NATs. 

For example, entities providing NAT traversal using anchoring/latching use symmetric routing.

We also already have mechanisms like rport to request symmetric response routing.

Regards,

Christer



> -----------------
>
>>>>> 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