互联网卡,是指三大运营商(移动、联通、电信)与互联网商家合作推出的手机专套餐卡。互联网商家很多为大众所熟知的腾讯、阿里、百度、头条、微博、小米、VIVO、工行、滴滴等。也正因为和这些商家合作共同推出的套餐,因而也会根据不同商家的特色拥有不同的特性服务,比如定向免流。
APP 专属流量免流
这种免流形式是最常见的,一般互联网公司的 APP 免流都是用这种形式。 这种模式是在使用该 APP 内的服务时享受免流的优惠,而在 APP 内打开外部链接,比如广告、活动页面的时候,是不享受优惠的,如果是非视播类的 APP, 也会限制视频播放的免流。
运营商 IP 白名单免流
这种实现方式需要 APP 方和运营商进行合作,需要 APP 方将自身 APP 业务涉及的服务在公网的 IP 池提供给运营商。
而运营商可以在网关对用户的请求进行报文检测,可以判断出源地址、目的地址、源端口、目的端口及协议类型五元组,通过白名单机制就可以完成对 APP 方的业务进行免流。
对于这种方式 APP 方需要保证自己所有业务的入口 IP 池(一般是用户 DNS 能解析到的所有 IP)是不变的,可以自由增删业务域名;
不会限制具体的应用层协议,特别是一些自定义的私有协议,可以自由地对自身业务数据进行加密;
对于一些 CDN 之类的第三方业务免流可能比较麻烦,因为这种依赖第三方的业务,如果公网 IP 变更了,很可能不能及时通知运营商变更白名单,可能需要第三方服务商特别支持,维护一个稳定的 IP 池。
移动免流现在基本全部依靠IP白名单,非白名单IP都不被识别。像第三方基于CDN的业务,移动很多是强制劫持到自家的加速服务器上。但是第三方业务也存在很多自定义域名和解析,所以也会出现跳点很高的情况。
运营商通过应用协议特征免流
上面说到运营商从报文检测出五元组,这只是普通的报文检测,现在运营商对数据报文一般会通过 DPI (Deep Packet Inspection) 进行报文检测。
DPI 检测又称为深度报文解析,可以通过一些识别技术,分析出用户是否访问了免流范围的业务。
举个简单的例子,比如我们现在的手机卡套餐开通了 bilibili 免流服务,打开 http://www.bilibili.com 的时候我们的请求报文内容是这样的:
运营商的网关拿到这个报文的时候便可以通过 HOST 这个特征值进行白名单判断是否免流了。
当然,这个特征值可以是请求报文的任何参数,比如一个自定义的 UA、一个特殊的 Header。
通过这种方式进行免流,APP 业务方只需要提供自身业务的一个特征值(大多数情况应该是域名)给运营商便可以了,不受对外服务的 IP 变动影响。
但是这种方式局限性比较强,特别是 HTTPS 已经成为行业标准的现在,除非运营商能够从 HTTPS 报文识别出对应的特征;而对于一些使用了私有协议的 APP 方如果想通过这种方式进行免流,便需要提供私有协议的规则给运营商了 。
PS: 这种方式也容易被用户伪造,比如通过 SSR 之类的可以进行报文混淆的软件,只要抓包观察出特征,便可以伪造出对应的特征,『欺骗』运营商。
全网免流
这种免流形式一般出现在一些财大气粗的公司身上,基本也都是浏览器这种产品,比如 UC 浏览器和 QQ 浏览器就有这种服务,声称只要使用他们的浏览器,不管你打开了什么网站,看了什么东西,统统免流。
这种形式的免流应该是通过代理服务器来实现,APP 内自带了代理客户端,以前 PC 上一些特殊浏览器也干过这种操作,只要使用他们的浏览器便可以打开一些限制服务地区的网站 。
在用户开通全网免流服务后,APP 自动连接代理服务器,并将所有的流量全局代理到代理服务器进行访问,APP 只要将代理服务器的 IP 提供给运营商,便可实现。
这种方式对于 APP 方来说,成本比较大,不过可以自由、精准地控制免流的范围。
但是如果代理服务器稳定性不够或者直接故障,就会造成用户要访问的网站访问不了的情况;如果是 APP 方的竞对域名访问不了,用户不了解原因,可能便会认为 APP 方恶意屏蔽竞对 。
对于用户而言,这种方式确实是很爽,毕竟上网全免费了,不过是会有个人浏览数据、稳私数据的泄露风险,全看 APP 方良心和代理服务器的安全性。
分类: 网文转载
联通互联网卡免流的实现方式
文章作者:谷子猫
手机扫码查看
https://zhuanlan.zhihu.com/p/56306429 互联网卡,是指三大运营商(移动、联通、电信)与互联网商家合作推出的手机专套餐卡。互联网商家很多为大众所熟知的腾讯......
发表评论