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


-- 
Mailing list: https://launchpad.net/~p2psp
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~p2psp
More help   : https://help.launchpad.net/ListHelp

Reply via email to