淘宝 APP 网络架构演进与弱网破障实践

文章介绍了淘宝APP的统一网络库AWCN的演进过程,它是一个高性能、多协议、可容灾、可观测的终端网络基础设施。AWCN采用MobileSDN架构,通过网络控制器、连接管理、请求管理等模块提供稳定可靠的请求性能。文章详细讨论了网络加速体系,包括IP策略调度、连接管理、请求管理和厂商加速策略,旨在提升用户在复杂网络环境下的加载浏览体验。

作者:沈良炜 阿里大淘宝终端体验平台团队

面对移动互联网络下复杂多变的网络环境,如何提供更稳定可靠的请求性能,保障用户的加载浏览体验?本文将为大家分享淘宝APP统一网络库的演进。

一、引言

自2013年ALLIN无线到今天,已经走过10个年头,手淘终端统一网络库AWCN(Ali Wireless Connection Network)从淘内孵化,一路过来伴随着手淘业务的发展,经历集团IPv6战役、协议升级演进等,逐步沉淀为阿里集团终端网络通用解决方案,是兼具高性能、多协议、可容灾、可观测的终端网络基础统一设施。面对移动互联网络下复杂多变的网络环境,如何提供更稳定可靠的请求性能,保障用户的加载浏览体验、更好的支撑业务发展,是我们始终探索的命题。

本文将介绍淘宝APP统一网络库演进的过程,讲述如何围绕体验持续构建南北向从监测到加速一体化的终端网络架构,通过构建NPM弱网诊断感知能力,落地原生多通道技术/多协议择优调度手段,贴合厂商附能网络请求加速,实现去SPDY及规模化IPv6/H3协议簇的平滑过渡,为用户提供弱网更好、好网更优的APP加载浏览体验,支撑业务创造更多的可能性。

二、终端架构介绍

2.1 MobileSDN理念

在介绍AWCN之前,笔者想先这里普及下SDN架构的概念。

SDN(Software Defined Network,软件定义网络)是一种将网络资源抽象到虚拟化系统中的IT基础架构,SDN将网络转发功能与网络控制功能分开,其目标是创建可集中管理和可编程的网络,核心理念是希望应用软件可以参与对网络的控制管理,满足上层业务需求,简化使用和运维成本。有一个较为形象的类比,如果说现在的网络系统是功能机,系统和硬件出厂时就被捆绑在一起,那么SDN就是Android系统,可以在很多手机设备上安装&升级,同时还能安装更多更强大的手机App(SDN 应用层部署)。

回到移动应用领域,我们的目标是搭建统一的终端网络解决方案,上层业务不需要关心内部的协议如何转发、请求超时降级等复杂逻辑,做到好用、易用、可观测、体验好。显然,这与传统SDN架构理念不谋而合。

2.2 AWCN终端网络架构

因此,围绕以上理念和目标,我们进一步构建起南北向从监测到加速一体化的 MobileSDN架构,以减少业务的接入/运维成本,提升用户的浏览体验。

图:AWCN Mobile-SDN架构

从MobileSDN架构展开来,接下来简要介绍下各分层模块承担的角色与其中作用

1)网络应用:面向多种应用场景衍生出的网络组件,如统一RPC网关(MTOP)、消息 PUSH 通道(ACCS)、上传(AUS)、下载(TBDownloader)、图片加载(Phenix)、远程配置(Orange)等能力;

2)网络北向接口:上层调用和内部实现的桥梁,提供统一同步/异步对外API接口和无痕Hook方式,用于上层网络应用/业务场景接入调用网络基础能力;

3)网络控制器:请求策略管控中心,架构大脑,负责请求端到端链路的调度和优化决策,有着举足轻重的作用,控制器提供完备的网络加速能力,从节点调度/连接选择/请求管理多个环节进行网络请求加速;

4)网络南向接口:控制面与基础协议转发的桥梁,对协议及数据进行了通用抽象,以应对不同系统框架/不同协议的统一处理;

5)网络协议转发:多个基础协议和网络框架的统一适配实现,兼容各类请求场景下的最优选择调度,支持标准HTTP/1.1、HTTP/2、HTTP/3,以及集团自研的HTTP/2+SSSL和H3-XQUIC协议;

6)网络性能管理:网络数据及性能观测中心,NPM(Network Performance Management),负责设备网络状态/质量/信号强度的感知、业务请求数据的统计上报、PING/TRACE/NSLookup等网络时延探测诊断、用户网络诊断/请求抓包等工具建设。

2.3 行业分析

纵观行业内一些与之对标的移动网络框架,如腾讯维纳斯WNS、微信Mars、Chromium cronet、Square Okhttp等,AWCN和它们在一些思路上可以说是殊途同归,通过提供更优的IP策略调度、多协议连接管理策略及请求超时等控制加速请求,建设网络诊断、网络质量监控等手段加强网络可观测能力。

  • 微信Mars:STN负责请求任务管理/IP排序/网络策略等能力优化请求体验,SDT 为网络诊断模块,一定程度上与AWCN中网络控制器、网络性能管理两块部分承担角色相近。

图:微信Mars基础架构

2.4 规模总览

淘宝统一网络库作为基础组件在集团内被广泛应用,集团内涵盖千级以上规模应用支撑,包含且不限于手淘、闲鱼、优酷、天猫、Lazada、高德、UC浏览器、饿了么等 APP,同时通过阿里云EMAS、友盟对三方应用开放接入,如海底捞/杭州银行等企业应用。

作为移动网络解决方案,网络请求的体验是重中之重,因此,笔者将重点讲述网络控制器如何围绕请求构建完整链路上的加速技术,介绍如何从节点调度/连接选择/请求管理/系统调度进行业务网络体验优化,确保请求在各类复杂网络状况下高可用。

三、网络加速体系详解

前面提到,网络控制器是作为整体架构上的大脑,承担着请求端到端链路的调度和优化决策,相当于掌舵手和发动机的角色。一次完整的请求网络传输大致可以分为以下链路,即DNS->建连->发送数据->等待首包响应->接收数据,过程中IP策略调度、连接管理、请求管理及厂商全局调度加速子模块各承担着不同的作用,笔者将逐一介绍阐述。

图:各模块在一次调用过程的作用域

  • IP策略调度:负责IP/节点的选择和调度,职责是选择最优的IP策略,减少DNS带来的耗时,同时具备切流容灾的能力;

  • 连接及协议管理:负责连接池生命周期的管理和各类协议的选择,职责是

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值