Friday, February 20, 2009

Controlling The Phone - Part 8: SMS

In the previous article of my controlling the phone series I said I'd cover VoIP next. I lied. To lay the groundwork for VoIP I realized I would first need to cover off SMS (Short Message Service). So that is the topic of this article.

Some folks may think I'm going to talk about telco tactics to charge for use of SMS, sometimes at what are considered to be extortionately high prices. That is only a symptom of what I believe is a larger issue, one where SMS is merely one manifestation of a more fundamental technology strategy on the part of the telcos. To get there I will first need to briefly recap the concepts of push and pull services. I will then narrow the topic further by focusing on push and pull services on mobile phones, which ties in to my previous two smart phone articles in this series.

A pull service is one where the communication is initiated by the user. Click a hyperlink and open a web page - that's pull. Open the iTunes store to shop - that's a pull service. Make a phone call - that's also a pull service. If you were previously unfamiliar with the meaning of push, that's all there is to it.

Push services are a little bit different. These are where another party initiates communication with you. Receive an SMS - that's a push service. Someone phones you - that too is a push service. Someone sends you an instant message - that is... ok, here it gets a little more interesting. You might think that IM is a push service, but that is only partially true. To a user it looks like push, yet at a deeper level it isn't; IM is a pull service. Let's look at this more closely since this will get to the root of how the telco controls your access to services, and protects their revenue.

You (obviously) use the internet. Like the majority today you likely have broadband at home. You also almost certainly have a firewall, perhaps even more than one. The firewalls in current products are so transparent and ubiquitous it is possible for you to be unaware of their existence. They're in Wi-Fi devices, routers, and are also packaged with your computer's operating system. They are there for your security, and they do just that. They also do more that just protect you and your computers from a mess of nastiness out in the wild, wild internet.

The most basic function of a firewall is to prevent outsiders from getting to your computer. Your ISP assigns you a unique IP address, which can be static or dynamically-assigned when you connect, and that address allows anyone to send data to you. This isn't good. To prevent this the firewall rejects connection attempts from outside the firewall. If you initiate a connection from inside the firewall, from your computer, that is allowed. With that connection (pinhole) established, the other end of the connection is able to send data to you. This keeps you in control, so it is your fault if you connect to something you ought not to!

The far party is most often a web server (accessed by typing or clicking on a URL in your browser), an e-mail server, a DNS, and so on. The point is, the firewall ensures that only you (or, more precisely, your computer) can initiate connections.

Technically there is a little more to this picture, but there is really one detail I need to cover: NAT, or network address translation. Using NAT, the firewall "hides" your computer by giving every connection an unpredictable (to outsiders) port and IP address combination. The firewall translates these addresses for every packet flowing across the firewall in either direction. It does no one any good to know your IP address since it is inaccessible, and is often not even unique in the wider internet.

Now we can finally get back to the focus of this article, the smart phone. There is a firewall in the network through which all your data traffic flows. This frees your phone from having to provide a firewall, which is still a burden for these small devices. It also keeps a lot of traffic from undesirables from wasting the costly radio spectrum by just bouncing off every smart phone's own firewall. While you may not realize it there is actually quite a lot of traffic from IP scanners and probes on the internet on the hunt for vulnerable computers. A network-based firewall protects both your phone and the airwaves.

The other good thing the network firewall does is avoid IPv4 address space exhaustion. Billions of cell phones are a lot for IPv4 to deal with. With NAT the telcos use far fewer IP addresses than they have subscribers. IPv6 will solve this problem, if it ever gets into wide deployment, but for the present NAT conserves the address space.

The network firewall has a more nefarious use, and that is at the heart of how the telco can control your phone. Remember, you, as the phone's user, must be the one to initiate data (IP) communications. This may seem unremarkable since it is no different from the situation you have at home. However, mobile phones do not share the same attributes as your home PC. The key differences are battery life and data pricing.

Recall what I said about IM - it is really a pull service. The reason for this is that your IM phone app must register with, and remain connected to, an external server located somewhere on the internet. That communication is initiated by you, via an IM app, and must be persistent. Only then can your IM buddies get messages through to you, using that server that has an open connection to your phone. While this attribute makes IM seem like a push service, it was you who made (pulled) the connection to the IM server.

Using IM like this is a terrific way to run down your battery, and run up charges with your carrier. All cell phones are designed to drop into a low-power (sleep) mode when user activity stops. When asleep in this way it is difficult to maintain connections over the internet. Low-level timers at the server and in the network firewall will drop connections unless there is active traffic. Further, while the phone is asleep the IM app may be unable to listen for incoming messages (this is very dependent on the software platform). Therefore the phone must be awake for reliable IM operation. The computers inside those smart phones use chips with admirably low power requirements, but not low enough. Keep that computer whizzing along and it will die with a few hours of what you might consider inactivity.

There is also the expense of data to keep the server connection open. It doesn't take many bytes of data to hold a connection open in most cases, but it is persistent and it does add up. This is more acute in Canada where we still have some very expensive data rates in comparison to most other countries.

Admittedly, this is a lot of words to make a few small, but important, points, so hopefully you're still with me. If you are, by now you should be wondering how the phone can work at all since clearly the phone must be awake to be available for those basic push services of receiving phone calls and text messages. The phone is obviously on and not asleep with respect to those services. Am I being inconsistent in my arguments? No. Let's see why.

First, phone calls and SMS do not pass through the network firewall. For those services there is no firewall, nor for that matter is there a need for one. The reason is that neither uses the internet; they use the telephone network, which is closed to the outside world - it's a telco-only domain. The core network is still SS7 for the most part, just like what is behind your wired home phone. Even this is evolving to IP, but this modernized network remains unassociated with the internet for the present. Therefore, with no firewall there is no restriction against push services. There is no security issue (really!) since it is only the telco that can use that channel.

Second, the computer side of the smart phone is uninvolved in the reception of phone calls and text messages (you can refer back to the internal structure of a smart phone in this earlier article). These tasks are accomplished using other chips, in firmware, that are common to all cell phones, not just the new, smart variety. Power requirements are very modest and in standby (no calls or messages) can go for many days without recharging the battery. It is only when there is an incoming call or message that the firmware pokes the computer to wake it up so the phone app or SMS app can go to work.

These are advantages that no third-party app on a smart phone can ever achieve. It is why the telco keeps the ability to control the phone, and therefore many revenue-rich services. It is why they can get away with driving up prices for SMS - no third party IM app can achieve equivalent availability and performance. As you may have heard, Twitter went so far as to cancel SMS notifications to Canadian users of that popular service as SMS prices continued to rise. IM still isn't a viable replacement for most users, except those who anchor their suddenly not-so-mobile smart phones to a wall charger and use Wi-Fi instead of 2G/3G data service. Of course that's also why carriers, who still mostly control distribution of the smart phones, go to some lengths to hobble the Wi-Fi functionality of the iPhone among others.

If you're starting to think ahead I suspect you can now see why I chose to cover SMS before VoIP. VoIP, for sure this time, will be the topic of the next article in my series on controlling the phone. Look for it sometime next week if I'm not again distracted by business responsibilities.

No comments: