Necati Demir wrote:
>
> Hello,
>
> I am beginner for p2p and nat-traversal.
> I have a client-server application. If one peer (client) want to 
> access other peer (server), the server peer should set a port mapping 
> with his ADSL modem. But i read some documents; with ICE, STUN and 
> TURN, this can be done without this setting. Can you suggest me a way 
> to do this? 
-

STUN, TURN and ICE were primarily developed for VoIP but you should be 
able to use them for other applications as well. You should consider 
however, that you need some out-of-band mechanisms that you can use, how 
the 2 end points can agree on what IP addresses and port numbers they 
will use for the e2e communication. In SIP, this is done using the SIP 
servers (proxies, registrars, etc.). You can probably do this using P2P 
signalling as well.

ICE can be considered as a negotiation between 2 peers and it finds out 
the optimal IP addresses to be used between them (this means, e.g., if 2 
peers are in the same subnet, they will use the private IP addresses to 
communicate within the subnet). ICE uses STUN and TURN as parts of it.

If you have an application server, which does not know yet, which is the 
other peer/client, it may find out its public IP address using STUN 
first. When the STUN signalling passes the NAT, the NAT will perform a 
volatile NAT binding. If you are lucky, this NAT binding will allow for 
incoming connections from any client. The IP address and port number 
that you will receive from the STUN server can be used to announce the 
service. (this depends on the NAT implementation, but STUN seems to work 
in most of the cases) I assume that pjnath sends keep-alive messages to 
the STUN server in order to keep the NAT binding. Otherwise, you'll have 
to do by yourself.

I would suggest you to start with STUN, write a small STUN client and 
test it with some public STUN servers. (There are many STUN servers that 
are public but be careful not to hardcode one of them in your 
application! ;-) ) 

If you want to use TURN, you may need to make sure you have some servers 
that can relay the traffic. Or you may want to have some peers in the 
p2p network that could “volunteer” to do it.

You may also consider UPnP as an alternative. Good luck!

-
> I really need a good documentation. Can i do this with pjnath library? 
> Can you show me some examples with this library?
>
> --
> Necati Demir
> http://demir.web.tr
> http://blog.demir.web.tr
> ndemir [~] demir.web.tr <http://demir.web.tr>
> necati83 [~] gmail.com <http://gmail.com>
> --------------------------------------
> ------------------------------------------------------------------------
>
> _______________________________________________
> p2p-hackers mailing list
> p2p-hackers@lists.zooko.com
> http://lists.zooko.com/mailman/listinfo/p2p-hackers
>   

_______________________________________________
p2p-hackers mailing list
p2p-hackers@lists.zooko.com
http://lists.zooko.com/mailman/listinfo/p2p-hackers

Reply via email to