Android betrays tethering data
danielpocock.com
danielpocock.com
What the carriers are doing is like your electricity provider telling you that you can only use that specific amount of electricity with certain appliances, but if you want to use it with others, you have to pay extra. It's insane, and I'm starting to believe more and more that declaring carriers and ISP's as utilities is the right way to go to have strong net neutrality in US.
The Internet is every bit as important as electricity in today's modern world. It's about time we start treating it like that.
http://vinhboy.com/blog/2013/12/27/how-to-tether-the-nexus-5...
... still though, I'm interested: what actually is this second device which things get routed through? How can the carrier tell which device your phone is using? Even then, how do they tell which one is the 'normal data' vs the 'tethered data' device?
I ended up running a SOCKS5 proxy on my android phone (the app is called Proxoid, and is unfortunately rather buggy). That at least works, though with the app being rather prone to crashes and hangs, it is not the ideal solution.
The carrier is not the customer in Google's market. The advertiser is. I thought that was pretty clear. The carrier merely delivers product.
The problem with all these extreme explanations is that all the evidence here is not evidence. It's just one irate carrier employee mouthing off on Google's bug forum. This should be obvious, but a gmail.com email address != android.com email address.
> IS NOT A BUG. IT IS A FEATURE. It's not a feature for users like you and me, it's a feature for manufacturers like Samsung and HTC, so they can in turn build devices that carriers can have more control over.
The reason why I switched to Android was precisely the control I have with it, with the primary annoyance I experienced with iOS being that the carrier has to give approval for tethering (amongst other bullshit precisely like this one). This happens for Windows Phone too. Was pleased with Android precisely because it's the only OS in which the feature cannot be turned on/off by the career. Apparently this is no longer true.
A bug BY DESIGN is still a bug.
UPDATED: corrected sentence, iOS is not a carrier :-)
Nobody from @android.com or @google.com has commented on the bug at all.
And you do still have control, you are free to compile AOSP for a handful of supported devices directly, and you are free to use CM or whatever. Well, except CM has this bug/feature, too.
What do you mean by that?
It wouldn't work even if they did deep packet inspection, like reading the browser's headers or things like that, because then it would break in-app functionality for apps that allow you to fake your connection to make the server respond as if you were a desktop (also thinking about browsers).
Is this monthly allowance specific for tethering only?
Otherwise that's another problem entirely. Restrictions after exceeding the monthly allowance is OK, after all that's what you're paying for. But if I'm paying for 1 GB per month of data, then I expect to use 1 GB of data unrestricted because I'm paying for it.
And if that 1 GB of data comes with a fine print, then shouldn't consumer laws come into play, at least in the EU?
In Romania, a local career was fined for false advertising a while back because they were promising 600 free minutes, while at the same time the indivisible billing unit was 6 or 10 minutes (instead of per second after the first minute, as everybody else was doing it). Wouldn't such laws work for data too?
Consumer laws about fine print appear to have no teeth when it comes to UK mobile telcos (who e.g. are legally allowed to advertise 1GB a month as "unlimited")
"iOS being that the carrier has to give approval for tethering"
No, it couldn't.
(See what I did there?)
the primary annoyance I experienced with iOS being [that] the carrier that has to give approval for tethering
I doubt Google's intentions are quite as simple. It's entirely possible that they're honoring the "carrier code" to ensure competition is robust. If your carrier has a problem with tethered data, get a different carrier.
As an aside, it's pretty bizarre to see a comment by some random person (the "IT'S A FEATURE NOT A BUG!") being used as if it's a statement by Google. Bizarre.
This sort of artificial scarcity is really frustrating to certain users, but it is an absolute gold mine for corporations like this.
Submitters: please double-check the article you post for links to an original source. If there is one, please post it instead.
I'm on a Moto G on giffgaff in the UK and data is 100% free and unlimited (within some vague definition of "fair use"). They shoot your network access for 30 minutes if they find you tethering because it's against their terms.
How they detect this is a closely guarded secret and a big mystery. Perhaps this is it.
However, the asshole carrier tactics come out pretty sharpish: if you want a tablet SIM or data only SIM, they charge a fortune for a capped data SIM (£12 for 3Gb/month). No thanks!
Data is data. that's what net neutrality is about isn't it?
The penalty for breaking the terms is temporary disconnection so screw it, I tether all the time. If you use HTTPS only or a VPN connection then it doesn't cut you off at all. DPI anyone?
The irony is that I've snagged a 3.5Gb ISO image off MSDN onto my handset's USB OTG (at a nice 800k/sec) with the free data and can push 6-8Gb a month which doesn't apparently bother their fair use term but if I start up a download on a tethered device, bang instantly.
Obviously they're device-ist!
I know that at one points some carriers used DPI to check for patterns that indicate non-mobile use (connections to things like Windows Update, for instance).
I would guess packet inspection and checking user agents. You could bypass it with an iptables rule on the handset (is there iptables available on Android?) and/or changing your browser's user agent string.
That's just a theory, I wanted to test it but never find the time.
I'm regularly >20GB, more when I travel.
Most months I barely beat 1-2GB but when I'm working on site it can be 20GB which means I may end up stuck on an overpriced "with phone" contract and may have to buy unlocked devices again. I'll have to see what the exact details are in a few months time.
I've done about 50GB/mo tethering last month and this with no ill effects yet. I'll be holding on tight to this plan for as long as possible, although as I'm on the rolling, 1-month contract version I suppose there's nothing stopping them from shifting me to a different plan apart from good will.
I haven't tried it past that much. I can whip an OTG keyboard/mouse into the thing and use it as an ssh terminal for the interesting bits with connectbot so don't need the tether facility. My ThinkPad has a 3G modem in it which I don't use any more - it was on Vodafone.
GG are pretty good. They went down a couple of times in the last couple of years for a few hours but comms were pretty good about it. Never had any other problems with them. Data bandwidth and latency is pretty good on 3G (HSPA+). I've pulled a huge amount of data in a month without a problem. Calls are reliable and clear and you can crank up and down your free bits every month.
To be honest I probably wouldn't ever hit another PAYG or contract provider again.
I just buy SIM free handsets now on a whim, use them for a year, sell them if they're ok or repair them away if I break them at cost. Up £400-500 a year on my old O2 contract.
Like T-Mobile has a special case where they allow :443 from tethered hosts, while disallowing :80.
That disappears when the TTL is 65.
I know that (older versions of) Cyanogenmod would set the TTL of packets to be (2^n + 1) for this exact reason, but it happened on the phone.
Also, FWIW, I have T-mobile and haven't experienced issues tethering on my stock Nexus 5. I'm curious why some customers are experiencing these and not others.
I'm sure they could filter that if I upgraded my phone & the tether got a different gateway host (like in the blog).
It's discrimination in the "price discrimination" sense.
If you bought your phone independently of the carrier and don't have their locked down firmware then you can usually just delete the bad APN and everything will go back to normal.
DPI is available, but I'm not sure how often it gets used. If you want to have a play with it on your own then try writing a bit of C code to hook up libpcap to libndpi.
Deep Packet Inspection (DPI) has several purported benefits and use-cases, most entirely technical and usually driven by entailing cost-saving/traffic steering requirements, with a few key use-cases around which revenue generating business cases can be modeled.
Distinguishing tethering from on-device traffic via DPI is one way of accomplishing this; there are other, potentially more cost-effective ways to accomplish the same behaviour as already noted in this thread elsewhere (e.g. user-agent detection). As per the OP, another detection method is to have the OEM add a special route/flag when tethering is detected. The nature of the flag takes various forms (which in this case resulted in a new sourceIP from a different subnet be assigned to the device).
Anybody that operates a network (wireless or fixed) implements similar traffic steering/shaping/QoS techniques. Without them, one cannot optimally leverage their heavy network capital investments.
PS.: Plus Carriers operate in a heavily distorted market (in most places competition is not free, there is heavy governmental influence and the customer has no choice) so the whole "invisible hand" argument I opened with is debatable.
Arguably, due to the nested encapsulation of the ISO model which we all loosely base our understanding of the various network and application protocols, one could technically claim that parsing an IP (or TCP) payload counts as DPI, but that's not how the term is generally marketed or used by vendors nor network engineering or operating teams.
The wikipedia DPI entry[1] is vague; IMO perhaps deliberately. For the purpose of this discussion, perhaps it would help to distinguish between source IP filtering (as per the OP) and L7 DPI capability.
We know that. It has been the case for time eternal.
We also know that carriers have long been able to detect tethering through deep packet inspection : People have been forced into upgrades, or have discovered surprising bonuses on their bill, when they tethered in defiance of that flag (whether through Android, or one of the hack tethering apps available on the other OS').
There is nothing new about this.
Tethering is a standard feature for them now, but they used to require an add on and would track down people tethering without it. (AFAIK it was as simple as searching for desktop user agents)
Or just use SSHDroid with TCP forwarding to make your phone a proxy without having tethering enabled.
Demarcation points were invented for a reason.
First, this is caused by "unlimited", or other large plans (1GB+) plans. Unlimited can never mean unlimited, anymore than it does with electricity.
Carriers are selling those plans to give people comfort around billshock. It's much, much easier to give people an unlimited plan than it is to try to get them to pay for a huge post-pay data bill.
However, since this is about customer comfort, carriers are working on an average usage, and assuming an amount of "breakage".
Breakage is the unused portion of a balance, and it is factored into the profit the carrier expects. It comes from calling card days, where there would be a balance at the end of the card that couldn't be used ($1 on the card, and 35c/minute). Unused prepaid balance at the end of the month? Breakage.
We're atypical users, and even then I'm using <500MB/month. However, this is changing - people are frequently staying on mobile and not switching to wifi when it is available. That's why I hear about people complaining about mobile data coverage at home!
Next, mobile carriers are doing anything and everything they can to avoid becoming a dumb bit-pipe. Mobile is more competitive than fixed line (no regional monopolies), so customers have more power. Personally, I think there is an insane amount of money to be made being a simple bit pipe, mostly through cost reductions.
Finally, they're not only tracking this through separate APNs for tethered traffic, they're tracking the hop counts of packets and detecting packets who's hop count is unexpected for the device.
So, running a VPN client on the laptop and tethering won't help, but running a VPN client on your phone and tethering traffic through _that_ connection might.
But I don't understand why you lump 1GB+ plans in with unlimited. I'm currently paying for 4GB/month of data and I should be able to use it all for whatever I feel like.
Think of it this way, "The expectation is that you will use 500MB/month, but you are allowed to burst to 5GB."
Without that sort of buffer the carriers get a lot of negative press about bill shock - such as when people use their mobile phones on cruise ships.
I pay $10/GB if I go over, and that's pretty reasonable. I've exceeded my plan in the past and the additional charges are entirely sane.
No carrier is getting negative press because of a $10 overage charge, or even a $50 overage charge. They get negative press when they charge $10 for 30kB for roaming without warning the customer, and then the customer gets a bill for $15,000.
The onerous (5GB cap) TWC "Broadband Essentials" service gives you a $5 saving. $5 out of a $60 bill for going from 250 allowed GB to 5.
The providers are never going to charge you less. What you're paying now for unlimited will be the absolute minimum fee, plus troll tolls on top of it.
But the definition of metered billing is that people who use less data will be charged less and people who use more will pay more. That's probably a good deal for people who use less than average and a bad deal for people who use more than average.
Aside from that, you are of course correct. And even for those of us who would probably pay more under a metered plan, it would still be better in that you'd know where the limits are, and the ISP would have every incentive to support you. As it stands now, you get "unlimited" but you actually have an invisible line, and crossing it gets you a Talk.
Otherwise, I'm not sure I get the big deal about metered data. It's gonna suck for people who use a ton of data, but aren't those people currently kinda being subsidized by the customers who pay the same rate but use a tiny fraction as much?
However, my current carrier allows me to tether the data I pay for, so perhaps it only does it in response to some kind of carrier request to split the data into tethered / non-tethered classes?
Youtube blocking "mobile playback" of videos is the same as carriers blocking tethering without a specific plan or arbitrary caps (3GB mobile data, 1GB tether)
This is something, across all mobile platforms, we should be fighting tooth and nail.
Do they still do that? I thought the issue was the ability to play required ads, which the mobile youtube applications now have.
In my experience the UK's a cosy oligopoly between Voda, O2 and EE, with approximately equivalent fuckery between them. YMMV of course.