威胁中国经济的互联网"肠梗阻",病根不是GFW

从中国访问一家没有被墙的国外网站往往非常困难,从国外访问中国的合法网站也经常会“气若游丝”,很难想象这样糟糕的网络可用性如何支撑以电子商务为龙头的中国数字经济的全球化发展。

中国的互联网相当不靠谱,我指的是是稳定性和可靠性。在互联网可靠性全球最差TOP20国家排名中,你可以找到中国的名字,紧挨着一些战乱赤贫国家。

很少有人真正了解事情的真相,大多数人宁愿相信国家防火墙是导致中国互联网可靠性较差的原因,但这实际上是个天大的误会。

大多数可靠性问题的根源其实来自中国的电信企业们,当然政府基于网络中立性原则的监管不力也可能助长了问题的恶化。

事实上,中国互联网基础设施可靠性的问题对中国的经济也是一个很大的威胁,不仅延误了传统行业的数字化转型战机,而且还大大抑制了创业企业的成长。这导致的一个直接结果就是,中国社会的数字化转型成本10倍于全球水平!网站托管成本则高于全球水平2-3倍!在中国的数据中心添置一台服务器的交付时间往往需要数周甚至数月时间,而不是理应的数天之内。

本文我们将审视中国互联网的现状,并在政府实施有效的网络中立性监管之前,为企业解决迫在眉睫的网络可靠性问题提出一些建议。

百度给我们的错觉

每当有人说“中国互联网的可靠性糟糕透顶”时,人们总会拿百度说事,来证明中国的互联网是多么的靠谱,因为无论任何时候任何地点,人们都能快速访问百度的网页和服务,甚至很多人将打开百度首页作为测试网络是否连通的默认方式。与此同时,大多数人都那些无法稳定访问的网站——例如www.google.com,是被所谓的中国防火长城(GFW)屏蔽了。因此一旦有网站无法在中国境内访问,人们会想当然地认为这个网站一定是被GFW屏蔽了,否则在电信基础设施高度发达,且诞生了华为这样世界级电信设备公司的中国,一个好端端的网站没有理由不能正常访问。于是,“被墙了”成了网络服务无法正常访问最廉价的托词,而使用能够(非法)绕过GFW的VPN服务,则成了天堑变通途,畅游地球村的万灵药。

事实上,将中国互联网可靠性、可用性和稳定性问题一股脑归罪于GFW的推论大部分情况下是错误的。全球还有很多国家,例如法国、土耳其、俄罗斯等,也都部署了类似中国GFW的政府审查和过滤技术方案,但这些国家的互联网的稳定性和可靠性要出色得多。

BAT等中国互联网巨头其实并不能代表中国互联网的实际状况,这些巨头们的优异网络性能表现背后的原因鲜为人知:事实上中国的互联网巨头都通过向电信运营商租用MPLS专线,以及斥巨资在各重要省市节点设立代理服务器(CDN节点),打造了自己的“私有互联网”,甚至延伸到了海外市场。你甚至可以说,百度自身就是一个全球性的电信公司,百度并不依赖中国的电信运营商来完成数据从用户到数据中心的路由。Google在中国之外的全球市场也是这么干的。

但是,并非所有的企业或个人都有这个实力和预算来复制百度、谷歌、阿里巴巴、腾讯等公司的“私有互联网”网络策略。

中国的云计算“肠梗阻”往往发生在内部

2015年8月份,我们在中国多个不同地点对中国三家重要云计算服务商——Ucloud、青云和阿里云进行了可访问性测试,我们还在加拿大OVH也增加了几台测试服务器,OVH是欧洲最大的云计算服务商,价格也是全球最便宜的。我们从中国不同地点,经由不同的ISP,向这些受测云计算服务商托管的网站(包括完成ICP备案的和没有ICP备案的)发起https请求来测试网络连接性。

测试结果如下:

注:有ICP备案和没有ICP备案的网站在可访问性上几乎没有区别,另外就是基本可以判定这些受测网站没有像Google那样被GFW屏蔽。

测试结果表明,不但从国外访问托管在阿里云等中国主流云服务商的网站会出现较大的延迟,甚至从中国本土访问托管在中国云计算服务商的网站也会遇到连接性问题。

从中国访问境外网站的速度通常很慢,有时甚至无法访问,糟糕的是没有什么明确的规则可循。在有些地区例如云南,通过FTTH访问境外网站通常非常稳定但是速度较慢,通过4G上网卡访问同一个网站却非常流畅。但蹊跷的是,一个小时后上网卡的访问变得不稳定起来,伴随着“连接重置”错误,类似我们访问www.google.com时遇到的情况。

为了更深入地了解中国互联网访问的不可预测性和不稳定性,建议阅读筑波大学两位研究者Daiyuu Nobori和Yasushi Shinjo发表的论文——“VPN Gate: A Volunteer-Organized Public VPN Relay System with Blocking Resistance for Bypassing Government Censorship Firewalls” 。该文详细阐述了从中国访问境外网站的规则如何随着新的翻墙技术的出现而动态调整,这种调整是持续的,在数天内就能完成对非法翻墙技术的堵截。

与此同时,从境外访问中国境内的网站服务器虽然速度很慢但相对稳定,很少有中国网站境外无法访问的情况,我们公司自己的网站也从未遇到此类情况。从我们巴黎总部访问国内分公司网站速度慢的原因主要有两点,一是国内网站虚机的带宽分配不够,另外就是巴黎与中国存在很高的网络延迟。这一点通过多花钱基本能解决,而且包括Ucloud和青云等服务商甚至还提供不同地域多个IP绑定到一台虚拟机的服务。

但真正让人吃惊的是从国内访问国内网站的不稳定性。从上表可以看出,某些情况下从广州ISP访问阿里云的丢包率高达50%,从云南ISP访问Ucloud的丢包率甚至高达100%(相当于被“墙”了)!在我们测试的同一天,从出现访问问题的同一省份的其他ISP,或者其他省份的ISP访问阿里云和Ucloud又是完全正常的。糟糕的是,这种可访问性问题的发生是“随机”的,不同时间会出现在不同的ISP或地区,完全不可预测,例如我们还曾监测到青云www被北京的一家ISP屏蔽。上述问题背后的原因其实很简单:中国的互联网服务商之间缺乏互联互通的有效激励机制,同时也缺乏相关的高级路由运维人才,中国的IT技术人力成本非常高昂。

但是中国互联网“肠梗阻”的危害性是有目共睹的:中国没有一家大型云计算服务商会承诺你的网站能被全国人民都访问到。而对于那些希望在中国全面部署web应用(例如300个零售终端)的企业来说这是致命的,因为每天会有5-10%的终端对特定web应用的访问会出现问题;游戏企业也面临类似的困扰,这意味着每天会有大量用户在骂骂咧咧中流失。最终迫于无奈,大多数在中国开展业务的互联网企业都选择了租用专线,导致中国的互联成本是全球水平的十倍,而中国互联网糟糕的路由质量业不可避免地会拉低中国经济的竞争力。

一个让人聊以自慰的好消息是,中国的4G上网的稳定性和可靠性不错,在这里我建议那些需要在中国各地办公旅行的商务人士或企业团队使用4G上网,不要顾惜成本,绝对能省去不少猜忌和麻烦。

谁在敲诈中国的网站经营者?

中国的电信运营商在互联互通方面的“撕逼”经常会殃及用户,但我听说的更感人的案例是一家地区接入运营商封锁了一家网站的过境数据,为的是坐地起价,向网站收取更高的带宽费用。这家网站此前在全国范围的访问都很顺畅,但在网站发展进入腾飞阶段,流量曲线向上坚挺地抬起时却被当头浇了一盆冷水,一些地区的用户无法访问这个网站。经过彻夜紧张而又谨慎的分析,网站经营者发现一家运营商屏蔽了所有访问该站的用户,这家网站的负责人别无选择,只能与这家运营商坐下来重新谈判,结果可想而知,在达成新的费用协议后,网站终于又能“上线”了。

短期解决方案:技术手段

应对中国互联网糟糕现状的短期解决方案是通过技术性手段。这主要基于多重前端架构,以及两条规则:前端选择和路由优化。前端是指从用户那获取http请求并发送给应用的服务。多重前端能够有效解决云计算服务被随机封锁的问题。

规则一:前端选择。例如云南的FTTH用户可以选择访问阿里云在杭州的前端服务器来获取最佳的访问速度,同样的广州用户应当选择访问托管在广州Ucloud的阿里云前端服务器,北京的用户则选择访问青云(北京)。以上这些选择规则需要随着时间、省份、ISP的不同而调整匹配,例如云南的4G用户可以通过广州Ucloud顺畅访问阿里云,而同一地点的FTTH用户却可能无法访问广州Ucloud。

规则二:路由优化。由于多数网站和企业的应用和数据库往往都托管在一家云计算服务商的平台中,确保每个托管在其他云平台中的前端服务器与应用的通讯稳定性就显得尤为关键(而通讯的稳定性差正是中国互联网的基本特征)。

以上我们描述的架构和规则与百度的高可用性架构有些类似,但也有显著区别:百度的架构需要投入巨资打造专有基础设施,而这是普通企业无法承担的。

一些所谓的CDN(内容分发网络)厂商也部分实践了以上原则,打造一个类似百度的架构,然后租给多个企业用户。但需要注意的是,CDN服务商的前端选择算法通常效率不高,不足以应付类似上述云南4G用户和FTTH用户无法同时访问阿里云前端的棘手案例。而且与百度和谷歌能够控制路由基础架构不同,某些情况下,CDN服务商无法保证从前端到后端应用的路由不被封锁2。这也是没有CDN厂商能承诺在中国国内100%可访问性的原因。最后,不少企业担心,使用共享https前端会存在把企业敏感数据泄露给CDN服务商的风险。

私货分享:GrandeNet应用分发网络

为了解决CDN服务商们没能解决的难题,我们开发了一个代号Grandenet的解决方案,目前已经获得工信部许可并在中国市场开始推广。2012年,在为中国企业用户提供一个能够解决中国互联网“肠梗阻”顽疾同时又不违反中国法律的想法驱使下,我们设计了Grandenet。我们称之为应用分发网络(Application Delivery Network,简称ADN),目的是满足稳定访问企业应用这一根本需求。我们设计的Grandenet IPv6骨干网络不对传输数据加密:数据加密的任务交给应用和Grandenet用户。

2015年9月份,GrandeNet实现了完整部署,一家总部位于广州的大型国企通过Grandenet来保障分布在云南、海南、泰国、马来西亚、印度尼西亚等国内外多个地点的工厂都能够稳定访问企业ERP系统。通过实际的跨国运营来看,Grandenet解决了其他方案过去五年束手无策的一些难题。

GrandeNet通过在网站嵌入一小段JavaScript代码来监控网络性能,从而解决前端选择的问题。这段Javascript代码实际上是一个HTML5离线应用,会根据浏览器延迟通过轮询算法来选择最佳前端(下图),第一次启动轮询算法需要一分钟时间,但之后的使用再无需等候。前端选择的流程只需要数秒钟而且可在后台运行。

前端与后端连接性问题的解决途径是部署一个二层多协议隧道的随机Mesh网络,采用延迟优化路由协议。得益于Mesh网络,前端与后端之间存在数以十亿计的可选路由路径,任何路径被封锁路由协议(Babel)都会查找出另外一条更优的路径来访问后端。由于可选路由路径数量巨大,理论上是无法彻底断开连接的。更多深入信息建议于都这篇论文:“Building a resilient overlay network : Re6stnet” by Ulysse Beaugnon4.

任何向Grandenet提供有效ICP备案的网站都能使用这种全新的路由Mesh网络提高网站的全球可访问性。无论网站访问时从中国国内还是境外发起,都能保证良好的连接性能。得益于路由优化,web应用可访问性的优化与地域无关,例如一些Grandenet用户在境外的亚马逊或OVH托管但是从中国访问,也有一些用户将应用托管在中国境内的Ucloud但是从境外访问,还有一些用户将应用托管在青云但是通过Ucloud或者阿里云的前端来访问,都是没有问题的。

我们还使用一种HTML5离线技术,使web浏览器能够永久缓存静态内容,这极大的减少了带宽资源的消耗,同时大幅提高了web应用处理动态内容的性能表现。

Grandenet适用于几乎所有web应用,包括在线游戏、在线购物、移动医疗,以及ERP、CRM甚至web邮件。Gmail第一次加载需要将近一分钟,而GrandeNet与其表现相当。相比CDN服务,Grandnet使得企业可以将前端服务放在自己的私有架构上实现完全的控制权,从而解决了企业担心的数据泄露隐患,此外GrandNet还是开源的,用户能获得所有的源代码,从根本上杜绝了“中间人”的隐患。

事实上,只需替换不同的前端选择算法,Grandenet就能用来提高互联网网站的可访问性,我们推荐的算法与维基百科采用的算法类似,是一种地理选择算法。

坦率地讲Grandenet也并非是万能的,有些情况仅仅部署Grandenet还不够,我们推荐使用高级DNS服务商的服务,例如Cedexis维护着一个涵盖全球ISP的最佳前端连接性的实时数据库,Cedexis最近也进入了中国市场,目前正在进行本地化工作,修改过去基于亚马逊的架构方案。

长期解决方案:加强监管

以我个人的观点,中国互联网路由的糟糕现状,根源是政府对互联网性能监控的缺位。全球大多数国家都曾经或者正在遭遇类似的问题。全球除了日本外,几乎所有国家的电信寡头都期望通过降低服务质量来维持利润,而不是通过创新。切断一条高速公路会迅速招来警察和政府的强力介入,但切断一条路由,拔掉一根网线却似乎不会惊起丝毫波澜,即使两者带来的经济损失规模是很接近的。如果政府不能有效率地监控运营商们的互联网服务质量,并实施类似“网络中立性”的监管法规,目前的局面就不会得到任何改观。

监控网络服务质量本身也是一个巨大的技术挑战,不仅仅是呈几何级数增长的路由数量,而且当路由被封锁时,分辨人为失误和敲诈也是一件非常困难的事情。对于破坏中国互联网基础设施可用性和稳定性的违规做法,政府还需要根据运营商的收入利润开出有足够威慑力的巨额罚单,同时撇清与运营商千丝万缕的社会关系。最后,中国政府可以考虑尝试引入一个全新“物种”,给采用全新策略的运营商发放电信牌照。在法国,Free和OVH这两个运营商新兵的加入彻底激活了过去铁板一块的电信市场,使得低成本高质量的电信服务得以蓬勃发展。

CTOCIO微刊

服务决策者和创新者的IT新媒体

官网:www.ctocio.com

微博:@IT经理网

号:ctociocom