← Back to team overview

p2psp team mailing list archive

Re: GSoC' 15 Idea: NAT traversal using UDP hole punching

 

2015-03-19 15:14 GMT+01:00 Max Mertens <max.mail@xxxxxxxxxx>:

> Hi,
>
> thank you for your replies and the explanations.
> I skimmed through your protocol descriptions, and the idea of inheriting
> sets of rules is great.
>

:-)


>
> NAT traversal without special needs (port forwarding, UPnP, IGD
> protocols, ...) is possible through UDP hole punching and TCP over UDP
> tunneling:
>

OK. But I want to highlight that all solutions are welcome (even, all
together).


> There is a symmetric approach (perl-based, see [0]), where two peers
> only need to know each other's IP, and an asymmetric approach (C-based,
> see [1], paper: [2]), where the server does not need to know the
> clients' IPs.
> The second, asymmetric method however requires raw socket privileges,
> as far as I can see.
>

In our case, we can suppose that each peer knows each other. The symmetric
approach should be enough.


>
> Would it be useful for your software stack to add such a NAT traversal
> as a python implementation?
>

The language used for implementing the protocol is not the most important
issue. BTW, a python version would be great because the most of the code is
written in this language. In other words, if you feel more confident with
any other language, go ahead. The DBS is quite easy to implement (at least,
peers).


> However tunneling over UDP is required, I do not know if this is
> possible to do by inheriting your DBS classes (if not, one could open a
> local TCP over UDP tunneling proxy and let the DBS classes connect to
> that).
>

Well, change the transport mechanism should not to be a problem. For
example, the class Lossy_Peer (lossy_peer.py)  unreliable UDP socket (we
lost chunks intentionally). I can't imagine now the complexity of
implementing UDP tunneling, but if you can see this kind of transport
facility from the DBS level as a different transport protocol, I think you
could inherit DBS.

Thanks Max!

Vi.

-- 
Vicente González Ruiz
Depto de Informática
Escuela Técnica Superior de Ingeniería
Universidad de Almería

Carretera Sacramento S/N
04120, La Cañada de San Urbano
Almería, España

e-mail: vruiz@xxxxxx
http://www.ual.es/~vruiz
tel: +34 950 015711
fax: +34 950 015486

References