tags:

views:

54

answers:

1

I am looking for a list of ways of enabling peer discovery in mobile networks, preferably without centralising control. Obviously the different techniques have trade-offs, usually related to the scale/scope of the network.

My initial list includes:

  • Bluetooth - good for very limited range
  • Message Broadcast - good for LANs and private networks
  • Central server - good for internet scale networks

Are there any other methods?

A: 

If you want to communicate directly between two specific mobile devices, the initiating device can act as a temporary server (e.g., ServerSocketConnection) and SMS the IP address/port to the phone number of the other mobile device. The receiving device can automatically wake up upon receipt of the SMS through PushRegistry techniques, extract the IP address/port combo in the SMS message and connect to the server socket connection.

Dan
Thanks Dan, just one question, how does the connection work through the mobile operator's NAT? So when my device is connected over 3G/Edge, I can see the publicly addressable IP of the network im connected to, but the actual IP of my device is a private IP (10.x.x.x) sitting behind the operators firewall..
MalcomTucker
Good question. As far as I know, there are well-known standards to help with this part of the issue. One is called STUN and another is called NAT-PMP (upon which Apple's Bonjour is based). Both are based on an existence of some sort of server (inside or outside the NAT) which can be queried for (or create) the public IP address. When I implemented this several years ago, I did it within a single mobile operator (Cingular) where the two mobile phones were sitting behind the same NAT.
Dan