I'm trying to connect from a host (PC or other) to a mobile cellular Android device on the Verizon/AT&T cellular network. This device uses only the 3G network and has its Wi-Fi turned off. The Android device has a listening socket and I need the remote host to be the connection initiator. As far as I know, Verizon/AT&T uses NAT traversal for mobile phones and assigns local IP addresses to them on the cellular network. This prevents me from initiating a connection to the device from a remote host. Please correct me if I'm wrong about that.
With the usage of IPv6 assignments there shouldn't be any practical limitation (virtually unlimited) to the number of "real" IPs that can be assigned. Therefore my questions are: 1. Does the Verizon/AT&T cellular network support IPv6 and assigns IPv6 addresses to capable Android devices? 2. Is it a feasible solution to this problem? 3. Does Android 2.2+ have enough support for IPv6 to implement such solution?
I am aware of other methods that can be used, such as C2DM, but they have some drawbacks (such as unknown response time) that prevent me from using them.
Thanks.