Ah, thanks for the information. As for the 10s setup time, I didn't follow -- can you give a bit more detail on what factors into the time to set up?

For example, in our system clients classify their NATs on startup, choose either 1 or 2 addresses (LAN and NAT), and upload both to a rendezvous service. Then when a connection needs to be set up, you simply ask the rendezvous service for the other host's addresses (which in turn notifies the other client that you're trying to connect to it), and then each client attempts to connect to both LAN and NAT addresses in parallel. Generally the connection is set up in the 500-1500ms timeframe.

Can you summarize how your service works and why it takes so much longer? I'm guessing it has something to do with the lack of a central rendezvous service; can you walk me through it?

Thanks!

-david

On Jan 19, 2008, at 3:57 PM, Renato Figueiredo wrote:

David,

We don't have extensive measurements of pairwise NAT combinations; we've had experience with cone NATs, particularly with NATs implemented by different VMs (VMware, KVM, VirtualBox) and IPtables, and multi-level NATs ( e.g. a VM NAT behind an ISP NAT). We have not done a focused quantitative experiment on this yet, unfortunately - we'd like to. The experience we've had so far is based on usage from people within our group (at home and on the road) and casual users who run our software, our qualitative/empirical evidence points to very good connectivity with cone NATs. The system deals with symmetric NATs by discovering nodes to tunnel connections through.

As for the time taken to traverse NATs; we have a paper presenting data related to this question (HPDC 2006, can be found following one of the links below). The time to traverse a NAT depends on the number of nodes in the overlay (impacts routing time for connection setup messages) and NAT characteristics (the number of translations a node records impacts number of IP:port endpoints to attempt). Ballpark times for our current ~600-node setup with ~500 planetlab nodes would be of the order of 10 seconds.

--rf

On Jan 19, 2008 5:01 PM, David Barrett <[EMAIL PROTECTED]> wrote:
Cool! Regarding your NAT penetration, do you have any widespread measurements indicating:

- Peer connectivity success rate (ideally broken down by pairwise NAT combinations) - Direct connection establishment time (ie, time it takes to do all NAT penetration and establish a link)

I look forward to them!

-david

On Jan 19, 2008, at 1:18 PM, Renato Figueiredo wrote:

Dear list members,

I wanted to disseminate the availability of a couple of systems which could be of interest to those in the list - the IPOP (IP- over-P2P) overlay and the Brunet library. We have a few demonstrations of their applications packaged as virtual machine "appliances" (NAT traversal appliance, and virtual clusters running Condor and Hadoop) and a bootstrap overlay which has been running on PlanetLab for several months. Together, these make it very easy to try out the software; see the links and descriptions below for additional information and downloads:

http://ipop-project.org
http://grid-appliance.org
Brunet is a Free Software (GPL licensed) library for P2P networking written in C# and developed using Mono, but it also runs on Microsoft's .Net platform. Here are the basic features of Brunet:

- Network transports are abstracted as Edge objects. We have TCP, UDP and TLS/SSL transports now. - Completely distributed UDP NAT traversal (TCP NAT traversal is a to-do item). - Implementation of Chord/Kleinberg/Symphony type ring topology for routing.
- DHT implementation.
- Both packet based and RPC based communication primitives. New protocols are easy to add using one or the other of these approaches. - XML-RPC bridge to allow calling or serving RPC methods with XML- RPC clients or servers. We have examples of this using standard Python. - Distributed tunneling system to maintain topology in the presence of some routing difficulties (untraversable NATs, BGP outages, firewalls, etc.).

IPOP uses Brunet to create virtual IP networks; it features:
- Tunneling of IP packets picked from "tap" devices over TCP and UDP overlay edges - Creation of direct connections between virtual IP endpoints based on traffic inspection - An implementation of DHCP over DHT to automatically assign IP addresses to tap interfaces

We're looking forward to hearing from people interested in using or developing around these systems.

--rf

_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers




--
Dr. Renato J. Figueiredo
Assistant Professor
ACIS Lab / Electrical and Computer Engineering
University of Florida
http://byron.acis.ufl.edu
ph: 352-392-6430

_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers

Reply via email to