Re: [P2PSIP] Re: a modular approach for integrating HIP for P2PSIP

Miika Komu <miika@iki.fi> Tue, 08 January 2008 19:14 UTC

Return-path: <p2psip-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1JCJu0-00065t-Sq; Tue, 08 Jan 2008 14:14:20 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1JCJtz-0005ra-2Y for p2psip@ietf.org; Tue, 08 Jan 2008 14:14:19 -0500
Received: from twilight.cs.hut.fi ([130.233.40.5]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1JCJtn-0006ag-EM for p2psip@ietf.org; Tue, 08 Jan 2008 14:14:19 -0500
Received: by twilight.cs.hut.fi (Postfix, from userid 60001) id B7B062E0B; Tue, 8 Jan 2008 21:13:56 +0200 (EET)
X-Spam-Checker-Version: SpamAssassin 3.2.3-niksula20070810 (2007-08-08) on twilight.cs.hut.fi
X-Spam-Level:
X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.2.3-niksula20070810
X-Spam-Niksula: No
Received: from kekkonen (kekkonen.cs.hut.fi [130.233.41.50]) by twilight.cs.hut.fi (Postfix) with ESMTP id 37C442D6F; Tue, 8 Jan 2008 21:13:48 +0200 (EET)
Date: Tue, 08 Jan 2008 21:13:48 +0200
From: Miika Komu <miika@iki.fi>
X-X-Sender: mkomu@kekkonen.cs.hut.fi
To: Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com>
Subject: Re: [P2PSIP] Re: a modular approach for integrating HIP for P2PSIP
In-Reply-To: <4778C88A.20201@ericsson.com>
Message-ID: <Pine.SOL.4.64.0801082024001.21865@kekkonen.cs.hut.fi>
References: <476BA8D9.4010203@ericsson.com> <20d2bdfb0712210823m2218c4a6mcace60af3d82db57@mail.gmail.com> <476E2B7C.9070601@ericsson.com> <47724ED2.7060508@uni-tuebingen.de> <47725398.4000309@ericsson.com> <477268E1.4050509@uni-tuebingen.de> <4778C88A.20201@ericsson.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"; format="flowed"
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 082a9cbf4d599f360ac7f815372a6a15
Cc: P2PSIP Mailing List <p2psip@ietf.org>
X-BeenThere: p2psip@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Peer-to-Peer SIP working group discussion list <p2psip.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/p2psip>
List-Post: <mailto:p2psip@ietf.org>
List-Help: <mailto:p2psip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/p2psip>, <mailto:p2psip-request@ietf.org?subject=subscribe>
Errors-To: p2psip-bounces@ietf.org

On Mon, 31 Dec 2007, Gonzalo Camarillo wrote:

Hi Ali and Gonzalo,

sorry for catching up late.

> Hi Ali,
>
> HIP includes an ICE-based NAT traversal mechanism. If two nodes use HIP, 
> they will perform ICE at the HIP level, not at the application level. 
> Using application-level ICE to negotiate the use of HIP between nodes, 
> per your email below, is cumbersome. The use of HIP can be negotiated in 
> simpler ways.
>

Basically I agree with Gonzalo here, but to be more specific...

In a "normal" (no overlay, no extra mods to ICE or HIP) HIP scenario, 
sending some data to a HIT would trigger an I1. Either with or without UDP 
encapsulation, depending on local policies. When I1 is sent without UDP, 
the hipd could speed up the connection set-up in the case there are no 
NATs between the two machines. However, the ICE module would not know 
when to stop the connectivity tests, because it wasn't HIP-aware in this 
case. Also, this "optimization" would be unnecessary in the case there are 
NATs between the two hosts because the HIP messages would be just dropped.

In another non-overlay scenario, where ICE is HIP-aware, we could define 
that ICE and HIP module can interact with each other. Sending STUN 
messages to a HIT would trigger a I1 packet without UDP encapsulation and 
upon success the HIP module could abort the ICE connectivity tests 
gracefully. One benefit of this would be that we would skip the UDP 
encapsulation altogether, but the benefit is neglectible.

As indicated by the other discussion thread, applying HIP-aware ICE in 
HIP-enabled overlays may have some caveats related to handling of multiple 
overlays. Anyway, there should be a distinction between getting a direct 
connection to the peer (using ICE) vs. routing through the overlay. I 
think this could be implemented e.g. using a socket option.

> With regards to the use of HIP in overlays, the simplest way would be to 
> deploy overlays where all nodes use HIP and overlays where none of the 
> nodes use HIP. However, some people have expressed interest in having 
> mixed overlays where some nodes use HIP while others don't. If people 
> are interested in doing this, we will have to look into ways to 
> negotiate its use within the overlay.
>
> With regards to the use of HIP in overlays, the simplest way would be to 
> deploy overlays where all nodes use HIP and overlays where none of the 
> nodes use HIP. However, some people have expressed interest in having 
> mixed overlays where some nodes use HIP while others don't. If people 
> are interested in doing this, we will have to look into ways to 
> negotiate its use within the overlay.

Regarding to Ali's original suggestion on detecting localhost and peer 
support, I think localhost support would be easy. Connecting to a HIT is 
one way detect it, but it may include a timeout. Other ways are to go 
through the addresses of host using e.g. getaddrinfo() and check if there 
are any ORCHIDs there. Perhaps the quickest way is to create a socket with 
PF_HIP family and check for errors in the return value.

-- 
Miika Komu                                       http://www.iki.fi/miika/

_______________________________________________
P2PSIP mailing list
P2PSIP@ietf.org
https://www1.ietf.org/mailman/listinfo/p2psip