Your description of NAT and firewalls is entirely correct. Unfortunately, NAT is not a good description for what is actually happening on the cell network. In the case of your home PC behind a NAT and Google (or the Internet) on the other side... both networks on each side of the NAT are in fact using TCP/IP to transport data packets around.
However, in the case of the cell network, the transport protocol is NOT TCP/IP. The use of TCP/IP is only relevant on the Internet side of the gateway. An IP address is entirely meaningless within the cell network. The part which is similar to the operation of NAT is that the gateway maintains a table of which port numbers are associated with which cell phones (the PDP Context). Outgoing packets create a context which includes the gateway IP address and a port number on that gateway. The gateway creates a table of port numbers and their associated devices, responses coming back to that specific port are then routed to the device using whatever transport protocol the cell network uses (GSM, EDGE, GPRS, CDMA, etc). It is quite likely (depending on how busy the gateway is) that once the response has been received, the PDP Context is freed and your next PDP Context will almost certainly have a diffierent port number, if not a different IP address. And (on the same topic) this explains why you might sometimes see two different IP adresses as being "associated" with your cell phone at the same time. Each and every connection to the Internet follows its own path and those paths can easily be assigned a different gateway... which cell tower you are connected to is entirely irrelevant in this context. - Mike NAVTEQ Network for Developers http://NN4D.com Disclaimer: I work for NAVTEQ and these are my personal opinions which do not necessarily reflect NAVTEQ’s views -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

