Communication between private IP addresses over the Internet
by Haq321 - 10/1/13 11:55 PM
Suppose we have messenger like GTalk, Skype etc running on two different PCs(A and B) which have private IP addresses but connected to Internet through some ISP. The two PCs could be located in different parts of the world. Now its possible to send messages and make VoIP calls between A and B.
This obviously uses server for communication establishment. For text messages it could be routed through the server to reach A and B.
But for VoIP calls, I believe initial establishment would be taking help of server and later VoIP data would flow directly between A and B. Now, A and B both have private IP addresses.
So my question is how is it possible to communicate between A and B directly over the Internet who have private IP addresses ?
Is there any specific standard for this ? I am not talking about VoIP standard like RTP etc but the mechanism to communicate over Internet using private IP addresses. In other words, I simply have a TCP client and TCP server running on A and B respectively. How can TCP client reach TCP server ?
I would like to know if messengers like GTalk, Yahoo, Skype and many of the Android applications like Viber, Kakoa talk, WhatsApp etc use any specific standard for this. And I have seen that these work almost always, calls between A and B work, located anywhere in the world.
It would be nice if somebody can share the architecture and the concepts involved.
[I did read about concepts like STUN and hole punching. But I don't see any specific way. And there is no guarantee that these would work depending on the NAT behavior]