Slashdot Mirror


NTT DoCoMo Asks Google To Limit Android Data Use

An anonymous reader writes "NTT DoCoMo has had enough of Android's effects on its mobile network in Japan. Following a service disruption due to Google's Android VoIP app, the company is now asking Google to look at reducing Android's data use. In particular, the amount of time allowed between control signals being sent either by official apps or 3rd party ones. Typically these occur as often as every 3 minutes, but scale that up to thousands of apps on millions of handsets and you can see the issue DoCoMo has. So, does DoCoMo need to invest more in its infrastructure, or is Android a data hog that needs reining in?"

36 of 160 comments (clear)

  1. Well that depends... by Ragun · · Score: 5, Insightful

    If all they are asking is for Google to optimize its network usage, as the article seems to imply, go all out.

    If its telling Google to try and control the amount of bandwidth the users decide to use, well, I think they are going to have a little trouble getting that done.

    1. Re:Well that depends... by kelemvor4 · · Score: 3, Insightful

      If its telling Google to try and control the amount of bandwidth the users decide to use, well, I think they are going to have a little trouble getting that done.

      TFA specifically states they are trying to control VOIP data usage. Not unlike the (failed) domestic attempts to limit voip on a smartphone in order to preserve traditional airtime revenues. Do you remember all the hubub when apple/at&t tried to ban Skype? It's a thinly veiled attempt to screw customers, and I'm sure Google has no particular interest in limiting their users traffic based on the content being transmitted.

    2. Re:Well that depends... by AngryDeuce · · Score: 2

      First it was bit torrent traffic, then video streaming traffic, then VOIP traffic...

      They're just setting the stage for discriminating traffic so they can charge more to certain users to get back the money they lose from those customers not supporting their other services. The U.S. telecoms have been falling all over themselves trying to find a way to nullify Netflix to keep us from dropping their archaic tiered cable tv service.

      Why would a Japanese company be any different? The Skype folks are going to end up getting squeezed for more money, just wait...and some goon will be saying to himself "that'll teach 'em to stop using up their anytime minutes!!" the whole time.

    3. Re:Well that depends... by kbielefe · · Score: 5, Informative

      It's not that simple on a wireless connection where everyone shares the medium. For communications originating at the phone, the network provider can't do any throttling until the packet has already been received at their equipment, because they don't control the phone's transmitter. By that time, the bandwidth on the wireless link has already been consumed and wasn't available to other users. If the control signals originate at the server, the network provider could throttle it, but setting it up isn't trivial, and then you have problems like the servers sending retries because they aren't getting responses from the phone. The best solution requires cooperation from the OS and/or application writers.

      --
      This space intentionally left blank.
    4. Re:Well that depends... by Andy+Dodd · · Score: 5, Informative

      Docomo seems to claim that it's background sync/checking traffic - but Google makes a point of reducing this as much as possible. There's good reason to do this - the less often data is transferred to keep "checked in", the less often a device needs to wake up, and the better battery life is.

      This is, for example, why IM apps that use Google C2DM (Such as Google Talk - but any IM app author can use C2DM) have a minimal impact on battery life, while poorly written apps that are not even remotely suited to mobile devices (like Skype) are massive battery hogs.

      If Google's services are "checking in" that often on DoCoMo, it's probably because DoCoMo's NAT boxes are broken - http://conferences.sigcomm.org/sigcomm/2011/slides/s374.pdf

      --
      retrorocket.o not found, launch anyway?
    5. Re:Well that depends... by kbielefe · · Score: 4, Informative

      It's not VoIP calls that are the cited problem, it's the periodic signals when it's not in use that tell the server, "Hey, I'm still here!"

      --
      This space intentionally left blank.
    6. Re:Well that depends... by tripleevenfall · · Score: 3, Insightful

      Perhaps they shouldn't sell a product if they can't provide it, rather than stripping and restricting what people thought they were buying later?

      Should we just pray they don't alter the deal further?

    7. Re:Well that depends... by similar_name · · Score: 5, Informative

      They have a right to make money in return

      No, they have the right to try to make money in return. If they can't make money without constantly changing the rules instead of their strategy they should go out of business. I'm sure others could use the spectrum.

    8. Re:Well that depends... by Oliver+Wendell+Jones · · Score: 2

      How old is your Sig? I'm trying to figure out if it is new and and you're suggesting we replace the current crop of politicians with monkeys, or if in fact this is an old sig and explains our current predicament?

      --
      A computer once beat me at chess, but it was no match for me at kick boxing -- Emo Phillips
    9. Re:Well that depends... by wrook · · Score: 2

      I think there may be something to what you are saying. To be honest, I was very surprised by this article (I would really like to see the original Nikkei report in Japanese... too bad they don't link it).

      I'm on DoCoMo at the moment and I have had nothing but terrific service. I live out in the sticks, but no mater where I am I get good signal, good data availability, *very* good bandwidth and decent ping times. I've even tunnelled X through ssh on it and it was (barely) useable. That's considerably better than anything I would expect. Even on my occasional journeys to Tokyo or Osaka, I've never, ever had even the slightest problem. So if they are struggling, it's definitely not obvious.

      However, up until November, the gmail app was seriously draining my battery. I ended up going to manual updates and suddenly all of my battery problems were fixed. Then I upgraded to 2.3 and ended up re-enabling auto-update on gmail. No problem. I attributed it to the OS upgrade, but it definitely could have been an infrastructure problem that they have fixed in my area.

      I wonder if this is simply some technical issue that they are having and that the cheapest way for them to fix it would be to make changes to Android. In other words a non-story that some reporter got the wrong end of the stick for...

    10. Re:Well that depends... by icebike · · Score: 2, Informative

      It's not VoIP calls that are the cited problem, it's the periodic signals when it's not in use that tell the server, "Hey, I'm still here!"

      Which, by the way, are usually just keep alive packets sent on sockets that are already open.
      Seriously, if these tiny packets are hurting their network how cramped must their bandwidth be?

      Admittedly, these SIP/Voip clients could use the more common method of opening a socket and letting it sit there till the socket times out, then re-initiate. This needs to be done once every 15 to 18 minutes, and no actual data needs to go across the link in the mean time. (In fact the radio's can go into deep sleep mode).

      However, every email check, facebook check, check-in, or weather update causes way more data transfer than a few packets sent back and forth on an already open socket.

      I've got a SIP connection up on my smartphone 24/7, and I've seen zero impact on my data usage, even when I get several calls per day over 3G. The software uses keep-alive packets at an interval I can set to detect early connection failure. Many SIP providers haven't yet set brought their servers up to the point where they can rely on socket timeout as a signaling method, and simply drop the registration of the sip client when this happens.

      --
      Sig Battery depleted. Reverting to safe mode.
    11. Re:Well that depends... by icebike · · Score: 2

      Its a tcp/ip connection, that's all.

      Because the networks are so unreliable many sip clients send a packet back and forth, using CRLF-CRLF ping answered by a single CRLF pong, according to RFC5626.

      So the load is WAY different than connection to the base station: Its WAY SMALLER, and WAY LESS FREQUENT.

      --
      Sig Battery depleted. Reverting to safe mode.
    12. Re:Well that depends... by icebike · · Score: 2

      Throttle?

      The Keep-Alive per RFC5626, consists of 2 CLRF pairs sent from the hanset (4 characters plus TCP wrapper) answered by a single CLRF pair (plus wrapper). Minimal wrapper, IIRC is about 16 bytes, so every 3 minutes twenty bytes out, followed by 18 bytes back in.

      Pretty hard to throttle that down to anything less if you ask me.

      They need to fix their network.

      --
      Sig Battery depleted. Reverting to safe mode.
    13. Re:Well that depends... by Suhas · · Score: 2

      I live and work in downtown Tokyo and DoCoMo performance has gone down the drain *significantly* in the last few weeks. 3 times in January alone the service completely stopped for 3-4 hours, as in, no data signal, only voice. This is true for all DoCoMo users. I would guess that a few thousand users per cell tower out in the sticks is not a good indication of network reliability for say Shibuya-ku or Minato-ku where you can have a million customers crammed in a few square kilometers.

  2. NTT DoCoMo is the standard gold of mobile networks by Anonymous Coward · · Score: 5, Interesting

    Having been to Japan, and several locations around the world, I can say with fair certainty that NTT DoCoMo has the best network service I have *ever* seen. It allowed me to measure what is due to the iPhone's failings, and what is due to the network operator's failings. By contrast, in New York, AT&T makes getting signal a game of hide and seek. France stands somewhere in between the depths of AT&T and glory of NTT DoCoMo.

    All this to say that if NTT DoCoMo feels Android is unoptimized... than I pretty much take their word for it.

  3. Both by JavaBear · · Score: 4, Insightful

    Both Apple and Google need to be aware of their bandwidth usage, but it is not just those two, but the app developers as well. Better to spend a few more CPU cycles and compact the data a little more than to bring down the network. XML is fine, but hardly the most efficient way to transmit data, especially not without compression.

    On the other hand, the providers must realize that the trend are for increasing data usage, as we take our daily communications with us, rather than sitting at home with our fixed line broadband connections.

  4. Yes, it's an esoteric Android issue. by jeffb+(2.718) · · Score: 4, Informative

    It's some "control-traffic" issue that you, the customer, really shouldn't have to think about. It's nothing to do with an application that routes voice traffic over a data connection, thereby disrupting the carrier's finely-crafted billing practices.

    1. Re:Yes, it's an esoteric Android issue. by viperidaenz · · Score: 2

      But these persons who though that a control protocol should be done over UDP, should be the first againt the wall in my book.

      Its actually a protocol that can run over UDP, TCP or SCTP. Someone who thought a control protocol should be able to run over many different underlying protocols should be the last against the wall.

  5. Control signals- NOT Data by sonicmerlin · · Score: 5, Interesting

    Uh... Control signals have nothing to do with overall data consumption quantities. When you send a text message, you send the 160 or so bytes of data through control signals. The issue here is that Android doesn't control the way its apps try to contact the towers, basically hammering them if they don't respond properly. This issue is one of the reasons Android has massive standby battery drain problems, as detailed in this 300 page xda thread: http://forum.xda-developers.com/showthread.php?t=1179809

    The galaxy nexus has its own 100+ page thread dedicated to battery drain on standby.

    1. Re:Control signals- NOT Data by Miamicanes · · Score: 4, Insightful

      What Android desperately needs is a nice, API-level convenience method that lets you create a http(s) request, complete with args, then hand it to the OS and say, "You don't have to do this *right this millisecond*, but at some point within the next ___ seconds/minutes, please wake up the phone (if necessary), establish network connectivity, make the request, then fire {this-intent} with the server's response (or failure info)" (and optionally, if the request fails, try making a test request to something like 8.8.8.8 and/or 8.8.4.4 to make sure the phone's internet access is REALLY working before assuming failure, so the program only has to deal with the failure of its own web service, instead of having to deal with the failure of the phone itself to sustain a robust network connection).

      Believe it or not, right now, there's NO good, reliable, graceful way to do the equivalent of having a cron job fire off a http request when the phone is asleep. There are ways to kludge it, but they're all either unreliable (the phone will go back to sleep before it even has a chance to MAKE the http request, the network might be down because it hasn't finished reconnecting yet, etc) or dangerous (holding partial wakelocks in static variables, with no way to guarantee their release if something crashes).

      Android gives developers lots of power, but it also imposes enormous amounts of responsibility that maybe 1% are really equipped to handle. In the real world, the network failure strategy of most Android applications can be summed up as "relentlessly keep beating away at the URL in the hope it might eventually work". Oh, most semi-new Android devs don't SET OUT to be irresponsible... the problem is, anybody who tries to make a single network call and fail politely and exit if it doesn't work quickly discovers that an average Sprint user will have the app die within 10 minutes (thanks to the stupid way Sprint phones thrash between 3G and 4G in quite a few real-world indoor usage scenarios). So they adopt "keep trying over and over again" as a strategy, because it makes their app work on Sprint phones, but kills the battery of anybody who's somewhere like a subway tunnel when the phone decides to make its next http request. If Google gave developers a nice, bulletproof way to politely make asynchronous http requests that can be gracefully scheduled and batched, instead of trying to hack together buggy solutions that almost work, we'd all be better off.

    2. Re:Control signals- NOT Data by Miamicanes · · Score: 2

      Alarm Manager is part of the PROBLEM.

      Yes, you can schedule your task through AlarmManager. You can even be polite and use InexactRepeat to batch requests. There are two specific problems:

      1. You aren't allowed to do anything time-consuming (like make a http request) in the BroadcastReceiver that runs when AlarmManager fires off the Intent. You have to start a background service to do it. Unfortunately, Android makes no guarantees that it will even execute the BackgroundService onCreate() method before exiting the BroadcastReceiver, and Android can (and will) put the phone back to sleep the nanosecond the BroadcastReceiver's intent handler finishes running. Pure multithreaded joy.

      2. The only way to guarantee that the phone can't go to sleep until the http request gets made is to grab a PartialWakeLock in your BroadcastReceiver, and release it from the background service. The thing is, you can't pass the PartialWakeLock to the background service in the call that starts it up, you can't call methods of that background service without getting a connector, and you can't tell Android to keep the BroadcastReceiver's handler running (and the phone awake) until you get that connector. So... you basically have one option left: create a class with a static PartialWakeLock (or HashMap of PartialWakeLock objects), store it there, and pray to ${deity} that Android doesn't decide to kill the class off and garbage-collect it before the service gets created, because if it does, your phone now has a zombie wakelock that can't be released.

      It's a catch-22. There is LITERALLY no way for an intent fired off by AlarmManager to guarantee a successful attempt to make a http request without doing dangerous and ugly things with static references to PartialWakeLock objects. It's one of those "ohshit" API decisions that seemed like a collection of good individual ideas, then kind of fell down in one embarrassingly common real-world use case... and something anybody who writes an Android app that needs to occasionally communicate with a server in the background gets confronted with in short order.

      Making matters worse, Gingerbread now kills even well-behaved background services if it thinks they've been running for "too long", even if they spend 99.999% of their existence politely using TimerTask and Java's Thread API to yield and sleep. So, the one semi-solution that used to work politely and reliably (start the service, then spend most of the time sleeping) now breaks, with no reliable and safe alternative.

  6. Re:Both by Omnifarious · · Score: 3, Interesting

    I agree. But I would add one more thing...

    Perhaps Google could come up with a standard for pushing all these control signals and keep alives through a single gateway. That way apps could piggyback on each other to reduce traffic.

    I must have at least 5 different ways to asynchronously receive messages on my phone. I would love a way to combine the traffic for all of these down to something small. Especially if (and I realize I'm an extremely rare case for wanting this) I could redirect it through a web app or something running on my server at home.

    It's like how almost every social website grows some form of instant messaging that's relayed through the website's servers. Why can't they all just use Jabber and be done with it?

  7. Re:Both by Chuckstar · · Score: 2

    Yes. But everyone (users and network providers alike) would rather that users' data usage focus on data the user actually wants, and less on "checking in" with various servers. I would think users would be just as annoyed to find out that Android handsets are really using 10x the bandwidth on idle tasks as other handsets (assuming it is true, that is).

  8. A little less vague? by vlm · · Score: 3, Interesting

    So I've got one of them gen-u-ine android phones. Which apps are supposedly hammering the network?

    My guess is the GOOG latitude GPS plotting thingy must be updating fairly often. So in the big list of blacklisted apps, I've got one "i donno maybe guess".

    This is important to me because my batteries life is very short... Enabling latitude position tracking thingy meant my battery died in about 10 hours (which is an issue for a guy who works 10 hour shift bracketed by a modest commute), so I shut it off, gaining me at least 6 more hours, making it very easy not go thru a working day without charging. I wonder if I disable "something else" if I'll magically gain yet another 6 hours... or more...

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  9. Re:Both by getto+man+d · · Score: 2

    Oh yes, the providers (at least in the US) are well aware of this trend. It's reflected in the current data usage pricing scheme and the "unlimited" plan max caps.

  10. Re:Both by poptix · · Score: 2

    Google already has a standard for pushing those control signals over a dedicated persistent TCP/IP connection (when your signal indicator goes from white to green it's connected). Many apps choose not to use it for one reason or another, Facebook Chat for example posts a huge XML request every minute or so to poll for new messages.

    Also, Jabber sucks mostly due to its use of XML.

    --
    Just because you disagree doesn't mean it's not true.
  11. There are limits though by Sycraft-fu · · Score: 4, Informative

    The problem is that pesky Shannonâ"Hartley theorem. Basically it says that your data throughput is equal to your channel bandwidth and SNR. With a wired connection, there's a lot you can do there. With wireless, there's serious limits. SNR is fixed by environmental conditions, unless you are willing to up the S part a lot which requires lots of power and thus isn't suitable for mobile.

    Bandwidth is limited since you have to share the airwaves with lots of stuff and certain frequencies are good for certain things. So going with 60GHz might sound great because a 1GHz channel would be no problem, but you find that it has trouble with attenuation due to water in the air, never mind walls. 700MHz cuts through walls pretty nice, but your channel will be much smaller.

    Then of course there's the real sticking point: You share with everyone else in the same area. If your throughput is, say, 100mbps total you are sharing that 100mbps between anyone on the same segment as you. So have 100 users, all trying to go full blast and you'll each get 1mbps or so.

    The only solution is to build out the segments smaller. However there's limits to how much of that you can do. You can't realistically segment the network down to an arbitrarily small level.

    The "JUST UPGRADE THE NETWORK!" thing that geeks like to scream is very unrealistic in the case of wireless. Yes, with fibre we can have shit tons of bandwidth, when you are talking carriers in the hundreds of Terahertz, you can have some bigass channels, you can have lots of channels, SNR is quite good in fibre and you can always just lay more of it. However wireless has some real physical limits you butt up against.

    We have to accept that when you are using wireless, especially longer range wireless, that there are limits to deal with.

    1. Re:There are limits though by ColdWetDog · · Score: 4, Funny

      The problem is that pesky Shannonâ"Hartley theorem

      Well, since it's just a theory, it probably isn't true. Like evolution and such.

      So, just ignore it.

      --
      Faster! Faster! Faster would be better!
    2. Re:There are limits though by doshell · · Score: 4, Insightful

      CDMA techniques do not get you a free pass around Shannon-Hartley's channel capacity theorem.

      --
      Score: i, Imaginary
  12. Re:NTT DoCoMo is the standard gold of mobile netwo by interval1066 · · Score: 3, Interesting

    So what? The world is heading to MORE digital data usage, not less, that's a fact. And the prices for use are going to drop, that's also a fact. Maybe NTT DoCoMo needs to up their capacity, not worry about throttling it so much. Words all providers need to take to heart.

    --
    Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
  13. Re:NTT DoCoMo is the standard gold of mobile netwo by Andy+Dodd · · Score: 5, Insightful

    Considering that Google has a SERIOUS interest in making control signal intervals as long as possible for battery life purposes - if they are too often, the carriers only have themselves to blame. Too many carriers have aggressive NAT firewalls with short TCP connection timeouts, and it's much better for the handset AND the carrier to send a keepalive within that timeout period than to have to detect a dead connection and set up a new one.

    Google "netpiculet" or look at my last post earlier on this article for an eye-opener of how network providers shoot themselves in the foot.

    If Google is sending control signals too often - DoCoMo should take it up with the carriers that deployed broke-ass NAT boxes that forced Google to do this.

    --
    retrorocket.o not found, launch anyway?
  14. Re:Both by Andy+Dodd · · Score: 4, Informative

    They already do - it's called Cloud to Device Messaging (C2DM).

    If C2DM is sending syncs/keepalives every 3-5 minutes, it's because broken carrier NAT boxes are forcing them to.

    http://conferences.sigcomm.org/sigcomm/2011/slides/s374.pdf

    --
    retrorocket.o not found, launch anyway?
  15. Re:format and rhymes by newcastlejon · · Score: 3, Informative

    A quick look on wikipedia tells me that DoCoMo is short for "do communications over the mobile network", while the Japanese word "dokomo" translates to "everywhere".

    --
    If God forks the Universe every time you roll a die, he'd better have a damned good memory.
  16. Re:NTT DoCoMo is the standard gold of mobile netwo by tlhIngan · · Score: 4, Interesting

    I live in NYC and rarely have any problems getting a signal on AT&T. Actually getting any data or calls to my phone over that signal, however, is a distinct challenge. ;-)

    I often experience dropped calls and slow data rates while my phone happily shows "5 bars" of signal.

    That's because AT&T is suffering from the same problem NTT DoCoMo is suffering from - control channel congestion. You're getting 5 bars alright, but the big problem is stuff like dialing and establishing data connections consume control channel bandwidth. Dropped calls happen because your phone's trying to switch towers and can't because it can't get a word in edgewise on the control channel.

    Slow data ditto - the phone on 3G needs to establish multiple PDP data sessions to get 3G speeds, and if it can't talk to the tower because the control channel is busy, well, it suffers.

    Control channel congestion (caused by all this plus texting) is why AT&T service can be horrible, despite having plenty of free channels available for data and voice. It's what took T-mobile down once (a bad IM app overloaded the control channel).

    Think of it as the old-timey POTS phone days where you lifted the handset and told the operator who you wanted to talk to. And now have lots of people do the same and the operator's now overloaded trying to establish and tear down connections, leading to phone calls not going through, the operator not responding to you, etc.

  17. Re:Both by viperidaenz · · Score: 2

    If you're a developer and you've discounted a valid option purely because other people misuse that option then please, put a barrel in your mouth and pull the trigger.

  18. Re:NTT DoCoMo is the standard gold of mobile netwo by YoopDaDum · · Score: 2

    Exactly. And increasing control channel capacity is not free, as it reduces resources available for users data. Plus the control channel need robust encoding so are comparatively more expensive than data on average. Plus the standards have some flexibility on dimensioning control channels, but it's not fully flexible either. There's some assumption built in.

    So operators may increase the amount of resources allocated to signaling, but this is only possible up to a point and would reduce data capacity (so increase cost per user level data).

    So the way to get out of this with everyone wining is to make sure mobile phone applications use the network efficiently, and don't waste signaling capacity just out of ignorance. It seems both Google and Apple provide centralized polling / notification services already, so blaming them may be unfair. But I'm pretty sure there's a lot of developer education still to do. And maybe adding tools in the platform to see what are the wasteful applications would help. Knowledgeable users could spot the offenders, and make some noise so they improve their behavior.