面向 IPv6 的淘宝 App 网络技术与体验升级

本文涉及的产品
云拨测,每月3000次拨测额度
简介: 面向 IPv6 的淘宝 App 网络技术与体验升级

在个人印象中,移动互联网大约是从09年iPhone 3GS在国内的发布开始揭开序幕,十几年来一路高歌猛进,造就了淘宝这个航母级APP,从最初的蒙眼狂奔、野蛮式增长的“流量”为王,到现在的精耕细作、体验优先的“留量”时代,新阶段,“体验”命题比以往任何时候都更加靠近C位。作为承载业务的各种网络协议,其效能很多时候决定了业务的体验。笔者从业以来,工作所处的技术领域均与网络协议强相关,在加入淘宝前是在手机厂商负责跨设备媒体资源共享及传输的协议优化与实现,就是大家在家把手机播放器上的内容投到电视大屏上的场景,涉及的协议主要包括 UPnP、Reliable UDP、Real-time UDP等,加入淘宝后,持续深耕在网关协议、双工长连消息通道、Networking策略等与网络协议强相关的移动PaaS域,从未中断。

淘宝App去年在网络协议方面的变化概括起来可谓是“一降一升”,“一降”是指SPDY协议下线,考虑到SPDY协议作为H2的过渡实现,目前实际已经处于废弃状态,所以去年我们启动了淘宝SPDY协议下线专项,推动淘宝APP SPDY协议占比收敛95%+,基本完成了淘宝App的去SPDY协议;“一升”是IPv6协议流量促升,去年通过双栈单通感知、复合连接竞速、常态化运营建设等技术升级,促升了淘宝App IPv6浓度指标从优秀(80%)到卓越(90%)的突破,同时保障了复杂网络环境下的用户体验。

IPv6协议升级的工作,是个人在淘宝在网络协议方面深耕时间最长、影响规模最大、思考最多的领域。

借此篇和大家简单分享一下淘宝IPv6的发展现状、历程以及思考。

2. 淘宝 IPv6 最新成果

网络是互联网应用的水电煤,IP协议是我们应用层在多数情况下面对的网络最底层协议。因此我们将 IPv4 到 IPv6 的演进称为“基石的升级”,这是一个庞大的系统性工程,尤其是对淘宝这样的体量来说,涉及的范围非常大,本篇回归淘宝App, 用一句话来概括今年IPv6的工作内容就是基于网络库+AMDC产品效能升级支撑IPv6体验升级,其结果就是“沉淀了一张技术大图、建设了一个运营体系,达成了一组目标数据”。

  • 沉淀一张技术大图:基于淘宝终端网络库为核心的端到端完整IPv6解决方案:

图1: 增强的 IPv6-inside Networking 架构

面向移动网络环境复杂性,基于淘宝终端网络库增强的IPv6 inside Networking架构及技术能力,实现了端到端的完整IPv6解决方案,保障了淘宝IPv6大规模应用下的用户体验,以及通过移动PaaS输出集团,支撑了大量二三方App快速迁移,包括网络环境感知、策略体验、融合数据产品以及云端调度服务。同时持续沉淀领域数据并引领行业规范。

  • 建设一个运营体系:面向合规及App体验的常态化IPv6运营体系:


图2: 常态化IPv6运营体系

实现来常态化IPv6运营支撑,面向IPv6高浓度水位及优秀体验保障,确保IPv6高浓度不回退、用户体验不劣化,通过研发流程来避免日常业务迭代与IPv6正交带来的合规风险与体验损伤。

  • 达成一组目标数据:当前淘宝App的IPv6规模化部署成果指标:

注:表中耗时是指相对IPv4的业务平均耗时。

图3: 淘宝2022 IPv6 规模化应用成果指标

目前,淘宝IPv6 MAU 已达 10 亿+,最高浓度 95%+,业务请求耗时相比于 IPv4 降低约 11.4%,IPv6 网络成功率达3个9。超预期提前完成了FY23财年初提出的浓度及体验提升目标,目标主要内容包括:1)FY23 IPv6浓度月均80%+;2)年度内实现浓度指标领先(90%)突破;3)IPv6体验指标较IPv4不劣化。通过移动PaaS组件输出集团内 App 达 200+。

3.淘宝 IPv6 Networking 演进

自1016年苹果的IPv6-only上架审事件起,淘宝的 IPv6 升级之路,一路走来已经历6个年头,笔者作为集团应用层最早开始研究IPv6相关技术的人员之一,有幸参与集团IPv6项目组,同时作为淘宝IPv6促升的核心owner,通过终端网络技术的创新迭代一路伴随淘宝IPv6技术的持续演进,见证了淘宝APP的IPv6从零用户零流量,到至今影响10亿+终端用户、覆盖导购/交易/物流/直播等全业务场景,浓度考核高达95%+,并赋能全集团200+APP的成果。本文将从淘宝终端网络的开发者的视角,和大家一起简要地回顾一下淘宝IPv6的技术演进历程。我把过往淘宝的IPv6发展划分为五个阶段:

  • 第一阶段: 缘起2016,解决苹果 App store 的IPv6-only上架审核问题;
  • 第二阶段: 蓄势2017,中办发布IPv6规模化部署行动计划,开始对国内广域网IPv6做可用性评估;
  • 第三阶段: 发展2018,首次提出 IPv6 MAU 达 1 亿的目标,至2019年初,淘宝 APP MAU 首次破亿;
  • 第四阶段: 深化2020,开始从用户规模转向流量占比,重点围绕提升IPv6的实际应用占比展开;
  • 第五阶段: 常态化2022,高浓度水位下IPv6常态化运营要求,存量业务 IPv6 浓度必须达到 85%,增量业务全量支持 IPv6,浓度不回流、体验不劣化,目前已全面实现并超越目标。

3.1 缘起 2016

苹果早在WWDC2015宣布在ios9支持IPv6-only的网络服务,并在2016年强制要求:

苹果于2016年5月4日正式发布声明:自2016年6月1日开始,App Store策略要求所有iOS应该必需包含对 IPv6-only 网络的的支持,所有提交至苹果App Store的应用申请必须要兼容面IPv6-only网络。

该问题核心是要解决如何在端上判断 IPv6 是单栈还是双栈支持。发包探测会对用户体验 带来极大影响,因此必须实现本地快速判断,我们通过本地 UDP Binding 的方式实 现了判断。但本地 UDP Binding 的判断存在误差,需要解决纠偏问题。我们通过系统原生状态通知、网关地址判断以及 DNS 地址判断实现了本地快速判断。同时经过线上多年实践沉淀,至今年双十一前,针对Wi-Fi下双栈地址分配的DHCP-lag 及 双栈单通问题也通过完善多维诊断能力来逐步解决。

图4: 终端本地网络栈类型精准识别

该技术应用使得淘宝APP成为集团首个通过苹果IPv6-only上架审核的App, 并通过移动PaaS输出全集团,淘宝/天猫/优酷/高德等集团多个App接入。

3.2 蓄势 2017

2017年,中办与国办联合印发《推进互联网协议第六版(IPv6)规模部署行动计划》,正式在国家层面拉开IPv6大建设序幕。

《行动计划》要求,用5到10年时间,形成下一代互联网自主技术体系和产业生态,建成全球最大规模的IPv6商业应用网络,实现下一代互联网在经济社会各领域深度融合应用,成为全球下一代互联网发展的重要主导力量。

作为应用,我们与运营商在IPv6推进上面临“鸡生蛋还是蛋生鸡”的老问题,但作为国内头部互联网公司,联合生态参与者直面问题并推动行业生态演进即是政策要求,也是我们的内在担当。我们从应用视角出发,IPv6 部署初期,基础网络发展不平衡是必经之路,不同路径、不同运营商的 IPv6 双栈覆盖度不同,且持续演进变化。另外,不同运营商、不同地域、不同网络制式下的网络成功率、时延等质量参数参差且不稳定。为了保障用户体验,首先要解决管道质量的可测量、可观测,这是应用层实现高可靠的基础。针对以上问题,我们实现了面向管道的大规模主动拨测。

图5: 主动式质量拨测

在此基础之上我们建立了全景式IPv6质量观测平台,为后面更好地支撑业务规模化拿到了决策数据依据,供业务层在IPv6放量时,可以选择合适的应用、地域、 机型、用户、设备等。同时联合运营商,通过大规模应用层测量反馈,快速改善运营商网络IPv6基础质量。

3.3 发展 2018

我们对运营商网络做拨测与观测的目的,最终还是为了业务的部署。理论上,南北向的端、管、云是支持 IPv4 到 IPv6 的平滑演进,但仅依靠每一层的栈内自决依然不够,极端情况下会不可用且恢复成本高。我们需要更高效、更可靠、可运维性更高的应用层网络控制面。因此,我们通过精细化实时 IP 调度系统,使得东西向解,逐步实现业务的平滑演进。该系统可以针对不同业务场景、不同设备类型以及不同网络环境做精细控制。针对大规模精细化实时调度,可以基于设备维度、应用维度、用户维度、版本维度、地域维度等精细化维度实现调度。

图6: 精细化实时IP调度彻底东西向解耦合,实现系统平滑演进

基于以上能力,我们在2018年开始针对导购&智能运营场景首次实施IPv6规模化改造, 并于2019年初首次实现淘宝APP IPv6 MAU破亿,同年获得国家《通信学会技术进步奖》2等奖、内部创新1项、专利1项

3.4 深化 2020

经过3年的面向用户覆盖的IPv6建设,至2020年初,淘宝IPv6 MAU已经高达8亿+,但应用深度不够。同时网信办于2020开始,推动国内头部应用厂商IPv6浓度提升,淘宝作为重点应用,被选中作为样板工程进行推进。并于2021年正式印发《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》。

《通知》明确要坚定不移地推进IPv6规模部署和应用,为建设网络强国和数字中国提供坚实支撑,并对国内头部应用的IPv6浓度进行量化考核。

IPv6建设开始重点围绕提升IPv6实际流量占比展开, 该阶段主要是基于已有能力,持续扩大IPv6的业务范围,并在演进过程中,逐步迭代提升IPv6优先级,渐进提升IPv6浓度。


图7: 淘宝IPv6策略变化与规模化应用增长趋势

CDN核心域名IPv6升级,支持图片 js/css等静态资源域名逐步开启IPv6, 至2021年集团淘宝IPv6流量占比>60%。并获得工信部颁发的2021年国家IPv6规模部署和应用优秀案例

3.5 常态化2022

经过5年的技术演进,淘宝以及全集团实现了端云南北向贯通,建成东西向解耦的大规模调度系统,在此基础上,淘宝应用的IPv6浓度在蜂窝网下已超过IPv4, IPv6流量从补充变成主流。同时国家主管部门于2022年初印发《深入推进IPv6规模部署和应用2022年工作安排》,持续大力推进IPv6的部署。

《工作安排》明确了2022年工作目标:到2022年末,IPv6活跃用户数达到7亿,移动网络IPv6流量占比达到45%(无论是IPv6活跃数,或IPv6流量占比,该指标我们早已达到。但网信办针对国内头部互联网应用有单独的考核指标,实操过程中不得低于80%)。网络和应用基础设施承载能力和服务质量持续提升,IPv6网络性能指标与IPv4相当,部分指标优于IPv4。

当IPv6占比逐步超过IPv4的时候,新态势下的IPv6带来新痛点,例如IPv6浓度月度考核指标高水位保障挑战大;业务逾发多元化且持续迭代,优秀体验持续保障难度高;v4存量域名多、新增域名默认非v6,复杂域名不利于浓度提升等。我们把新态势下的痛点归纳为以下4类问题:

合规保障
验收环境变化(Cellular/Wi-Fi、Dual-Stack/IPv6-only),持续保持高水位;
优秀(80%+)到持续领先(90%);
体验提升
终端网络复杂(双栈环境、双栈差异、OS差异)体验保障;
不同业务类型(PRC、CDN、直播等)的IPv6体验确保;
平台建设
可观测可运维能力增强 (全链路、多维度、准实时);
中台能力建设,淘外二方App IPv6支撑;
业务改造
域名IPv6覆盖增强 (改造IPv4存量域名、优化新增域名IPv6配置成本);
统一接入层与生产网的IPv6互通;

综上,2022淘宝IPv6建设新命题是,面向合规保障与体验提升,打造复杂环境下的IPv6技术及数据能力,实现IPv6常态化运营,从优秀到领先持续引领IPv6应用创新

针对新态势下的新命题,今年我们主要是通过以下四个方向来进行淘宝的IPv6建设:


作为终端网络库,是用户体验的保障的最后一道防线,所以终端网络库的IPv6技术创新是整个淘宝IPv6建设的重中之重,今年在网络库上核心创新是针对复杂无线网络,实现了多连接多通道的竞速能力:

图8: 双栈竞速与多通道优化

此外,我们完善IPv6下的终端网络诊断能力,用户侧诊断新增IPv6环境/链路探测,研发工具侧新增CDN/IDC协议检查IPv6维度:

图9: 支持IPv6的终端网络诊断能力

新的一年,我们实现了全面IPv6化的浓度极值冲刺,通过双栈复合竞速 / 多网卡多通道等技术创新,解决了Wi-Fi双栈单通等复杂网络环境下的体验问题,实现了IPv6浓度从60%+ 到 95%+突破,并建立了IPv6常态化工作机制

4. 下一代IPv6+应用思考

迄今为止,我们在IPv6上的升级,主要围绕“规模化部署”展开,本质还是在求“量变”。在此过程中,我们会不断收到提问:费这么大的力气升级IPv6, 价值何在?国家与集团持续大力推进IPv6的升级,其价值与意义具体大家可以参考《阿里巴巴IPv6规模化部署分享》这篇文章,这里不再赘述。但收到如此多的疑问,显然当下我们在IPv6上收获的“价值”对应用开发商或广大应用开发人员感知并不明显。作为应用开发商或互联网应用开发人员,对网络的诉求、体感最强的还是会收敛到2个根本要求:

  • 体验:如何更好?对网络来说就是带宽、时延、抖动、丢包这些性能参数是否有质的提升;
  • 成本:如何更优?对网络来说就是在不影响体验的情况下,带宽等基础设施投入成本、网络维护成本是否有明显降低。

当前蜂窝网络下IPv6浓度占比已经高到95%+(Wi-Fi网络下我们会持续跟进投入进行浓度拉升),IPv6的规模化部署已经到达一个历史性转折点,我们要面向下一代IPv6+技术,从求“量变”到求“质变”的转变。本章是笔者从终端应用网络库开发者的视角,基于IPv6+技术,思考我们可能突破的方向。

4.1 基于APN6的可确定性网络

  • 什么是 APN6

互联网应用对网络带宽、时延、抖动、分组丢失率等方面的需求各不相同,而网络和应用的解耦导致网络无法有效感知应用的需求,因此难以为应用提供相应的服务质量SLA保障。基于IPv6的应用感知网络框架--APN6,全称Application-aware IPv6 networking,通过将应用的需求信息封装在数据分组中,使网络能感知应用及其需求,便于网络进行流量调度和资源调整。具体类容即是传统IP(IPv4)报头仅包含源地址与目的地址,网络无法识别该IP包承载的业务类型与服务等级要求。APN6利用IPv6可扩展报头 128 个比特的前 80 个比特来标注用户的身份、App 的身份 以及服务质量的等级要求,用后 40 个比特来定义 IP 流承载的业务对信道的带宽、 抖动、时延、丢包率的要求。网络根据 IPv6 地址即可识别 IP 流对信道的 QoS 要求。


图10: APN6 扩展头


  • 应用场景

在笔者的观点中,计算机的代际发展是以人机交互方式的升级来划分,在下一代计算机将以 VR / AR 以及游戏元宇宙等场景的多模态+沉浸式交互为主,在这种交互场景下,用户对网络的QoS要求极高,且一种业务应用会有多路海量数据(视频流/海量传感器数据/etc)输入,但并不意味着每一路数据输入都对算力和网络有同样的带宽、时延、 抖动的要求。根据 IPv6 扩展地址报头里对信道性能的定义,可以分别对不同业务选 择不同的信道。

图11: APN6 应用场景网络拓扑

  • 技术价值总结
  • 网络识别应用,应用驱动网络:传统IP报文头仅包含选路用的基本信息,无法识别IP报文承载的业务类型,APN6则通过IPv6扩展头中携带的应用信息,告知网络应该提供什么样的服务,基于不确定网络获得确定性QoS保障;
  • 无状态业务链,加速业务创新:APN6能够实现应用的精细化管理,加速新业务持续创新,节约带宽等基建投入。

4.2 基于BIERv6的广域网组播

  • 什么是 BIERv6

BIERv6全称为Bit Index Explicit Replication IPv6 encapsulation,基于IPv6的位索引显式复制组播,是利用IPv6扩展头、IPv6地址可达性及其可编程空间,以Native IPv6的方式实现的BIER多播架构, 提供更好的多播部署能力和扩展支持后续Native IPv6特性的能力。其技术特点是通过全网洪范建立BIER链路状态库,在组播流量的出入节点保留组播状态信息,中间节点不感知组播流,不建立组播转发树,也不维护组播转发状态,高效完成组播报文分发。

图12: BIERv6 报文格式示意

  • 应用场景

截至2021年12月,中国有9.3亿人看短视频、8.4亿人网购;7.0亿人看直播,占网 民整体的68.2%。其中,电商直播用户规模4.6亿,占网民整体的44.9%,整体人数 较2020 年12 月增长7579 万,带来19.5%的年增长。4.64亿人群、19.5%的人群年增长之下,是直播电商逐步成为一种越发“常态化”、 越发为人熟知的趋势——其背后是2022年预计突破3.5万亿人民币的市场大盘和逐步 增长的直播电商渗透率。带宽是直播运营中最大的成本,根据前瞻网估算算全行业2022年12月11日的CDN费用支出将超过300亿元,在2022年12月11日接近1000亿规模,降低带宽是成本控制中至关重要的一环。基于Native IPv6的BIERv6让我们有可能在直播场景中实现跨广域网的组播实现,大幅降低CDN成本。如下图所示,在跨地域组播组网中,头节点将组播接收者以比特字符串的形式进行编排,由头节点向外发送,中间节点根据报文头中的地址信息将数据向下一个节点进行无状态转发。不需要额外的组播协议与CDN服务。

图13: 基于BIERv6的组播拓扑

  • 技术价值总结
  • 运营商:仅在头节点配置,基于IPv6封装,可轻松穿越不支持的节点与第三方网络,实现跨地域的组播业务;
  • 互联网应用:大幅降低当前CDN带宽成本,加速业务创新。

4.3 多域IPv6-only网络应对

中国电信在《云网融合 2030 技术白皮书》中指出,IP骨干网络逐步采取 IPv6 单栈进行路由和转发。目前,IPv6 的部署处于双栈阶段,即 IPv4 和 IPv6 协议同时在线网中运行。未来,用户终端编址逐步归一化,采用 IPv6 编址。运营商将从部分场景做起,逐步取消对 IPv4 的地址分配。所以我们需要考虑在 IPv6 单栈情况之下,满足对存量 IPv4 业务的访问,确保用户体验不受影响。


图14: 规模化IPv6-only网络场景

理论上进入IPv6-only时代,跨域(6 to 4 或者 4 to 6) 将由运营商网络解决NAT64或NAT46问题,但实际情况并不如想象中的简单,如前文3.3节所述,淘宝在应用层,具有自己的调度控制面,形成应用自身的SDN网络,调度的过程会有三个漏斗环节产生端侧在IPv6-only环境拿到一个IPv4的地址:

  • 端侧IP协议栈类型判断错误;
  • 调度系统错误,给予一个IPv6-only终端调度到IPv4地址;
  • 调度系统配置错误,或某个服务改造遗漏,导致某个域名在调度系统中只有IPv4记录。

综上,终端应用App作为业务可用性与用户体验的最后一道防线,需要尽可能的对这种情况做出应对,有效支持对于剩余 IPv4 的业务承载,确保用户体验不降低,是我们必须考虑的关键问题。一般情况,一个IPv6-only网络会有一个固定的合成前缀,以及一个映射规则,不同的运营商(或网络)其前缀与规则并不一致,终端需要通过预探测的方式,获取到这两个参数,合成正确可访问的IPv6映射地址,确保剩余IPv4业务的可用性。

5. 总结

在IPv6升级上,回顾过往,我们以拨测/精细化调度/多连接多通道竞速等Networking技术突破为牵引,围绕网络库+AMDC产品效能升级支撑IPv6的终端用户体验升级,带领手淘走到了IPv6应用的“量变”之路的重要节点----蜂窝网下淘宝App的IPv6流量基本促顶。立足当下,因终端设备/家宽路由等客观因素限制,目前国内IPv6流量在Wi-Fi网络尚未完全铺开,Wi-Fi的IPv6流量占比(14%)远低于蜂窝网络(80%+), 我们会继续围绕IPv6应用质量标准的建设,持续推动Wi-Fi下流量瓶颈突破,完成IPv6“量变”的最后一步。展望未来,围绕IP6+技术,思考探寻IPv6应用的“质变”之路,尽管当前IPv6+仍属于能力建设期,部分技术点甚至在标准建设期,但我们需要提前思考并设计,以应对新一代 VR / AR / 直播等新型业务场景下的大吞吐、低时延的网络要求;同时基于目前大部分基于SRv6的IPv6+技术是面向运营商网络的事实,终端网络可尝试通过MobileSDN+多连接等方式快速使能App内网络切片等,最终实现网络容量弹性化(弹性)、网络体验高可靠低损伤(高效)、应用网络保障的SLA差异化(感知)、网络资源占用成本再优化(经济) 等网络诉求。

终端网络作为整个手淘App的能力基座,其效能直接影响着淘宝上几乎所有业务的体验,也是终端App用户体验的最后一道防线。IPv6是下一代互联网创新的起点和平台,淘宝终端网络将立足终端,面向云网融合,连接好每一个用户、每一位商家、每一件商品。

相关文章
|
3月前
|
网络协议 算法 网络架构
【网络工程师】<软考中级>IPV6网络技术
【1月更文挑战第27天】【网络工程师】<软考中级>IPV6网络技术
|
4月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
57 2
|
4月前
|
XML Java Android开发
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
139 0
|
1月前
|
网络协议 安全 网络性能优化
7. 构建简单 IPv6 网络
7. 构建简单 IPv6 网络
51 0
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
164 0
|
2月前
|
移动开发 开发工具 数据安全/隐私保护
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
|
2月前
|
数据采集 存储 数据挖掘
淘宝app端商品详情数据采集python
淘宝app端商品详情数据采集python
31 2
|
4月前
|
监控 网络协议 网络性能优化
【网络层】DHCP协议(应用层)、ICMP、IPv6详解
【网络层】DHCP协议(应用层)、ICMP、IPv6详解
58 0
|
4月前
|
XML JSON Java
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)
25 0
|
4月前
|
XML Java 调度
Android App网络通信中通过runOnUiThread快速操纵界面以及利用线程池Executor调度异步任务实战(附源码 简单易懂)
Android App网络通信中通过runOnUiThread快速操纵界面以及利用线程池Executor调度异步任务实战(附源码 简单易懂)
30 0