p2psp team mailing list archive
-
p2psp team
-
Mailing list archive
-
Message #00218
Re: NAT Traversal Set of rules implementation
Hello Max,
thanks for your report.
Please, check also: http://slides.p2psp.org/BCN-2015, where we provide some
ideas about NAT traversal algorithms in P2PSP.
Regards,
Vi.
On Sun, Jun 21, 2015 at 10:21 PM Max Mertens <max.mail@xxxxxxxxxx> wrote:
> Hi Vicente,
>
>
> On 15.06.2015 08:08, Vicente Gonzalez wrote:
>
> For now, simulation is enough. However, as you thing, we should test the
> "definitive" solution in a real SYM scenario. I'm pretty sure that the
> University of Almería has one. Let me first check it and, if this is true,
> we'll try to run your code here.
>
> Ok, running the code when ready on a real symmetric NAT implementation
> would be great!
>
> Over the weekend I implemented algorithm 1 and 2 of the NAT Traversal Set
> of rules [1] as {Splitter,Peer,Monitor}_NTS classes, inheriting from and
> based on the DBS classes. You can have a look at the NTS branch changes for
> details [2].
> That first algorithm part has the effect that now FCN<->SYM peer
> connections work, in comparison to the existing Full cone NAT Set of rules.
> See the tables below for details.
> Next I will implement code as in the nts_tests program [3] to make
> RCN<->SYM and PRCN<->PRCN connections work as well.
> After this I will implement the other NTS algorithms specified in the
> paper to detect NAT types.
>
> Currently I perform the connection tests manually, by changing the
> iptables rules (and incrementing the port numbers each time, as the
> "established" and "related" connection flags remain for a while for already
> used ports) and writing the results in a table.
> Now I am writing a bash script to automatically run these tests and output
> a result table. I would put the script in the "tools" directory when ready,
> if that's ok?
>
> Thanks and have a nice week,
> Max
>
>
> [1] splitter sends "[send hello to (X)]" to all peers, the peers receive
> this and send "[hello]" to (X).
> [2] https://github.com/jellysheep/p2psp/compare/e4e16bd9...jellysheep:nts
> [3]
> https://github.com/jellysheep/p2psp/commit/31d3231011fabbb393c43c294f0e77c7c983a04d
> => a peer takes the source port of an incoming packet from a known host
> (the port is, in case of a symmetric NAT, different from the port reported
> by the splitter) and sends all further messages to this port
>
>
> *Test results:*
>
> Full cone NAT Set of rules (FNS):
>
> 1 \ 2 *FCN* *RCN* *PRCN* *SYM* *FCN* yes yes yes no *RCN* yes yes yes
> no *PRCN* yes yes no no *SYM* no no no no
> NAT Traversal Set of rules (NTS), with algorithms 1 and 2:
>
> 1 \ 2 *FCN* *RCN* *PRCN* *SYM* *FCN* yes yes yes *yes* *RCN* yes yes
> yes *no* *PRCN* yes yes *no* no *SYM* *yes* *no* no no
>
--
--
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
Follow ups
References