Re: TURN
"Toshihiro Sonoda" <[email protected]> Tue, 30 Nov 2004 17:56:52 +0900
| Newsgroups | gmane.ietf.midcom |
|---|---|
| Message-ID | <01c701c4d6ba$8920dd30$e101a8c0@FM307599003> |
Thank you for your comment. My comments and question start from *** to find them easily. >> Q.1 >> Assuming the following topology. >> >> >> +---------+ >> |TURNserver| >> +---------+ >> | >> | >> +--------+ +--------+ >> |symmetric1| |symmetric2| >> +--------+ +--------+ >> | | >> | | >> +-------+ +--------+ >> | client1 | | client2 | >> +-------+ +--------+ >> >> Client1 and clients wants to connect each other. Client1 knows TURN server, and it is behind >> symmetric 1. >> But client2 doesn't know TURN server, and it is behind symmetric2. >> Client1 and client2 can exchange data channel information using signaling channel, like SDP of >> SIP. >> >> Then, can client1 and client2 be connected? > > Assuming the data transport is RTP, which is a uni-directional data transport, only > client2-to-client1 data channel might be able to be established. > Otherwise, a bi-directional data channel might be able to be established, depending on the > transport protocol used. *** As to above topology, why might client2-to-client1 data channel be able to be established? How does client know derived trasport address of client2 behind symmetric2? BTW, I assume UDP. >> If turn server emulates Restricted NAT, but not Port Restricted NAT, >> then I think client 1 and client2 can be connected. >> Are there any problem if turn server emulated Restricted NAT. > > A TURN server is a application layer media relay, but not a NAT emulator. > If a TURN server relays packets in a similar manner as a restricted NAT routes packets, you would > not be able to differentiate which packets are from which transport address. *** I am envisoning that client can specifiy "*" as port of DESTINATION-ADDRESS attribute of SEND Request. If Turn server receives this request, it doesn't send any packet. Turn server sets default ip-address to the ip-address of DESTINATION-ADDRESS, and default port to "*". At this time, non-turn packets from client to some peer can not be sent to anywhere. At this condition, if some peer send a packet to the port allocated by turn server and mapped above SEND Requret, turn server checks only source ip address, not port, because default port is "*" that means any port. If souce ip address of packet sent by peer matches default ip-address, turn server sets the default port to source port of packet sent by peer, and relays this packet to client using allocate five-tuple. If I can do this, even if peer is behaind symmetric NAT, then I realize only one turn server relay, not double relay. >> Q.2 >> Assuming the following topology. >> >> >> +----------+ +----------+ >> |TURNserver1| |TURNserver2| >> +----------+ +----------+ >> | | >> | | >> +--------+ +--------+ >> |symmetric1| |symmetric2| >> +--------+ +--------+ >> | | >> | | >> +-------+ +--------+ >> | client1 | | client2 | >> +-------+ +--------+ >> >> Client1 and clients wants to connect each other. Client1 knows TURN server, and it is behind >> symmetric1. >> Client2 knows TURN server, and it is behind symmetric2. >> Client1 and client2 can exchange data channel information using signaling channel, like SDP of >> SIP. >> >> Then, I think client1 and client2 can be connected, using double relaying. >> This is, clietn1 <-> TURNserver1 <-> TURNserver2 <-> client2. >> But, this is not efficient. Do you have good idea for connecting peers under >> above situation? > > Yes, they could be connected (two uni-directional data paths). > If they were both authorized for use of the same TURN server, they could do that for the sake of > efficiency, latency and etc. > There are probably better solution for this scenaio, I would like to know, too. > >> >> Thank you for advices. > > Hope my response would be helpful : ). >