> -----Original Message-----
> From: JiangXingFeng [mailto:[EMAIL PROTECTED] 
> Sent: Friday, February 01, 2008 7:23 PM
> To: 'Dan Wing'; 'Bruce Lowekamp'
> Cc: 'P2PSIP Mailing List'
> Subject: RE: [P2PSIP] Choice of STUN peer or TURN peer
> 
> 
> TURN client      Peer X    STUN server        NAT      TURN server
>   |               |           |                   |             |
> 1. |-------------------->|---Give me a Turn Address
> --------->|----------------->|
> 2.                           |<-----------------STUN 
> Request----------|
> 3.                           |-------------------STUN Response------>|
> 4. |<--------------------|<---------here is your TURN
> address-------------------|
>              Figure 1: message flow to get a TURN address
>
> As Bruce suggested that message 1 and 4 will be routed 
> through the overlay.

I don't believe that will work; part of what causes TURN to
be an effective NAT relay is that the TURN client sends
a packet directly to the TURN server's publicly-routable
transport address.  The side effect of the TURN client
doing that is that the TURN client's (evil, nasty) NAT
opens pinholes to communicate bi-directionally with the 
TURN server's transport address.

("evil, nasty" meaning symmetric or port-restricted, using
RFC3489 definitions.)

-d

> So here, we assume the Peer X is the neighbor peer to the TURN server.
> Message 4 will return to TURN client by traversing Peer X or 
> not. Here, we
> assume the NAT has an address-dependent filtering behavior 
> which most NATs
> have. 
> 
> When TURN servers receives message 1 through the overlay, it 
> will set the
> Internal Remote transport address as Peer X's transport 
> address. Then send
> message back to the Internal Remote transport address in its Internal
> 5-tuple. Then NAT will open a port for Peer X. 
> 
> TURN client      Peer Y     Peer B        NAT      TURN server
> |                  |           |             |             |
> 5.|--------------------- ->|-------Send
> Indication---------------------------->| 
> 6.                            |----Binding Request-------     
> | (filtered by
> the NAT)
> 7.
> 8.
>                       Figure 2 message flow for connectivity 
> check in ICE
> 
> When TURN client wants to communicate with Peer B which is 
> also behind the
> NAT (the NAT in front of the Peer B is ignored in the Figure 
> 2), it should
> use overlay routing to exchange their candidates.
> We assume the candidate pair from TURN client is {relayed 
> candidate, server
> reflexive candidate of Peer B}
> So In message 5, TURN client will send a binding message which will be
> encapsulate in the Send Indication and the message will be 
> sent to TURN
> server. 
> There are two ways which could be used to send the message:
> 1. directly, due to NAT has a address-dependent filtering 
> behavior, NAT will
> filter the message;
> 2. through the overlay. yes, the message could arrive at the 
> TURN server.
> But you know, overlay topology is changing and the immediate 
> peer to TURN
> server in message 5 may not be Peer X any more, may be other 
> peer, such as
> Peer Y. For TURN server, it will check its association, and 
> find no matched
> internal 5-tuple, because Internal Remoter Transport address has been
> changed. It will be discarded by the TURN server. 
> 
> On the other hand, Peer B will send a Binding request to TURN client's
> relayed address, whose destination is TURN server. But it will also be
> filtered by the NAT due to its filtering behavior. 
> 
> To be honest, I am not very familiar with ICE. If there is 
> something wrong,
> please point it out. Thanks. 
> 
> JiangXingFeng
> 

_______________________________________________
P2PSIP mailing list
[email protected]
http://www.ietf.org/mailman/listinfo/p2psip

Reply via email to